The Community for Technology Leaders
RSS Icon
Subscribe
Genova
March 5, 2013 to March 8, 2013
ISBN: 978-1-4673-5833-0
pp: 335-338
ABSTRACT
Version Control Systems (VCS) have become indispensable in developing software. In order to provide support for change management, they track the history of software projects. Tool builders can exploit this latent historical information to provide insights in the evolution of the project. For example, the information needed to identify when and where a particular refactoring was applied is implicitly present in the VCS. However, tool support for eliciting this information is lacking. So far, no general-purpose history querying tool capable of answering a wide variety of questions about the evolution of software exists. Therefore, we generalize the idea of a program querying tool to a history querying tool. A program querying tool reifies the program's code into a knowledge base, from which it retrieves elements that exhibit characteristics specified through a user-provided program query. Our history querying tool, QwalKeko, enables specifying the evolution of source code characteristics across multiple versions of Java projects versioned in Git. We apply QwalKeko to the problem of detecting refactorings, specified as the code changes induced by each refactoring. These specifications stem from the literature, but are limited to changes between two successive versions. We demonstrate the expressiveness of our tool by generalizing the specifications such that refactorings can span multiple versions.
INDEX TERMS
refactoring, program comprehension tools, software repositories
CITATION
Reinout Stevens, Coen De Roover, Carlos Noguera, Viviane Jonckers, "A History Querying Tool and Its Application to Detect Multi-version Refactorings", CSMR, 2013, 2013 17th European Conference on Software Maintenance and Reengineering (CSMR 2013), 2013 17th European Conference on Software Maintenance and Reengineering (CSMR 2013) 2013, pp. 335-338, doi:10.1109/CSMR.2013.44
14 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool