Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
K. Bennett and V. Rajlich, “A staged model for the software lifecycle,” Computer 33(7): 66–71, July 2000.
H. Gall, M. Jazayeri, R. Klösch, and G. Trausmuth, “Software Evolution Observations Based on Product Release History,” Proceedings of International Conference on Software Maintenance (ICSM’ 97), Bari, Italy, IEEE Computer Society Press, Los Alamitos, CA, September 1997.
H. Gall, K. Hajek, and M. Jazayeri, “Detection of logical coupling based on product release histories,” Proceedings of International Conference on Software Maintenance (ICSM’ 98), Washington, DC, IEEE Computer Society Press, Los Alamitos, CA, November 1998.
H. Gall, M. Jazayeri, and C. Riva, “Visualizing software release histories: the use of color and third dimension,” Proceedings of International Conference on Software Maintenance (ICSM’ 99), pp. 99–108, Oxford, UK, IEEE Computer Society Press, Los Alamitos, CA, September 1999.
M. Jazayeri, A. Ran, and F. van der Linden, Software Architecture for Product Families: Principles and Practice, Addison-Wesley, Reading, 2000.
R. Kazman, M. Klein, and P. Clements, “Evaluating software architectures for real-time systems.”
P. B. Kruchten, “The 4+1 view model of architecture,” IEEE Software, 29(11): 42–50, November 1995.
M. Lanza, “The Evolution Matrix: Recovering Software Evolution using Software Visualization Techniques,” Proceedings of IWPSE (International Workshop on Principles of Software Evolution), 2001, Vienna.
Lehman M.M., “Programs, life cycles and laws of software evolution,” Proceedings of the IEEE, pp. 1060–1076, September 1980.
Lehman M.M. and Belady L.A., Program evolution, Academic Press, London and New York, 1985.
D. L. Parnas, “On the criteria to be used in decomposing systems into modules,” Communications of the ACM, 15(12): 1053–8, December 1972.
D. L. Parnas, “On a buzzword: hierarchical structure,” Proceedings IFIP Congress 1974, North-Holland, Amsterdam, 1974.
D. L. Parnas, “On the design and development of program families,” IEEE Transactions on Software Engineering, 2(2): 1–9, March 1976.
D. L. Parnas, “Designing software for ease of extension and contraction,” IEEE Transactions on Software Engineering, 5(2): 128–138, March 1979.
D. L. Parnas, “Software aging,” Proc. International Conference on Software Engineering (ICSE 94), Sorrento, May 1994, pp. 279–287.
D. E. Perry and A. L. Wolf, “Foundations for the study of software architecture,” ACM SIGSOFT Software Engineering Notes, 17(4): 40–52, October 1992.
M. Shaw and D. Garlan. Software architecture: perspectives on an emerging discipline. Prentice Hall, Englewood Cliffs, NJ, 1996.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Jazayeri, M. (2002). On Architectural Stability and Evolution. In: Blieberger, J., Strohmeier, A. (eds) Reliable Software Technologies — Ada-Europe 2002. Ada-Europe 2002. Lecture Notes in Computer Science, vol 2361. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48046-3_2
Download citation
DOI: https://doi.org/10.1007/3-540-48046-3_2
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43784-0
Online ISBN: 978-3-540-48046-4
eBook Packages: Springer Book Archive