Software Architecture Evolution

Software architectures must frequently evolve to cope with changing requirements, and this evolution often implies integrating new concerns. Unfortunately, when the new concerns are crosscutting, existing architecture description languages provide little or no support for this kind of evolution. The software architect must modify multiple elements of the architecture manually, which risks introducing inconsistencies. This chapter provides an overview, comparison and detailed treatment of the various state-of-the-art approaches to describing and evolving software architectures. Furthermore, we discuss one particular framework named Tran SAT, which addresses the above problems of software architecture evolution. Tran SAT provides a new element in the software architecture descriptions language, called an architectural aspect, for describing new concerns and their integration into an existing architecture. Following the early aspect paradigm, Tran SAT allows the software architect to design a software architecture stepwise in terms of aspects at the design stage. It realises the evolution as the weaving of new architectural aspects into an existing software architecture.

[1]  Yvan Labiche,et al.  A Controlled Experiment on the Impact of the Object Constraint Language in UML-Based Development , 2004 .

[2]  Awais Rashid Aspect-oriented and component-based software engineering , 2001, IEE Proc. Softw..

[3]  Roberto Erick Lopez-Herrejon,et al.  A disciplined approach to aspect composition , 2006, PEPM '06.

[4]  Tom Mens,et al.  Aspect-oriented software evolution , 2004 .

[5]  Jacques Klein,et al.  Semantic-based weaving of scenarios , 2006, AOSD.

[6]  Steve Vestal,et al.  Fixed-Priority Sensitivity Analysis for Linear Compute Time Models , 1994, IEEE Trans. Software Eng..

[7]  Jürgen Dingel,et al.  A survey of self-management in dynamic software architecture specifications , 2004, WOSS '04.

[8]  Rob J. van Glabbeek,et al.  The Linear Time - Branching Time Spectrum I , 2001, Handbook of Process Algebra.

[9]  Olivier Barais,et al.  Safe integration of new concerns in a software architecture , 2006, 13th Annual IEEE International Symposium and Workshop on Engineering of Computer-Based Systems (ECBS'06).

[10]  David Notkin,et al.  ArchJava: connecting software architecture to implementation , 2002, ICSE '02.

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

[12]  Thierry Coupaye,et al.  An Open Component Model and Its Support in Java , 2004, CBSE.

[13]  J. Magree,et al.  Behavioral analysis of software architectures using LTSA , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[14]  Carlos José Pereira de Lucena,et al.  On the Modular Representation of Architectural Aspects , 2006, EWSA.

[15]  David Garlan,et al.  A Formal Approach to Software Architectures , 1992, IFIP Congress.

[16]  Hong Yan,et al.  DiscoTect: a system for discovering architectures from running systems , 2004, Proceedings. 26th International Conference on Software Engineering.

[17]  Pablo de la Fuente,et al.  Architectural Aspects of Architectural Aspects , 2005, EWSA.

[18]  Cláudio Sant'Anna,et al.  Reflections on architectural connection: seven issues on aspects and ADLs , 2006, EA '06.

[19]  Alexis Muller,et al.  On Some Properties of Parameterized Model Application , 2005, ECMDA-FA.

[20]  Dimitra Giannakopoulou,et al.  Behaviour Analysis of Software Architectures , 1999, WICSA.

[21]  Nancy A. Lynch,et al.  An introduction to input/output automata , 1989 .

[22]  Benoit Baudry,et al.  Exploring the Relationship between Model Composition and Model Transformation , 2005 .

[23]  Kim Mens,et al.  Managing the Evolution of Aspect-Oriented Software with Model-Based Pointcuts , 2006, ECOOP.

[24]  Thomas Ledoux,et al.  Safe Dynamic Reconfigurations of Fractal Architectures with FScript , 2006 .

[25]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[26]  Salah Sadou,et al.  Preserving Architectural Choices throughout the Component-based Software Development Process , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[27]  Mark W. Maier,et al.  ANSI/IEEE 1471 and systems engineering , 2004 .

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

[29]  Robert B. France,et al.  Directives for Composing Aspect-Oriented Design Class Models , 2006, LNCS Trans. Aspect Oriented Softw. Dev..

[30]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

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

[32]  Jennifer Pérez,et al.  A modelling proposal for aspect-oriented software architectures , 2006, 13th Annual IEEE International Symposium and Workshop on Engineering of Computer-Based Systems (ECBS'06).

[33]  Kris Gybels,et al.  On the Existence of the AOSD-Evolution Paradox , 2003 .

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

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

[36]  Thierry Coupaye,et al.  A Model for Developing Component-Based and Aspect-Oriented Systems , 2006, SC@ETAPS.