MAPE-K Formal Templates to Rigorously Design Behaviors for Self-Adaptive Systems

Designing software systems that have to deal with dynamic operating conditions, such as changing availability of resources and faults that are difficult to predict, is complex. A promising approach to handle such dynamics is self-adaptation that can be realized by a MAPE-K feedback loop (Monitor-Analyze-Plan-Execute plus Knowledge). To provide evidence that the system goals are satisfied, given the changing conditions, the state of the art advocates the use of formal methods. However, little research has been done on consolidating design knowledge of self-adaptive systems. To support designers, this paper contributes with a set of formally specified MAPE-K templates that encode design expertise for a family of self-adaptive systems. The templates comprise: (1) behavior specification templates for modeling the different components of a MAPE-K feedback loop (based on networks of timed automata), and (2) property specification templates that support verification of the correctness of the adaptation behaviors (based on timed computation tree logic). To demonstrate the reusability of the formal templates, we performed four case studies in which final-year Masters students used the templates to design different self-adaptive systems.

[1]  Jesper Andersson,et al.  FORMS: Unifying reference model for formal specification of distributed self-adaptive systems , 2012, TAAS.

[2]  Danny Weyns,et al.  Do external feedback loops improve the design of self-adaptive systems? A controlled experiment , 2013, 2013 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[3]  Franco Zambonelli,et al.  A survey of autonomic communications , 2006, TAAS.

[4]  Gaurav S. Sukhatme,et al.  Architecture-driven self-adaptation and self-management in robotics systems , 2009, 2009 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems.

[5]  Hassan Gomaa,et al.  Software reconfiguration patterns for dynamic evolution of software architectures , 2004, Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA 2004).

[6]  Leonard Adelman,et al.  Experiments, quasi-experiments, and case studies: A review of empirical methods for evaluating decision support systems , 1991, IEEE Trans. Syst. Man Cybern..

[7]  Bradley R. Schmerl,et al.  Software Engineering for Self-Adaptive Systems: A Second Research Roadmap , 2010, Software Engineering for Self-Adaptive Systems.

[8]  Danny Weyns,et al.  Assuring system goals under uncertainty with active formal models of self-adaptation , 2014, ICSE Companion.

[9]  Danny Weyns,et al.  SA-MAS: self-adaptation to enhance software qualities in multi-agent systems , 2013, AAMAS.

[10]  Gabor Karsai,et al.  Towards Practical Runtime Verification and Validation of Self-Adaptive Software Systems , 2013, Software Engineering for Self-Adaptive Systems.

[11]  Ron Koymans,et al.  Specifying real-time properties with metric temporal logic , 1990, Real-Time Systems.

[12]  Sam Malek,et al.  On the Role of Architectural Styles in Improving the Adaptation Support of Middleware Platforms , 2010, ECSA.

[13]  Jeff Magee,et al.  Self-Managed Systems: an Architectural Challenge , 2007, Future of Software Engineering (FOSE '07).

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

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

[16]  Mary Shaw,et al.  Software Engineering for Self-Adaptive Systems: A Research Roadmap , 2009, Software Engineering for Self-Adaptive Systems.

[17]  Wang Yi,et al.  Timed Automata: Semantics, Algorithms and Tools , 2003, Lectures on Concurrency and Petri Nets.

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

[19]  Rogério de Lemos,et al.  Software Engineering for Self-Adaptive Systems: Assurances (Dagstuhl Seminar 13511) , 2013, Dagstuhl Reports.

[20]  Danny Weyns,et al.  ActivFORMS: active formal models for self-adaptation , 2014, SEAMS 2014.

[21]  Mary Shaw,et al.  The golden age of software architecture , 2006, IEEE Software.

[22]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[23]  George S. Avrunin,et al.  Property specification patterns for finite-state verification , 1998, FMSP '98.

[24]  Sam Malek,et al.  Taming uncertainty in self-adaptive software , 2011, ESEC/FSE '11.

[25]  Lars Grunske,et al.  Specification patterns for probabilistic quality properties , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[26]  Satoshi Yamane,et al.  The symbolic model-checking for real-time systems , 1996, Proceedings of the Eighth Euromicro Workshop on Real-Time Systems.

[27]  T. S. E. Maibaum,et al.  Towards specification, modelling and analysis of fault tolerance in self managed systems , 2006, SEAMS '06.

[28]  Danny Weyns,et al.  Guaranteeing robustness in a mobile learning Application using formally verified MAPE loops , 2013, 2013 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[29]  Didac Gil de la Iglesia A Formal Approach for Designing Distributed Self-Adaptive Systems , 2014 .

[30]  Danny Weyns,et al.  Providing Assurances for Self-Adaptation in a Mobile Digital Storytelling Application Using ActivFORMS , 2014, 2014 IEEE Eighth International Conference on Self-Adaptive and Self-Organizing Systems.

[31]  Wang Yi,et al.  UPPAAL 4.0 , 2006, Third International Conference on the Quantitative Evaluation of Systems - (QEST'06).

[32]  Danny Weyns,et al.  A survey of formal methods in self-adaptive systems , 2012, C3S2E '12.

[33]  Holger Giese,et al.  Model-Driven Development of Safe Self-optimizing Mechatronic Systems with MechatronicUML , 2013, Assurances for Self-Adaptive Systems.

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

[35]  Sam Malek,et al.  Software adaptation patterns for service-oriented architectures , 2010, SAC '10.

[36]  Matthew B. Miles,et al.  Qualitative Data Analysis: An Expanded Sourcebook , 1994 .

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

[38]  Christine Nadel,et al.  Case Study Research Design And Methods , 2016 .

[39]  Cesare Pautasso,et al.  Specification patterns from research to industry: A case study in service-based applications , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[40]  Carlo Ghezzi,et al.  A formal approach to adaptive software: continuous assurance of non-functional requirements , 2011, Formal Aspects of Computing.

[41]  Michael G. Hinchey,et al.  ASSL: A Software Engineering Approach to Autonomic Computing , 2009, Computer.

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

[43]  Danny Weyns,et al.  A Case Study on Formal Verification of Self-Adaptive Behaviors in a Decentralized System , 2012, FOCLASA.