Abstract
Due to the uncertainty of what actual adaptations will be performed at run time, verifying adaptive systems at design time may lead to limited results or may even be infeasible. Run-time verification techniques have been proposed to cope with this uncertainty. Recently, there has been an increasing interest to use model checking (an important verification technique) at run time in order to verify the expected properties of adaptive systems. Given a system specification and expected system properties, a model checker determines whether or not the specification satisfies its properties in the presence of self-adaptation. One key concern is the generally high resource needs of model checking, which may prohibit its use on resource- and power-constrained devices, such as smart-phones or Internet-of-Things devices. To address this challenge, we introduce a cloud-based framework that delivers model checking as a service (MCaaS). MCaaS offloads computationally intensive model checking tasks to the cloud, thereby offering verification capabilities on demand. Adaptive systems running on any kind of connected device may take the advantages of model checking at run time by invoking the MCaaS service. To dynamically allocate the required cloud resources (CPU and memory), we employ machine learning to estimate the resource usage of an actual model checking task at run time. As proof of concept, we implement and validate the approach for the case of probabilistic model checking, which facilitates verifying typical properties such as reliability.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Prism official website. http://www.prismmodelchecker.org/
Calinescu, R., Ghezzi, C., Kwiatkowska, M.Z., Mirandola, R.: Self-adaptive software needs quantitative verification at runtime. Commun. ACM 55(9), 69–77 (2012)
Calinescu, R., Grunske, L., Kwiatkowska, M., Mirandola, R., Tamburrelli, G.: Dynamic QoS management and optimization in service-based systems. IEEE Trans. Software Eng. 37(3), 387–409 (2011)
Calinescu, R., Kikuchi, S.: Formal methods @ runtime. In: Calinescu, R., Jackson, E. (eds.) Monterey Workshop 2010. LNCS, vol. 6662, pp. 122–135. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-21292-5_7
Calinescu, R., Kwiatkowska, M.Z.: Using quantitative analysis to implement autonomic IT systems. In: Proceedings of 31st International Conference on Software Engineering, ICSE 2009, 16–24 May 2009, Vancouver, Canada, pp. 100–110 (2009)
Camara, J., de Lemos, R., Ghezzi, C., Lopes, A. (eds.): Assurances for Self-Adaptive Systems. LNCS, vol. 7740. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-36249-1
Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.): Software Engineering for Self-Adaptive Systems. LNCS, vol. 5525. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-02161-9. [outcome of a Dagstuhl Seminar]
Cimatti, A., Clarke, E., Giunchiglia, E., Giunchiglia, F., Pistore, M., Roveri, M., Sebastiani, R., Tacchella, A.: NuSMV 2: an opensource tool for symbolic model checking. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, pp. 359–364. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-45657-0_29
Domingos, P.: A few useful things to know about machine learning. Commun. ACM 55(10), 78–87 (2012)
Epifani, I., Ghezzi, C., Mirandola, R., Tamburrelli, G.: Model evolution by run-time parameter adaptation. In: ICSE, pp. 111–121 (2009)
Erbes, J., Nezhad, H.R.M., Graupner, S.: The future of enterprise IT in the Cloud. IEEE Comput. 45(5), 66–72 (2012)
Filieri, A., Ghezzi, C., Tamburrelli, G.: Run-time efficient probabilistic model checking. In: ICSE, pp. 341–350 (2011)
Ghezzi, C., Menghi, C., Sharifloo, A., Spoletini, P.: On requirements verification for model refinements. In: 2013 21st IEEE International Requirements Engineering Conference (RE), pp. 62–71 (2013)
Ghezzi, C., Menghi, C., Sharifloo, A.M., Spoletini, P.: On requirement verification for evolving statecharts specifications. Requirements Eng. 19(3), 231–255 (2013)
Ghezzi, C., Sharifloo, A.M.: Dealing with non-functional requirements for adaptive systems via dynamic software product-lines. In: de Lemos, R., Giese, H., Müller, H.A., Shaw, M. (eds.) Software Engineering for Self-Adaptive Systems II. LNCS, vol. 7475, pp. 191–213. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-35813-5_8
Jolliffe, I.: Principal Component Analysis. Wiley Online Library, Chichester (2005)
Kwiatkowska, M., Norman, G., Parker, D.: PRISM: probabilistic model checking for performance and reliability analysis. ACM Perform. Eval. Rev. 36(4), 40–45 (2009)
de Lemos, R., Giese, H., Müller, H.A., Shaw, M. (eds.): Software Engineering for Self-Adaptive Systems II. LNCS, vol. 7475. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-35813-5
Mao, M., Humphrey, M.: A performance study on the VM startup time in the cloud. In: Chang, R. (ed.) 2012 IEEE Fifth International Conference on Cloud Computing, Honolulu, HI, USA, 24–29 June 2012, pp. 423–430. IEEE (2012)
Metzger, A. (ed.): Cyber Physical Systems: Opportunities and Challenges for Software, Services, Cloud and Data. NESSI White Paper, February 2015
Metzger, A., Sammodi, O., Pohl, K.: Accurate proactive adaptation of service-oriented systems. In: Cámara, J., de Lemos, R., Ghezzi, C., Lopes, A. (eds.) Assurances for Self-Adaptive Systems. LNCS, vol. 7740, pp. 240–265. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-36249-1_9
Salehie, M., Tahvildari, L.: Self-adaptive software: Landscape and research challenges. TAAS 4(2) (2009). https://doi.org/10.1145/1516533.1516538
Schmieders, E., Metzger, A.: Preventing performance violations of service compositions using assumption-based run-time verification. In: Abramowicz, W., Llorente, I.M., Surridge, M., Zisman, A., Vayssière, J. (eds.) ServiceWave 2011. LNCS, vol. 6994, pp. 194–205. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-24755-2_19
Sharifloo, A.M., Spoletini, P.: LOVER: light-weight formal verification of adaptivE systems at run time. In: Păsăreanu, C.S., Salaün, G. (eds.) FACS 2012. LNCS, vol. 7684, pp. 170–187. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-35861-6_11
Acknowledgments
We cordially acknowledge the constructive comments provided by the anonymous reviewers. The research leading to these results has received funding from the European Community’s Seventh Framework Programme (FP7/2007–2013) under grant agreement 610802 (CloudWave).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this paper
Cite this paper
Sharifloo, A.M., Metzger, A. (2017). MCaaS: Model Checking in the Cloud for Assurances of Adaptive Systems. In: de Lemos, R., Garlan, D., Ghezzi, C., Giese, H. (eds) Software Engineering for Self-Adaptive Systems III. Assurances. Lecture Notes in Computer Science(), vol 9640. Springer, Cham. https://doi.org/10.1007/978-3-319-74183-3_5
Download citation
DOI: https://doi.org/10.1007/978-3-319-74183-3_5
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-74182-6
Online ISBN: 978-3-319-74183-3
eBook Packages: Computer ScienceComputer Science (R0)