Synthesis and Verification of Self-aware Computing Systems

  • Radu CalinescuEmail author
  • Marco Autili
  • Javier Cámara
  • Antinisca Di Marco
  • Simos Gerasimou
  • Paola Inverardi
  • Alexander Perucci
  • Nils Jansen
  • Joost-Pieter Katoen
  • Marta Kwiatkowska
  • Ole J. Mengshoel
  • Romina Spalazzese
  • Massimo Tivoli


Self-aware computing systems are envisaged to exploit the knowledge of their own software architecture, hardware infrastructure and environment in order to follow high-level goals through proactively adapting as their environment evolves. This chapter describes two classes of key enabling techniques for self-adaptive systems: automated synthesis and formal verification. The ability to dynamically synthesize component connectors and compositions underpins the proactive adaptation of the architecture of self-aware systems. Deciding when adaptation is needed and selecting valid new architectures or parameters for self-aware systems often requires formal verification. We present the state of the art in the use of the two techniques for the development of self-aware computing systems and summarize the main research challenges associated with their adoption in practice.


Bayesian Network Service Composition Reward Structure Bayesian Network Model Arithmetic Circuit 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.



The work concerning the synthesis method described in Sect. 11.2 has been supported by the European Union’s H2020 Programme under grant agreement number 644178 (project CHOReVOLUTION—Automated Synthesis of Dynamic and Secured Choreographies for the Future Internet) and by the Ministry of Economy and Finance, Cipe resolution no. 135/2012 (project INCIPICT—INnovating CIty Planning through Information and Communication Technologies).


  1. 1.
    Rajeev Alur, Thomas A. Henzinger, and Orna Kupferman. Alternating-time temporal logic. J. ACM, 49(5):672–713, 2002.Google Scholar
  2. 2.
    Jesper Andersson, Rogério de Lemos, Sam Malek, and Danny Weyns. Modeling dimensions of self-adaptive software systems. In SEfSAS, pages 27–47. 2009.Google Scholar
  3. 3.
    M. Autili, P. Inverardi, and M. Tivoli. Automated synthesis of service choreographies. IEEE Software, 32(1):50–57, 2015.Google Scholar
  4. 4.
    Marco Autili, Davide Di Ruscio, Amleto Di Salle, and Alexander Perucci. CHOReOSynt: Enforcing choreography realizability in the future internet. In FSE’14, pages 723–726, 2014.Google Scholar
  5. 5.
    Marco Autili, Amleto Di Salle, and Massimo Tivoli. Synthesis of resilient choreographies. In Software Engineering for Resilient Systems, pages 94–108. 2013.Google Scholar
  6. 6.
    Marco Autili, Leonardo Mostarda, Alfredo Navarra, and Massimo Tivoli. Synthesis of decentralized and concurrent adaptors for correctly assembling distributed component-based systems. Journal of Systems and Software, 81(12):2210–2236, 2008.Google Scholar
  7. 7.
    Marco Autili and Massimo Tivoli. Distributed enforcement of service choreographies. In FOCLASA’14, pages 18–35, 2014.Google Scholar
  8. 8.
    Ezio Bartocci, Radu Grosu, Panagiotis Katsaros, et al. Model repair for probabilistic systems. In TACAS’11, pages 326–340. 2011.Google Scholar
  9. 9.
    Simona Bernardi, José Merseguer, and Dorina C. Petriu. Model-Driven Dependability Assessment of Software Systems. Springer, 2013.Google Scholar
  10. 10.
    M. Bernardo, P. Ciancarini, and L. Donatiello. Architecting families of software systems with process algebras. ACM TOSEM, 11:386–426, 2002.Google Scholar
  11. 11.
    A. Bertolino, A. Calabrò, F. Di Giandomenico, et al. On-the-fly dependable mediation between heterogeneous networked systems. In ICSOFT’11, pages 20–37, 2012.Google Scholar
  12. 12.
    Andrea Bianco and Luca de Alfaro. Model checking of probabalistic and nondeterministic systems. In FSTTCS, pages 499–513, 1995.Google Scholar
  13. 13.
    Radu Calinescu, Simos Gerasimou, and Alec Banks. Self-adaptive software with decentralised control loops. In FASE’15, pages 235–251. 2015.Google Scholar
  14. 14.
    Radu Calinescu, Carlo Ghezzi, Kenneth Johnson, et al. Formal verification with confidence intervals to establish quality of service properties of software systems. IEEE Transactions on Reliability, pages 1–16, 2015.Google Scholar
  15. 15.
    Radu Calinescu, Carlo Ghezzi, Marta Kwiatkowska, and Raffaela Mirandola. Self-adaptive software needs quantitative verification at runtime. Communications of the ACM, 55(9):69–77, 2012.Google Scholar
  16. 16.
    Radu Calinescu, Kenneth Johnson, and Yasmin Rafiq. Developing self-verifying service-based systems. In ASE’13, pages 734–737, 2013.Google Scholar
  17. 17.
    Radu Calinescu, Yasmin Rafiq, Kenneth Johnson, and Mehmet Emin Bakir. Adaptive model learning for continual verification of non-functional properties. In ICPE’14, pages 87–98, 2014.Google Scholar
  18. 18.
    Javier Cámara, Gabriel A. Moreno, and David Garlan. Stochastic game analysis and latency awareness for proactive self-adaptation. In SEAMS’14, pages 155–164, 2014.Google Scholar
  19. 19.
    Milan Ceska, Frits Dannenberg, Marta Z. Kwiatkowska, and Nicola Paoletti. Precise parameter synthesis for stochastic biochemical systems. In CMSB’14, pages 86–98, 2014.Google Scholar
  20. 20.
    Taolue Chen, Vojtech Forejt, Marta Z. Kwiatkowska, et al. Automatic verification of competitive stochastic systems. Formal Methods in System Design, 43(1):61–92, 2013.Google Scholar
  21. 21.
    Shang-Wen Cheng, David Garlan, and Bradley R. Schmerl. Evaluating the effectiveness of the rainbow self-adaptive system. In SEAMS’09, pages 132–141, 2009.Google Scholar
  22. 22.
    R.M. Chiulli. Quantitative Analysis: An Introduction. Automation and production systems. 1999.Google Scholar
  23. 23.
    A. Choi, A. Darwiche, L. Zheng, and O. J. Mengshoel. A tutorial on Bayesian networks for system health management. In Data Mining in Systems Health Management: Detection, Diagnostics, and Prognostics. 2011.Google Scholar
  24. 24.
    Vittorio Cortellessa, Antinisca Di Marco, and Paola Inverardi. Model-Based Software Performance Analysis. Springer, 2011.Google Scholar
  25. 25.
    Florian Corzilius, Gereon Kremer, Sebastian Junges, Stefan Schupp, and Erika Ábrahám. SMT-RAT: an open source C++ toolbox for strategic and parallel SMT solving. In SAT, volume 9340 of Lecture Notes in Computer Science, pages 360–368. Springer, 2015.Google Scholar
  26. 26.
    Conrado Daws. Symbolic and parametric model checking of discrete-time Markov chains. In ICTAC’04, pages 280–294, 2004.Google Scholar
  27. 27.
    Rogério de Lemos, Holger Giese, Hausi A. Müller, et al. Software engineering for self-adaptive systems: A second research roadmap. In SEfSAS II, pages 1–32. 2013.Google Scholar
  28. 28.
    Christian Dehnert, Sebastian Junges, Nils Jansen, et al. PROPhESY: A probabilistic parameter synthesis tool. In CAV’15, pages 214–231, 2015.Google Scholar
  29. 29.
    Antinisca Di Marco, Paola Inverardi, and Romina Spalazzese. Synthesizing self-adaptive connectors meeting functional and performance concerns. In SEAMS’13, pages 133–142, 2013.Google Scholar
  30. 30.
    Ilenia Epifani, Carlo Ghezzi, Raffaela Mirandola, and Giordano Tamburrelli. Model evolution by run-time parameter adaptation. In ICSE’09, pages 111–121, 2009.Google Scholar
  31. 31.
    European Commission. Digital Agenda for Europe - Future Internet Research and Experimentation (FIRE) initiative, 2015.Google Scholar
  32. 32.
    Antonio Filieri, Carlo Ghezzi, and Giordano Tamburrelli. Run-time efficient probabilistic model checking. In ICSE’11, pages 341–350, 2011.Google Scholar
  33. 33.
    Vojtech Forejt, Marta Kwiatkowska, Gethin Norman, and David Parker. Automated verification techniques for probabilistic systems. In SFM’11, pages 53–113, 2011.Google Scholar
  34. 34.
    Simos Gerasimou, Radu Calinescu, and Alec Banks. Efficient runtime quantitative verification using caching, lookahead, and nearly-optimal reconfiguration. In SEAMS’14, pages 115–124, 2014.Google Scholar
  35. 35.
    Simos Gerasimou, Giordano Tamburrelli, and Radu Calinescu. Search-based synthesis of probabilistic models for quality-of-service software engineering. In ASE’15, pages 319–330, 2015.Google Scholar
  36. 36.
    Matthias Güdemann, Gwen Salaün, and Meriem Ouederni. Counterexample guided synthesis of monitors for realizability enforcement. In ATVA’12, pages 238–253. 2012.Google Scholar
  37. 37.
    Ernst Moritz Hahn, Holger Hermanns, and Lijun Zhang. Probabilistic reachability for parametric Markov models. Software Tools for Technology Transfer, 13(1):3–19, 2010.Google Scholar
  38. 38.
    Hans Hansson and Bengt Jonsson. A logic for reasoning about time and reliability. Formal Aspects of Computing, 6(5):512–535, 1194.Google Scholar
  39. 39.
    Markus C. Huebscher and Julie A. McCann. A survey of autonomic computing – degrees, models, and applications. ACM Comput. Surv., 40(3):1–28, 2008.Google Scholar
  40. 40.
    P. Inverardi, V. Issarny, and R. Spalazzese. A Theory of Mediators for Eternal CONNECTors. In ISoLA’10, pages 236–250, 2010.Google Scholar
  41. 41.
    P. Inverardi, R. Spalazzese, and M. Tivoli. Application-Layer Connector Synthesis. In SFM’11, pages 148–190, 2011.Google Scholar
  42. 42.
    Nils Jansen, Florian Corzilius, Matthias Volk, et al. Accelerating parametric probabilistic verification. In QEST’11, pages 404–420, 2014.Google Scholar
  43. 43.
    Kenneth Johnson, Radu Calinescu, and Shinji Kikuchi. An incremental verification framework for component-based software systems. In CBSE’13, pages 33–42, 2013.Google Scholar
  44. 44.
    Dejan Jovanovic and Leonardo Mendonça de Moura. Solving non-linear arithmetic. In IJCAR, pages 339–354, 2012.Google Scholar
  45. 45.
    Joost-Pieter Katoen, Ivan S. Zapreev, Ernst Moritz Hahn, et al. The ins and outs of the probabilistic model checker MRMC. Performance Evaluation, 68(2):90–104, 2011.Google Scholar
  46. 46.
    D. Koller and N. Friedman. Probabilistic Graphical Methods: Principles and Techniques. MIT Press, 2009.Google Scholar
  47. 47.
    Samuel Kounev, Xiaoyun Zhu, Jeffrey O. Kephart, and Marta Kwiatkowska. Model-driven Algorithms and Architectures for Self-Aware Computing Systems (Dagstuhl Seminar 15041). Dagstuhl Reports, 5(1):164–196, 2015.Google Scholar
  48. 48.
    Jeff Kramer and Jeff Magee. The evolving philosophers problem: Dynamic change management. IEEE Trans. Softw. Eng., 16(11):1293–1306, 1990.Google Scholar
  49. 49.
    Marta Kwiatkowska. Quantitative verification: models, techniques and tools. In ESEC/FSE’07, pages 449–458, 2007.Google Scholar
  50. 50.
    Marta Kwiatkowska, Gethin Norman, and David Parker. Prism 4.0: Verification of probabilistic real-time systems. In CAV’11, pages 585–591, 2011.Google Scholar
  51. 51.
    Sam Malek, Nels Beckman, Marija Mikic-Rakic, and Nenad Medvidovic. A framework for ensuring and improving dependability in highly distributed systems. In Architecting Dependable Systems III, pages 173–193. 2004.Google Scholar
  52. 52.
    O. J. Mengshoel, M. Chavira, K. Cascio, et al. Probabilistic model-based diagnosis: An electrical power system case study. Systems, Man and Cybernetics, 40(5):874–885, 2010.Google Scholar
  53. 53.
    O. J. Mengshoel and J. M. Schumann. Software health management with Bayesian networks. In 2nd Intl. Workshop On Software Health Management, 2011.Google Scholar
  54. 54.
    Nicola Nostro, Ronima Spalazzese, Felicita Di Giandomenico, and Paola Inverardi. Achieving functional and non functional interoperability through synthesized connectors. Journal of Systems and Software, pages 185–199, 2016.Google Scholar
  55. 55.
    J. L. Pastrana, E. Pimentel, and M. Katrib. QoS-enabled and self-adaptive connectors for web services composition and coordination. Comput. Lang. Syst. Struct., 37(1):2–23, 2011.Google Scholar
  56. 56.
    Shashank Pathak, Erika Ábrahám, Nils Jansen, et al. A greedy approach for the efficient repair of stochastic models. In NFM’15, pages 295–309, 2015.Google Scholar
  57. 57.
    Q. Qiu, Q. Wu, and M. Pedram. Stochastic modeling of a power-managed system: construction and optimization. In Intl. Symp. on Low Power Electronics and Design, pages 194–199, 1999.Google Scholar
  58. 58.
    B. Ricks and O. J. Mengshoel. Diagnosis for uncertain, dynamic and hybrid domains using bayesian networks and arithmetic circuits. Intl. Journal of Approximate Reasoning, 55(5):1207–1234, 2014.Google Scholar
  59. 59.
    J. Schumann, T. Mbaya, and O. J. Mengshoel. Bayesian software health management for aircraft guidance, navigation, and control. In Prognostics and Health Management Society, 2011.Google Scholar
  60. 60.
    J. Schumann, O. J. Mengshoel, and T. Mbaya. Integrated software and sensor health management for small spacecraft. In Intl. Conf. on Space Mission Challenges for Information Technology, pages 77–84, 2011.Google Scholar
  61. 61.
    J. Schumann, K. Y. Rozier, T. Reinbacher, et al. Towards real-time, on-board, hardware-supported sensor and software health management for unmanned aerial systems. Intl. Journal of Prognostics and Health Management, 6, 2015.Google Scholar
  62. 62.
    J. Schumann, A. N. Srivastava, and O. J. Mengshoel. Who guards the guardians? toward V&V of health management software. In RV’10, pages 399–404, 2010.Google Scholar
  63. 63.
    Romina Spalazzese and Paola Inverardi. Mediating connector patterns for components interoperability. In ECSA’10, pages 335–343, 2010.Google Scholar
  64. 64.
    Bridget Spitznagel and David Garlan. A compositional formalization of connector wrappers. In ICSE’03, pages 374–384, 2003.Google Scholar
  65. 65.
    A. Srivastava and J. Han, editors. Data Mining in Systems Health Management: Detection, Diagnostics, and Prognostics. Chapman and Hall/CRC Press, 2011.Google Scholar
  66. 66.
    M. Tivoli, P. Fradet, A. Girault, and G. Gößler. Adaptor synthesis for real-time components. In TACAS’07, pages 185–200, 2007.Google Scholar
  67. 67.
    Daniel M. Yellin and Robert E. Strom. Protocol specifications and component adaptors. ACM Trans. Program. Lang. Syst., 19, 1997.Google Scholar
  68. 68.
    L. Zheng and O. J. Mengshoel. Exploring multiple dimensions of parallelism in junction tree message passing. In UAI Application Workshops, 2013.Google Scholar
  69. 69.
    L. Zheng and O. J. Mengshoel. Optimizing parallel belief propagation in junction trees using regression. In KDD’13, pages 757–765, 2013.Google Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Radu Calinescu
    • 1
    Email author
  • Marco Autili
    • 2
  • Javier Cámara
    • 3
  • Antinisca Di Marco
    • 2
  • Simos Gerasimou
    • 1
  • Paola Inverardi
    • 2
  • Alexander Perucci
    • 2
  • Nils Jansen
    • 4
  • Joost-Pieter Katoen
    • 5
  • Marta Kwiatkowska
    • 6
  • Ole J. Mengshoel
    • 3
  • Romina Spalazzese
    • 7
  • Massimo Tivoli
    • 2
  1. 1.University of YorkYorkUK
  2. 2.University of L’AquilaL’AquilaItaly
  3. 3.Carnegie Mellon UniversityPittsburghUSA
  4. 4.University of Texas at AustinAustinUSA
  5. 5.RWTH Aachen UniversityAachenGermany
  6. 6.University of OxfordOxfordUK
  7. 7.Malmö UniversityMalmöSweden

Personalised recommendations