Mae---a system model and environment for managing architectural evolution

As with any other artifact produced as part of the software life cycle, software architectures evolve and this evolution must be managed. One approach to doing so would be to apply any of a host of existing configuration management systems, which have long been used successfully at the level of source code. Unfortunately, such an approach leads to many problems that prevent effective management of architectural evolution. To overcome these problems, we have developed an alternative approach centered on the use of an integrated architectural and configuration management system model. Because the system model combines architectural and configuration management concepts in a single representation, it has the distinct benefit that all architectural changes can be precisely captured and clearly related to each other---both at the fine-grained level of individual architectural elements and at the coarse-grained level of architectural configurations. To support the use of the system model, we have developed Mae, an architectural evolution environment through which users can specify architectures in a traditional manner, manage the evolution of the architectures using a check-out/check-in mechanism that tracks all changes, select a specific architectural configuration, and analyze the consistency of a selected configuration. We demonstrate the benefits of our approach by showing how the system model and its accompanying environment were used in the context of several representative projects.

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

[2]  Reidar Conradi,et al.  Software Architecture and Software Configuration Management , 2003, SCM.

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

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

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

[6]  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).

[7]  Dewayne E. Perry The inscape environment , 1989, ICSE '89.

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

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

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

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

[12]  Narain H. Gehani,et al.  Object versioning in Ode , 1991, [1991] Proceedings. Seventh International Conference on Data Engineering.

[13]  Tomi Männistö,et al.  Towards Intelligent Support for Managing Evolution of Configurable Software Product Families , 2003, SCM.

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

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

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

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

[18]  Charles W. Krueger,et al.  Variation Management for Software Production Lines , 2002, SPLC.

[19]  Walter F. Tichy,et al.  Delta algorithms: an empirical analysis , 1998, TSEM.

[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]  Jürgen F. H. Winkler The Integration of Version Control into Programming Languages , 1986, Advanced Programming Environments.

[23]  Barbara Paech,et al.  Component-based product line engineering with UML , 2001, Addison Wesley object technology series.

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

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

[26]  Richard N. Taylor,et al.  Towards architecture-based self-healing systems , 2002, WOSS '02.

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

[28]  Tom Mens,et al.  Automating Support for Software Evolution in UML , 2000, Automated Software Engineering.

[29]  Dennis Heimbigner,et al.  Investigating the Applicability of Architecture Description in Configuration Management and Software Deployment , 1998 .

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

[31]  André van der Hoek,et al.  Understanding and Propagating Architecutural Changes , 2002, WICSA.

[32]  Richard N. Taylor,et al.  An infrastructure for the rapid development of XML-based architecture description languages , 2002, ICSE '02.

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

[34]  Dennis Heimbigner,et al.  Software Architecture, Configuration Management, and Configurable Distributed Systems: A Menage a Trois , 1998 .

[35]  Marija Mikic-Rakic,et al.  Architecture-Level Support for Software Component Deployment in Resource Constrained Environments , 2002, Component Deployment.

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

[37]  Reidar Conradi,et al.  Impact of the research community on the field of software configuration management: summary of an impact project report , 2002, SOEN.

[38]  Glenn Reeves,et al.  Software architecture themes in JPL's Mission Data System , 1999, 2000 IEEE Aerospace Conference. Proceedings (Cat. No.00TH8484).

[39]  Rob C. van Ommering Building product populations with software components , 2002, ICSE '02.

[40]  Jacky Estublier Impact of the Research Community on the Field of Software Configuration Management An Impact Project Report , 1997 .

[41]  Bradley R. Schmerl,et al.  Understanding tradeoffs among different architectural modeling approaches , 2004, Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA 2004).

[42]  Charlene Walrad,et al.  The Importance of Branching Models in SCM , 2002, Computer.

[43]  Henrik Bærbak Christensen Experiences with Architectural Software Configuration Management in Ragnarok , 1998, SCM.

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

[45]  Jan Bosch,et al.  Variability Issues in Software Product Lines , 2001, PFE.

[46]  Michael M. Gorlick,et al.  Using weaves for software construction and analysis , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[47]  Enrico Franconi,et al.  A Semantic Approach for Schema Evolution and Versioning in Object-Oriented Databases , 2000, Computational Logic.

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

[49]  Bjørn P. Munch,et al.  Versioning in a Software Engineering Database — the Change Oriented Way , 1993 .

[50]  Ramez Elmasri,et al.  PMTV: a schema versioning approach for bi-temporal databases , 2000, Proceedings Seventh International Workshop on Temporal Representation and Reasoning. TIME 2000.

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

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

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

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