Skip to main content

Dependability of Adaptable and Evolvable Distributed Systems

  • Chapter
  • First Online:
Formal Methods for the Quantitative Evaluation of Collective Adaptive Systems (SFM 2016)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 9700))

Abstract

This article is a tutorial on how to achieve software evolution and adaptation in a dependable manner, by systematically applying formal modelling and verification. It shows how software can be designed upfront to tolerate different sources of uncertainty that cause continuous future changes. If possible changes can be predicted, and their occurrence can be detected, it is possible to design the software to be self-adaptable. Otherwise, continuous evolution has to be supported and continuous flow into operation has to be ensured. In cases where systems are designed to be continuously running, it is necessary to support safe continuous software deployment that guarantees correct operation in the presence of dynamic reconfigurations. The approaches we survey here have been mainly developed in the context of the SMScom project, funded by the European Commission –Programme IDEAS-ERC (http://erc-smscom.dei.polimi.it/.) – and lead by the author. It is argued that these approaches fit well the current agile methods for development and operations that are popularized as DevOps.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight 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

Institutional subscriptions

Notes

  1. 1.

    Note that this is often expressed as \(\mathcal {P}_{\bowtie p} F \varPhi \), using the finally operator.

  2. 2.

    Actually we discussed the computation of the probability associated with the property, to which the constraint \(\bowtie p\) has to be applied.

  3. 3.

    A proof can be found in [18].

References

  1. Althoen, S.C., McLaughlin, R.: Gauss-Jordan reduction: a brief history. Am. Math. Monthly 94(2), 130–142 (1987)

    Article  MathSciNet  MATH  Google Scholar 

  2. Baier, C., Katoen, J.-P.: Principles of Model Checking. The MIT Press, Cambridge (2008)

    MATH  Google Scholar 

  3. Baresi, L., Di Nitto, E., Ghezzi, C.: Toward open-world software: issue and challenges. Computer 39(10), 36–43 (2006)

    Article  Google Scholar 

  4. Belady, L.A., Lehman, M.M.: A model of large program development. IBM Syst. J. 15(3), 225–252 (1976)

    Article  MATH  Google Scholar 

  5. Bojanczyk, A.: Complexity of solving linear systems in different models of computation. SIAM J. Numer. Anal. 21(3), 591–603 (1984)

    Article  MathSciNet  MATH  Google Scholar 

  6. Epifani, I., Ghezzi, C., Mirandola, R., Tamburrelli, G.: Model evolution by run-time adaptation. In: Proceedings of the 31st International Conference on Software Engineering, pp. 111–121. IEEE Computer Society (2009)

    Google Scholar 

  7. Filieri, A., Ghezzi, C., Tamburrelli, G.: Run-time efficient probabilistic model checking. In: Proceedings of the 33rd International Conference on Software Engineering (2011)

    Google Scholar 

  8. Filieri, A., Tamburrelli, G., Ghezzi, C.: Supporting self-adaptation via quantitative verification and sensitivity analysis at run time. IEEE Trans. Softw. Eng. 42(1), 75–99 (2016)

    Article  Google Scholar 

  9. Ghezzi, C., Tamburrelli, G.: Reasoning on non-functional requirements for integrated services. In: Proceedings of the 17th International Requirements Engineering Conference, pp. 69–78. IEEE Computer Society (2009)

    Google Scholar 

  10. Grinstead, C., Snell, J.: Introduction to probability. Amer Mathematical Society, Providence (1997)

    MATH  Google Scholar 

  11. Hahn, E.M., Hermanns, H., Zhang, L.: Probabilistic reachability for parametric markov models. In: Păsăreanu, C.S. (ed.) Model Checking Software. LNCS, vol. 5578, pp. 88–106. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  12. Hinton, A., Kwiatkowska, M., Norman, G., Parker, D.: PRISM: a tool for automatic verification of probabilistic systems. In: Hermanns, H., Palsberg, J. (eds.) TACAS 2006. LNCS, vol. 3920, pp. 441–444. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  13. Jackson, M., Zave, P.: Deriving specifications from requirements: an example. In: ICSE 1995: Proceedings of the 17th international conference on Software engineering, pp. 15–24, New York, NY, USA. ACM (1995)

    Google Scholar 

  14. Kephart, J.O., Chess, D.M.: The vision of autonomic computing. IEEE Comput. 36(1), 41–50 (2003)

    Article  Google Scholar 

  15. Kramer, J., Magee, J.: The evolving philosophers problem: dynamic change management. IEEE Trans. Softw. Eng. 16(11), 1293–1306 (1990)

    Article  Google Scholar 

  16. Kwiatkowska, M., Norman, G., Parker, D.: Prism 2.0: a tool for probabilistic model checking. In: Proceedings of First International Conference on the, Quantitative Evaluation of Systems, QEST 2004, pp. 322–323 (2004)

    Google Scholar 

  17. Lehman, M.M., Belady, L.A. (eds.): Program Evolution: Processes of Software Change. Academic Press Professional Inc., Cambridge (1985)

    Google Scholar 

  18. Ma, X., Baresi, L., Ghezzi, C., Manna, V.P.L., Lu, J.: Version-consistent dynamic reconfiguration of component-based distributed systems. In: ESEC/FSE 2011: The 19th ACM SIGSOFT Symposium on the Foundations of Software Engineering and the 13rd European Software Engineering Conference, pp. 245–255. ACM (2011)

    Google Scholar 

  19. Meyer, B.: Agile!: The Good, the Hype and the Ugly. Springer Science and Business Media, Berlin (2014)

    Book  Google Scholar 

  20. Vandewoude, Y., Ebraert, P., Berbers, Y., D’Hondt, T.: Tranquility: a low disruptive alternative to quiescence for ensuring safe dynamic updates. IEEE Trans. Softw. Eng. 33(12), 856–868 (2007)

    Article  Google Scholar 

  21. Zave, P., Jackson, M.: Four dark corners of requirements engineering. ACM Trans. Softw. Eng. Methodol. 6(1), 1–30 (1997)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Carlo Ghezzi .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing Switzerland

About this chapter

Cite this chapter

Ghezzi, C. (2016). Dependability of Adaptable and Evolvable Distributed Systems. In: Bernardo, M., De Nicola, R., Hillston, J. (eds) Formal Methods for the Quantitative Evaluation of Collective Adaptive Systems. SFM 2016. Lecture Notes in Computer Science(), vol 9700. Springer, Cham. https://doi.org/10.1007/978-3-319-34096-8_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-34096-8_2

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-34095-1

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

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics