Software MaintenanceEngineeringComputer ArchitectureSoftware EngineeringSoftware StructureSoftware Architecture TransformationsArchitecture SpecificationSoftware AnalysisSoftware ArchitectureSocial SciencesArchitectural Transformation ActionsSoftware Architecture ModelingBetter UnderstandingDesignComputer ScienceSoftware DesignArchitectural DesignArchitecture AnalysisGraph TheoryProgram AnalysisSoftware Architecture RecoverySystem Software
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. The paper identifies the commonality between these architectural transformation actions, i.e., 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.
20