Algebraic software architecture reconfiguration

The ability of reconfiguring software architectures in order to adapt them to new requirements or a changing environment has been of growing interest, but there is still not much formal work in the area. Most existing approaches deal with run-time changes in a deficient way. The language to express computations is often at a very low level of specification, and the integration of two different formalisms for the computations and reconfigurations require sometimes substantial changes. To address these problems, we propose a uniform algebraic approach with the following characteristics. Components are written in a high-level program design language with the usual notion of state. The approach combines two existing frameworks—one to specify architectures, the other to rewrite labelled graphs—just through small additions to either of them. It deals with certain typical problems such as guaranteeing that new components are introduced in the correct state (possibly transferred from the old components they replace). It shows the relationships between reconfigurations and computations while keeping them separate, because the approach provides a semantics to a given architecture through the algebraic construction of an equivalent program, whose computations can be mirrored at the architectural level.

[1]  José Luiz Fiadeiro,et al.  Semantics of Architectural Connectors , 1997, TAPSOFT.

[2]  José Luiz Fiadeiro,et al.  Using Explicit State to Describe Architechtures , 1999, FASE.

[3]  Gruia-Catalin Roman,et al.  Compositional Programming Abstractions for Mobile Computing , 1998, IEEE Trans. Software Eng..

[4]  Michel Wermelinger,et al.  Towards an algebra of architectural connectors: a case study on synchronization for mobility , 1998, Proceedings Ninth International Workshop on Software Specification and Design.

[5]  Ira R. Forman,et al.  Interacting processes - a multiparty approach to coordinated distributed processing , 1996 .

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

[7]  Michel Wermelinger,et al.  Semantics of Transient Connectors in Rewriting Logic , 1998 .

[8]  Reiko Heckel,et al.  Algebraic Approaches to Graph Transformation - Part I: Basic Concepts and Double Pushout Approach , 1997, Handbook of Graph Grammars.

[9]  Alexander L. Wolf Succeedings of the second international software architecture workshop (ISAW-2) , 1997, SOEN.

[10]  Hartmut Ehrig,et al.  Algebraic Approach to Graph Transformation Based on Single Pushout Derivations , 1990, WG.

[11]  Michel Wermelinger A hierarchic architecture model for dynamic reconfiguration , 1997, Proceedings of PDSE '97: 2nd International Workshop on Software Engineering for Parallel and Distributed Systems.

[12]  Michel Wermelinger Towards a chemical model for software architecture reconfiguration , 1998, IEE Proc. Softw..

[13]  José Luiz Fiadeiro,et al.  Categorical Semantics of Parallel Program Design , 1997, Sci. Comput. Program..

[14]  John C. Mitchell,et al.  Foundations for programming languages , 1996, Foundation of computing series.

[15]  K. Mani Chandy Parallel program design , 1989 .

[16]  Dewayne E. Perry An Overview of the State of the Art in Software Architecture , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[17]  Jeff Magee,et al.  The Evolving Philosophers Problem: Dynamic Change Management , 1990, IEEE Trans. Software Eng..

[18]  P. Gács,et al.  Algorithms , 1992 .

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

[20]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

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

[22]  Gruia-Catalin Roman,et al.  Mobile UNITY: reasoning and specification in mobile computing , 1997, TSEM.

[23]  M. Clavel,et al.  Principles of Maude , 1996, WRLA.

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

[25]  Peyman Oreizy Issues in the Runtime Modification of Software Architectures , 1997 .

[26]  Dietmar Wolz,et al.  Colimit library for graph transformations and algebraic development techniques , 1998 .

[27]  José Luiz Fiadeiro,et al.  A mathematical toolbox for the software architect , 1996, Proceedings of the 8th International Workshop on Software Specification and Design.

[28]  Nenad Medvidovic ADLs and dynamic architecture changes , 1996, ISAW '96.

[29]  Gabriele Taentzer,et al.  Dynamic Change Management by Distributed Graph Transformation: Towards Configurable Distributed Systems , 1998, TAGT.

[30]  Reiko Heckel,et al.  Graph Grammars with Negative Application Conditions , 1996, Fundam. Informaticae.

[31]  Jeff Magee,et al.  Analysing dynamic change in software architectures: a case study , 1998, Proceedings. Fourth International Conference on Configurable Distributed Systems (Cat. No.98EX159).

[32]  Michel Wermelinger,et al.  Connectors for Mobile Programs , 1998, IEEE Trans. Software Eng..

[33]  Doug Waugh Description of EDCS technology clusters , 1997, SOEN.

[34]  José Luiz Fiadeiro,et al.  Interconnecting formalisms: supporting modularity, reuse and incrementality , 1995, SIGSOFT FSE.

[35]  José M. Troya,et al.  Specification and Refinement of Dynamic Software Architectures , 1999, WICSA.

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