Browse

함수 단위 중복코드 쌍을 자동으로 안전하게 고치는 방법
Automatic and Safe Refactoring of Function-Level Code Clones

DC Field Value Language
dc.contributor.advisor이광근-
dc.contributor.author양준모-
dc.date.accessioned2019-05-07T03:20:29Z-
dc.date.available2019-05-07T03:20:29Z-
dc.date.issued2019-02-
dc.identifier.other000000154703-
dc.identifier.urihttp://hdl.handle.net/10371/150818-
dc.description학위논문 (석사)-- 서울대학교 대학원 : 공과대학 컴퓨터공학부, 2019. 2. 이광근.-
dc.description.abstract본 논문은 JAVA 소스코드를 대상으로 함수단위 코드중복 쌍을 찾아 자동으로 안전하게 고쳐주는 방법을 제안한다. 이 방법은 크게 두 단계로 구성된다. (i) 전체 소스코드 내에서 중복코드 탐지기를 이용하여 중복코드 쌍을 찾아낸다. (ii) 찾아낸 중복코드 쌍을 유형별로 분류한 뒤 알맞은 알고리즘을 통해 안전하게 고친다. (i)에서는 Deckard 중복코드 탐지기를 활용한다. (ii)에서는 입력받은 함수단위 중복코드 쌍을 두가지 유형으로 나누어 처리한다. 첫번째 유형은 두 함수의 타입이 같을 때로 두 함수를 병합하여 처리하고, 두번째 유형은 타입이 다를 때로 내부 중복부분을 추출하여 처리하는 것이다. 이 방법의 실효성을 보이기 위해 함수단위 중복 리팩토링 도구 AutoRefactor를 설계 및 구현하였다. 구현한 도구로 회사 제품코드와 오픈소스 프로젝트에서 찾은 실제 중복을 없애기 위해 실험한 결과, 같은 파일 내 존재하는 함수단위 중복코드 6,082 LOC(55개쌍 중복) 중 3,976 LOC(30개쌍 중복)를 처리할 수 있었다.-
dc.description.abstractThis paper proposes a method to automatically find duplicated function-level code clone pairs and securely fix them for JAVA programs. This method consists of two major stages. (i) Find duplicated code pairs using code clone detector within the complete source code. (ii) Classify the located duplicated code pairs and fix them safely through the appropriate algorithm. Stage (i) utilizes the Deckard code clone detector. In stage (ii), duplicated code pairs are divided into two classes. If two functions have same type, they are merged into a single function. If they don't have same type, internal duplicated code snippet is extracted. In order to demonstrate the effectiveness of this method, I designed and implemented function-level code clone refactoring tool, AutoRefactor. I experimented AutoRefactor with real company product codes and open source projects. Experimental results show that AutoRefactor can process 3,976 LOCs (30 clone pairs) out of 6,082 LOCs (55 clone pairs).-
dc.description.tableofcontentsI. 서론
1. 동기
2. 해결 방안
3. 결과
4. 논문의 구성
II. 중복코드 탐지
1. 중복코드의 유형
2. 중복 리팩토링의 유형
3. 코드 중복의 정의
4. Deckard
III. 중복처리 알고리즘
1. 두 중복함수의 타입이 같은 경우
1.1. 함수 병합
2. 두 중복함수의 타입이 다른 경우
2.1. 함수 추출
IV. 중복처리 알고리즘 확장
1. 함수 병합 : 처리방식 다양화
2. 벤치마크 적용 예시
V. 실험 결과
VI. 관련 연구 및 논의
VII. 결론
-
dc.language.isokor-
dc.publisher서울대학교 대학원-
dc.subject.ddc621.39-
dc.title함수 단위 중복코드 쌍을 자동으로 안전하게 고치는 방법-
dc.title.alternativeAutomatic and Safe Refactoring of Function-Level Code Clones-
dc.typeThesis-
dc.typeDissertation-
dc.description.degreeMaster-
dc.contributor.affiliation공과대학 컴퓨터공학부-
dc.date.awarded2019-02-
dc.identifier.uciI804:11032-000000154703-
dc.identifier.holdings000000000026▲000000000039▲000000154703▲-
Appears in Collections:
College of Engineering/Engineering Practice School (공과대학/대학원)Dept. of Computer Science and Engineering (컴퓨터공학부)Theses (Master's Degree_컴퓨터공학부)
Files in This Item:
  • mendeley

Items in S-Space are protected by copyright, with all rights reserved, unless otherwise indicated.

Browse