Representation of the Evolution and Refactoring of Software Architectures through the Application and Capture of Architectural Operations
Keywords:
Software architecture evolution, Refactoring, Design process tracing, Architectural decisionsAbstract
Software arquitectures evolution occurs as a consequence of changes, such us requiremens redefinition or infrastructure/technology improvements. The applying of architectural changes should be done in a systematic way, in order to avoid the design erosion and the lost of important information about the design process that is useful for understanding the obtained design. Applied changes and decisions made should be properly documented in order to make possible recovering them later and understanding their impact on the software architectures. In this work, a model for representing the generated and applied architectural knowledge during software architectures evolution processes is proposed, which it is based on evolution and refactoring operations. The executed operations are captured along with the architectural elements on which they operated, the resulting outcomes, and the pursued design goals. In this way, the approach keeps the traces among the several achieved versions of the software architecture model and the whole evolution history.