Technical report detail

Towards Change-aware Development Tools

by Romain Robbes and Michele Lanza

Software development practice still relies on the notion that programming is equivalent to editing text. This view is also supported by mainstream versioning systems, such as CVS and SubVersion, which are excellent at versioning text files. We argue that programming = text editing may have been true years ago, but nowadays we construct complex systems by changing them piecemeal. However, despite recent advances which explicitly support change, such as refac- torings and agile development methodologies, most development tools in use are ill-suited to deal with software change: they see a system as a collection of text files. This vision leads to code which is harder to understand since its history is not easily accessible, and harder to change since such a representation of code is against the inherently incremental nature of software development. In this paper we argue that the existing symbiosis between languages and in- tegrated development environments should be extended to support a first-class change-based representation of evolving systems. We analyze the shortcomings of current practice, and illustrate our proposal through a scenario describing what such a change-based model of software would accomplish. We then detail our change-aware development model, its ongoing implementation and the promising results we obtained.

Technical report 2007/06, May 2007

BibTex entry

@techreport{07towards, author = {Romain Robbes and Michele Lanza}, title = {Towards Change-aware Development Tools}, institution = {University of Lugano}, number = {2007/06}, year = 2007, month = may }