서지주요정보
Automated scheduling for clone based refactoring = 클론에 바탕을 둔 리팩토링을 위한 자동 스케줄링 기법
서명 / 저자 Automated scheduling for clone based refactoring = 클론에 바탕을 둔 리팩토링을 위한 자동 스케줄링 기법 / Suk-Hee Lee.
발행사항 [대전 : 한국과학기술원, 2011].
Online Access 원문보기 원문인쇄

소장정보

등록번호

8022293

소장위치/청구기호

학술문화관(문화관) 보존서고

DCS 11016

휴대폰 전송

도서상태

이용가능(대출불가)

사유안내

반납예정일

리뷰정보

초록정보

Refactoring is a widely accepted technique to improve software quality by restructuring its design without changing its behavior. In general, a sequence of refactorings needs to be applied until the quality of the code is improved satisfactorily. In this case, the final design after refactoring can vary with the application order of refactorings, thereby producing different quality improvement. Therefore, it is necessary to determine a proper refactoring schedule to obtain as many benefits as possible. However, there is little research on the problem of generating appropriate schedules to maximize quality improvement. In this thesis, we propose an approach to automatically determine an appropriate schedule to maximize quality improvement through refactoring. Our approach to scheduling refactoring for code clones consists of three steps. First, we identify where to apply refactoring by detecting code clones suitable for refactoring. To do this, we define method clone sets, as code clones suitable for refactoring from a refactoring view point. Second, we detect a set of refactorings that can be applied to the detected clones. For this purpose, we propose a set of rules to determine appropriate refactoring operators from given code clones. Finally, we generate the best refactoring schedule to maximize the quality improvement achieved by refactoring. A straightforward way to generate the best schedule is to generate all possible schedules and then select the most beneficial one. However, such a brute force approach is obviously time consuming because, theoretically from n refactorings, n! refactoring schedules can be generated. As the number of refactorings increases, the number of possible refactoring schedules increases exponentially. Therefore, scheduling refactorings by investigating all the possible sequences may become NP-hard. To generate an appropriate refactoring schedule within a reasonable computation cost, we adapt a GA that has been widely used to find an optimal solution to large-scale permutation problems. We developed a tool that fully supports the proposed GA-based approach. Then, we performed two empirical studies for open source systems using the tool to explore the effectiveness of our approach. The first empirical study compared our refactoring detection approach with an existing refactoring detection approach in terms of feasibility of detected refactorings. From the results, we found that our detection approach could detect more feasible refactorings than the existing approach and scarcely missed refactorings detected by the existing approach while it missed many refactorings detected by our approach. The second empirical study compared our refactoring scheduling approach based on GA with the manual, greedy, and exhaustive approaches in terms of quality improvement. From the results, we found that our approach could generate the most beneficial refactoring schedule.

리팩토링은 시스템의 외부 동작 변경없이, 내부 구조를 변경하여 시스템의 품질을 향상하 기 위해 널리 이용되는 기술이다. 일반적으로 코드의 품질을 향상하기 위해서는, 일련의 리팩토링이 필요하다. 이 때, 리팩토링 적용 순서에 따라, 해당 시스템의 내부 구조가 결 정되고 품질 역시 달라지게 된다. 따라서, 리팩토링에 의한 품질향상을 극대화하기 위한 적절한 리팩토링 적용 스케줄을 결정하는 것이 필요하다. 하지만, 리팩토링 적용 스케줄을 결정하기 위한 방법에 대한 연구는 거의 진행되지 않았다. 이 학위논문에서는 리팩토링에 의한 품질향상을 극대화하기 위해, 리팩토링 적용 스케 쥴을 결정하는 방법을 제안하고자 한다. 리팩토링 적용 스케줄은 3단계를 걸쳐 진행된다. 첫째, 리팩토링에 적절한 메소드 클론들을 검출한다. 이어서, 검출된 메소드 클론에게 적용 가능한 모든 리팩토링들을 검출한다. 마지막으로, 리팩토링에 의한 품질향상을 극대화하는 리팩토링 적용 스케줄을 결정한다. 최적화된 리팩토링 적용 스케줄을 결정하기 위한 가장 손쉬운 방법은 모든 가능한 스케 줄을 생성하고, 그 중에서 선택하는 것이다. 하지만, 고려해야 할 리팩토링의 개수가 증가할 수록, 모든 가능한 스케줄을 생성하는 것은 NP-문제가 된다. 따라서, 현실적인 시간 안에, 가장 효율적인 리팩토링 스케줄을 결정하기 위해, 최적화된 답을 찾기 위해 널리 사용되는 유전 알고리즘을 적용한다. I제안된 기법을 자동으로 지원해 주는 도구를 개발하였고, 이를 토대로, 오픈 소스 시스템을 이용하여 제안된 기법을 효율성을 검증하였다. 첫 번째 실험에 서는, 제안된 리팩토링 검출 기법의 검증을 위해, 검출된 리팩토링의 실행 가능성을 토대로, 기존의 리팩토링 검출 기법과 비교를 하였다. 검증 결과, 제안된 기법이 기존의 기법보다 실행가능한 리팩토링을 더 많이 검출하였고, 기존의 기법에서 검출한 거의 모든 실행가능한 리팩토링을 역시 검출하였다. 두 번째 실험에서는, 제안된 리팩토링 스케줄링 기법의 검증을 위해, 제안된 방법과 개 발자가 직접 스케줄링 하는 방법, greedy 방법, exhaustive 방법을 모두 적용하여 결정된 스케줄링을 품질향상 측면에서 비교하였다. 검증 결과, 제안된 기법이 가장 효율적인 리팩 토링 스케쥴을 생성하였다.

서지기타정보

서지기타정보
청구기호 {DCS 11016
형태사항 vii, 79 p. : 삽화 ; 26 cm
언어 영어
일반주기 저자명의 한글표기 : 이숙희
지도교수의 영문표기 : Doo-Hwan Bae
지도교수의 한글표기 : 배두환
수록잡지명 : "Automated scheduling for clone-based refactoring using a competent GA". SOFTWARE ?? PRACTICE AND EXPERIENCE,
학위논문 학위논문(박사) - 한국과학기술원 : 전산학과,
서지주기 References : p. 74-79
QR CODE

책소개

전체보기

목차

전체보기

이 주제의 인기대출도서