코드 리팩토링에 의한 충돌을 해소하기 위한 효율적인 패턴 기반의 병합 지점 추천 기법
An Efficient Pattern-based Approach to Recommending Merging Location for Resolving a Conflict in the Presence of Code Refactoring
- 발행기관 서강대학교 일반대학원
- 지도교수 박수용
- 발행년도 2016
- 학위수여년월 2016. 8
- 학위명 박사
- 학과 및 전공 일반대학원 컴퓨터공학과
- 실제URI http://www.dcollection.net/handler/sogang/000000059927
- 본문언어 한국어
- 저작권 서강대학교 논문은 저작권보호를 받습니다.
초록/요약
협업 환경에서 버전 관리 시스템을 이용하여 소스 코드를 관리하는 것은 필수적이다. 효율적인 유지보수를 위해 소프트웨어 병합은 중요하지만 그 과정에서 야기된 충돌은 유지보수 비용을 높이는 또 다른 요인이 된다. 특히, 리팩토링 때문에 구조적 변경이 일어난 것과 관련된 충돌을 해결하는 것은 많은 시간과 비용이 요구된다. 이 비용을 감소하기 위해 변경 전후를 고려하여 리팩토링의 유형 및 함수를 추적하는 연구들이 지속하여 왔으나, 여전히 개발 환경의 제약, 적용 시점의 제한, 낮은 효율성 등의 한계를 지니고 있다. 본 논문에서는 버전 관리 시스템으로부터 추출한 변경 이력들을 기반으로 충돌을 야기한 함수에 대응하는 병합이 일어나야 하는 함수를 식별하기 위한 개선된 패턴 기반의 접근 기법을 제안한다. 1) M.Fowler의 리팩토링 기법 가운데 함수 레벨의 변경과 관련된 기법을 식별하고, 이 기법들을 적용했을 때 나타나는 공통사항을 분석하여 양방향 탐색이 가능한 패턴을 정의한다. 2) 정의한 패턴을 이용하여 병합 대상이 되는 함수를 탐색하는 알고리즘을 기술한다. 이 알고리즘은 기존 버전 관리 시스템의 변경 이력을 필터링하고, 변경이 발생한 전후 소스 코드를 패턴과 매칭하는 과정을 담고 있다. 본 연구의 효용성을 검증하기 위해 세 가지 오픈 소스 프로젝트에 적용하고, 이 결과를 통계적 기법으로 검증한다.
more초록/요약
Managing source code using a version control system is an essential task for collaboration. However, software merging give rise to conflicts and tracing each modification is required in order to resolve such conflicts. Resolving conflicts, especially caused by refactoring, is much more time-consuming and costly. Although several researchers have studied for identifying methods that have an effect on conflicts, the previous studies have the limitations on constraints on development environments, a confined range of development history, low efficiency, etc. In this paper, we present an improved pattern-based approach is presented for identifying conflicted methods against a conflict causing method by analyzing modifications extracted from version control systems. The approach consists of two phases; 1) A set of patterns are defined by analyzing the commonality of source codes when the refactoring techniques are applied, which are related to the method-level modifications out of the M.Fowler's refactoring techniques. 2) the algorithm is to analyze change information obtained from revision inquiry, compare modified methods, and measure the similarity against the defined patterns. Through the algorithm performed repetitively, qualified methods are determined as candidates of conflicted methods.We demonstrate the approach using three open-source projects and the statistical evaluation shows the potential of the approach.
more