Guiding Architectural Restructuring through Architectural Styles

Software architectures constitute one of the main artefacts of software-intensive system development. They outline the essential components and interconnections of a software system at a high level of abstraction, ignoring unnecessary details. How to address the evolution of software architectures, however, is still an important topic of current research. In this article, we use UML 2 as architectural description language notation and formalise it with graph transformation, with a proof-of-concept implemented in the AGG tool. We use this formalisation to express and reason about architectural evolution patterns that introduce architectural styles.

[1]  Roy Fielding,et al.  Architectural Styles and the Design of Network-based Software Architectures"; Doctoral dissertation , 2000 .

[2]  Gabriele Taentzer,et al.  AGG: A Graph Transformation Environment for Modeling and Validation of Software , 2003, AGTIVE.

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

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

[5]  Francesca Rossi,et al.  Graph Processes , 1996, Fundam. Informaticae.

[6]  Walter Mann,et al.  Correction to "Specification and Analysis of System Architecture Using Rapide" , 1995, IEEE Trans. Software Eng..

[7]  Daniel Le Métayer Describing Software Architecture Styles Using Graph Grammars , 1998, IEEE Trans. Software Eng..

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

[9]  Mary Shaw,et al.  A field guide to boxology: preliminary classification of architectural styles for software systems , 1997, Proceedings Twenty-First Annual International Computer Software and Applications Conference (COMPSAC'97).

[10]  Robert L. Nord,et al.  Describing Software Architecture with UML , 1999, WICSA.

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

[12]  James M. Bieman,et al.  A quantitative framework for software restructuring , 1999 .

[13]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[14]  Steve Vestal,et al.  Scheduling and communication in MetaH , 1993, 1993 Proceedings Real-Time Systems Symposium.

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

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

[17]  Nenad Medvidovic,et al.  Assessing the Suitability of a Standard Design Method for Modeling Software Architectures , 1999, WICSA.

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

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

[20]  Mourad Oussalah,et al.  Connectors conveying Software Architecture Evolution , 2007, 31st Annual International Computer Software and Applications Conference (COMPSAC 2007).

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

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

[23]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

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

[25]  William G. Griswold Program restructuring as an aid to software maintenance , 1992 .

[26]  D. Garlan Styles-Formal foundations and tool support for software architecture evolution , 2008 .

[27]  Nenad Medvidovic,et al.  Software Architecture Description and UML , 2004, UML Satellite Activities.

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