Home   >   CSC-OpenAccess Library   >    Manuscript Information
Software Architecture Erosion: Impacts, Causes, and Management
Sharon Andrews, Mark Sheppard
Pages - 82 - 93     |    Revised - 31-05-2020     |    Published - 30-06-2020
Volume - 14   Issue - 2    |    Publication Date - June 2020  Table of Contents
MORE INFORMATION
KEYWORDS
Software Architecture, Architecture Erosion, Software Maintenance, Software Quality, Software Erosion, Legacy Code, Architectural Maturity Model.
ABSTRACT
As extensive new software projects are becoming more costly with increased development complexity and risks, the use of existing, already developed software projects are now spanning multiple years or decades. Software maintenance durations are increasing along with periodic periods of intense software upgrades due to these lengthy extensions of the life of the software. While the software architecture is set during the project's initial design phase, over the life of the project, architecture erosion can take place due to intentional and unintentional changes, resulting in deviations from the intended architecture. These deviations can manifest themselves in a wide variety of performance, maintenance, and software quality problems ranging from minor annoyances to product failure or unmaintainable software. This paper explores the causes and impacts of software erosion, and recovery approaches to addressing software erosion, laying the framework for future work towards the definition of an Architectural Maturity Model Integration process to assess the architectural maturity of an organization.
1 Google Scholar 
2 refSeek 
3 BibSonomy 
4 Doc Player 
5 Scribd 
6 SlideShare 
A. Avritzer and E. J. Weyuker, "Investigating metrics for architectural assessment," in Proc. Fifth International Software Metrics Symposium. Metrics (Cat. No.98TB100262), Bethesda, MD, USA, 1998, pp. 4-10.
A. Hindle, Z. M. Jiang, W. Koleilat, M. W. Godfrey, and R. C. Holt. "YARN: Animating Software Evolution," in Proc. 4th IEEE Int. Workshop on Visualizing Software for Understanding and Analysis, 2007, pp. 129-136.
A. J. Riel. Object-Oriented Design Heuristics. Reading, PA: Addison-Wesley, 1996.
A. Koenig. "Patterns and Antipatterns," Journal of Object-Oriented Programming, 8(1), Mar-Apr, 1995.
A. Raza, G. Vogel, and E. Pl¨odereder, "Bauhaus - a tool suite for program analysis and reverse engineering," in Ada-Europe, ser. LNCS, vol. 4006. Springer, 2006, p. 71-82.
A. Telea and L. Voinea. "Interactive Visual Mechanisms for Exploring Source Code Evolution," in Proc. 3rd Int. Workshop on Visualizing Software for Understanding and Analysis. IEEE, 2005, pp. 1-6.
B. Algaze. "Software is Increasingly Complex. That Can Be Dangerous." Internet: https://www.extremetech.com/computing/259977-software-increasingly-complex-thats-dangerous, Dec. 7, 2017 [Dec. 20, 2019].
Boehm, B., Valerdi, R., Honour, E. 2007. "The ROI of Systems Engineering: Some Quantitative Results," In Proc. 2007 IEEE International Conference on Exploring Quantifiable IT Yields, Amsterdam, 2007, pp. 79-86.
CMMI Product Team, "Capability Maturity Model Integration (CMMISM), Version 1.1", Carnegie Mellon University Software Engineering Institute Technical Report CMU/SEI-2002-TR-012, 2002.
D. Baum, J. Dietrick, C. Anslow, R. Muller. "Visualizing Design Erosion: How Big Balls of Mud are Made," In Proc. IEEE Working Conference on Software Visualization, Madrid, 2018, pp. 122-126.
D. L. Parnas. "Designing software for ease of extension and contraction," IEEE transactions on software engineering, vol. SE-5, no. 2, pp. 128-138, Mar. 1979.
D. V. Steward, "The design structure system: a method for managing the design of complex systems," IEEE Transactions on Engineering Management, vol. EM-28, no. 3, pp. 71-74, Aug. 1981.
E. Whiting and S. Andrews. "Drift and Erosion in Software Architecture: Summary and Prevention Strategies," to appear in Proceedings ACM 4th International Conference on Information System and Data Mining (ICISDM). Hilo, Hawaii, May 15-27. 2020.
F. Deissenboeck, L. Heinemann, B. Hummel, and E. Juergens, "Flexible architecture conformance assessment with ConQAT," in Proc. of the 32nd ACM/IEEE International Conference on Software Engineering (ICSE 2010), 2010, p. 247-250.
G. C. Murphy, D. Notkin and K. J. Sullivan, "Software Reflexion Models: Bridging the Gap between Design and Implementation," IEEE Transactions on Software Eng. 27(4), 2001, pp. 364-380, Apr. 2001.
G. Murphy, K. Sullivan, D. Notkin. "Software Reflexion Models: Bridging the Gap between Source and High-Level Models," ACM Software Engineering Notes. vol 20, issue 4, pp. 18-28, Oct. 1995.
H. Koziolek, D. Domis, T. Goldschmidt and P. Vorst. "Measuring Architecture Sustainability," IEEE Software, vol. 30, no. 6, pp. 54-62, Nov.-Dec. 2013.
J. Brondum and L. Zhu, "Visualising architectural dependencies," in Proc. 2012 Third International Workshop on Managing Technical Debt (MTD), Zurich, 2012, pp. 7-14.
J. Knodel, M. Lindvall, D. Muthig, and M. Naab, "Static evaluation of software architectures," in Proc. of the 10th European Conf. on Software Maintenance and Reengineering (CSMR 2006), Mar. 2006, pp. 285-294.
K. D. Volder, "JQuery: a generic code browser with a declarative configuration language," in Practical Aspects of Declarative Languages, Lecture Notes in Computer Science, vol. 3819, Van Hentenryck P. Ed. Berlin: Springer, 2006, pp. 88-102.
L. Bass, P. Clements, R. Kazman and M. Klein, "Evaluating the Software Architecture Competence of Organizations," in Proc. Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008), Vancouver, 2008, pp. 249-252.
L. De Silva, & D. Balasubramaniam. "Controlling software architecture erosion: A survey," Journal of Systems and Software. Vol 85, Issue 1, pp. 132-151. Jan. 2012.
L. Mikhajlov and E. Sekerinski. "The Fragile Base Class Problem and Its Solution," Internet: https://pdfs.semanticscholar.org/d9ba/ed252181ac28b6814bd2330b48837747b641.pdf, June, 2997 [Dec. 28, 2019].
M. Dalgarno. (2009, Spring). "When Good Architecture Goes Bad," Methods and Tools [On line] Available http://www.methodsandtools.com/archive/archive.php?id=85, [Dec. 28, 2019].
M. De Silva and I. Perera. "Preventing Software Architecture Erosion Through Static Architecture Conformance Checking," in Proc. IEEE 10th International Conference on Industrial and Information Systems (ICIIS0), Peradeniya, 2015, pp. 43-48.
M. Fowler. "Technical Debt Quadrant". Internet: https://martinfowler.com/bliki/TechnicalDebtQuadrant.html, October 14, 2009 [Dec. 28, 2019].
N. A. Ernst, (2012, Jun). "On the Role of Requirements in Understanding and Managing Technical Debt," 2012 Third International Workshop on Managing Technical Debt (MTD). [On-line]. Available: http://ieeexplore.ieee.org/document/6226002/, [Dec. 28, 2019].
N. Sangal, E. Jordan, V. Sinha, and D. Jackson, "Using dependency models to manage complex software architecture," SIGPLAN Notices. Vol. 40. 10 pp. 167-176, Oct. 2005.
O. de Moor, M. Verbaere, E. Hajiyev, P. Avgustinov, T. Ekman, N. Ongkingco, D. Sereni, and J. Tibble, "Keynote address: QL for source code analysis," in Proc. of the Seventh IEEE International Working Conference on Source Code Analysis and Manipulation. IEEE Computer Society, 2007, pp. 3-16.
R. C. Martin. Design Principles and Design Patterns. Objectmentor.com, 2000, pp. 34.
R. C. Martin. The Dependency Inversion Principle. C++ Report, 1996.
R. Shatnaw. "A Quantitative Investigation of the Acceptable Risk Levels of Object-Oriented Metrics in Open-Source Systems," IEEE Transactions on Software Engineering. Vol: 36, Issue: 2 pp. 216-225, 2010.
R. Terra, M. T. Valente, K. Czarnecki and R. S. Bigonha, "Recommending Refactorings to Reverse Software Architecture Erosion," in Proc. 16th European Conference on Software Maintenance and Reengineering, Szeged, 2012, pp. 335-340.
S. A. White, "A Design Metalanguage for Design Language Creation," In Proc. ASME and API Energy Information Management - Incorporating ETCE, (ASME-ETCE96) Houston TX, Jan. 29 - Feb 2, Vol. I Computers in Engineering, 1996, pp. 135-144.
S. A. White. "The Repository Based Software Engineering Program". in Proc. of the 1996 workshop, A NASA Focus on Software Reuse. George Mason University, Fairfax, Virginia pp. 53-62, September 24-27, 1996.
S. Herold, M. English, J. Buckley, S. Counsell and M. Ó. Cinnéide, "Detection of violation causes in reflexion models," in Proc. 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER), Montreal, QC, 2015, pp. 565-569.
S. Neu, M. Lanza, L. Hattori, and M. D'Ambros. "Telling stories about GNOME with Complicity," in Proc. 6th Int. Workshop on Visualizing Software for Understanding and Analysis (VISSOFT). IEEE, 2011, pp. 1-8.
S. Rugaber and K. Stirewalt, "Model-driven reverse engineering," in IEEE Software, vol. 21, no. 4, pp. 45-53, July-Aug. 2004.
S. Schröder and M. Riebisch. "Architecture Conformance Checking with Description Logics," ECSA '17: in Proc. 11th European Conference on Software Architecture. Sep. 11-15, pp. 166-172, 2017.
S.A. White and C. Lemus. "Architectural Reuse in Software Development," in Proc. 20th International Computers in Engineering Symposium (ASME-ETCE98) Jan. 1998, pp. 1-8.
S.A. White. "A Framework for the development of Domain Specific Design Support Systems". in Proc. First World Conference on Integrated Design & Process Technology, Austin, TX. IDPT- Vol 1, Dec. 6-9, 1995, pp. 37-42.
S.A. White. "Software Architecture Design Domain." In Proc. of the Second World Conference on Integrated Design and Process Technology, Vol. 1, Austin, TX. Dec. 1-4, 1996, pp. 283-290.
Sebastian Herold and Andreas Rausch. Complementing Model-Driven Development for the Detection of Software Architecture Erosion, in Proc. 5th International Workshop on Modeling in Software Engineering (MiSE). IEEE, 2013, pp. 24-30.
X. Dong and M. W. Godfrey. "Identifying Architectural Change Patterns in Object-Oriented Systems," in Proc. IEEE International Conference on Program Comprehension. IEEE, pp. 33-42, 2008.
Z. Naboulski. "Code Metrics - Depth of Inheritance (DIT)," Internet: https://blogs.msdn.microsoft.com/zainnab/2011/05/19/code-metrics-depth-of-inheritance-dit/, May, 19, 2011 [Dec 20 2019].
Associate Professor Sharon Andrews
Software Engineering, University of Houston Clear Lake, Houston, TX 77058 - United States of America
whites@uhcl.edu
Mr. Mark Sheppard
Software Engineering, University of Houston Clear Lake, Houston, TX 77058 - United States of America