Software Engineering for Self-Adaptive Systems: Research Challenges in the Provision of Assurances

  • Rogério de Lemos
  • David Garlan
  • Carlo Ghezzi
  • Holger Giese
  • Jesper Andersson
  • Marin Litoiu
  • Bradley Schmerl
  • Danny Weyns
  • Luciano Baresi
  • Nelly Bencomo
  • Yuriy Brun
  • Javier Camara
  • Radu Calinescu
  • Myra B. Cohen
  • Alessandra Gorla
  • Vincenzo Grassi
  • Lars Grunske
  • Paola Inverardi
  • Jean-Marc Jezequel
  • Sam Malek
  • Raffaela Mirandola
  • Marco Mori
  • Hausi A. Müller
  • Romain Rouvoy
  • Cecília M. F. Rubira
  • Eric Rutten
  • Mary Shaw
  • Giordano Tamburrelli
  • Gabriel Tamura
  • Norha M. Villegas
  • Thomas Vogel
  • Franco Zambonelli
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9640)

Abstract

The important concern for modern software systems is to become more cost-effective, while being versatile, flexible, resilient, dependable, energy-efficient, customisable, configurable and self-optimising when reacting to run-time changes that may occur within the system itself, its environment or requirements. One of the most promising approaches to achieving such properties is to equip software systems with self-managing capabilities using self-adaptation mechanisms. Despite recent advances in this area, one key aspect of self-adaptive systems that remains to be tackled in depth is the provision of assurances, i.e., the collection, analysis and synthesis of evidence that the system satisfies its stated functional and non-functional requirements during its operation in the presence of self-adaptation. The provision of assurances for self-adaptive systems is challenging since run-time changes introduce a high degree of uncertainty. This paper on research challenges complements previous roadmap papers on software engineering for self-adaptive systems covering a different set of topics, which are related to assurances, namely, perpetual assurances, composition and decomposition of assurances, and assurances obtained from control theory. This research challenges paper is one of the many results of the Dagstuhl Seminar 13511 on Software Engineering for Self-Adaptive Systems: Assurances which took place in December 2013.

