Software Architecture Transformations
Hoda Fahmy, Richard C. Holt · 2000
In order to understand and improve software, we commonly examine and manipulate its architecture. For example, we may want to examine the architecture at different levels of abstraction or zoom-in on one portion of the system. We may discover that the extracted architecture has deviated from our mental model of the software and hence we may want to repair it. This paper identifies the commonality between these architectural transformation actions -- that is, by manipulating the architecture in order to understand, analyze, and modify the software structure, we are in fact performing graph transformations. We categorize useful architectural transformations and describe them within the framework of graph transformations. By describing them in a unified way, we gain a better understanding of the transformations and thus, can work towards modeling, specifying and automating them. Keywords: software architecture, graph transformation, reverse engineering, program understanding 1. Introduc...