Abstract
Software architecture is the blue print of software and guides the development and evolution of the software. A good design produces quality software and careful evolution of software leads to a longer life of the software whereas a bad design and careless evolution leads to decay of the software. This paper discusses the phenomenon of architectural decay and gives an account of the practices suggested in the literature for identification, resolution and prevention of architectural decay. The observations from a controlled experiment to study the impact of the prevention practice ‘design for change’ are also discussed. The results from the studied metrics suggest that software created without following a proper design has a greater tendency to decay.
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
Aoyama, M.: Continuous and Discontinuous Software Evolution: Aspects of Software Evolution across Multiple Product Lines. In: IWPSE 2001 (2001)
Henderson-sellers, B.: Object-Oriented Metrics, Measures of Complexity. Prentice-Hall, Englewood Cliffs (1996)
Carriere, S.J., et al.: The Perils of Reconstructing Architectures. In: ISAW 1998 (1998)
Chidamber, S.R., Kamerer, C.F.: A metrics Suite for Object-Oriented Design. IEEE Trans. Soft. Eng. SE-20(6), 476–493 (1994)
Dobrica, L., Niemela, E.: A Survey on Software Architecture Analysis Methods. IEEE Trans. Soft. Eng. 28(7), 638–653 (2002)
Eick, S.G., et al.: Does Code Decay? Assessing the Evidence from Change Management Data. IEEE Trans. on Soft. Eng. 27(1), 1–12 (2001)
Williams, B.J., Carver, J.C.: Characterizing Software Architecture Changes: An Initial Study. In: ESEM 2007, pp. 410–419 (2007)
Hochstein, L., Lindvall, M.: Combating Architectural Degeneration: A survey. Information and Software Technology 47(10), 693–707 (2005)
Kraft, J.: Software Aging and Code Decay Phenomenon. TR, Mälardalen University (2007)
Yang, Y., et al.: Scenarios for Mining the Software Architecture Evolution. In: MSR 2006 (2006)
Lehman, M.M., Belady, L.A.: Program Evolution – Processes of Software Change. Academic Press, London (1985)
Parnas, D.L.: Software Aging. In: ICSE 1994, pp. 279–287 (1994)
Perry, D.E., Wolf, A.L.: Foundations for the Study of Software Architecture. ACM SIGSOFT Software Engineering Notes 17(4), 40–52 (1992)
Pressman, R.S.: Software Engineering – A Practitioner’s Approach. Sixth Edition. McGraw-Hill, New York (2005)
Ramil, J.F.: Algorithmic Cost Estimation for Software Evolution. In: ICSE 2000 (2000)
Stringfellow, C., et al.: Comparison of Software Architecture Reverse Engineering Methods. Information and Software Technology 48, 484–497 (2005)
Taylor, R.N., van der Hoek, A.: Software Design and Architecture – The Once and Future Focus of Software Engineering. In: FOSE 2007 (2007)
Tran, J.B., et al.: Forward and Reverse Repair of Architecture. In: CASCON 1999 (1999)
Van Gurp, J., Bosch, J.: Design Erosion: Problems and Causes. Journal of Systems and Software 61(2) (2002)
Van Gurp, J., et al.: Design Preservation Over Subsequent Releases of a Software Product: A Case Study of Baan ERP. Journal of Soft. Maint. & Evol: Research and Practice 17, 277–306 (2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Riaz, M., Sulayman, M., Naqvi, H. (2009). Architectural Decay during Continuous Software Evolution and Impact of ‘Design for Change’ on Software Architecture. In: Ślęzak, D., Kim, Th., Kiumi, A., Jiang, T., Verner, J., Abrahão, S. (eds) Advances in Software Engineering. ASEA 2009. Communications in Computer and Information Science, vol 59. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-10619-4_15
Download citation
DOI: https://doi.org/10.1007/978-3-642-10619-4_15
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-10618-7
Online ISBN: 978-3-642-10619-4
eBook Packages: Computer ScienceComputer Science (R0)