Evolution styles: Foundations and tool support for software architecture evolution

As new market opportunities, technologies, platforms, and frameworks become available, systems require large-scale and systematic architectural restructuring to accommodate them. Today's architects have few tools and techniques to help them plan this architecture evolution. In particular, they have little assistance in planning alternative evolution paths, trading off various aspects of the different paths, or knowing best practices for particular domains. In this paper we describe an approach for assisting architects in developing and reasoning about architectural evolution paths. The key insight of our approach is that, architecturally, many system evolutions follow certain common patterns — or evolution styles. We define what we mean by an evolution style, and show how it can be used to provide automated assistance for expressing architectural evolution, and for reasoning about both the correctness and quality of evolution paths.

[1]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[2]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[3]  David Garlan,et al.  Compositional transformation of software connectors , 2004 .

[4]  David Garlan,et al.  A compositional approach for constructing connectors , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[5]  Kim B. Clark,et al.  The Option Value of Modularity in Design: An Example From Design Rules, Volume 1: The Power of Modularity , 2000 .

[6]  Mark Ryan,et al.  Logic in Computer Science: Modelling and Reasoning about Systems , 2000 .

[7]  Thomas Rauber,et al.  Transformation of Legacy Software into Client/Server Applications through Pattern-Based Rearchitecturing , 2008, 2008 32nd Annual IEEE International Computer Software and Applications Conference.

[8]  Carlo Ghezzi,et al.  Fundamentals of Software Engineering , 2011, Lecture Notes in Computer Science.

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

[10]  BryantA.,et al.  B. W. Boehm software engineering economics , 1983 .

[11]  Michel Wermelinger,et al.  A graph transformation approach to software architecture reconfiguration , 2002, Sci. Comput. Program..

[12]  Walter F. Tichy,et al.  Rcs — a system for version control , 1985, Softw. Pract. Exp..

[13]  Brian Berliner,et al.  CVS II: Parallelizing Software Dev elopment , 1998 .

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

[15]  James D. Herbsleb,et al.  Program comprehension as fact finding , 2007, ESEC-FSE '07.

[16]  Bradley R. Schmerl,et al.  Ævol: A tool for defining and planning architecture evolution , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[17]  Mourad Oussalah,et al.  SAEV: a model to face Evolution Problem in Software Architecture , 2006, EVOL.

[18]  Mourad Oussalah,et al.  Updating Software Architectures : A Style-Based Approach , 2006, Software Engineering Research and Practice.

[19]  Mary Shaw,et al.  Experience with a Course on Architectures for Software Systems , 1992, CSEE.

[20]  Richard N. Taylor,et al.  A Component- and Message-Based Architectural Style for GUI Software , 1995, 1995 17th International Conference on Software Engineering.

[21]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[22]  David Garlan,et al.  A compositional formalization of connector wrappers , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[23]  David Garlan,et al.  Exploiting style in architectural design environments , 1994, SIGSOFT '94.

[24]  Sagar Chaki,et al.  Verification of Evolving Software , 2004 .

[25]  Murat Erder,et al.  Transitional architectures for enterprise evolution , 2006, IT Professional.

[26]  Barry W. Boehm,et al.  Software Engineering Economics , 1993, IEEE Transactions on Software Engineering.

[27]  Dennis Heimbigner,et al.  Versioned software architecture , 1998, ISAW '98.

[28]  Philippe Schnoebelen,et al.  Systems and Software Verification, Model-Checking Techniques and Tools , 2001 .

[29]  Bradley R. Schmerl,et al.  AcmeStudio: supporting style-centered architecture development , 2004, Proceedings. 26th International Conference on Software Engineering.

[30]  Patrik Haslum,et al.  Deterministic planning in the fifth international planning competition: PDDL3 and experimental evaluation of the planners , 2009, Artif. Intell..

[31]  Philippe Schnoebelen,et al.  Systems and Software Verification , 2001, Springer Berlin Heidelberg.

[32]  Paola Inverardi,et al.  Formal Specification and Analysis of Software Architectures Using the Chemical Abstract Machine Model , 1995, IEEE Trans. Software Eng..

[33]  Naranker Dulay,et al.  Specifying Distributed Software Architectures , 1995, ESEC.

[34]  G. Koutsoukos,et al.  Reengineering at the Architectural Level : Transformation of Legacy Systems , 2007 .

[35]  Kim B. Clark,et al.  Design Rules: The Power of Modularity Volume 1 , 1999 .

[36]  David Garlan,et al.  Formal modeling and analysis of the HLA component integration standard , 1998, SIGSOFT '98/FSE-6.

[37]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture Volume 1: A System of Patterns , 1996 .

[38]  David Garlan,et al.  Style-based reuse for software architectures , 1996, Proceedings of Fourth IEEE International Conference on Software Reuse.

[39]  Sagar Chaki,et al.  Verification of evolving software via component substitutability analysis , 2008, Formal Methods Syst. Des..

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

[41]  David Garlan,et al.  Acme: an architecture description interchange language , 2010, CASCON.

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

[43]  Rick Kazman The Essential Components of Software Architecture Design and Analysis , 2005, APSEC.

[44]  Glenford J. Myers,et al.  Structured Design , 1999, IBM Syst. J..

[45]  Bradley R. Schmerl,et al.  Differencing and merging of architectural views , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[46]  R. Kazman,et al.  Quality-Attribute Based Economic Valuation of Architectural Patterns , 2007, 2007 First International Workshop on the Economics of Software and Computation.

[47]  David Garlan,et al.  Rainbow: cost-effective software architecture-based self-adaptation , 2008 .

[48]  Neil Yorke-Smith,et al.  Uncertainty in Soft Temporal Constraint Problems:A General Framework and Controllability Algorithms forThe Fuzzy Case , 2006, J. Artif. Intell. Res..

[49]  Kim B. Clark,et al.  Design Rules: The Power of Modularity , 2000 .

[50]  David Lorge Parnas,et al.  Information Distribution Aspects of Design Methodology , 1971, IFIP Congress.

[51]  Mary Shaw,et al.  Formulations and Formalisms in Software Architecture , 1995, Computer Science Today.

[52]  Lars Grunske Formalizing architectural refactorings as graph transformation systems , 2005, Sixth International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing and First ACIS International Workshop on Self-Assembling Wireless Network.

[53]  David Garlan,et al.  Specifying and Analyzing Dynamic Software Architectures , 1998, FASE.

[54]  David Garlan,et al.  Architectural Mismatch or Why it's hard to build systems out of existing parts , 1995, 1995 17th International Conference on Software Engineering.

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

[56]  Joel E. Richardson,et al.  Supporting Lists in a Data Model (A Timely Approach) , 1992, VLDB.

[57]  Bradley R. Schmerl,et al.  Architecture-based self-adaptation in the presence of multiple objectives , 2006, SEAMS '06.

[58]  Valentin Goranko,et al.  Logic in Computer Science: Modelling and Reasoning About Systems , 2007, J. Log. Lang. Inf..

[59]  Mourad Oussalah,et al.  Evolution problem within Component-Based Software Architecture , 2006, SEKE.

[60]  John M. Rushby,et al.  Bus Architectures for Safety-Critical Embedded Systems , 2001, EMSOFT.