System Specific, Source Code Transformations - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Conference Papers Year :

System Specific, Source Code Transformations


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.
Fichier principal
Vignette du fichier
Sant15-ICSME-TransformationPatterns.pdf (179.96 Ko) Télécharger le fichier
Origin : Files produced by the author(s)

Dates and versions

hal-01185637 , version 1 (20-08-2015)


  • HAL Id : hal-01185637 , version 1


Gustavo Santos, Nicolas Anquetil, Anne Etien, Stéphane Ducasse, Marco Tulio Valente. System Specific, Source Code Transformations. 31st IEEE International Conference on Software Maintenance and Evolution (ICSME), Sep 2015, Bremen, Germany. pp.10. ⟨hal-01185637⟩
488 View
294 Download


Gmail Facebook Twitter LinkedIn More