Architectural Decay during Continuous Software Evolution and Impact of 'Design for Change' on Software Architecture

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.

[1]  Rick Kazman,et al.  The perils of reconstructing architectures , 1998, ISAW '98.

[2]  Eila Niemelä,et al.  A Survey on Software Architecture Analysis Methods , 2002, IEEE Trans. Software Eng..

[3]  Jeffrey C. Carver,et al.  Characterizing Software Architecture Changes: An Initial Study , 2007, ESEM 2007.

[4]  Yaojin Yang,et al.  Scenarios for mining the software architecture evolution , 2006, MSR '06.

[5]  Sajjad Mahmood,et al.  A survey of component based system quality assurance and assessment , 2005, Inf. Softw. Technol..

[6]  Meir M. Lehman,et al.  Program evolution: processes of software change , 1985 .

[7]  Jan Bosch,et al.  Design erosion: problems and causes , 2002, J. Syst. Softw..

[8]  Mikio Aoyama Continuous and discontinuous software evolution: aspects of software evolution across multiple product lines , 2001, IWPSE '01.

[9]  David Lorge Parnas,et al.  Software aging , 1994, Proceedings of 16th International Conference on Software Engineering.

[10]  Lorin Hochstein,et al.  Combating architectural degeneration: a survey , 2005, Inf. Softw. Technol..

[11]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[12]  Richard N. Taylor,et al.  Software Design and Architecture The once and future focus of software engineering , 2007, Future of Software Engineering (FOSE '07).

[13]  Brian Henderson-Sellers,et al.  Object-Oriented Metrics , 1995, TOOLS.

[14]  Sjaak Brinkkemper,et al.  Journal of Software Maintenance and Evolution: Research and Practice Design Preservation over Subsequent Releases of a Software Product: a Case Study of Baan Erp , 2022 .

[15]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[16]  Audris Mockus,et al.  Does Code Decay? Assessing the Evidence from Change Management Data , 2001, IEEE Trans. Software Eng..

[17]  Catherine Stringfellow,et al.  Comparison of software architecture reverse engineering methods , 2006, Inf. Softw. Technol..

[18]  Juan F. Ramil Algorithmic cost estimation for software evolution , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[19]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .