A History Querying Tool and its Application to Detect Multi-version Refactorings

Reinout Stevens, Coen De Roover, Carlos Francisco Noguera Garcia, Viviane Jonckers

Research output: Chapter in Book/Report/Conference proceedingConference paper

10 Citations (Scopus)

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.
Original languageEnglish
Title of host publicationProceedings of the 17th European Conference on Software Maintenance and Reengineering, Early Research Achievements Track (CSMR 2013)
PublisherIEEE
Pages335-338
ISBN (Print)978-1-4673-5833-0
Publication statusPublished - 2013
Event17th European Conference on Software Maintenance and Reengineering, Early Research Achievements Track (CSMR 2013) - Genove, Italy
Duration: 5 Mar 20138 Mar 2013

Conference

Conference17th European Conference on Software Maintenance and Reengineering, Early Research Achievements Track (CSMR 2013)
Country/TerritoryItaly
CityGenove
Period5/03/138/03/13

Keywords

  • program comprehension
  • history querying
  • program querying
  • refactoring
  • version repositories

Fingerprint

Dive into the research topics of 'A History Querying Tool and its Application to Detect Multi-version Refactorings'. Together they form a unique fingerprint.

Cite this