Software Architecture Degradation in Open Source Software: A Systematic Literature Review

Software architecture (SA) has a prominent role in all stages of system development. Given the persistent evolution of software systems over time, SA tends to be eroded or degraded. Such phenomenon is called architectural degradation. In light of this phenomenon, the current study focuses on problems of architectural erosion in the open-source software (OSS). There has been a significant research activity on the OSS over the last decade. Nonetheless, the architectural degradation problems in the OSS are still scattered and disorganized. In addition, there has been no systematic attempt made on existing studies to provide evidence, insight and better understanding for researchers and practitioners. The main objective of the present study is to provide a profound understanding and to review the existing studies on the architectural erosion of the OSS. In this study, we conduct a systematic literature review (SLR) to gather, organize, classify, and analyze the architectural degradation of previous papers published until the year 2020. The data for this study were collected from eight major online databases (ACM, Springer, ScienceDirect, Taylor, IEEE Explorer, Scopus, Web of Science, and Wiley). A total of 74 primary studies were identified as the final samples of this research. The results indicated that rapid software evolution, frequent changes, and the lack of developers’ awareness are the most common causes occurred in architecture degradation. Meanwhile, the prominent key indicators of architectural erosion symptoms are code smells and architectural smells. Additionally, the results indicated the most commonly used of the proposed solution for addressing architectural erosion is the metrics-based strategy. Acknowledging the limitations of the current study, more studies are needed that focus on determining other causes that are still ambiguous and improving the other solutions to provide better results in the precision and effectiveness of addressing architectural erosion.

[1]  James M. Bieman,et al.  How Software Designs Decay: A Pilot Study of Pattern Evolution , 2007, First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007).

[2]  David Garlan,et al.  Documenting software architectures: views and beyond , 2002, 25th International Conference on Software Engineering, 2003. Proceedings..

[3]  Yann-Gaël Guéhéneuc,et al.  A systematic literature review on the detection of smells and their evolution in object‐oriented and service‐oriented systems , 2018, Softw. Pract. Exp..

[4]  J. Herbsleb,et al.  Two case studies of open source software development: Apache and Mozilla , 2002, TSEM.

[5]  Gabriele Bavota,et al.  On the diffuseness and the impact on maintainability of code smells: a large scale empirical investigation , 2018, Empirical Software Engineering.

[6]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2000, The Kluwer International Series in Software Engineering.

[7]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[8]  Steffen Becker,et al.  Quantitative Evaluation of Model-Driven Performance Analysis and Simulation of Component-Based Architectures , 2015, IEEE Transactions on Software Engineering.

[9]  Mikael Lindvall,et al.  Avoiding architectural degeneration: an evaluation process for software architecture , 2002, Proceedings Eighth IEEE Symposium on Software Metrics.

[10]  David Garlan,et al.  Software architecture: a roadmap , 2000, ICSE '00.

[11]  Gary L. Lilien,et al.  Location, Location, Location: How Network Embeddedness Affects Project Success in Open Source Systems , 2006, Manag. Sci..

[12]  O. Dieste,et al.  Developing Search Strategies for Detecting Relevant Experiments for Systematic Reviews , 2007, First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007).

[13]  Vinton G. Cerf A brittle and fragile future , 2017, Commun. ACM.

[14]  Matthew Zook Code/Space: Software and Everyday Life , 2012 .

[15]  Alessandro F. Garcia,et al.  An exploratory study of code smells in evolving aspect-oriented systems , 2011, AOSD '11.

[16]  Audris Mockus,et al.  A case study of open source software development: the Apache server , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[17]  Iulian Neamtiu,et al.  Studying Software Evolution for Taming Software Complexity , 2010, 2010 21st Australian Software Engineering Conference.

[18]  Jan Bosch,et al.  Software Architecture: The Next Step , 2004, EWSA.

[19]  Dirk Muthig,et al.  Bridging the Software Architecture Gap , 2008, Computer.

[20]  Sebastian Herold,et al.  Exploring the suitability of source code metrics for indicating architectural inconsistencies , 2018, Software Quality Journal.

[21]  Darja Smite,et al.  Software Architects in Large-Scale Distributed Projects: An Ericsson Case Study , 2016, IEEE Software.

[22]  David Garlan,et al.  Architectural Mismatch: Why Reuse Is So Hard , 1995, IEEE Softw..

[23]  Hans van Vliet,et al.  Software engineering - principles and practice , 1993 .

[24]  Yi Sun,et al.  Some Code Smells Have a Significant but Small Effect on Faults , 2014, TSEM.

[25]  Steffen Becker,et al.  Performance and reliability prediction for evolving service-oriented software systems , 2013, Empirical Software Engineering.

[26]  Ivica Crnkovic,et al.  A Systematic Review on Architecting for Software Evolvability , 2010, 2010 21st Australian Software Engineering Conference.

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

