서지주요정보
Identification and selection of refactorings for improving maintainability of object-oriented software = 객체지향 소프트웨어의 유지보수성 향상을 위한 리팩토링 식별 및 선택 방법에 대한 연구
서명 / 저자 Identification and selection of refactorings for improving maintainability of object-oriented software = 객체지향 소프트웨어의 유지보수성 향상을 위한 리팩토링 식별 및 선택 방법에 대한 연구 / Ah-Rim Han.
저자명 Han, Ah-Rim ; 한아림
발행사항 [대전 : 한국과학기술원, 2013].
Online Access 원문보기 원문인쇄

소장정보

등록번호

8025524

소장위치/청구기호

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

DCS 13031

휴대폰 전송

도서상태

이용가능

대출가능

반납예정일

초록정보

Object-oriented software undergoes continuous changes with various maintenance activities. Due to the changes, the design quality of the software degrades overtime. Thus, refactoring can serve to restructure the design of object-oriented software without altering its external behavior to improve maintainability, which in turn reduces maintenance costs and shortens time-to-market. In the thesis, we provide the methods for supporting systematic refactoring identification: refactoring candidate identification and refactoring selection. For identifying refactoring candidates, we use top-down and bottom-up approaches. First, for the top-down approach-a traditional way of finding refactoring opportunities by using heuristic rules for eliminating violations of design principles in object-oriented software systems-, we establish the rules to identity the refactoring candidates with the aim of reducing dependencies of entities for methods and classes. When establishing the rules, we are motivated by the studies that dynamic information-how the system is utilized-is an important factor for estimating changes. Therefore, to perform refactorings that effectively improve maintainability, the entities are found based on how the users utilize the software (e.g., user scenario and operational profile); and within these entities, refactoring candidates are identified. Second, for the bottom-up approach-the way of finding refactoring opportunities without pre-defined patterns or rules-, we develop the method for grouping entities-methods and attributes-by using the concept of the maximal independent set in graph theory. When grouping entities, we take into account the new dependency of refactorings-refactoring effect dependency on maintainability-as well as the syntactic dependency of refactorings. The entities involved in each maximal independent set are mapped into a group of elementary refactorings and these refactorings can be applied at the same time. For selecting refactorings to be applied, we provide the method of selecting of multiple refactorings by supporting assessment and impact analysis of elementary refactorings. We develop the refactoring effect evaluation framework for assessing each elementary refactoring effect on maintainability based on matrix computation. Using the evaluation framework, we select the group of refactorings containing the multiple elementary refactorings that best improves maintainability. We evaluate our proposed approach in three open-source projects-jEdit, Columba, and JGIT. From the experimental results, we conclude that dynamic information is helpful in identifying refactorings that efficiently improve maintainability, because dynamic information is helpful for extracting refactoring candidates in frequently changed classes. Furthermore, the refactoring identification using multiple refactorings selects refactorings that lead the software design to reach higher fitness function values (better improve maintainability) with smaller costs (i.e., smaller search space exploration cost and shorter time). In addition, the refactoring effect dependency is essential to be considered for correctly selecting a group of refactorings that most improve maintainability.

