Home   >   CSC-OpenAccess Library   >    Manuscript Information
Full Text Available

(255.63KB)
This is an Open Access publication published under CSC-OpenAccess Policy.
Publications from CSC-OpenAccess Library are being accessed from over 74 countries worldwide.
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 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].
2 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.
3 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.
4 H. Koziolek, D. Domis, T. Goldschmidt and P. Vorst. "Measuring Architecture Sustainability," IEEE Software, vol. 30, no. 6, pp. 54-62, Nov.-Dec. 2013.
5 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].
6 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.
7 M. Fowler. "Technical Debt Quadrant". Internet: https://martinfowler.com/bliki/TechnicalDebtQuadrant.html, October 14, 2009 [Dec. 28, 2019].
8 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].
9 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.
10 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].
11 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].
12 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.
13 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.
14 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.
15 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.
16 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.
17 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.
18 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.
19 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.
20 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.
21 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.
22 A. Koenig. "Patterns and Antipatterns," Journal of Object-Oriented Programming, 8(1), Mar-Apr, 1995.
23 R. C. Martin. Design Principles and Design Patterns. Objectmentor.com, 2000, pp. 34.
24 R. C. Martin. The Dependency Inversion Principle. C++ Report, 1996.
25 A. J. Riel. Object-Oriented Design Heuristics. Reading, PA: Addison-Wesley, 1996.
26 J. Brondum and L. Zhu, "Visualising architectural dependencies," in Proc. 2012 Third International Workshop on Managing Technical Debt (MTD), Zurich, 2012, pp. 7-14.
27 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.
28 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.
29 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.
30 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.
31 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.
32 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.
33 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.
34 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.
35 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.
36 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.
37 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.
38 S. Rugaber and K. Stirewalt, "Model-driven reverse engineering," in IEEE Software, vol. 21, no. 4, pp. 45-53, July-Aug. 2004.
39 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.
40 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.
41 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.
42 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.
43 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.
44 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.
45 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.
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