Skip to Main Content
Avoiding architectural erosion helps extend the lifetime of an evolving software system. Erosion can be reduced by ensuring that (i) developers share a good understanding of a system's architecture; (ii) alignment is preserved between the architectural description and its implementation at all stages of system construction and maintenance; and (iii) architectural changes are treated with the same care and attention as the production of the initial design. Through the metaphor of 'agile development' we present a lightweight approach to the control of architectural erosion. In particular, it covers the representation of an architectural description and the management of alignment between description and implementation during system evolution. A prototype support tool, ArchAngel, is introduced. This maintains an architectural design description, identifies when changes occur with respect to that description, and reports these changes for evaluation.