객체지향 소프트웨어서는 유지보수 관련한 다양한 활동들을 지원하기 위하여 계속해서 변경이 일어나는데, 이러한 변경은 소프트웨어의 품질을 현격히 저하시킨다. 이러한 문제를 향상시킬 수 있는 방법 중 하나인 리팩토링을 사용하는데 이는 객체지향 소프트웨어의 설계를 변경하되 외부 행동은 변경시키지 않으면서 유지보수성을 향상시키고 유지보수 비용과 절감하고 시장으로의 출시 시간 (time-to-market)을 단축시킬 수 있는 이점이 있다. 본 연구에서는 객체지향 소프트웨어 체계적인 리팩토링 식별 방법 (리팩토링 후보군 식별과 리팩토링 선택 방법)을 제안한다. 리팩토링 후보 군을 식별하기 위하여 우리는 톱 다운 (top-down)과 보텀 업 (bottom-up) 방식을 제안한다. 첫 번째로, 톱 다운 방식은 전통적인 방식으로써, 객체지향 소프트웨어의 설계 원리들을 위반하는 요소들을 제거하기 하기 위한 휴리스틱 (heuristic)한 규칙들을 기반으로 리팩토링 후보 군을 식별한다. 본 연구에서는 리팩토링 후보 군들을 메소드와 클래스와 같은 엔티티 (entitiy)들 간의 의존성을 줄이는 방향으로 규칙들을 고안하였다. 또한 규칙을 만들 때, 시스템이 어떻게 사용되는지에 대한 동적인 정보가 앞으로 소프트웨어에 일어날 변경을 예측하기 위한 중요한 요소라는 연구를 기반으로 개발하였다. 이를 위하여, 유지보수성을 효과적으로 향상시킬 수 있는 리팩토링을 수행하기 위하여, 사용자 시나리오 (user scenario)와 사용 프로파일 (operational profile)과 같이 사용자들이 소프트웨어를 사용하는 정보를 기반으로 엔티티들을 식별하고 이러한 엔티티들을 중심으로 리팩토링 후보 군을 식별한다. 두 번째로, 보텀 업 방식은 리팩토링 후보 군들을 미리 정해진 패턴이나 규칙에 기반하지 않고 찾는 방법으로써, 그래프 이론에서의 최대 독립 집합 (maximal independent set) 개념을 기반으로 하여 메소드와 클래스와 같은 엔티티 (entitiy)들을 그룹핑하는 방법을 고안하였다. 엔티티들을 그룹핑 할 때 하나의 리팩토링이 다른 리팩토링의 수행과 충돌이 나는 현상인 기존의 리팩토링 의존성뿐만 아니라 본 연구에서 새롭게 발견된 유지보수성에 대한 리팩토링 효과 의존성 (refactoring effect dependency) 을 고려한다. 각각의 최대 독립 집합에 있는 엔티티들은 기본레벨 (elementary) 리팩토링들의 그룹으로 매핑되며 이들 리팩토링들은 한꺼번에 수행 가능하다. 마지막으로, 식별된 리팩토링 후보군들 중에서 실제로 적용할 리팩토링들을 선택한다. 이를 위하여, 기본레벨 리팩토링들의 평가(assessment) 및 영향 분석(impact analysis)를 지원함으로써 다수의 (multiple) 리팩토링을 선택할 수 방법을 리팩토링 효과 평가 프레임워크 (refactoring effect evaluation framework) 형태로 고안하였다. 리팩토링 효과 평가 프레임워크는 각각의 기본레벨 리팩토링의 효과를 매트릭스 계산을 이용하여 평가하고, 이를 이용하여 다수의 기본레벨 리팩토링들을 포함한 그룹 중 가장 많이 유지보수성을 개선할 수 있는 그룹을 선택한다. 제안한 방식은 jEdit, Columba, JGIT과 같은 세 개의 오픈 소스 프로젝트에 대하여 평가하였다. 그리고 실험 결과로부터 동적 정보가 효과적으로 유지보수성을 개선할 수 있는 리팩토링을 식별하는데 도움이 된다는 사실을 보였다. 이는 동적 정보가 자주 변경되는 클래스에서 리팩토링 후보 군들을 식별하기 때문이었다. 또한 다수의 리팩토링 선택 방식은 더 빨리 피트니스 함수 (fitness function) 값을 올리고, 더 적은 탐색 공간과 시간 측면에서 비용을 요구함을 보였다. 또한, 리팩토링 효과 의존성은 가장 많이 유지보수성을 개선하는 그룹을 적절하게 선택하기 위하여 필수적으로 고려되어야 한다는 사실도 실험 결과를 통하여 보였다.

서지기타정보

서지기타정보
청구기호 {DCS 13031
형태사항 vi, 95 p. : 삽도 ; 30 cm
언어 영어
일반주기 저자명의 한글표기 : 한아림
지도교수의 영문표기 : Doo-Hwan Bae
지도교수의 한글표기 : 배두환
수록잡지명 : "Dynamic profiling-based approach to identifying cost-effective refactorings". Information & Software Technology, vol. 55. no. 6., pp. 966-985(2013)
수록잡지명 : "Measuring behavioral dependency for improving change-proneness prediction in UML-based design models". Journal of Systems and Software, vol. 83. no. 2., 222-234(2010)
Including Appendix
Appendix : Behvioral dependency measure as a good indicator for change-proneness prediction
학위논문 학위논문(박사) - 한국과학기술원 : 전산학과,
서지주기 References : p. 63-69
주제 Refactoring identification
Refactoring selection
Refactoring dependency
Maintainability improvement
Change-proneness prediction
리팩토링 식별
리팩토링 선택
리팩토링 의존성
유지보수성 향상
변경 경향성 예측
QR CODE qr code