DOI QR코드

DOI QR Code

A Composition Check of Composite Refactorings Not Having a Specification of Precondition

선행조건이 명세되어 있지 않은 복합 리팩토링에 대한 조립성 검사

  • 김경민 (동의과학대학 컴퓨터정보계열) ;
  • 장필재 (태광엠티씨(주) R&D팀) ;
  • 김태공 (인제대학교 컴퓨터공학부)
  • 투고 : 2010.05.24
  • 심사 : 2010.09.01
  • 발행 : 2011.02.28

초록

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.

최근의 소프트웨어 개발에서는 리팩토링이 활발하게 이용되고 있다. 리팩토링에 대한 관심이 높아지면서 요소 리팩토링을 정의해서 이들의 조립을 통해 더 큰 종류의 복합 리팩토링을 처리하려는 연구들이 많이 진행되고 있다. 복합 리팩토링은 조합된 요소 리팩토링의 순서대로 처리되기 때문에 프로그램에 실제 적용하기에 앞서 적용 가능성을 판단하는 것이 중요하다. 기존 연구들에서는 요소 리팩토링들의 선 후행조건들로부터 복합 리팩토링에 대한 선행조건을 계산하여 적용 가능성을 판단하고 있다. 이것은 선행조건이 정의되어 있는 복합 리팩토링만 판별할 수 있으며 선행조건이 정의되어 있지 않은 복합 리팩토링에 대해서는 적용 가능성을 판단할 수 없는 문제점이 있다. 본 연구에서는 복합 리팩토링의 명세를 추가로 정의 하지 않고 요소 리팩토링만으로 조립 가능 여부를 판단하고자 한다. 이를 위해 요소 리 팩토링을 명세하는 방법과 조립성 검사 방법을 제안한다. 이를 기반으로 프로토타입 도구를 개발해 보고, 적용사례를 통해 선행조건이 명세되어 있지 않은 복합 리팩토링들의 조립성 검사를 확인해봄으로써 본 연구의 효용성을 검토해본다.

키워드

참고문헌

  1. M. Fowler, K. Beck, J. Brant, W. Opdyke, and D. Roberts, "Refactoring: Improving the Design of Existing Code," Addison Wesley, 1999.
  2. T. Mens, T. Tourwe, "A Survey of Software Refactoring," IEEE Transactions on Software Engineering, Vol. XX, No. Y, Month 2004. https://doi.org/10.1109/TSE.2004.1265817
  3. William F. Opdyke, "Refactoring Object-Oriented Frameworks," Ph.D thesis, University of Illinois at Urbana-Champaign, 1992.
  4. Martin Kuhlemann, Don Batory, Christian Kastner, "Safe Composition of Refactoring Feature Modules," Technical Report, School of Computer Science, University of Magdeburg, 2009.
  5. Ethan Hadar, Irit Hadar, "The Composition Refactoring Triangle(CRT) Practical Toolkit: From Spaghetti to Lasagna," ACM OOPSLA'06, 2006 https://doi.org/10.1145/1176617.1176725
  6. 김태웅, 김태공, "OCL을 이용한 자동화된 코드스멜 탐지와 리팩토링," 한국정보처리학회 논문지 D, Vol. 15-D, No.06, pp.0825-0840, 2008. 12. https://doi.org/10.3745/KIPSTD.2008.15-D.6.825
  7. Javier Perez, Yania Crespo, Berthold Hoffmann, Tom Mens, "A case study to evaluate the suitability of graph transformation tools for program refactoring," International Journal on Software Tools for Technology Transfer(STTT), Vol. 12, No. 3-4, pp.183-199, 2010. 7. https://doi.org/10.1007/s10009-010-0153-y
  8. Donald Bradley Roberts, "Practical Analysis for Refactoring," Ph.D thesis, University of Illinois at Urbana-Champaign, 1999.
  9. Mel O Cinneide, "Automated Application of Design Patterns : A Refactoring Approach," Ph.D thesis, University of Dublin, Trinity College, October 2000.
  10. G. Kniesel, H. Koch, "Static Composition of Refactorings," In R. Lammel, editor, Science in Computer Programming; Special issue on program transformation. Elsevier Science, 2004.
  11. O. M. G., "UML 2.0 OCL specification," OMG Adopted Specification(ptc/03-10-14), 2003.
  12. J. Warmer, A. Kleppe, "The Object Constraint Language Second Edition: getting your models ready for MDA," Addison Wesley, 2003.
  13. MoDisco, "MoDisco Tool - Java Abstract Syntax Discovery Tool," http://www.eclipse.org/gmt/modisco/toolBox/JavaAbstract Syntax/
  14. W3C, "XML Schema 1.1," http://www.w3.org/XML/Schema#dev
  15. Eclipse Consortium, "Eclipse Version 3.4.1," http://www.eclipse.org
  16. Eclipse, "Eclipse Modeling Framework Project,"http://www.eclipse.org/modeling/emf- /?project=emf
  17. Eclipse, "OCL Library," http://www.cs.kent.ac.uk/projects/ocl/tools.html#documentation
  18. 박지훈, "자바 디자인 패턴과 리팩토링," 한빛미디어(주), 2003.