Refinement-Based Modelling and Verification of Design Patterns for Self-adaptive Systems

Design patterns are essential for designing complex systems by reusing recurring design principles. Various design patterns were proposed for self-adaptive systems, but their integration into a model-driven design process that, at the same time, provides formal guarantees is still a challenge. This is especially true for self-adaptive design patterns that are generic and abstract enough to provide general solutions that need to be refined prior to their concrete instantiations. In this paper, we present a structured and comprehensible modelling approach for design patterns in the refinement-based process calculus CSP. We formally show crucial properties of them and analyse the refinement-based relationship between their components, which generalises to entire patterns. Based on these analysis results, we are able to provide a first step towards a general, formally well-founded framework providing generic solutions for recurring problems in the management of self-adaptive systems.

[1]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[2]  Gregor Engels,et al.  High-quality specification of self-adaptive software systems , 2013, 2013 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[3]  Franco Zambonelli,et al.  Formalising Adaptation Patterns for Autonomic Ensembles , 2013, FACS.

[4]  John D. Carter,et al.  Supporting Selective Formalism in CSP++ with Process-Specific Storage , 2015, 2015 IEEE 17th International Conference on High Performance Computing and Communications, 2015 IEEE 7th International Symposium on Cyberspace Safety and Security, and 2015 IEEE 12th International Conference on Embedded Software and Systems.

[5]  A. W. Roscoe,et al.  FDR3 - A Modern Refinement Checker for CSP , 2014, TACAS.

[6]  Saeed Jalili,et al.  Formal modeling of evolving self-adaptive systems , 2012, Sci. Comput. Program..

[7]  A. W. Roscoe Understanding Concurrent Systems , 2010, Texts in Computer Science.

[8]  Gerard J. Holzmann,et al.  The SPIN Model Checker - primer and reference manual , 2003 .

[9]  Heather Goldsby,et al.  Modular verification of dynamically adaptive systems , 2009, AOSD '09.

[10]  Betty H. C. Cheng,et al.  Model-based development of dynamically adaptive software , 2006, ICSE.

[11]  Björn Bartels,et al.  Modular Design and Verification of Distributed Adaptive Real-Time Systems Based on Refinements and Abstractions , 2015, EAI Endorsed Trans. Self Adapt. Syst..

[12]  Danny Weyns,et al.  MAPE-K Formal Templates to Rigorously Design Behaviors for Self-Adaptive Systems , 2015, ACM Trans. Auton. Adapt. Syst..

[13]  Andres J. Ramirez,et al.  Design patterns for developing dynamically adaptive systems , 2010, SEAMS '10.

[14]  Roberto Bruni,et al.  A Conceptual Framework for Adaptation , 2012, FASE.

[15]  Bradley R. Schmerl,et al.  On Patterns for Decentralized Control in Self-Adaptive Systems , 2010, Software Engineering for Self-Adaptive Systems.