선행조건이 명세되어 있지 않은 복합 리팩토링에 대한 조립성 검사
A Composition Check of Composite Refactorings Not Having a Specification of Precondition
0
조회
0
다운로드
1
인용
0
참고문헌
키워드
초록
최근의 소프트웨어 개발에서는 리팩토링이 활발하게 이용되고 있다. 리팩토링에 대한 관심이 높아지면서 요소 리팩토링을 정의해서 이들의 조립을 통해 더 큰 종류의 복합 리팩토링을 처리하려는 연구들이 많이 진행되고 있다. 복합 리팩토링은 조합된 요소 리팩토링의 순서대로 처리되기 때문에 프로그램에 실제 적용하기에 앞서 적용 가능성을 판단하는 것이 중요하다. 기존 연구들에서는 요소 리팩토링들의 선․후행조건들로부터 복합 리팩토링에 대한 선행조건을 계산하여 적용 가능성을 판단하고 있다. 이것은 선행조건이 정의되어 있는 복합 리팩토링만 판별할 수 있으며 선행조건이 정의되어 있지 않은 복합 리팩토링에 대해서는 적용 가능성을 판단할 수 없는 문제점이 있다. 본 연구에서는 복합 리팩토링의 명세를 추가로 정의 하지 않고 요소 리팩토링만으로 조립 가능 여부를 판단하고자 한다. 이를 위해 요소 리팩토링을 명세하는 방법과 조립성 검사 방법을 제안한다. 이를 기반으로 프로토타입 도구를 개발해 보고, 적용사례를 통해 선행조건이 명세되어 있지 않은 복합 리팩토링들의 조립성 검사를 확인해봄으로써 본 연구의 효용성을 검토해본다.
Abstract
Refactoring has been actively used in recent software developments. Many studies on the processing of more large scaled composite refactorings have been conducted through the composition of elementary refactorings. It is important to verify the possibility of composition before the refactoring is performed, because the composite refactorings are processed to the sequence of composed elementary refactorings. In conventional studies, they verify the possibility of composition using the precondition of composite refactorings which are computed from the precondition and postcondition of elementary refactorings. They can not verify the possibility of composition in case which composite refactorings do not have a specification of precondition. Thus, we plan to verify the possibility of composition by using the elementary refactorings only without any additional definitions of the preconditions of composite refactorings. To achieve this goal, we proposes a specification method of elementary refactorings and a method for the composition check of refactorings. Then, we develop a prototype tool based on these methods. In addition, we verify the efficiency of our methods through case studies.
참고문헌 (18)
- M. Fowler, "Refactoring: Improving the Design of Existing Code" (1999), Addison Wesley
- T. Mens, "A Survey of Software Refactoring", IEEE Transactions on Software Engineering, 20(Y) (2004)
- William F. Opdyke, "Refactoring Object-Oriented Frameworks", 박사, pp.1992
- Safe Composition of Refactoring Feature Modules, "Martin Kuhlemann", University of Magdeburg, ~ (2009)
- Ethan Hadar, "The Composition Refactoring Triangle(CRT) Practical Toolkit: From Spaghetti to Lasagna" (2006), ACM OOPSLA'06
- 김태웅, "OCL을 이용한 자동화된 코드스멜 탐지와 리팩토링", 정보처리학회논문지D, 15(6), pp.825~840 (2008), 한국정보처리학회
- Javier Perez, "A case study to evaluate the suitability of graph transformation tools for program refactoring", International Journal on Software Tools for Technology Transfer(STTT), 12(3), pp.183~199 (2010)
- Donald Bradley Roberts, "Practical Analysis for Refactoring", 박사, pp.1999
- Mel O Cinneide, "Automated Application of Design Patterns : A Refactoring Approach", 박사, pp.2000
- G. Kniesel, "Static Composition of Refactorings in Science in Computer Programming; Special issue on program transformation" (2004), Elsevier Science
- UML 2.0 OCL specification, "O. M. G", OMG Adopted Specification, ~, pp.ptc (2003), 03-10-14
- J. Warmer, "The Object Constraint Language Second Edition: getting your models ready for MDA" (2003), Addison Wesley
- "Tool - Java Abstract Syntax Discovery Tool"[URL]
- "XML Schema 1.1"[URL]
- "Eclipse Version 3.4.1"[URL]
- "Eclipse Modeling Framework Project"[URL]
- "OCL Library"[URL]
- 박지훈, "자바 디자인 패턴과 리팩토링" (2003), 한빛미디어(주)
