Search-Based Refactoring Detection from Source Code Revisions

Shinpei HAYASHI  Yasuyuki TSUDA  Motoshi SAEKI  

IEICE TRANSACTIONS on Information and Systems   Vol.E93-D   No.4   pp.754-762
Publication Date: 2010/04/01
Online ISSN: 1745-1361
DOI: 10.1587/transinf.E93.D.754
Print ISSN: 0916-8532
Type of Manuscript: Special Section PAPER (Special Section on Knowledge-Based Software Engineering)
Category: Management Techniques
refactoring,  version archives,  source code differences,  informed search,  heuristics,  

Full Text: PDF>>
Buy this Article

This paper proposes a technique for detecting the occurrences of refactoring from source code revisions. In a real software development process, a refactoring operation may sometimes be performed together with other modifications at the same revision. This means that detecting refactorings from the differences between two versions stored in a software version archive is not usually an easy process. In order to detect these impure refactorings, we model the detection within a graph search. Our technique considers a version of a program as a state and a refactoring as a transition between two states. It then searches for the path that approaches from the initial to the final state. To improve the efficiency of the search, we use the source code differences between the current and the final state for choosing the candidates of refactoring to be applied next and estimating the heuristic distance to the final state. Through case studies, we show that our approach is feasible to detect combinations of refactorings.