RefDiff: Detecting Refactorings in Version Histories
ICSE '17: 39th International Conference on Software Engineering Buenos Aires Argentina May, 2017(2017)
摘要
Refactoring is a well-known technique that is widely adopted by software engineers to improve the design and enable the evolution of a system. Knowing which refactoring operations were applied in a code change is a valuable information to understand software evolution, adapt software components, merge code changes, and other applications. In this paper, we present RefDiff, an automated approach that identifies refactorings performed between two code revisions in a git repository. RefDiff employs a combination of heuristics based on static analysis and code similarity to detect 13 well-known refactoring types. In an evaluation using an oracle of 448 known refactoring operations, distributed across seven Java projects, our approach achieved precision of 100 RefDiff has superior precision and recall than existing state-of-the-art approaches.
更多查看译文
关键词
refactoring,software evolution,software repositories,git
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络