검색 상세

소스 코드 이해도 향상을 위한 규칙 기반의 리팩토링 함수 추적 방법

A Rule Based Refactoring Function Traceing Method for the Improvement of Source Code Understandability

초록/요약

소프트웨어는 지속적으로 진화하며 그 규모와 복잡성이 날로 증가한다. 따라서, 소프트웨어 개발자는 원활한 유지보수를 위해 버전 관리 시스템을 사용하여 소프트웨어의 변경 내역을 관리한다. 변경 내역은 비용 예측이나 코드 구조 변경 등 기존 소프트웨어의 이해와 분석에 필수적인 자료로 활용된다. 버전관리 시스템은 리비전 별로 파일의 추가, 삭제, 변경 내역을 보여주는 기능과 이전 리비전과 비교를 위한 파일 비교 프로그램을 제공한다. 하지만 이러한 텍스트 기반의 변경 내역 그대로는 리팩토링으로 인하여 코드의 구조적인 변경내역을 확인하기 위한 데이터로 활용되기에는 한계가 있다. 따라서 변경 내역 중에서 리팩토링으로 인하여 추적이 끊긴 부분을 확인하고 변경 패턴에 따라 다시 추적할 수 있도록 연결하는 기법을 제안하고자 한다. 마틴 파울러가 제시한 리팩토링 기법 70가지 중에서 함수 단위의 움직임으로 인해 추적이 끊기는 지점이 발생하는 기법 20가지를 선정하였다. 그 중에서 동일한 패턴을 가지는 4가지 규칙에 따라 추적이 끊긴 부분을 연결하였다. 제안한 기법의 유효성을 검증하기 위해 자바 기반 오픈 소스를 대상으로 전문가 집단의 평가와 제안한 방법의 결과를 비교 분석하였다.

more

초록/요약

Software has been constantly evolving and has been growing in size and complexity. Therefore, Software developers manage changes in the software by using the version control system. Changes in software are essential to estimate cost of software. So many developers using the version control system because of understanding source code in software. Version control system provides a diff tool for comparison with the previous revision. However, text-based changes are not enough to analyze structural changes such as move of function. This paper propose an approach to link changes which are not traceable due to refactoring. To identify non-traceable changes, we choose twenty refactoring technique (which lead to severing relations between revisions) among seventy refactoring technique suggested by M. Fowler. We regularize four rules from twenty refactoring technique which having the same properties. According to the rules we reconnect changes which are not traceable. To validate the approach, we apply the approach to java-based open source projects and compared its results with decisions made by software experts.

more