skip to main content
research-article

Formal Design and Verification of Self-Adaptive Systems with Decentralized Control

Published:10 January 2017Publication History
Skip Abstract Section

Abstract

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 most influential reference control model for self-adaptive systems. The design of complex distributed self-adaptive systems having decentralized adaptation control by multiple interacting MAPE components is among the major challenges. In particular, formal methods for designing and assuring the functional correctness of the decentralized adaptation logic are highly demanded.

This article presents a framework for formal modeling and analyzing self-adaptive systems. We contribute with a formalism, called self-adaptive Abstract State Machines, that exploits the concept of multiagent Abstract State Machines to specify distributed and decentralized adaptation control in terms of MAPE-K control loops, also possible instances of MAPE patterns. We support validation and verification techniques for discovering unexpected interfering MAPE-K loops, and for assuring correctness of MAPE components interaction when performing adaptation.

References

  1. Dhaminda B. Abeywickrama, Nicklas Hoch, and Franco Zambonelli. 2013. SimSOTA: Engineering and simulating feedback loops for self-adaptive systems. In Proceedings of the International C<sup>*</sup> Conference on Computer Science and Software Engineering (C3S2E’13). ACM, New York, NY, 67--76. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Dhaminda B. Abeywickrama and Franco Zambonelli. 2012. Model checking goal-oriented requirements for self-adaptive systems. In Proceedings of the IEEE 19th International Conference and Workshops on Engineering of Computer-Based Systems (ECBS’12). IEEE, 33--42. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Rasmus Adler, Ina Schaefer, Tobias Schuele, and Eric Vecchié. 2007. From Model-Based Design to Formal Verification of Adaptive Embedded Systems. Springer, Berlin, 76--95. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Robert Allen, Rémi Douence, and David Garlan. 1998. Specifying and analyzing dynamic software architectures. In Proceedings of the 1st International Conference on Fundamental Approaches to Software Engineering (FASE’98), held as part of the Joint European Conferences on Theory and Practice of Software (ETAPS’98), Egidio Astesiano (Ed.). Springer, Berlin, 21--37.Google ScholarGoogle ScholarCross RefCross Ref
  5. Paolo Arcaini, Angelo Gargantini, and Elvinia Riccobene. 2010a. AsmetaSMV: A way to link high-level ASM models to low-level NuSMV specifications. In Abstract State Machines, Alloy, B and Z, Lecture Notes in Computer Science, Vol. 5977, Marc Frappier, Uwe Glässer, Sarfraz Khurshid, Régine Laleau, and Steve Reeves (Eds.). Springer, Berlin, 61--74. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Paolo Arcaini, Angelo Gargantini, and Elvinia Riccobene. 2010b. Automatic review of abstract state machines by meta property verification. In Proceedings of the 2nd NASA Formal Methods Symposium (NFM’10), NASA/CP-2010-216215, César Muñoz (Ed.). NASA, Langley Research Center, Hampton VA, 4--13.Google ScholarGoogle Scholar
  7. Paolo Arcaini, Angelo Gargantini, and Elvinia Riccobene. 2012. CoMA: Conformance monitoring of java programs by abstract state machines. In Runtime Verification, Lecture Notes in Computer Science, Vol. 7186, Sarfraz Khurshid and Koushik Sen (Eds.). Springer, Berlin, 223--238. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Paolo Arcaini, Angelo Gargantini, and Elvinia Riccobene. 2014. Offline model-based testing and runtime monitoring of the sensor voting module. In ABZ 2014: The Landing Gear Case Study, Frédéric Boniol, Virginie Wiels, Yamine Ait Ameur, and Klaus-Dieter Schewe (Eds.). Communications in Computer and Information Science, Vol. 433. Springer International Publishing, 95--109.Google ScholarGoogle Scholar
  9. Paolo Arcaini, Angelo Gargantini, and Elvinia Riccobene. 2016a. SMT-based automatic proof of ASM model refinement. In Proceedings of the 14th International Conference on Software Engineering and Formal Methods, held as part of STAF 2016, Rocco De Nicola and Eva Kühn (Eds.). Springer International Publishing, Cham, 253--269.Google ScholarGoogle Scholar
  10. Paolo Arcaini, Angelo Gargantini, Elvinia Riccobene, and Patrizia Scandurra. 2011. A model-driven process for engineering a toolset for a formal method. Softw.: Pract. Exper. 41, 2 (2011), 155--166. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Paolo Arcaini, Roxana-Maria Holom, and Elvinia Riccobene. 2016b. ASM-based formal design of an adaptivity component for a cloud system. Form. Aspect. Comput. 28, 4 (2016), 567--595. Google ScholarGoogle ScholarCross RefCross Ref
  12. Paolo Arcaini, Elvinia Riccobene, and Patrizia Scandurra. 2015. Modeling and analyzing MAPE-K feedback loops for self-adaptation. In Proceedings of the 10th IEEE/ACM International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS’15). IEEE, 13--23. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Björn Bartels and Moritz Kleine. 2011. A CSP-based framework for the specification, verification, and implementation of adaptive systems. In Proceedings of the 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS’11). ACM, New York, NY, 158--167. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Christoph Beierle and Gabriele Kern-Isberner. 2003. Modelling conditional knowledge discovery and belief revision by abstract state machines. In Abstract State Machines 2003: Proceedings of the 10th International Workshop on Advances in Theory and Practice (ASM’03), Egon Börger, Angelo Gargantini, and Elvinia Riccobene (Eds.). Springer, Berlin, 186--203. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Egon Börger and Robert Stärk. 2003. Abstract State Machines: A Method for High-Level System Design and Analysis. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Yuriy Brun, Giovanna Marzo Serugendo, Cristina Gacek, Holger Giese, Holger Kienle, Marin Litoiu, Hausi Müller, Mauro Pezzè, and Mary Shaw. 2009. Software engineering for self-adaptive systems. Springer-Verlag, Berlin, pp. 48--70. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Roberto Bruni, Andrea Corradini, Fabio Gadducci, Alberto Lluch Lafuente, and Andrea Vandin. 2013. Adaptable Transition Systems. Springer, Berlin, 95--110.Google ScholarGoogle Scholar
  18. Roberto Bruni, Andrea Corradini, Fabio Gadducci, Alberto Lluch Lafuente, and Andrea Vandin. 2015. Modelling and analyzing adaptive self-assembly strategies with Maude. Sci. Comput. Program. 99, C (March 2015), 75--94. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Radu Calinescu, Simos Gerasimou, and Alec Banks. 2015. Proceedings of the 18th International Conference on Fundamental Approaches to Software Engineering (FASE’15), held as part of the European Joint Conferences on Theory and Practice of Software (ETAPS’15). Springer, Berlin, pp. 235--251.Google ScholarGoogle Scholar
  20. Radu Calinescu and Shinji Kikuchi. 2011. Foundations of Computer Software. Modeling, Development, and Verification of Adaptive Systems: 16th Monterey Workshop 2010, Revised Selected Papers. Springer, Berlin, pp. 122--135.Google ScholarGoogle Scholar
  21. Matteo Camilli, Angelo Gargantini, and Patrizia Scandurra. 2015. Specifying and verifying real-time self-adaptive systems. In Proceedings of the 26th IEEE International Symposium on Software Reliability Engineering (ISSRE’15). IEEE, 303--313. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Valeria Cardellini, Emiliano Casalicchio, Vincenzo Grassi, Stefano Iannucci, Francesco Lo Presti, and Raffaela Mirandola. 2012. MOSES: A framework for QoS driven runtime adaptation of service-oriented systems. IEEE Trans. Softw. Eng. 38, 5 (Sept. 2012), 1138--1159. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Alessandro Carioni, Angelo Gargantini, Elvinia Riccobene, and Patrizia Scandurra. 2008. A scenario-based validation language for ASMs. In Abstract State Machines, B and Z, Lecture Notes in Computer Science, Vol. 5238, Egon Börger, Michael Butler, Jonathan P. Bowen, and Paul Boca (Eds.). Springer, Berlin, 71--84. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Betty H. C. Cheng, Rogério de Lemos, Holger Giese, Paola Inverardi, Jeff Magee, Jesper Andersson, Basil Becker, Nelly Bencomo, Yuriy Brun, Bojan Cukic, Giovanna Di Marzo Serugendo, Schahram Dustdar, Anthony Finkelstein, Cristina Gacek, Kurt Geihs, Vincenzo Grassi, Gabor Karsai, Holger M. Kienle, Jeff Kramer, Marin Litoiu, Sam Malek, Raffaela Mirandola, Hausi A. Müller, Sooyong Park, Mary Shaw, Matthias Tichy, Massimo Tivoli, Danny Weyns, and Jon Whittle. 2009. Software Engineering for Self-Adaptive Systems: A Research Roadmap. Lecture Notes in Computer Science, Vol. 5525. Springer, Berlin. pp. 1--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Rogerio de Lemos, David Garlan, Carlo Ghezzi, and Holger Giese. 2014. Software engineering for self-adaptive systems: Assurances (Dagstuhl seminar 13511). Dagstuhl Rep. 3, 12 (2014), 67--96. http://drops.dagstuhl.de/opus/volltexte/2014/4508Google ScholarGoogle Scholar
  26. Rogério de Lemos, Holger Giese, Hausi A. Müller, Mary Shaw, Jesper Andersson, Marin Litoiu, Bradley Schmerl, Gabriel Tamura, Norha M. Villegas, Thomas Vogel, Danny Weyns, Luciano Baresi, Basil Becker, Nelly Bencomo, Yuriy Brun, Bojan Cukic, Ron Desmarais, Schahram Dustdar, Gregor Engels, Kurt Geihs, Karl M. Göschka, Alessandra Gorla, Vincenzo Grassi, Paola Inverardi, Gabor Karsai, Jeff Kramer, Antónia Lopes, Jeff Magee, Sam Malek, Serge Mankovskii, Raffaela Mirandola, John Mylopoulos, Oscar Nierstrasz, Mauro Pezzè, Christian Prehofer, Wilhelm Schäfer, Rick Schlichting, Dennis B. Smith, João Pedro Sousa, Ladan Tahvildari, Kenny Wong, and Jochen Wuttke. 2013. Software engineering for self-adaptive systems: A second research roadmap. In Software Engineering for Self-Adaptive Systems II. Lecture Notes in Computer Science, Vol. 7475. Springer, Berlin, 1--32. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Brahim Djoudi, Chafia Bouanaka, and Nadia Zeghib. 2014. Model checking pervasive context-aware systems. In Proceedings of the 2014 IEEE 23rd International WETICE Conference (WETICE’14). IEEE Computer Society, Washington, DC, 92--97. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Naeem Esfahani, Ehsan Kouroshfar, and Sam Malek. 2011. Taming uncertainty in self-adaptive software. In Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering (ESEC/FSE’11). ACM, New York, NY, 234--244. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Naeem Esfahani and Sam Malek. 2013. Uncertainty in Self-Adaptive Software Systems. Springer, Berlin, 214--238.Google ScholarGoogle Scholar
  30. Jose Luis Fernandez-Marquez, Giovanna Di Marzo Serugendo, Sara Montagna, Mirko Viroli, and Josep Lluis Arcos. 2013. Description and composition of bio-inspired design patterns: A complete overview. Nat. Comput. 12, 1 (2013), 43--67. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Héctor Garcia-Molina. 1982. Elections in a distributed computing system. IEEE Trans. Comput. 31, 1 (Jan. 1982), 48--59. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Angelo Gargantini, Elvinia Riccobene, and Patrizia Scandurra. 2008. A metamodel-based language and a simulation engine for abstract state machines. J. UCS 14, 12 (2008), 1949--1983.Google ScholarGoogle Scholar
  33. Ioannis Georgiadis, Jeff Magee, and Jeff Kramer. 2002. Self-organising software architectures for distributed systems. In Proceedings of the 1st Workshop on Self-Healing Systems (WOSS’02). ACM, New York, NY, 33--38. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Didac Gil de la Iglesia and Danny Weyns. 2013. Guaranteeing robustness in a mobile learning application using formally verified MAPE loops. In Proceedings of the 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS’13). IEEE Press, 83--92. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Didac Gil De La Iglesia and Danny Weyns. 2015. MAPE-K formal templates to rigorously design behaviors for self-adaptive systems. ACM Trans. Auton. Adapt. Syst. 10, 3, Article 15 (Sept. 2015), 31 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Susanne Graf and Andreas Prinz. 2007. Time in state machines. Fundam. Inf. 77, 1--2 (Jan. 2007), 143--174. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Matthias Güdemann, Andreas Angerer, Frank Ortmeier, and Wolfgang Reif. 2007. Modeling of self-adaptive systems with SCADE. In International Symposium on Circuits and Systems (ISCAS’07). IEEE, 2922--2925.Google ScholarGoogle ScholarCross RefCross Ref
  38. Markus C. Huebscher and Julie A. McCann. 2008. A survey of autonomic computing—Degrees, models, and applications. ACM Comput. Surv. 40, 3, Article 7 (Aug. 2008), 28 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. M. Usman Iftikhar and Danny Weyns. 2012. A case study on formal verification of self-adaptive behaviors in a decentralized system. In Proceedings of the 11th International Workshop on Foundations of Coordination Languages and Self Adaptation (FOCLASA’12), EPTCS, Vol. 91. 45--62.Google ScholarGoogle ScholarCross RefCross Ref
  40. M. Usman Iftikhar and Danny Weyns. 2014. ActivFORMS: Active formal models for self-adaptation. In Proceedings of the 9th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS’14). ACM, New York, NY, 125--134. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Jeffrey O. Kephart and David M. Chess. 2003. The vision of autonomic computing. Computer 36, 1 (2003), 41--50. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Jeffrey O. Kephart and William E. Walsh. 2004. An artificial intelligence perspective on autonomic computing policies. In Proceedings of the 5th IEEE International Workshop on Policies for Distributed Systems and Networks (POLICY’04). IEEE Computer Society, 3--12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Arnaud Lanoix, Julien Dormoy, and Olga Kouchnarenko. 2011. Combining proof and model-checking to validate reconfigurable architectures. Electron. Notes Theor. Comput. Sci. 279, 2 (Dec. 2011), 43--57. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Jeff Magee and Tom Maibaum. 2006. Towards specification, modelling and analysis of fault tolerance in self managed systems. In Proceedings of the 2006 International Workshop on Self-Adaptation and Self-Managing Systems (SEAMS’06). ACM, New York, NY, 30--36. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Emanuela Merelli, Nicola Paoletti, and Luca Tesei. 2012. A multi-level model for self-adaptive systems. In Proceedings of the 11th International Workshop on Foundations of Coordination Languages and Self Adaptation (FOCLASA’12), EPTCS, Vol. 91. 112--126.Google ScholarGoogle ScholarCross RefCross Ref
  46. Raffaela Mirandola, Pasqualina Potena, Elvinia Riccobene, and Patrizia Scandurra. 2014b. A reliability model for service component architectures. J. Syst. Softw. 89, C (March 2014), 109--127.Google ScholarGoogle ScholarCross RefCross Ref
  47. Raffaela Mirandola, Pasqualina Potena, and Patrizia Scandurra. 2014a. Adaptation space exploration for service-oriented applications. Sci. Comput Program. 80, Part B, 0 (2014), 356--384.Google ScholarGoogle ScholarCross RefCross Ref
  48. Brice Morin, Olivier Barais, Gregory Nain, and Jean-Marc Jezequel. 2009. Taming dynamically adaptive systems using models and aspects. In Proceedings of the 31st International Conference on Software Engineering (ICSE’09). IEEE Computer Society, Washington, DC, 122--132. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. David J. Musliner. 2000. Imposing real-time constraints on self-adaptive controller synthesis. In Proceedings of the 1st International Workshop on Self-Adaptive Software (IWSAS’00). Springer-Verlag, New York, 143--160. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. George A. Papadopoulos and Farhad Arbab. 1998. Coordination Models and Languages. Technical Report. Centre for Mathematics and Computer Science, Amsterdam, The Netherlands. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. Diego Perez-Palacin and Raffaela Mirandola. 2014. Uncertainties in the modeling of self-adaptive systems: A taxonomy and an example of availability evaluation. In Proceedings of the 5th ACM/SPEC International Conference on Performance Engineering (ICPE’14). ACM, New York, NY, 3--14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Christian Prehofer and Marc Zeller. 2012. Towards runtime adaptation in real-time, networked embedded systems. In Proceedings of the 7th IEEE International Symposium on Industrial Embedded Systems (SIES’12). IEEE, 271--274.Google ScholarGoogle ScholarCross RefCross Ref
  53. Ichiro Satoh. 2012. In Proceedings of the 9th International Conference on Distributed Computing and Artificial Intelligence. Springer, Berlin, pp. 221--228.Google ScholarGoogle ScholarCross RefCross Ref
  54. Hui Song, Stephen Barrett, Aidan Clarke, and Siobhán Clarke. 2013. In Proceedings of the 16th International Conference on Model-Driven Engineering Languages and Systems (MODELS’13). Springer, Berlin, pp. 555--571. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Pieter Vromant, Danny Weyns, Sam Malek, and Jesper Andersson. 2011. On interacting control loops in self-adaptive systems. In Proceedings of the 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS’11). ACM, New York, NY, 202--207. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Danny Weyns, M. Usman Iftikhar, Didac Gil de la Iglesia, and Tanvir Ahmad. 2012. A survey of formal methods in self-adaptive systems. In Proceedings of the 5th International C<sup>*</sup> Conference on Computer Science and Software Engineering (C3S2E’12). ACM, New York, NY, 67--79. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. Danny Weyns, Sam Malek, and Jesper Andersson. 2010a. FORMS: A formal reference model for self-adaptation. In Proceedings of the 7th International Conference on Autonomic Computing (ICAC’10). ACM, New York, NY, 205--214. Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Danny Weyns, Sam Malek, and Jesper Andersson. 2010b. On decentralized self-adaptation: Lessons from the trenches and challenges for the future. In Proceedings of the 2010 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS’10). ACM, New York, NY, 84--93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Danny Weyns, Bradley R. Schmerl, Vincenzo Grassi, Sam Malek, Raffaela Mirandola, Christian Prehofer, Jochen Wuttke, Jesper Andersson, Holger Giese, and Karl M. Göschka. 2013. Software Engineering for Self-Adaptive Systems II: International Seminar, 2010 Revised Selected and Invited Papers. Springer, Berlin, pp. 76--107.Google ScholarGoogle Scholar
  60. Marc Zeller and Christian Prehofer. 2012. Timing constraints for runtime adaptation in real-time, networked embedded systems. In Proceedings of the 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS’12). IEEE Press, 73--82. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. Ji Zhang and Betty H. C. Cheng. 2006. Model-based development of dynamically adaptive software. In Proceedings of the 28th International Conference on Software Engineering (ICSE’06). ACM, New York, NY, 371--380. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Formal Design and Verification of Self-Adaptive Systems with Decentralized Control

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!