Description and Verification of Dynamic Software Architectures for Distributed Systems

Continuing growth and increasing complexity of distributed software systems make them be more flexible, adaptive and easily extensible. Dynamic evolution or reconfiguration of distributed software systems is one possible solution to meet these demands. However, there are some challenges for building dynamically evolving distributed software systems at runtime, where dynamic software architectures for them is one of the most crucial problems. In this paper, we proposed a formal method of describing and verifying dynamic software architectures for distributed systems using hypergraph grammars. We firstly gave out reconfiguration production rules and operations for software architectures based on hypergraph grammars, and then described dynamic reconfiguration of software architectures for distributed systems according to those rules. At last we verified the invariant property of dynamic software architectures for those systems using model checking, and gave out corresponding verification algorithms.

[1]  David Garlan,et al.  Software architecture: a roadmap , 2000, ICSE '00.

[2]  Michel Wermelinger,et al.  A graph based architectural (Re)configuration language , 2001, ESEC/FSE-9.

[3]  Wang Ying,et al.  Ripple-Effect Analysis of Software Architecture Evolution Based on Reachability Matrix , 2004 .

[4]  Antonio Bucchiarone,et al.  Modelling Dynamic Software Architectures using Typed Graph Grammars , 2008, GT-VC@CONCUR.

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

[6]  Flávio Oquendo π-ADL: an Architecture Description Language based on the higher-order typed π-calculus for specifying dynamic and mobile software architectures , 2004, SOEN.

[7]  Qun Yang,et al.  A framework for dynamic software architecture-based self-healing , 2005, 2005 IEEE International Conference on Systems, Man and Cybernetics.

[8]  Tom Mens,et al.  Towards a Taxonomy of Software Evolution , 2003 .

[9]  Mohamed Jmaiel,et al.  Towards a UML profile for the description of dynamic software architectures , 2005, COEA.

[10]  Nazareno Aguirre,et al.  A temporal logic approach to the specification of reconfigurable component-based systems , 2002, Proceedings 17th IEEE International Conference on Automated Software Engineering,.

[11]  Mohamed Jmaiel,et al.  Describing dynamic software architectures using an extended UML model , 2006, SAC '06.

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

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

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

[15]  Thaís Vasconcelos Batista,et al.  Dynamic reconfiguration of component-based applications , 2000, 2000 Proceedings International Symposium on Software Engineering for Parallel and Distributed Systems.

[16]  Yang Qun,et al.  A framework for dynamic software architecture-based self-healing , 2005 .

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

[18]  Manwu Xu,et al.  A mobile agent approach to dynamic architecture-based software adaptation , 2006, SOEN.

[19]  Bradley R. Schmerl,et al.  Exploiting architectural design knowledge to support self-repairing systems , 2002, SEKE '02.

[20]  Stephan Merz,et al.  Model Checking , 2000 .

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

[22]  Petri Selonen,et al.  Validating UML models against architectural profiles , 2003, ESEC/FSE-11.

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

[24]  Wang Ying-hui,et al.  Research about Model and Ripple Effect Analysis of Software Architecture Evolution , 2005 .