Style-Based Architectural Reconfigurations

We introduce Architectural Design Rewriting (ADR), an approach to deal with the design of reconfigurable software architectures. The key features we promote are: (i) rule-based approach (over graphs); (ii) hierarchical design; (iii) algebraic presentation; and (iv) inductively-defined reconfigurations. Architectures are suitably modeled by graphs whose edges and nodes respectively represent components and connection ports. Architectures are designed hierarchically by a set of edge replacement rules that fix the architectural style. Depending on their reading, productions allow: (i) top-down design by refinement, (ii) bottom-up typing of actual architectures, and (iii) well-formed composition of architectures. The key idea is to encode style proofs as terms and to exploit such information at run-time for guiding reconfigurations. The main advantages of ADR are that: (i) instead of reasoning on flat architectures, ADR specifications provide a convenient hierarchical structure, by exploiting the architectural classes introduced by the style, (ii) complex reconfiguration schemes can be defined inductively, and (iii) style-preservation is guaranteed.

[1]  David Garlan,et al.  Analyzing architectural styles with alloy , 2006, ROSATEA '06.

[2]  Davide Sangiorgi,et al.  Communicating and Mobile Systems: the π-calculus, , 2000 .

[3]  Luciano Baresi,et al.  Style-based modeling and refinement of service-oriented architectures , 2006, Software & Systems Modeling.

[4]  Ugo Montanari,et al.  Shaped Hierarchical Architectural Design , 2004, Electron. Notes Theor. Comput. Sci..

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

[6]  Laura Bocchi,et al.  A Formal Approach to Service Component Architecture , 2006, WS-FM.

[7]  Robin Milner,et al.  Communicating and mobile systems - the Pi-calculus , 1999 .

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

[9]  Pascal Fradet,et al.  Shape types , 1997, POPL '97.

[10]  Sebastián Uchitel,et al.  Modes for Software Architectures , 2006, EWSA.

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

[12]  Jeff Magee,et al.  Self-organising software architectures for distributed systems , 2002, WOSS '02.

[13]  J. Davenport Editor , 1960 .

[14]  Paola Inverardi,et al.  Modeling Software Architecutes and Styles with Graph Grammars and Constraint Solving , 1999, WICSA.

[15]  Daniel Jackson,et al.  Alloy: a lightweight object modelling notation , 2002, TSEM.

[16]  Grzegorz Rozenberg,et al.  Handbook of Graph Grammars and Computing by Graph Transformations, Volume 1: Foundations , 1997 .

[17]  Hartmut Ehrig,et al.  Handbook of graph grammars and computing by graph transformation: vol. 3: concurrency, parallelism, and distribution , 1999 .

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

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