Skip to main content

Synthesis and Verification of Self-aware Computing Systems

  • Chapter
  • First Online:

Abstract

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.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   149.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   199.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD   199.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Rajeev Alur, Thomas A. Henzinger, and Orna Kupferman. Alternating-time temporal logic. J. ACM, 49(5):672–713, 2002.

    Google Scholar 

  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. M. Autili, P. Inverardi, and M. Tivoli. Automated synthesis of service choreographies. IEEE Software, 32(1):50–57, 2015.

    Google Scholar 

  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. 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. 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. Marco Autili and Massimo Tivoli. Distributed enforcement of service choreographies. In FOCLASA’14, pages 18–35, 2014.

    Google Scholar 

  8. Ezio Bartocci, Radu Grosu, Panagiotis Katsaros, et al. Model repair for probabilistic systems. In TACAS’11, pages 326–340. 2011.

    Google Scholar 

  9. Simona Bernardi, José Merseguer, and Dorina C. Petriu. Model-Driven Dependability Assessment of Software Systems. Springer, 2013.

    Google Scholar 

  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. 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. Andrea Bianco and Luca de Alfaro. Model checking of probabalistic and nondeterministic systems. In FSTTCS, pages 499–513, 1995.

    Google Scholar 

  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. 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. 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. Radu Calinescu, Kenneth Johnson, and Yasmin Rafiq. Developing self-verifying service-based systems. In ASE’13, pages 734–737, 2013.

    Google Scholar 

  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. 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. 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. 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. 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. R.M. Chiulli. Quantitative Analysis: An Introduction. Automation and production systems. 1999.

    Google Scholar 

  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. Vittorio Cortellessa, Antinisca Di Marco, and Paola Inverardi. Model-Based Software Performance Analysis. Springer, 2011.

    Google Scholar 

  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. Conrado Daws. Symbolic and parametric model checking of discrete-time Markov chains. In ICTAC’04, pages 280–294, 2004.

    Google Scholar 

  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. Christian Dehnert, Sebastian Junges, Nils Jansen, et al. PROPhESY: A probabilistic parameter synthesis tool. In CAV’15, pages 214–231, 2015.

    Google Scholar 

  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. 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. European Commission. Digital Agenda for Europe - Future Internet Research and Experimentation (FIRE) initiative, 2015.

    Google Scholar 

  32. Antonio Filieri, Carlo Ghezzi, and Giordano Tamburrelli. Run-time efficient probabilistic model checking. In ICSE’11, pages 341–350, 2011.

    Google Scholar 

  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. 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. 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. 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. 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. 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. 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. P. Inverardi, V. Issarny, and R. Spalazzese. A Theory of Mediators for Eternal CONNECTors. In ISoLA’10, pages 236–250, 2010.

    Google Scholar 

  41. P. Inverardi, R. Spalazzese, and M. Tivoli. Application-Layer Connector Synthesis. In SFM’11, pages 148–190, 2011.

    Google Scholar 

  42. Nils Jansen, Florian Corzilius, Matthias Volk, et al. Accelerating parametric probabilistic verification. In QEST’11, pages 404–420, 2014.

    Google Scholar 

  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. Dejan Jovanovic and Leonardo Mendonça de Moura. Solving non-linear arithmetic. In IJCAR, pages 339–354, 2012.

    Google Scholar 

  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. D. Koller and N. Friedman. Probabilistic Graphical Methods: Principles and Techniques. MIT Press, 2009.

    Google Scholar 

  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. Jeff Kramer and Jeff Magee. The evolving philosophers problem: Dynamic change management. IEEE Trans. Softw. Eng., 16(11):1293–1306, 1990.

    Google Scholar 

  49. Marta Kwiatkowska. Quantitative verification: models, techniques and tools. In ESEC/FSE’07, pages 449–458, 2007.

    Google Scholar 

  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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Romina Spalazzese and Paola Inverardi. Mediating connector patterns for components interoperability. In ECSA’10, pages 335–343, 2010.

    Google Scholar 

  64. Bridget Spitznagel and David Garlan. A compositional formalization of connector wrappers. In ICSE’03, pages 374–384, 2003.

    Google Scholar 

  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. 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. Daniel M. Yellin and Robert E. Strom. Protocol specifications and component adaptors. ACM Trans. Program. Lang. Syst., 19, 1997.

    Google Scholar 

  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. L. Zheng and O. J. Mengshoel. Optimizing parallel belief propagation in junction trees using regression. In KDD’13, pages 757–765, 2013.

    Google Scholar 

Download references

Acknowledgements

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).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Radu Calinescu .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer International Publishing AG

About this chapter

Cite this chapter

Calinescu, R. et al. (2017). Synthesis and Verification of Self-aware Computing Systems. In: Kounev, S., Kephart, J., Milenkoski, A., Zhu, X. (eds) Self-Aware Computing Systems. Springer, Cham. https://doi.org/10.1007/978-3-319-47474-8_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-47474-8_11

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-47472-4

  • Online ISBN: 978-3-319-47474-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics