Abstract
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.
Supplemental Material
Available for Download
Supplemental movie, appendix, image and software files for, MAPE-K Formal Templates to Rigorously Design Behaviors for Self-Adaptive Systems
- L. Adelman. 1991. Experiments, quasi-experiments, and case studies: A review of empirical methods for evaluating decision support systems. IEEE Transactions on Systems, Man and Cybernetics 21, 2, 293--301.Google Scholar
Cross Ref
- G. Behrmann, A. David, P. Pettersson, W. Yi, and M. Hendriks. 2006. UPPAAL 4.0. In Quantitative Evaluation of Systems (QEST’06). Google Scholar
Digital Library
- J. Bengtsson and W. Yi. 2004. Timed automata: Semantics, algorithms and tools. In Lecture Notes on Concurrency and Petri Nets, Lecture Notes in Computer Science, Vol. 3098. W. Reisig and G. Rozenberg (Eds.). Springer-Verlag, Berlin.Google Scholar
- D. Bianculli, C. Ghezzi, C. Pautasso, and P. Senti. 2012. Specification patterns from research to industry: A case study in service-based applications. In International Conference on Software Engineering. IEEE, 968--976. Google Scholar
Digital Library
- B. Cheng, R. de Lemos, H. Giese, P. Inverardi, J. Magee, and others. 2009. Software engineering for self-adaptive systems: A research roadmap. In Software Engineering for Self-Adaptive Systems. Lecture Notes in Computer Science, Vol. 5525. Springer, Berlin, 1--26. Google Scholar
Digital Library
- R. de Lemos, D. Garlan, C. Ghezzi, and H. Giese. 2014. Software engineering for self-adaptive systems: Assurances (Dagstuhl Seminar 13511). Dagstuhl Reports 3, 12.Google Scholar
- R. de Lemos, H. Giese, H. Müller, M. Shaw, J. Andersson, M. Litoiu, and others. 2013. Software engineering for self-adaptive systems: A second research roadmap. In Lecture Notes in Computer Science, Vol. 7475. Springer, Berlin. Google Scholar
Digital Library
- S. Dobson and others. 2006. A survey of autonomic communications. ACM Transactions on Autonomous and Adaptive Systems 1, 2, 223--259. http://doi.acm.org/10.1145/1186778.1186782. Google Scholar
Digital Library
- M. B. Dwyer, G. S. Avrunin, and J. C. Corbett. 1998. Property specification patterns for finite-state verification. In Workshop on Formal Methods in Software Practice. ACM, 9. Google Scholar
Digital Library
- G. Edwards, J. Garcia, H. Tajalli, D. Popescu, N. Medvidovic, G. Sukhatme, and B. Petrus. 2009. Architecture-driven self-adaptation and self-management in robotics systems. In Proceedings of SEAMS. Google Scholar
Digital Library
- N. Esfahani, E. Kouroshfar, and S. Malek. 2011. Taming uncertainty in self-adaptive software. In 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering. ACM, 234--244. http://doi.acm.org/10.1145/2025113.2025147 Google Scholar
Digital Library
- N. Esfahani and S. Malek. 2010. On the role of architectural styles in improving the adaptation support of middleware platforms. In 4th European Conference on Software Architecture. Springer, 8. Google Scholar
Digital Library
- A. Filieri, C. Ghezzi, and G. Tamburrelli. 2012. A formal approach to adaptive software: Continuous assurance of non-functional requirements. Formal Aspects of Computing 24, 2, 163--186. Google Scholar
Digital Library
- D. Garlan, S.-W. Cheng, A.-C. Huang, B. Schmerl, and P. Steenkiste. 2004. Rainbow: Architecture-based self adaptation with reusable infrastructure. IEEE Computer 37, 10, 46--54. Google Scholar
Digital Library
- H. Giese and W. Schäfer. 2013. Model-driven development of safe self-optimizing mechatronic systems with MechatronicUML. In Assurances for Self-Adaptive Systems. Lecture Notes in Computer Science, Vol. 7740. Springer, Berlin.Google Scholar
- D. Gil de la Iglesia. 2014. A Formal Approach for Designing Distributed Self-Adaptive Systems. Linnaeus University Dissertations.Google Scholar
- D. Gil de la Iglesia, M. U. Iftikhar, and D. Weyns. 2014. Reusable templates to support the design of MAPE-K loops for self-adaptive systems. Retrieved July 27, 2015 from http://homepage.lnu.se/staff/daweaa/MAPE-K-Templates.htm.Google Scholar
- D. Gil de la Iglesia and D. Weyns. 2013a. Guaranteeing robustness in a mobile learning application using formally verified MAPE loops. In International Symposium on Software Engineering for Adaptive and Self-Managing Systems. 83--92. Google Scholar
Digital Library
- D. Gil de la Iglesia and Danny Weyns. 2013b. SA-MAS: Self-adaptation to enhance software qualities in multi-agent systems. In International Conference on Autonomous Agents and Multi-agent Systems (AAMAS’13). Saint Paul, MN. Google Scholar
Digital Library
- H. Gomaa, K. Hashimoto, M. Kim, S. Malek, and D. A. Menascé. 2010. Software adaptation patterns for service-oriented architectures. In ACM Symposium on Applied Computing (SAC’10). ACM, 8. Google Scholar
Digital Library
- H. Gomaa and M. Hussein. 2004. Software reconfiguration patterns for dynamic evolution of software architectures. In 4th Working IEEE/IFIP Conference on Software Architecture (WICSA’04). Google Scholar
Digital Library
- L. Grunske. 2008. Specification patterns for probabilistic quality properties. In International Conference on Software Engineering (ICSE’08). ACM, 10. Google Scholar
Digital Library
- T. A. Henzinger, X. Nicollin, J. Sifakis, and S. Yovine. 1994. Symbolic model checking for real-time systems. Information and Computation 111, 2, 193--244. Google Scholar
Digital Library
- M. U. Iftikhar and D. Weyns. 2012. A case study on formal verification of self-adaptive behaviors in a decentralized system. In Foundations of Coordination Languages and Self Adaptation (FOCLASA’12).Google Scholar
- M. U. Iftikhar and D. Weyns. 2014a. ActivFORMS: Active formal models for self-adaptation. In Software Engineering for Adaptive and Self-Managing Systems (SEAMS’14). ACM. Google Scholar
Digital Library
- M. U. Iftikhar and D. Weyns. 2014b. Assuring system goals under uncertainty with active formal models of self-adaptation. In Companion International Conference on Software Engineering. (ICSE’14). Google Scholar
Digital Library
- J. O. Kephart and D. M. Chess. 2003. The vision of autonomic computing. Computer 36, 1, 41--50. Google Scholar
Digital Library
- R. Koymans. 1990. Specifying real-time properties with metric temporal logic. Real-Time Systems 2, 4, 255--299. Google Scholar
Digital Library
- J. Kramer and J. Magee. 2007. Self-managed systems: An architectural challenge. In Future of Software Engineering (FOSE’07). IEEE Computer Society, Washington, DC, 259--268. Google Scholar
Digital Library
- J. Magee and T. Maibaum. 2006. Towards specification, modelling and analysis of fault tolerance in self managed systems. In International Workshop on Adaptive and Self-Managing Systems. ACM, 30--36. Google Scholar
Digital Library
- M. B. Miles and A. M. Huberman. 1994. Qualitative data analysis: An expanded sourcebook. SAGE, Thousand Oaks, CA.Google Scholar
- P. Oreizy, N. Medvidovic, and R. Taylor. 1998. Architecture-based runtime software evolution. In 20th International Conference on Software Engineering (ICSE’98). IEEE. Google Scholar
Digital Library
- A. J. Ramirez and B. H. C. Cheng. 2010. Design patterns for developing dynamically adaptive systems. In Workshop on Software Engineering for Adaptive and Self-Managing Systems. ACM, 49--58. Google Scholar
Digital Library
- M. Shaw and P. Clements. 2006. The golden age of software architecture. IEEE Software 23, 2, 31--39. Google Scholar
Digital Library
- G. Tamura, N. M. Villegas, H. Muller, J. P. Sousa, B. Becker, G. Karsai, S. Mankovskii, M. Pezze, W. Schafer, L. Tahvildari, and K. Wong. 2012. Towards practical runtime verification and validation of self-adaptive software systems. Software Engineering for Self-Adaptive Systems II, Springer.Google Scholar
- E. Vassev and M. Hinchey. 2009. ASSL: A software engineering approach to autonomic computing. Computer 42, 6 (2009), 90--93. Google Scholar
Digital Library
- D. Weyns, M. U. Iftikhar, D. Gil de la Iglesia, and T. Ahmad. 2012a. A survey of formal methods in self-adaptive systems. In 5th International Conference on Computer Science and Software Engineering (C3S2E’12). ACM, 13. http://doi.acm.org/10.1145/2347583.2347592 Google Scholar
Digital Library
- D. Weyns, S. Malek, and J. Andersson. 2012b. FORMS: Unifying reference model for formal specification of distributed self-adaptive systems. ACM Transactions on Autonomous and Adaptive Systems (TAAS) 7, 1, 8. Google Scholar
Digital Library
- D. Weyns, M. U. Iftikhar, and Joakim Söderlund. 2013a. Do external feedback loops improve the design of self-adaptive systems? A controlled experiment. In Proceedings of the 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS’13). IEEE Press, Piscataway, NJ, 3--12. http://dl.acm.org/citation.cfm?id=2487336.2487341. Google Scholar
Digital Library
- D. Weyns, B. Schmerl, V. Grassi, S. Malek, R. Mirandola, C. Prehofer, J. Wuttke, J. Andersson, H. Giese, and K. Goeschka. 2013b. On patterns for decentralized control in self-adaptive systems. In Software Engineering for Self-Adaptive Systems II. Springer, 76--107.Google Scholar
- D. Weyns, S. Shevtsov, and S. Pllana. 2014. Providing assurances for self-adaptation in a mobile digital storytelling application using ActivFORMS. In International Conference on Self-Adaptive and Self-Organizing Systems (SASO’14). Google Scholar
Digital Library
- Robert K. Yin. 2009. Case study research: Design and methods. Vol. 5. SAGE, Thousand Oaks, CA.Google Scholar
- J. Zhang and B. Cheng. 2006. Model-based development of dynamically adaptive software. In 28th International Conference on Software Engineering (ICSE’06). ACM. Google Scholar
Digital Library
- J. Zhang, H. J. Goldsby, and B. H. C. Cheng. 2009. Modular verification of dynamically adaptive systems. In 8th ACM International Conference on Aspect-Oriented Software Development (AOSD’09). Google Scholar
Digital Library
Index Terms
MAPE-K Formal Templates to Rigorously Design Behaviors for Self-Adaptive Systems
Recommendations
Formal Design and Verification of Self-Adaptive Systems with Decentralized Control
Feedback control loops that monitor and adapt managed parts of a software system are considered crucial for realizing self-adaptation in software systems. The MAPE-K (Monitor-Analyze-Plan-Execute over a shared Knowledge) autonomic control loop is the ...
Modeling and Analyzing MAPE-K Feedback Loops for Self-Adaptation
SEAMS '15: Proceedings of the 2015 IEEE/ACM 10th International Symposium on Software Engineering for Adaptive and Self-Managing SystemsThe MAPE-K (Monitor-Analyze-Plan-Execute over a shared Knowledge) feedback loop is the most influential reference control model for autonomic and self-adaptive systems. This paper presents a conceptual and methodological framework for formal modeling, ...
ActivFORMS: A Formally Founded Model-based Approach to Engineer Self-adaptive Systems
Self-adaptation equips a computing system with a feedback loop that enables it to deal with change caused by uncertainties during operation, such as changing availability of resources and fluctuating workloads. To ensure that the system complies with the ...






Comments