Facoltà di scienze informatiche

Towards change-aware development tools

Robbes, Romain ; Lanza, Michele

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... Plus

Ajouter à la liste personnelle
    Summary
    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 refactorings 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 integrated 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.