Modeling and analyzing architectural change with alloy

Although adaptivity based on reconfiguration has the potential to improve dependability of systems, the cost of a failed attempt at reconfiguration is prohibitive in precisely the applications where high dependability is required. Existing work on formal modeling and verification of architectural reconfigurations partly achieve the goal of ensuring correctness, however the formalisms used often lack tool support and the ensuing models have uncertain relation to a concrete implementation. Thus a practical way to ensure with formal certainty that specific architectural changes are correct remains a barrier to the uptake of reconfiguration techniques in industry. Using the Alloy language and associated tool, we propose a practical way to formally model and analyze runtime architectural change expressed as architectural scripts. Our evaluation shows the performance to be acceptable; our experience that the modelling language is convenient and expressive, and that our model accurately repesents the implementation it is used to reason about.

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

[2]  Peyman Oreizy,et al.  An architecture-based approach to self-adaptive software , 1999, IEEE Intell. Syst..

[3]  Daniel Jackson,et al.  Some Shortcomings of OCL, the Object Constraint Language of UML , 2000, TOOLS.

[4]  Bradley R. Schmerl,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004, International Conference on Autonomic Computing, 2004. Proceedings..

[5]  Bernhard Nebel,et al.  Extending Planning Graphs to an ADL Subset , 1997, ECP.

[6]  Jeff Magee,et al.  Dynamic Configuration for Distributed Systems , 1985, IEEE Transactions on Software Engineering.

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

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

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

[10]  Manu Sridharan,et al.  A micromodularity mechanism , 2001, ESEC/FSE-9.

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

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

[13]  Anneke Kleppe,et al.  The object constraint language: precise modeling with UML , 1998 .

[14]  S RosenblumDavid,et al.  An Architecture-Based Approach to Self-Adaptive Software , 1999 .

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

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

[17]  Peyman Oreizy,et al.  On the role of software architectures in runtime system reconfiguration , 1998, Proceedings. Fourth International Conference on Configurable Distributed Systems (Cat. No.98EX159).

[18]  Richard N. Taylor,et al.  Towards architecture-based self-healing systems , 2002, WOSS '02.

[19]  Brian Cantwell Smith,et al.  Limits of Correctness in Computers , 1991, Computerization and Controversy, 2nd Ed..

[20]  Bradley R. Schmerl,et al.  Model-based adaptation for self-healing systems , 2002, WOSS '02.

[21]  Franci Pivec Computerization and controversy: value conflicts and social choices , 2003 .

[22]  Klaus Marius Hansen,et al.  Modeling architectural change: Architectural scripting and its applications to reconfiguration , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[23]  Jeffrey O. Kephart,et al.  An architectural approach to autonomic computing , 2004, International Conference on Autonomic Computing, 2004. Proceedings..