Complementing model-driven development for the detection of software architecture erosion

Detecting software architecture erosion is an important task during the development and maintenance of software systems. Even in model-driven approaches in which consistency between artifacts can partially be established by construction and consistency issues have been intensively investigated, the intended architecture and its realization may diverge with negative effects on software quality. In this article, we describe an approach to flexible architecture erosion detection for model-driven development approaches. Consistency constraints expressed by architectural aspects called architectural rules are specified as formulas on a common ontology, and models are mapped to instances of that ontology. A knowledge representation and reasoning system is then utilized to check whether these architectural rules are satisfied for a given set of models. We describe three case studies in which this approach has been used to detect architecture erosion flexibly and argue that the negative effects of architecture erosion can be minimized effectively.

[1]  David Notkin,et al.  Software Reflexion Models: Bridging the Gap between Design and Implementation , 2001, IEEE Trans. Software Eng..

[2]  Raffaela Mirandola,et al.  The Common Component Modeling Example: Comparing Software Component Models [result from the Dagstuhl research seminar for CoCoME, August 1-3, 2007] , 2007, CoCoME.

[3]  B. F. Castro Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael. Pattern-oriented software architecture: a system of patterns, John Wiley & Sons Ltd, 1996 , 1997 .

[4]  D. V. Steward,et al.  The design structure system: A method for managing the design of complex systems , 1981, IEEE Transactions on Engineering Management.

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

[6]  Kris De Volder JQuery: A Generic Code Browser with a Declarative Configuration Language , 2006, PADL.

[7]  Licia Capra,et al.  xlinkit: a consistency checking and smart link generation service , 2002, TOIT.

[8]  Richard F. Paige,et al.  The Epsilon Generation Language , 2008, ECMDA-FA.

[9]  Welf Löwe,et al.  Automated Architecture Consistency Checking for Model Driven Software Development , 2009, QoSA.

[10]  Andrew S. Tanenbaum,et al.  Distributed systems - principles and paradigms, 2nd Edition , 2007 .

[11]  Elnar Hajiyev,et al.  Keynote Address: .QL for Source Code Analysis , 2007 .

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

[13]  Lei Zhang,et al.  Detecting Architecture Erosion by Design Decision of Architectural Pattern , 2011, SEKE.

[14]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture: A System of Patterns: John Wiley & Sons , 1987 .

[15]  Frank Buschmann,et al.  A system of patterns , 1995 .

[16]  Sebastian Herold Architectural Compliance in Component-Based Systems. Foundations, Specification, and Checking of Architectural Rules , 2011 .

[17]  Karl J. Lieberherr,et al.  Assuring good style for object-oriented programs , 1989, IEEE Software.

[18]  Frank Budinsky,et al.  EMF: Eclipse Modeling Framework 2.0 , 2009 .

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

[20]  Torbjörn Ekman,et al.  Keynote Address: .QL for Source Code Analysis , 2007, Seventh IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2007).

[21]  Vineet Sinha,et al.  Using dependency models to manage complex software architecture , 2005, OOPSLA '05.

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

[23]  K. Rangarajan,et al.  Modularization of a Large-Scale Business Application: A Case Study , 2009, IEEE Software.

[24]  Andrew S. Tanenbaum,et al.  Distributed systems: Principles and Paradigms , 2001 .

[25]  Patrick Dohrmann,et al.  Rule-Based Architectural Compliance Checks for Enterprise Architecture Management , 2009, 2009 IEEE International Enterprise Distributed Object Computing Conference.

[26]  Elmar Jürgens,et al.  Flexible architecture conformance assessment with ConQAT , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[27]  Sebastian Herold,et al.  Electronic Communications of the EASST Volume 42 ( 2010 ) Proceedings of the 4 th International Workshop on Multi-Paradigm Modeling ( MPM 2010 ) Compliance between Architecture and Design Models of Component-Based Systems , 2011 .

[28]  Jens Knodel,et al.  Static evaluation of software architectures , 2006, Conference on Software Maintenance and Reengineering (CSMR'06).

[29]  Gustavo Tinetti Fernando Distributed systems: principles and paradigms (2nd edition): Andrew S. Tanenbaum, Maarten Van Steen Pearson Education, Inc., 2007 ISBN: 0-13-239227-5 , 2011 .

[30]  José Ambrosio Toval Álvarez,et al.  A systematic review of UML model consistency management , 2009, Inf. Softw. Technol..

[31]  Erhard Plödereder,et al.  Bauhaus - A Tool Suite for Program Analysis and Reverse Engineering , 2006, Ada-Europe.