References

  1. 1.
    Ali, R., Griggio, A., Franzén, A., Dalpiaz, F., Giorgini, P.: Optimizing monitoring requirements in self-adaptive systems. In: Bider, I., Halpin, T., Krogstie, J., Nurcan, S., Proper, E., Schmidt, R., Soffer, P., Wrycza, S. (eds.) BPMDS/EMMSAD -2012. LNBIP, vol. 113, pp. 362–377. Springer, Heidelberg (2012).  https://doi.org/10.1007/978-3-642-31072-0_25 CrossRefGoogle Scholar
  2. 2.
    Åström, K.J., Murray, R.M.: Feedback Systems. An iNtroduction for Scientists and Engineers (2008)Google Scholar
  3. 3.
    Åström, K., Wittenmark, B.: Adaptive Control. Addison-Wesley series in Electrical Engineering: Control Engineering. Addison-Wesley (1995)Google Scholar
  4. 4.
    Balzer, B., Litoiu, M., Müller, H., Smith, D., Storey, M.A., Tilley, S., Wong, K.: 4th international workshop on adoption-centric software engineering. In: Proceedings of the 26th International Conference on Software Engineering, ICSE 2004, pp. 748–749. IEEE Computer Society, Washington, DC (2004)Google Scholar
  5. 5.
    Blair, G., Bencomo, N., France, R.B.: Models@run.time. IEEE Comput. 42, 22–27 (2009)CrossRefGoogle Scholar
  6. 6.
    Blanchette, Jr., S.: Assurance cases for design analysis of complex system of systems software. Technical report, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, Pennsylvania, April 2009Google Scholar
  7. 7.
    Bloomfield, R., Bishop, P.: Safety and assurance cases: past, present and possible future-an Adelard perspective. In: Dale, C., Anderson, T. (eds.) Making Systems Safer, pp. 51–67. Springer, London (2010).  https://doi.org/10.1007/978-1-84996-086-1_4 CrossRefGoogle Scholar
  8. 8.
    Bloomfield, R., Peter, B., Jones, C., Froome, P.: ASCAD – Adelard Safety Case Development Manual. Adelard, 3 Coborn Road, London E3 2DA, UK (1998)Google Scholar
  9. 9.
    Brun, Y., Di Marzo Serugendo, G., Gacek, C., Giese, H., Kienle, H., Litoiu, M., Müller, H., Pezzè, M., Shaw, M.: Engineering self-adaptive systems through feedback loops. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Software Engineering for Self-Adaptive Systems. LNCS, vol. 5525, pp. 48–70. Springer, Heidelberg (2009).  https://doi.org/10.1007/978-3-642-02161-9_3 CrossRefGoogle Scholar
  10. 10.
    Calinescu, R., Grunske, L., Kwiatkowska, M., Mirandola, R., Tamburrelli, G.: Dynamic qos management and optimization in service-based systems. IEEE Trans. Softw. Eng. 37(3), 387–409 (2011)CrossRefGoogle Scholar
  11. 11.
    Casanova, P., Garlan, D., Schmerl, B., Abreu, R.: Diagnosing architectural run-time failures. In: Proceedings of the 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2013, pp. 103–112 (2013)Google Scholar
  12. 12.
    Casanova, P., Garlan, D., Schmerl, B., Abreu, R.: Diagnosing unobserved components in self-adaptive systems. In: Proceedings of the 9th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2014, pp. 75–84 (2014)Google Scholar
  13. 13.
    Checiu, L., Solomon, B., Ionescu, D., Litoiu, M., Iszlai, G.: Observability and controllability of autonomic computing systems for composed web services. In: Proceedings of the 6th IEEE International Symposium on Applied Computational Intelligence and Informatics, (SACI 2011), pp. 269–274. IEEE (2011)Google Scholar
  14. 14.
    Cheng, B.H.C., et al.: Software engineering for self-adaptive systems: a research roadmap. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Software Engineering for Self-Adaptive Systems. LNCS, vol. 5525, pp. 1–26. Springer, Heidelberg (2009).  https://doi.org/10.1007/978-3-642-02161-9_1 CrossRefGoogle Scholar
  15. 15.
    Cheng, B.H.C., et al.: Using models at runtime to address assurance for self-adaptive systems. In: Bencomo, N., France, R., Cheng, B.H.C., Aßmann, U. (eds.) Models@run.time. LNCS, vol. 8378, pp. 101–136. Springer, Cham (2014).  https://doi.org/10.1007/978-3-319-08915-7_4 CrossRefGoogle Scholar
  16. 16.
    Cheng, S.W., Garlan, D., Schmerl, B., Sousa, J.a.P., Spitznagel, B., Steenkiste, P.: Using architectural style as a basis for self-repair. In: Bosch, J., Gentleman, M., Hofmeister, C., Kuusela, J. (eds.) Proceedings of the 3rd Working IEEE/IFIP Conference on Software Architecture, 25–31 August 2002, pp. 45–59. Kluwer Academic Publishers (2002)Google Scholar
  17. 17.
    Dumont, G., Huzmezan, M.: Concepts, methods and techniques in adaptive control. IEEE American Control Conf. (ACC) 2, 1137–1150 (2002)Google Scholar
  18. 18.
    Esfahani, N., Malek, S.: Uncertainty in self-adaptive software systems. In: de Lemos, R., Giese, H., Müller, H.A., Shaw, M. (eds.) Software Engineering for Self-adaptive Systems II. LNCS, vol. 7475, pp. 214–238. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-35813-5_9 CrossRefGoogle Scholar
  19. 19.
    Filieri, A., Ghezzi, C., Tamburrelli, G.: Run-time efficient probabilistic model checking. In: 33rd International Conference on Software Engineering (ICSE), pp. 341–350, May 2011Google Scholar
  20. 20.
    Filieri, A., Tamburrelli, G.: Probabilistic verification at runtime for self-adaptive systems. In: Cámara, J., de Lemos, R., Ghezzi, C., Lopes, A. (eds.) Assurances for Self-Adaptive Systems. LNCS, vol. 7740, pp. 30–59. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-36249-1_2 CrossRefGoogle Scholar
  21. 21.
    Garlan, D.: Software engineering in an uncertain world. In: Proceedings of the FSE/SDP Workshop on Future of Software Engineering Research, FoSER 2010, pp. 125–128 (2010)Google Scholar
  22. 22.
    Hellerstein, J.L., Diao, Y., Parekh, S., Tilbury, D.M.: Feedback Control of Computing Systems. Wiley (2004)Google Scholar
  23. 23.
    IBM Corporation: An Architectural Blueprint for Autonomic Computing. IBM Corporation, Technical report (2006)Google Scholar
  24. 24.
    Iftikhar, M.U., Weyns, D.: Activforms: active formal models for self-adaptation. In: Proceedings of the 9th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2014, pp. 125–134 (2014)Google Scholar
  25. 25.
    Gil de la Iglesia, D., Weyns, D.: Guaranteeing robustness in a mobile learning application using formally verified MAPE loops. In: Proceedings of the 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2013, pp. 83–92 (2013)Google Scholar
  26. 26.
    Kelly, T.P.: Managing complex safety cases. In: Redmill, F., Anderson, T. (eds.) Current Issues in Safety-Critical Systems, pp. 99–115. Springer, London (2003).  https://doi.org/10.1007/978-1-4471-0653-1_6 CrossRefGoogle Scholar
  27. 27.
    Kephart, J.O., Chess, D.M.: The vision of autonomic computing. IEEE Comput. 36(1), 41–50 (2003)CrossRefGoogle Scholar
  28. 28.
    Kit, M., Gerostathopoulos, I., Bures, T., Hnetynka, P., Plasil, F.: An architecture framework for experimentations with self-adaptive cyber-physical systems. In: Proceedings of the 10th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2015, pp. 93–96 (2015)Google Scholar
  29. 29.
    Kramer, J., Magee, J.: Self-Managed Systems: an Architectural Challenge. In: FOSE 2007: 2007 Future of Software Engineering, pp. 259–268. IEEE Computer Society, Washington, DC (2007)Google Scholar
  30. 30.
    de Lemos, R., et al.: Software engineering for self-adaptive systems: a second research roadmap. In: de Lemos, R., Giese, H., Müller, H.A., Shaw, M. (eds.) Software Engineering for Self-adaptive Systems II. LNCS, vol. 7475, pp. 1–32. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-35813-5_1 CrossRefGoogle Scholar
  31. 31.
    Litoiu, M.: A performance analysis method for autonomic computing systems. ACM Trans. Auton. Adapt. Syst. 2(1), 3 (2007)CrossRefGoogle Scholar
  32. 32.
    Karsai, G., Ledeczi, A., Sztipanovits, J., Peceli, G., Simon, G., Kovacshazy, T.: An approach to self-adaptive software based on supervisory control. In: Laddaga, R., Shrobe, H., Robertson, P. (eds.) IWSAS 2001. LNCS, vol. 2614, pp. 24–38. Springer, Heidelberg (2003).  https://doi.org/10.1007/3-540-36554-0_3 CrossRefGoogle Scholar
  33. 33.
    Mahdavi-Hezavehi, S., Avgeriou, P., Weyns, D.: A classification framework of uncertainty in architecture-based self-adaptive systems with multiple quality requirements. In: Mistrik, I., Ali, N., Kazman, R., Grundy, J., Schmerl, B. (eds.) Managing Trade-Offs in Adaptable Software Architectures, pp. 45–77. Morgan Kaufmann, Boston (2017)CrossRefGoogle Scholar
  34. 34.
    Murray, R.M.: Control in an Information Rich World: Report of the Panel on Future Directions in Control, Dynamics, and Systems. SIAM (2003)Google Scholar
  35. 35.
    Perez-Palacin, D., Mirandola, R.: Uncertainties in the modeling of self-adaptive systems: a taxonomy and an example of availability evaluation. In: Proceedings of the 5th ACM/SPEC International Conference on Performance Engineering, ICPE 2014, pp. 3–14 (2014)Google Scholar
  36. 36.
    Redondo, R.P.D., Arias, J.J.P., Vilas, A.F.: Reusing verification information of incomplete specifications. In: Component-based Software Engineering Workshop, Lund, Sweden (2002)Google Scholar
  37. 37.
    Schmerl, B., et al.: Challenges in composing and decomposing assurances for self-adaptive systems. In: de Lemos, R., Garlan, D., Ghezzi, C., Giese, H. (eds.) Self-Adaptive Systems III. LNCS, vol. 9640, pp. 64–89. Springer, Heidelberg (2017)Google Scholar
  38. 38.
    Schmerl, B., Cámara, J., Gennari, J., Garlan, D., Casanova, P., Moreno, G.A., Glazier, T.J., Barnes, J.M.: Architecture-based self-protection: composing and reasoning about denial-of-service mitigations. In: HotSoS 2014: 2014 Symposium and Bootcamp on the Science of Security, 8–9 April 2014, Raleigh, NC, USA (2014)Google Scholar
  39. 39.
    Shibata, T., Fukuda, T.: Hierarchical intelligent control for robotic motion. IEEE Trans. Neural Networks 5(5), 823–832 (1994)CrossRefGoogle Scholar
  40. 40.
    Stoller, S.D., Bartocci, E., Seyster, J., Grosu, R., Havelund, K., Smolka, S.A., Zadok, E.: Runtime verification with state estimation. In: Khurshid, S., Sen, K. (eds.) RV 2011. LNCS, vol. 7186, pp. 193–207. Springer, Heidelberg (2012).  https://doi.org/10.1007/978-3-642-29860-8_15 CrossRefGoogle Scholar
  41. 41.
    Tamura, G., et al.: Towards practical runtime verification and validation of self-adaptive software systems. In: de Lemos, R., Giese, H., Müller, H.A., Shaw, M. (eds.) Software Engineering for Self-adaptive Systems II. LNCS, vol. 7475, pp. 108–132. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-35813-5_5 CrossRefGoogle Scholar
  42. 42.
    Villegas, N., Tamura, G., Müller, H.: Chapter 2 - Architecting software systems for runtime self-adaptation: concepts, models, and challenges. In: Mistrik, I., Ali, N., Kazman, R., Grundy, J., Schmerl, B. (eds.) Managing Trade-Offs in Adaptable Software Architectures, pp. 17–43. Morgan Kaufmann, Boston (2017)CrossRefGoogle Scholar
  43. 43.
    Villegas, N., Müller, H., Tamura, G., Duchien, L., Casallas, R.: A framework for evaluating quality-driven self-adaptive software systems. In: Proceedings of the 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2011), pp. 80–89. ACM (2011)Google Scholar
  44. 44.
    Villegas, N.M., Tamura, G., Müller, H.A., Duchien, L., Casallas, R.: DYNAMICO: a reference model for governing control objectives and context relevance in self-adaptive software systems. In: de Lemos, R., Giese, H., Müller, H.A., Shaw, M. (eds.) Software Engineering for Self-adaptive Systems II. LNCS, vol. 7475, pp. 265–293. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-35813-5_11 CrossRefGoogle Scholar
  45. 45.
    Vogel, T., Giese, H.: Model-driven engineering of self-adaptive software with EUREMA. ACM Trans. Auton. Adapt. Syst. 8(4), 18:1–18:33 (2014)CrossRefGoogle Scholar
  46. 46.
    Weyns, D., et al.: Perpetual assurances for self-adaptive systems. In: de Lemos, R., Garlan, D., Ghezzi, C., Giese, H. (eds.) Self-Adaptive Systems III. LNCS, vol. 9640, pp. 31–63. Springer, Heidelberg (2017)Google Scholar
  47. 47.
    Weyns, D., Calinescu, R.: Tele assistance: a self-adaptive service-based system examplar. In: Proceedings of the 10th International Symposium on Software Engineering for Adaptive and Self-managing Systems, SEAMS 2015, pp. 88–92. IEEE Press, Piscataway (2015)Google Scholar
  48. 48.
    Weyns, D., Iftikhar, M.U., de la Iglesia, D.G., Ahmad, T.: A survey of formal methods in self-adaptive systems. In: Proceedings of the Fifth International C* Conference on Computer Science and Software Engineering, C3S2E 2012, pp. 67–79(2012)Google Scholar
  49. 49.
    Weyns, D., Malek, S., Andersson, J.: FORMS: unifying reference model for formal specification of distributed self-adaptive systems. ACM Trans. Auton. Adapt. Syst. 7(1), 8:1–8:61 (2012)CrossRefGoogle Scholar
  50. 50.
    Ye, F., Kelly, T.: Contract-based justification for cots component within safety critical applications. In: Cant, T. (ed.) Ninth Australian Workshop on Safety-Related Programmable Systems (SCS 2004). CRPIT, vol. 47, pp. 13–22. ACS, Brisbane (2004)Google Scholar
  51. 51.
    Zhang, J., Cheng, B.H.: Using temporal logic to specify adaptive program semantics. J. Syst. Softw. 79(10), 1361–1369 (2006)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Rogério de Lemos
    • 1
  • David Garlan
    • 2
  • Carlo Ghezzi
    • 3
  • Holger Giese
    • 4
  • Jesper Andersson
  • Marin Litoiu
  • Bradley Schmerl
  • Danny Weyns
  • Luciano Baresi
  • Nelly Bencomo
  • Yuriy Brun
  • Javier Camara
  • Radu Calinescu
  • Myra B. Cohen
  • Alessandra Gorla
  • Vincenzo Grassi
  • Lars Grunske
  • Paola Inverardi
  • Jean-Marc Jezequel
  • Sam Malek
  • Raffaela Mirandola
  • Marco Mori
  • Hausi A. Müller
  • Romain Rouvoy
  • Cecília M. F. Rubira
  • Eric Rutten
  • Mary Shaw
  • Giordano Tamburrelli
  • Gabriel Tamura
  • Norha M. Villegas
  • Thomas Vogel
  • Franco Zambonelli
  1. 1.University of KentCanterburyUK
  2. 2.Carnegie Mellon UniversityPittsburghUSA
  3. 3.Politecnico di MilanoMilanoItaly
  4. 4.Hasso Plattner Institute for Software Systems EngineeringPotsdamGermany

Personalised recommendations