Taming architectural evolution

In the world of software development everything evolves. So, then, do software architectures. Unlike source code, for which the use of a configuration management (CM) system is the predominant approach to capturing and managing evolution, approaches to capturing and managing architectural evolution span a wide range of disconnected alternatives. This paper contributes a novel architecture evolution environment, called Mae, which brings together a number of these alternatives. The environment facilitates an incremental design process in which all changes to all architectural elements are integrally captured and related. Key to the environment is a rich system model that combines architectural concepts with those from the field of CM. Not only does this system model form the basis for Mae, but in precisely capturing architectural evolution it also facilitates automated support for several innovative capabilities that rely on the integrated nature of the system model. This paper introduces three of those: the provision of design guidance at the architectural level, the use of specialized software connectors to ensure run-time reliability during component upgrades, and the creation of component-level patches to be applied to deployed system configurations.

[1]  Nenad Medvidovic,et al.  Towards a taxonomy of software connectors , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[2]  Marija Mikic-Rakic,et al.  Increasing the confidence in off-the-shelf components: a software connector-based approach , 2001, SSR '01.

[3]  Jason E. Robbins,et al.  Software architecture critics in Argo , 1998, IUI '98.

[4]  Jonathan E. Cook,et al.  Highly reliable upgrading of components , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[5]  Axel Mahler,et al.  An Object Base for Attributed Software Objects , 1988 .

[6]  Christopher Seiwald Inter-File Branching - A Practical Method for Representing Variants , 1996, SCM.

[7]  Reidar Conradi,et al.  Version models for software configuration management , 1998, CSUR.

[8]  Jeff Magee,et al.  The Koala Component Model for Consumer Electronics Software , 2000, Computer.

[9]  Ivica Crnkovic,et al.  New Challenges for Configuration Management , 1999, SCM.

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

[11]  Jason E. Robbins,et al.  Software architecture critics in the Argo design environment , 1998, Knowl. Based Syst..

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

[13]  Jeannette M. Wing,et al.  Specification matching of software components , 1997 .

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

[15]  Richard N. Taylor,et al.  A language and environment for architecture-based software development and evolution , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[16]  Alexander L. Wolf,et al.  Foundations for Software Configuration Management Policies Using Graph Transformations , 2000, FASE.

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

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

[19]  Marc J. Rochkind,et al.  The source code control system , 1975, IEEE Transactions on Software Engineering.

[20]  Darcy Wiborg Weber Change Sets Versus Change Packages: Comparing Implementations of Change-Based SCM , 1997, SCM.

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

[22]  Daniel Le Métayer,et al.  Software architecture styles as graph grammars , 1996, SIGSOFT '96.

[23]  D. Perry The Inscape Environment , 1989, 11th International Conference on Software Engineering.

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

[25]  Peyman Oreizy,et al.  Architecture-based runtime software evolution , 1998, Proceedings of the 20th International Conference on Software Engineering.

[26]  Richard S. Hall,et al.  A cooperative approach to support software deployment using the Software Dock , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

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

[28]  Jacky Estublier,et al.  The Adele configuration manager , 1995 .

[29]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[30]  Stephen Travis Pope,et al.  A cookbook for using the model-view controller user interface paradigm in Smalltalk-80 , 1988 .

[31]  E KrasnerGlenn,et al.  A cookbook for using the model-view controller user interface paradigm in Smalltalk-80 , 1988 .

[32]  David C. Luckham,et al.  An Event-Based Architecture Definition Language , 1995, IEEE Trans. Software Eng..

[33]  Juha Kuusela Architectural Evolution , 1999, WICSA.

[34]  Paola Inverardi,et al.  Uncovering Architectural Mismatch in Component Behavior , 1999, Sci. Comput. Program..

[35]  Richard N. Taylor,et al.  A Type Theory for Software Architectures , 1998 .

[36]  Jeff Magee,et al.  Dynamic structure in software architectures , 1996, SIGSOFT '96.

[37]  Jeannette M. Wing,et al.  Specification matching of software components , 1995, TSEM.

[38]  Jim Buffenbarger,et al.  Syntactic Software Merging , 1995, SCM.

[39]  GarlanDavid,et al.  Exploiting style in architectural design environments , 1994 .

[40]  Jeannette M. Wing,et al.  A behavioral notion of subtyping , 1994, TOPL.

[41]  Reidar Conradi,et al.  Modelling Systems with Variability using the PROTEUS Configuration Language , 1995, SCM.

[42]  Don S. Batory,et al.  The design and implementation of hierarchical software systems with reusable components , 1992, TSEM.