DocumentCode
3694212
Title
System specific, source code transformations
Author
Gustavo Santos;Nicolas Anquetil;Anne Etien;Stéphane Ducasse;Marco Tulio Valente
Author_Institution
RMoD Team, INRIA Lille Nord Europe, University of Lille, CRIStAL, UMR 9189, Villeneuve d´Ascq, France
fYear
2015
Firstpage
221
Lastpage
230
Abstract
During its lifetime, a software system might undergo a major transformation effort in its structure, for example to migrate to a new architecture or bring some drastic improvements to the system. Particularly in this context, we found evidences that some sequences of code changes are made in a systematic way. These sequences are composed of small code transformations (e.g., create a class, move a method) which are repeatedly applied to groups of related entities (e.g., a class and some of its methods). A typical example consists in the systematic introduction of a Factory design pattern on the classes of a package. We define these sequences as transformation patterns. In this paper, we identify examples of transformation patterns in real world software systems and study their properties: (i) they are specific to a system; (ii) they were applied manually; (iii) they were not always applied to all the software entities which could have been transformed; (iv) they were sometimes complex; and (v) they were not always applied in one shot but over several releases. These results suggest that transformation patterns could benefit from automated support in their application. From this study, we propose as future work to develop a macro recorder, a tool with which a developer records a sequence of code transformations and then automatically applies them in other parts of the system as a customizable, large-scale transformation operator.
Keywords
"Production facilities","Context","Software systems","Systematics","Maintenance engineering","Computer architecture"
Publisher
ieee
Conference_Titel
Software Maintenance and Evolution (ICSME), 2015 IEEE International Conference on
Type
conf
DOI
10.1109/ICSM.2015.7332468
Filename
7332468
Link To Document