< Terug naar vorige pagina

Publicatie

A Logic Foundation for a General-Purpose History Querying Tool.

Tijdschriftbijdrage - Tijdschriftartikel

Version control systems (VCS) have become indispensable software development tools. The version snapshots they store to provide support for change coordination and release management, effectively track the evolution of the versioned software and its development process. Despite this wealth of historical information, it has only been leveraged by tools that are dedicated to a specific task such as empirical validation of software engineering practices or fault prediction. General-purpose tool support for reasoning about the historical information stored in a version control system is limited. This paper provides a comprehensive description of a logic-based, general-purpose history query tool called Absinthe. Absinthe supports querying versioned Smalltalk system using logic queries in which quantified regular path expressions are embedded. These expressions lend themselves to specifying the properties that each individual version in a sequence of successive software versions ought to exhibit. To demonstrate the general-purpose nature of our history query tool, we use it to verify development process constraints, to identify temporal bad smells and to answer questions that developers commonly ask. Finally, we compare a query written in Absinthe to an equivalent one written in Smalltalk.
Tijdschrift: Science of Computer Programming (SCP)
ISSN: 0167-6423
Volume: 96
Pagina's: 107-120
Jaar van publicatie:2014
Trefwoorden:history querying, program analysis, mining software repositories, version control, logic programming, meta-programming
  • WoS Id: 000345180800008
  • Scopus Id: 84908235542
  • ORCID: /0000-0002-1710-1268/work/59167938
  • ORCID: /0000-0001-7724-3412/work/83782292