This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
2013 17th European Conference on Software Maintenance and Reengineering
A History Querying Tool and Its Application to Detect Multi-version Refactorings
Genova, Italy Italy
March 05-March 08
ISBN: 978-1-4673-5833-0
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, pp.335-338, 2013 17th European Conference on Software Maintenance and Reengineering, 2013
Usage of this product signifies your acceptance of the Terms of Use.