Evolution styles: foundations and models 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 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 planning and reasoning about architecture evolution. Our approach focuses on providing architects with the means to model prospective evolution paths and supporting analysis to select among these candidate paths. To demonstrate the usefulness of our approach, we show how it can be applied to an actual architecture evolution. In addition, we present some theoretical results about our evolution path constraint specification language.

[1]  Mourad Oussalah,et al.  Evolution Shelf: Reusing Evolution Expertise within Component-Based Software Architectures , 2008, 2008 32nd Annual IEEE International Computer Software and Applications Conference.

[2]  Bradley R. Schmerl,et al.  Evolution styles: Foundations and tool support for software architecture evolution , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

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

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

[5]  Valentin Goranko,et al.  Temporal Logic with Reference Pointers , 1994, ICTL.

[6]  Jeffrey M. Barnes NASA's advanced multimission operations system: a case study in software architecture evolution , 2012, QoSA '12.

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

[8]  Philippe Schnoebelen,et al.  Model Checking a Path , 2003, CONCUR.

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

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

[11]  David S. Johnson,et al.  Computers and In stractability: A Guide to the Theory of NP-Completeness. W. H Freeman, San Fran , 1979 .

[12]  Leslie Lamport,et al.  The temporal logic of actions , 1994, TOPL.

[13]  A. Prasad Sistla,et al.  The complexity of propositional linear temporal logics , 1982, STOC '82.

[14]  David Notkin,et al.  Software reflexion models: bridging the gap between source and high-level models , 1995, SIGSOFT FSE.

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

[16]  M. de Rijke,et al.  Model checking hybrid logics (with an application to semistructured data) , 2006, J. Appl. Log..

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

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

[19]  Computer Staff,et al.  International Conference on Software Engineering , 1991 .

[20]  Martin Leucker,et al.  Runtime Verification for LTL and TLTL , 2011, TSEM.

[21]  Patrick Blackburn,et al.  Hybrid Languages and Temporal Logic , 1999, Log. J. IGPL.

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

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

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

[25]  Laurence Duchien,et al.  OCL for the Specification of Model Transformation Contracts , 2004 .

[26]  Douglas Crockford,et al.  The application/json Media Type for JavaScript Object Notation (JSON) , 2006, RFC.

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

[28]  Olivier Le Goaer Styles d'évolution dans les architectures logicielles , 2009 .

[29]  Roy H. Campbell,et al.  Monitoring compliance of a software system with its high-level design models , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

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

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

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

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

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

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

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

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

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

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

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

[41]  Stéphane Demri,et al.  Model checking memoryful linear-time logics over one-counter automata , 2010, Theor. Comput. Sci..

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

[43]  Paul Clements,et al.  Documenting Component and Connector Views with UML 2.0 , 2004 .

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

[45]  Thomas A. Henzinger,et al.  Half-order modal logic: how to prove real-time properties , 1990, PODC '90.

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

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

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

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

[50]  Patrick Blackburn,et al.  Internalizing labelled deduction , 2000, J. Log. Comput..

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

[52]  Ward Cunningham,et al.  The WyCash portfolio management system , 1992, OOPSLA '92.

[53]  Thomas A. Henzinger,et al.  A really temporal logic , 1994, JACM.

[54]  Eugene Ciurana,et al.  Google App Engine , 2009 .

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

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

[57]  Jan Venselaar,et al.  DESIGN RULES , 1999 .

[58]  Robert L. Nord,et al.  Analysis and Management of Architectural Dependencies in Iterative Release Planning , 2011, 2011 Ninth Working IEEE/IFIP Conference on Software Architecture.

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