Impact Evaluation for Quality-Oriented Architectural Decisions regarding Evolvability

Quality goals have to be under a special consideration during software architectural design. Evolvability constitutes a quality goal with a special relevance for business critical systems. Architectural patterns can significantly contribute to the satisfaction of quality goals. But architectural design decisions regarding these goals have to be made in a systematic, methodical way and concerning the patterns' influence on quality properties. Unfortunately, pattern catalogs do not well support quality goal-oriented design decisions. This paper presents a systematic refinement and mapping of the quality goal evolvability to properties for good architectural design. A set of architectural patterns is evaluated regarding these properties. Furthermore, a calculation scheme is provided that enables the evaluation of the patterns to support design decisions. The results have been developed, revised, and evaluated in a series of applications based on industrial expertise.

[1]  Neil B. Harrison,et al.  Leveraging Architecture Patterns to Satisfy Quality Attributes , 2007, ECSA.

[2]  James E. Rumbaugh,et al.  Object-oriented analysis and design (OOAD) , 2003 .

[3]  John Algeo,et al.  The New Oxford American Dictionary (review) , 2012 .

[4]  Joseph W. Yoder,et al.  Architectural Patterns for Enabling Application Security , 1998 .

[5]  Robert L. Nord,et al.  A general model of software architecture design derived from five industrial approaches , 2007, J. Syst. Softw..

[6]  李幼升,et al.  Ph , 1989 .

[7]  Robert L. Nord,et al.  Applied Software Architecture , 1999, Addison Wesley object technology series.

[8]  Mary Shaw,et al.  Software architecture: the next step for object technology (panel) , 1993, OOPSLA '93.

[9]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[10]  P. Kidwell,et al.  The mythical man-month: Essays on software engineering , 1996, IEEE Annals of the History of Computing.

[11]  Julio Cesar Sampaio do Prado Leite,et al.  On Non-Functional Requirements in Software Engineering , 2009, Conceptual Modeling: Foundations and Applications.

[12]  Jan Bosch,et al.  A taxonomy of variability realization techniques , 2005, Softw. Pract. Exp..

[13]  Klaus Birken,et al.  Basiswissen Softwarearchitektur - verstehen, entwerfen, wiederverwenden (2. Aufl.) , 2007 .

[14]  Dirk Riehle,et al.  Pattern Languages of Program Design 3 , 1997 .

[15]  John Mylopoulos,et al.  Non-Functional Requirements in Software Engineering , 2000, International Series in Software Engineering.

[16]  Neil B. Harrison,et al.  Pattern-Driven Architectural Partitioning: Balancing Functional and Non-functional Requirements , 2007, 2007 Second International Conference on Digital Telecommunications (ICDT'07).

[17]  Axel van Lamsweerde,et al.  From System Goals to Software Architecture , 2003, SFM.

[18]  Grady Booch,et al.  Object-oriented analysis and design with applications (2nd ed.) , 1993 .

[19]  Leonard J. Bass,et al.  Quality Attribute Design Primitives and the Attribute Driven Design Method , 2001, PFE.

[20]  Ivica Crnkovic,et al.  Using dependency model to support software architecture evolution , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering - Workshops.

[21]  Eila Niemelä,et al.  Quality-driven architecture design and quality analysis method: A revolutionary initiation approach to a product line architecture , 2002 .

[22]  J.-C. Deprez,et al.  Defining Software Evolvability from a Free/Open-Source Software , 2007, Third International IEEE Workshop on Software Evolvability 2007.

[23]  Klaus Pohl,et al.  Software Product-Family Engineering , 2002, Lecture Notes in Computer Science.

[24]  Uwe Zdun,et al.  Architectural Patterns Revisited - A Pattern Language , 2005, EuroPLoP.

[25]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[26]  Matthias Riebisch,et al.  Optimisation Process for Maintaining Evolvability during Software Evolution , 2009, 2009 16th Annual IEEE International Conference and Workshop on the Engineering of Computer Based Systems.

[27]  David Bettencourt da Cruz,et al.  POSAAM: eine Methode zu mehr Systematik und Expertenunabhängigkeit in der qualitativen Architekturbewertung , 2009 .

[28]  Uwe Zdun,et al.  Architectural Patterns Revisited - A Pattern , 2005 .

[29]  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 .

[30]  John A. McDermid,et al.  The Art and Science of Software Architecture , 2007, Int. J. Cooperative Inf. Syst..

[31]  Rachel Harrison,et al.  Dynamic and static views of software evolution , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[32]  Ralf Stollberg Klassifikation von Architekturstilen und -mustern hinsichtlich qualitativer Ziele für den Softwarearchitekturentwurf , 2010 .

[33]  James O. Coplien,et al.  Pattern languages of program design , 1995 .

[34]  Felix Bachmann,et al.  Deriving Architectural Tactics: A Step Toward Methodical Architectural Design , 2003 .

[35]  B. J. Ferro Castro,et al.  Pattern-Oriented Software Architecture: A System of Patterns , 2009 .

[36]  Jr. Frederick P. Brooks,et al.  The mythical man-month (anniversary ed.) , 1995 .

[37]  M. Mari,et al.  The impact of maintainability on component-based software systems , 2003, 2003 Proceedings 29th Euromicro Conference.

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

[39]  Chris Ford,et al.  Non-Functional Requirements , 2007 .

[40]  Winfried E. Kühnhauser,et al.  Software Architectural Design Meets Security Engineering , 2009, 2009 16th Annual IEEE International Conference and Workshop on the Engineering of Computer Based Systems.

[41]  Grady Booch,et al.  Object-Oriented Analysis and Design with Applications , 1990 .

[42]  James Martin,et al.  Object-oriented analysis and design , 1992 .

[43]  Olly Gotel,et al.  An analysis of the requirements traceability problem , 1994, Proceedings of IEEE International Conference on Requirements Engineering.

[44]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[45]  Hongyu Pei Breivold Evaluating Software Evolvability , 2009 .

[46]  Paola Inverardi,et al.  Formal Methods for Software Architectures , 2003 .

[47]  Eila Niemelä,et al.  The impact of maintainability on component-based software systems , 2003, 2003 Proceedings 29th Euromicro Conference.

[48]  Stephan Bode,et al.  Software-Evolvability , 2009, Informatik-Spektrum.