On Architectural Stability and Evolution [chapter]

Mehdi Jazayeri
2002 Lecture Notes in Computer Science  
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.
more » ... 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.
doi:10.1007/3-540-48046-3_2 fatcat:jm52aoyjhfhunbiuavgdzpb5yu