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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Rajeev Alur, Thomas A. Henzinger, and Orna Kupferman. Alternating-time temporal logic. J. ACM, 49(5):672–713, 2002.
Jesper Andersson, Rogério de Lemos, Sam Malek, and Danny Weyns. Modeling dimensions of self-adaptive software systems. In SEfSAS, pages 27–47. 2009.
M. Autili, P. Inverardi, and M. Tivoli. Automated synthesis of service choreographies. IEEE Software, 32(1):50–57, 2015.
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.
Marco Autili, Amleto Di Salle, and Massimo Tivoli. Synthesis of resilient choreographies. In Software Engineering for Resilient Systems, pages 94–108. 2013.
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.
Marco Autili and Massimo Tivoli. Distributed enforcement of service choreographies. In FOCLASA’14, pages 18–35, 2014.
Ezio Bartocci, Radu Grosu, Panagiotis Katsaros, et al. Model repair for probabilistic systems. In TACAS’11, pages 326–340. 2011.
Simona Bernardi, José Merseguer, and Dorina C. Petriu. Model-Driven Dependability Assessment of Software Systems. Springer, 2013.
M. Bernardo, P. Ciancarini, and L. Donatiello. Architecting families of software systems with process algebras. ACM TOSEM, 11:386–426, 2002.
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.
Andrea Bianco and Luca de Alfaro. Model checking of probabalistic and nondeterministic systems. In FSTTCS, pages 499–513, 1995.
Radu Calinescu, Simos Gerasimou, and Alec Banks. Self-adaptive software with decentralised control loops. In FASE’15, pages 235–251. 2015.
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.
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.
Radu Calinescu, Kenneth Johnson, and Yasmin Rafiq. Developing self-verifying service-based systems. In ASE’13, pages 734–737, 2013.
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.
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.
Milan Ceska, Frits Dannenberg, Marta Z. Kwiatkowska, and Nicola Paoletti. Precise parameter synthesis for stochastic biochemical systems. In CMSB’14, pages 86–98, 2014.
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.
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.
R.M. Chiulli. Quantitative Analysis: An Introduction. Automation and production systems. 1999.
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.
Vittorio Cortellessa, Antinisca Di Marco, and Paola Inverardi. Model-Based Software Performance Analysis. Springer, 2011.
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.
Conrado Daws. Symbolic and parametric model checking of discrete-time Markov chains. In ICTAC’04, pages 280–294, 2004.
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.
Christian Dehnert, Sebastian Junges, Nils Jansen, et al. PROPhESY: A probabilistic parameter synthesis tool. In CAV’15, pages 214–231, 2015.
Antinisca Di Marco, Paola Inverardi, and Romina Spalazzese. Synthesizing self-adaptive connectors meeting functional and performance concerns. In SEAMS’13, pages 133–142, 2013.
Ilenia Epifani, Carlo Ghezzi, Raffaela Mirandola, and Giordano Tamburrelli. Model evolution by run-time parameter adaptation. In ICSE’09, pages 111–121, 2009.
European Commission. Digital Agenda for Europe - Future Internet Research and Experimentation (FIRE) initiative, 2015.
Antonio Filieri, Carlo Ghezzi, and Giordano Tamburrelli. Run-time efficient probabilistic model checking. In ICSE’11, pages 341–350, 2011.
Vojtech Forejt, Marta Kwiatkowska, Gethin Norman, and David Parker. Automated verification techniques for probabilistic systems. In SFM’11, pages 53–113, 2011.
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.
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.
Matthias Güdemann, Gwen Salaün, and Meriem Ouederni. Counterexample guided synthesis of monitors for realizability enforcement. In ATVA’12, pages 238–253. 2012.
Ernst Moritz Hahn, Holger Hermanns, and Lijun Zhang. Probabilistic reachability for parametric Markov models. Software Tools for Technology Transfer, 13(1):3–19, 2010.
Hans Hansson and Bengt Jonsson. A logic for reasoning about time and reliability. Formal Aspects of Computing, 6(5):512–535, 1194.
Markus C. Huebscher and Julie A. McCann. A survey of autonomic computing – degrees, models, and applications. ACM Comput. Surv., 40(3):1–28, 2008.
P. Inverardi, V. Issarny, and R. Spalazzese. A Theory of Mediators for Eternal CONNECTors. In ISoLA’10, pages 236–250, 2010.
P. Inverardi, R. Spalazzese, and M. Tivoli. Application-Layer Connector Synthesis. In SFM’11, pages 148–190, 2011.
Nils Jansen, Florian Corzilius, Matthias Volk, et al. Accelerating parametric probabilistic verification. In QEST’11, pages 404–420, 2014.
Kenneth Johnson, Radu Calinescu, and Shinji Kikuchi. An incremental verification framework for component-based software systems. In CBSE’13, pages 33–42, 2013.
Dejan Jovanovic and Leonardo Mendonça de Moura. Solving non-linear arithmetic. In IJCAR, pages 339–354, 2012.
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.
D. Koller and N. Friedman. Probabilistic Graphical Methods: Principles and Techniques. MIT Press, 2009.
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.
Jeff Kramer and Jeff Magee. The evolving philosophers problem: Dynamic change management. IEEE Trans. Softw. Eng., 16(11):1293–1306, 1990.
Marta Kwiatkowska. Quantitative verification: models, techniques and tools. In ESEC/FSE’07, pages 449–458, 2007.
Marta Kwiatkowska, Gethin Norman, and David Parker. Prism 4.0: Verification of probabilistic real-time systems. In CAV’11, pages 585–591, 2011.
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.
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.
O. J. Mengshoel and J. M. Schumann. Software health management with Bayesian networks. In 2nd Intl. Workshop On Software Health Management, 2011.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Romina Spalazzese and Paola Inverardi. Mediating connector patterns for components interoperability. In ECSA’10, pages 335–343, 2010.
Bridget Spitznagel and David Garlan. A compositional formalization of connector wrappers. In ICSE’03, pages 374–384, 2003.
A. Srivastava and J. Han, editors. Data Mining in Systems Health Management: Detection, Diagnostics, and Prognostics. Chapman and Hall/CRC Press, 2011.
M. Tivoli, P. Fradet, A. Girault, and G. Gößler. Adaptor synthesis for real-time components. In TACAS’07, pages 185–200, 2007.
Daniel M. Yellin and Robert E. Strom. Protocol specifications and component adaptors. ACM Trans. Program. Lang. Syst., 19, 1997.
L. Zheng and O. J. Mengshoel. Exploring multiple dimensions of parallelism in junction tree message passing. In UAI Application Workshops, 2013.
L. Zheng and O. J. Mengshoel. Optimizing parallel belief propagation in junction trees using regression. In KDD’13, pages 757–765, 2013.
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
Corresponding author
Editor information
Editors and Affiliations
Rights 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)