Many organizations are now pursuing software architecture as a way to control their software development and evolution costs and challenges. A software architecture describes a system’s structure and global properties and thus determines not only how the system should be constructed but also guides its evolution. An important challenge is to be able to evaluate the “goodness” of a proposed architecture. I suggest stability or resilience as a primary criterion for evaluating an architecture. The stability of an architecture is a measure of how well it accommodates the evolution of the system without requiring changes to the architecture. As opposed to traditional predictive approaches to architecture evaluation, I suggest retrospective analysis for evaluating architectural stability by examining the amount of change applied in successive releases of a software product. I review the results of a case study of twenty releases of a telecommunication software system containing a few million lines of code to show how retrospective analysis may be performed.
CITATION STYLE
Jazayeri, M. (2002). On architectural stability and evolution. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 2361, pp. 13–23). Springer Verlag. https://doi.org/10.1007/3-540-48046-3_2
Mendeley helps you to discover research relevant for your work.