[28]  Mary Shaw,et al.  Finding predictors of field defects for open source software systems in commonly available data sources: a case study of OpenBSD , 2005, 11th IEEE International Software Metrics Symposium (METRICS'05).

[29]  Lionel C. Briand,et al.  A Realistic Empirical Evaluation of the Costs and Benefits of UML in Software Maintenance , 2008, IEEE Transactions on Software Engineering.

[30]  Davide Taibi,et al.  Are Architectural Smells Independent from Code Smells? An Empirical Study , 2017, J. Syst. Softw..

[31]  Daniela Cruzes,et al.  The evolution and impact of code smells: A case study of two open source systems , 2009, 2009 3rd International Symposium on Empirical Software Engineering and Measurement.

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

[33]  Juan Fernández-Ramil,et al.  Studying the evolution of open source systems at different levels of granularity: two case studies , 2004, Proceedings. 7th International Workshop on Principles of Software Evolution, 2004..

[34]  Paola Inverardi,et al.  Model-based performance prediction in software development: a survey , 2004, IEEE Transactions on Software Engineering.

[35]  Richard T. Watson,et al.  Analyzing the Past to Prepare for the Future: Writing a Literature Review , 2002, MIS Q..

[36]  Gregory R. Madey,et al.  Analysis of Activity in the Open Source Software Development Community , 2007, 2007 40th Annual Hawaii International Conference on System Sciences (HICSS'07).

[37]  Sebastian Spaeth,et al.  Knowledge Reuse in Open Source Software: An Exploratory Study of 15 Open Source Projects , 2005, Proceedings of the 38th Annual Hawaii International Conference on System Sciences.

[38]  Georg von Krogh,et al.  Open Source Software and the "Private-Collective" Innovation Model: Issues for Organization Science , 2003, Organ. Sci..

[39]  Joseph G. Davis,et al.  A Model of Bug Dynamics for Open Source Software , 2008, 2008 Second International Conference on Secure System Integration and Reliability Improvement.

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

[41]  Alfonso Fuggetta,et al.  Open source software - an evaluation , 2003, J. Syst. Softw..

[42]  Daniela Cruzes,et al.  The impact of global dispersion on coordination, team performance and software quality - A systematic literature review , 2015, Inf. Softw. Technol..

[43]  Khaironi Yatim Sharif,et al.  Mapping and Analysis of Open Source Software (OSS) Usability for Sustainable OSS Product , 2019, IEEE Access.

[44]  Barbara Kitchenham,et al.  Procedures for Performing Systematic Reviews , 2004 .

[45]  Meir M. Lehman,et al.  On understanding laws, evolution, and conservation in the large-program life cycle , 1984, J. Syst. Softw..

[46]  Sebastian Spaeth,et al.  Sampling in Open Source Software Development: The Case for Using the Debian GNU/Linux Distribution , 2007, 2007 40th Annual Hawaii International Conference on System Sciences (HICSS'07).

[47]  Alessandro F. Garcia,et al.  On the Relevance of Code Anomalies for Identifying Architecture Degradation Symptoms , 2012, 2012 16th European Conference on Software Maintenance and Reengineering.

[48]  Brian Randell,et al.  Software engineering : report on a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7th to 11th October 1968 , 1969 .

[49]  Pearl Brereton,et al.  Performing systematic literature reviews in software engineering , 2006, ICSE.

[50]  Michael W. Godfrey,et al.  Secrets from the Monster: Extracting Mozilla’s Software Architecture , 2000 .

[51]  Tracy Hall,et al.  Code Bad Smells: a review of current knowledge , 2011, J. Softw. Maintenance Res. Pract..

[52]  Neil A. Ernst,et al.  Measure it? Manage it? Ignore it? software practitioners and technical debt , 2015, ESEC/SIGSOFT FSE.

[53]  Zude Li,et al.  A Case Study of Measuring Degeneration of Software Architectures from a Defect Perspective , 2011, 2011 18th Asia-Pacific Software Engineering Conference.

[54]  Nenad Medvidovic,et al.  Are automatically-detected code anomalies relevant to architectural modularity?: an exploratory analysis of evolving systems , 2012, AOSD.

[55]  Jan Bosch,et al.  Software architecture design: evaluation and transformation , 1999, Proceedings ECBS'99. IEEE Conference and Workshop on Engineering of Computer-Based Systems.

[56]  Robert G. Crispen,et al.  Structural model: architecture for software designers , 1994, TRI-Ada '94.

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

[58]  Pearl Brereton,et al.  Systematic literature reviews in software engineering - A systematic literature review , 2009, Inf. Softw. Technol..

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

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

[61]  Maninder Singh,et al.  Software clone detection: A systematic review , 2013, Inf. Softw. Technol..

[62]  James M. Bieman,et al.  Open source software development: a case study of FreeBSD , 2004, 10th International Symposium on Software Metrics, 2004. Proceedings..

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

[64]  Dieter K. Hammer,et al.  Tool Support for Architectural Decisions , 2007, 2007 Working IEEE/IFIP Conference on Software Architecture (WICSA'07).

[65]  Michael W. Godfrey,et al.  Identifying Architectural Change Patterns in Object-Oriented Systems , 2008, 2008 16th IEEE International Conference on Program Comprehension.

[66]  Alan MacCormack,et al.  Exploring the Structure of Complex Software Designs: An Empirical Study of Open Source and Proprietary Code , 2006, Manag. Sci..

[67]  Leonard J. Bass,et al.  Designing software architectures to achieve quality attribute requirements , 2005, IEE Proc. Softw..

[68]  E PerryDewayne,et al.  Foundations for the study of software architecture , 1992 .

[69]  Pearl Brereton,et al.  Lessons from applying the systematic literature review process within the software engineering domain , 2007, J. Syst. Softw..

[70]  Mary Shaw,et al.  The golden age of software architecture , 2006, IEEE Software.

[71]  Mehwish Riaz,et al.  Architectural Decay during Continuous Software Evolution and Impact of 'Design for Change' on Software Architecture , 2009, FGIT-ASEA.

[72]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[73]  SucciGiancarlo,et al.  An Empirical Study of Open-Source and Closed-Source Software Products , 2004 .

[74]  Nenad Medvidovic,et al.  A comparative analysis of software architecture recovery techniques , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).