Advertisement

Software Engineering of Self-adaptive Systems

  • Danny WeynsEmail author
Chapter

Abstract

Modern software systems are expected to operate under uncertain conditions, without interruption. Possible causes of uncertainties include changes in the operational environment, dynamics in the availability of resources, and variations of user goals. The aim of self-adaptation is to let the system collect additional data about the uncertainties during operation. The system uses the additional data to resolve uncertainties, to reason about itself, and based on its goals to reconfigure or adjust itself to satisfy the changing conditions, or if necessary to degrade gracefully. In this chapter, we provide a particular perspective on the evolution of the field of self-adaptation in six waves. These waves put complementary aspects of engineering self-adaptive systems in focus that synergistically have contributed to the current knowledge in the field. From the presented perspective on the field, we outline a number of challenges for future research in self-adaptation, both in a short and long term.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Notes

Acknowledgements

I am grateful to Sungdeok Cha, Kenji Tei, Nelly Bencomo, Vitor Souza, Usman Iftikhar, Stepan Shevtsov, and Dimitri Van Landuyt for the invaluable feedback they provided on earlier versions of this chapter. I thank the editors of the book to which this chapter belongs for their support. Finally, I thank Springer.

References

  1. 1.
    Andersson, J., De Lemos, R., Malek, S., Weyns, D.: Modelling dimensions of self-adaptive software systems. In: Software Engineering for Self-adaptive Systems. Lecture Notes in Computer Science, vol. 5525. Springer, Berlin (2009)CrossRefGoogle Scholar
  2. 2.
    Andersson, J., de Lemos, R., Malek, S., Weyns, D.: Reflecting on self-adaptive software systems. In: Software Engineering for Adaptive and Self-Managing Systems, SEAMS ’09. IEEE Computer Society, Washington (2009)Google Scholar
  3. 3.
    Baldauf, M., Dustdar, S., Rosenberg, F.: A survey on context-aware systems. Int. J. Ad Hoc Ubiquit. Comput. 2(4), 263–277 (2007)CrossRefGoogle Scholar
  4. 4.
    Baresi, L., Ghezzi, C.: The disappearing boundary between development-time and run-time. In: Workshop on Future of Software Engineering Research, FoSER ’10. ACM, New York (2010)Google Scholar
  5. 5.
    Baresi, L., Pasquale, L., Spoletini, P.: Fuzzy goals for requirements-driven adaptation. In: International Requirements Engineering Conference, RE ’10. IEEE Computer Society, Washington (2010)Google Scholar
  6. 6.
    Bencomo, N., Belaggoun, A.: Supporting decision-making for self-adaptive systems: from goal models to dynamic decision networks. In: International Working Conference on Requirements Engineering: Foundation for Software Quality, REFSQ ’13. Springer, Berlin (2013)CrossRefGoogle Scholar
  7. 7.
    Blair, G., Bencomo, N., France, R.B.: Models@run.time. Computer 42(10), 22–27 (2009)CrossRefGoogle Scholar
  8. 8.
    Bojke, L., Claxton, K., Sculpher, M., Palmer, S.: Characterizing structural uncertainty in decision analytic models: a review and application of methods. Value Health 12(5), 739–749 (2009)CrossRefGoogle Scholar
  9. 9.
    Brun, Y.: Improving impact of self-adaptation and self-management research through evaluation methodology. In: Software Engineering for Adaptive and Self-managing Systems, SEAMS ’10. ACM, New York (2010)Google Scholar
  10. 10.
    Brun, Y., 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: Software Engineering for Self-adaptive Systems, pp. 48–70. Springer, Berlin (2009)CrossRefGoogle Scholar
  11. 11.
    Bures, T., Weyns, D., Berger, C., Biffl, S., Daun, M., Gabor, T., Garlan, D., Gerostathopoulos, I., Julien, C., Krikava, F., Mordinyi, R., Pronios, N.: Software engineering for smart cyber-physical systems – towards a research agenda. SIGSOFT Softw. Eng. Notes 40(6), 28–32 (2015)CrossRefGoogle Scholar
  12. 12.
    Cachin, C.: Architecture of the Hyperledger Blockchain Fabric. IBM Research, Zurich (2016)Google Scholar
  13. 13.
    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
  14. 14.
    Calinescu, R., Gerasimou, S., Banks, A.: Self-adaptive software with decentralised control loops. In: International Conference on Fundamental Approaches to Software Engineering, FASE ’15. Springer, Berlin (2015)Google Scholar
  15. 15.
    Cámara, J., Correia, P., De Lemos, R., Garlan, D., Gomes, P., Schmerl, B., Ventura, R.: Evolving an adaptive industrial software system to use architecture-based self-adaptation. In: Proceedings of the 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS ’13, pp. 13–22. IEEE Press, Piscataway (2013)Google Scholar
  16. 16.
    Cheng, S., Garlan, D.: Stitch: a language for architecture-based self-adaptation. J. Syst. Softw. 85(12), 2860–2875 (2012)CrossRefGoogle Scholar
  17. 17.
    Cheng, B., de Lemos, R., Giese, H., Inverardi, P., Magee, J., Andersson, J., Becker, B., Bencomo, N., Brun, Y., Cukic, B., Di Marzo Serugendo, G., Dustdar, S., Finkelstein, A., Gacek, C., Geihs, K., Grassi, V., Karsai, G., Kienle, H., Kramer, J., Litoiu, M., Malek, S., Mirandola, R., Müller, H., Park, S., Shaw, M., Tichy, M., Tivoli, M., Weyns, D., Whittle, J.: Software Engineering for Self-adaptive Systems: A Research Roadmap. Lecture Notes in Computer Science, vol. 5525. Springer, Berlin (2009)CrossRefGoogle Scholar
  18. 18.
    Cheng, B., Sawyer, P., Bencomo, N., Whittle, J.: A goal-based modelling approach to develop requirements of an adaptive system with environmental uncertainty. In: International Conference on Model Driven Engineering Languages and Systems, MODELS ’09. Springer, Berlin (2009)CrossRefGoogle Scholar
  19. 19.
    Croman, K., Decker, C., Eyal, I., Gencer, A.E., Juels, A., Kosba, A., Miller, A., Saxena, P., Shi, E., Gün Sirer, E., Song, D., Wattenhofer, R.: On scaling decentralized blockchains. In: Clark, J., Meiklejohn, S., Ryan, P.Y.A., Wallach, D., Brenner, M., Rohloff, K. (eds.) Financial Cryptography and Data Security. Springer, Berlin (2016)Google Scholar
  20. 20.
    da Silva, C.E., da Silva, J.D.S., Paterson, C., Calinescu, R.: Self-adaptive role-based access control for business processes. In: Proceedings of the 12th International Symposium on Software Engineering for Adaptive and Self-managing Systems, SEAMS ’17, pp. 193–203. IEEE Press, Piscataway (2017)Google Scholar
  21. 21.
    de Lemos, R., Giese, H., Müller, H., Shaw, M., Andersson, J., Litoiu, M., Schmerl, B., Tamura, G., Villegas, N., Vogel, T., Weyns, D., Baresi, L., Becker, B., Bencomo, N., Brun, Y., Cukic, B., Desmarais, R., Dustdar, S., Engels, G., Geihs, K., Göschka, K., Gorla, A., Grassi, V., Inverardi, P., Karsai, G., Kramer, J., Lopes, A., Magee, J., Malek, S., Mankovskii, S., Mirandola, R., Mylopoulos, J., Nierstrasz, O., Pezzè, M., Prehofer, C., Schäfer, W., Schlichting, R., Smith, D., Sousa, J., Tahvildari, L., Wong, K., Wuttke, J.: Software Engineering for Self-adaptive Systems: A Second Research Roadmap. Lecture Notes in Computer Science, vol. 7475. Springer, Heidelberg (2013)Google Scholar
  22. 22.
    de Lemos, R., Garlan, D., Ghezzi, C., Giese, H., Andersson, J., Litoiu, M., Schmerl, B., Weyns, D., Baresi, L., Bencomo, N., Brun, Y., Camara, J., Calinescu, R., Chohen, M., Gorla, A., Grassi, V., Grunske, L., Inverardi, P., Jezequel, J.M., Malek, S., Mirandola, R., Mori, M., Müller, H., Rouvoy, R., Rubira, C., Rutten, E., Shaw, M., Tamburrelli, R., Tamura, G., Villegas, N., Vogel, T., Zambonelli, F.: Software Engineering for Self-adaptive Systems: Research Challenges in the Provision of Assurances. Lecture Notes in Computer Science, vol. 9640. Springer, Berlin (2017)Google Scholar
  23. 23.
    De Wolf, T., Holvoet, T.: Emergence versus Self-organisation: different concepts but promising when combined. In: Engineering Self-organising Systems: Methodologies and Applications, pp. 1–15. Springer, Berlin (2005)Google Scholar
  24. 24.
    Diniz, P.C., Rinard, M.C.: Dynamic feedback: an effective technique for adaptive computing. In: Conference on Programming Language Design and Implementation, PLDI ’97. ACM, New York (1997)Google Scholar
  25. 25.
    Dustdar, S., Nastic, S., Scekic, O.: A novel vision of cyber-human smart city. In: 2016 Fourth IEEE Workshop on Hot Topics in Web Systems and Technologies (HotWeb), pp. 42–47 (2016)Google Scholar
  26. 26.
    Edwards, G., Garcia, J., Tajalli, H., Popescu, D., Medvidovic, N., Sukhatme, G., Petrus, B.: Architecture-driven self-adaptation and self-management in robotics systems. In: Software Engineering for Adaptive and Self-managing Systems, SEAMS ’09. IEEE, Piscataway (2009)Google Scholar
  27. 27.
    Esfahani, N., Malek, S.: Uncertainty in self-adaptive software systems. In: Software Engineering for Self-adaptive Systems II, pp. 214–238. Springer, Berlin (2013)CrossRefGoogle Scholar
  28. 28.
    Filieri, A., Hoffmann, H., Maggio, M.: Automated design of self-adaptive software with control-theoretical formal guarantees. In: International Conference on Software Engineering, ICSE ’14. ACM, New York (2014)Google Scholar
  29. 29.
    Filieri, A., Hoffmann, H., Maggio, M.: Automated multi-objective control for self-adaptive software design. In: Joint Meeting on Foundations of Software Engineering, ESEC/FSE ’15. ACM, New York (2015)Google Scholar
  30. 30.
    Garlan, D., Cheng, S., Huang, A., Schmerl, B., Steenkiste, P.: Rainbow: architecture-based self-adaptation with reusable infrastructure. Computer 37(10), 46–54 (2004)CrossRefGoogle Scholar
  31. 31.
    Gil, D., Weyns, D.: MAPE-K formal templates to rigorously design behaviors for self-adaptive systems. ACM Trans. Auton. Adapt. Syst. 10(3), 15:1–15:31 (2015)Google Scholar
  32. 32.
    Hakansson, A.: Artificial intelligence in smart sustainable societies. In: Software Technology Exchange Workshop, STEW. Swedsoft, Sweden (2017)Google Scholar
  33. 33.
    Harman, M.: The role of artificial intelligence in software engineering. In: Realizing AI Synergies in Software Engineering, RAISE ’12. IEEE Press, Piscataway (2012)Google Scholar
  34. 34.
    Hellerstein, J., Diao, Y., Parekh, S., Tilbury, D.: Feedback Control of Computing Systems. Wiley, Hoboken (2004)CrossRefGoogle Scholar
  35. 35.
    Herlihy, M.: Blockchains from a Distributed Computing Perspective. Brown University (2018)Google Scholar
  36. 36.
    IBM Corporation: An Architectural Blueprint for Autonomic Computing. IBM White Paper (2003). http://www-03.ibm.com/autonomic/pdfs/, AC Blueprint White Paper V7.pdf (Last Accessed Jan 2017)
  37. 37.
    Iftikhar, U., Weyns, D.: ActivFORMS: active formal models for self-adaptation. In: Software Engineering for Adaptive and Self-managing Systems, SEAMS ’14. ACM, New York (2014)Google Scholar
  38. 38.
    Jackson, M.: The meaning of requirements. Ann. Softw. Eng. 3, 5–21 (1997)CrossRefGoogle Scholar
  39. 39.
    Kephart, J., Chess, D.: The vision of autonomic computing. Computer 36(1), 41–50 (2003)MathSciNetCrossRefGoogle Scholar
  40. 40.
    Kramer, J., Magee, J.: The evolving philosophers problem: dynamic change management. IEEE Trans. Softw. Eng. 16(11), 1293–1306 (1990)CrossRefGoogle Scholar
  41. 41.
    Kramer, J., Magee, J.: Self-managed systems: an architectural challenge. In: Future of Software Engineering, FOSE ’07. IEEE Computer Society, Washington (2007)Google Scholar
  42. 42.
    Kwiatkowska, M., Norman, G., Parker, D.: Probabilistic symbolic model checking with prism: a hybrid approach. In: Tools and Algorithms for the Construction and Analysis of Systems, TACAS ’02. Springer, Berlin (2002)CrossRefGoogle Scholar
  43. 43.
    Mahdavi-Hezavehi, S., Avgeriou, P., Weyns, D.: A classification of current architecture-based approaches tackling uncertainty in self-adaptive systems with multiple requirements. In: Managing Trade-offs in Adaptable Software Architectures. Elsevier, New York (2016)CrossRefGoogle Scholar
  44. 44.
    Morin, B., Barais, O., Jezequel, J.M., Fleurey, F., Solberg, A.: Models at runtime to support dynamic adaptation. IEEE Comput. 42(10), 44–51 (2009)CrossRefGoogle Scholar
  45. 45.
    Naur, P., Randell, B.: Software Engineering: Report of a Conference Sponsored by the NATO Science Committee. Brussels, Scientific Affairs Division, NATO, Brussels (1968)Google Scholar
  46. 46.
    Norvig, P.: Artificial Intelligence in the Software Engineering Workflow. Google, Mountain View (2017). See: https://www.youtube.com/watch?v=mJHvE2JLN3Q and https://www.youtube.com/watch?v=FmHLpraT-XY
  47. 47.
    Oreizy, P., Medvidovic, N., Taylor, R.: Architecture-based runtime software evolution. In: International Conference on Software Engineering, ICSE ’98. IEEE Computer Society, Washington (1998)Google Scholar
  48. 48.
    Ortiz, Ó., García, A.B., Capilla, R., Bosch, J., Hinchey, M.: Runtime variability for dynamic reconfiguration in wireless sensor network product lines. In: 16th International Software Product Line Conference - Volume 2. ACM, New York (2012)Google Scholar
  49. 49.
    Patikirikorala, T., Colman, A., Han, J., Liuping, W.: A systematic survey on the design of self-adaptive software systems using control engineering approaches. In: Software Engineering for Adaptive and Self-managing Systems, SEAMS ’12 (2012)Google Scholar
  50. 50.
    Perez-Palacin, D., Mirandola, R.: Uncertainties in the modelling of self-adaptive systems: a taxonomy and an example of availability evaluation. In: International Conference on Performance Engineering, ICPE ’14 (2014)Google Scholar
  51. 51.
    Redwine, S., Riddle, W.: Software technology maturation. In: International Conference on Software Engineering, ICSE ’85. IEEE Computer Society Press, Washington (1985)Google Scholar
  52. 52.
    Salehie, M., Tahvildari, L.: Self-adaptive software: landscape and research challenges. Trans. Auton. Adaptive Syst. 4, 14:1–14:42 (2009)CrossRefGoogle Scholar
  53. 53.
    Shevtsov, S., Weyns, D.: Keep it SIMPLEX: satisfying multiple goals with guarantees in control-based self-adaptive systems. In: International Symposium on the Foundations of Software Engineering, FSE ’16 (2016)Google Scholar
  54. 54.
    Shevtsov, S., Berekmeri, M., Weyns, D., Maggio, M.: Control-theoretical software adaptation: a systematic literature review. IEEE Trans. Softw. Eng. 44(8), 784–810 (2017)CrossRefGoogle Scholar
  55. 55.
    Silva Souza, V., Lapouchnian, A., Robinson, W., Mylopoulos, J.: Awareness requirements for adaptive systems. In: Software Engineering for Adaptive and Self-managing Systems, SEAMS ’11. ACM, New York (2011)Google Scholar
  56. 56.
    Silva Souza, V., Lapouchnian, A., Angelopoulos, K., Mylopoulos, J.: Requirements-driven software evolution. Comput. Sci. Res. Dev. 28(4), 311–329 (2013)CrossRefGoogle Scholar
  57. 57.
    van Lamsweerde, A., Darimont, R., Letier, E.: Managing conflicts in goal-driven requirements engineering. IEEE Trans. Softw. Eng. 24(11), 908–926 (1998)CrossRefGoogle Scholar
  58. 58.
    Vogel, T., Giese, H.: Model-driven engineering of self-adaptive software with EUREMA. ACM Trans. Auton. Adaptive Syst. 8(4), 18:1–18:33 (2014)CrossRefGoogle Scholar
  59. 59.
    Weyns, D., Ahmad, T.: Claims and Evidence for Architecture-Based Self-adaptation: A Systematic Literature Review, pp. 249–265. Springer, Berlin (2013)CrossRefGoogle Scholar
  60. 60.
    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 ’15, pp. 88–92. IEEE Press, Piscataway (2015)Google Scholar
  61. 61.
    Weyns, D., Malek, S., Andersson, J.: FORMS: unifying reference model for formal specification of distributed self-adaptive systems. ACM Trans. Auton. Adaptive Syst. 7(1), 8:1–8:61 (2012)CrossRefGoogle Scholar
  62. 62.
    Weyns, D., Iftikhar, U., Söderlund, J.: Do external feedback loops improve the design of self-adaptive systems? A controlled experiment. In: International Symposium on Software Engineering of Self-managing and Adaptive Systems, SEAMS ’13 (2013)Google Scholar
  63. 63.
    Weyns, D., Schmerl, B., Grassi, V., Malek, S., Mirandola, R., Prehofer, C., Wuttke, J., Andersson, J., Giese, H., Göschka, K.: On patterns for decentralized control in self-adaptive systems. In: Software Engineering for Self-adaptive Systems II, pp. 76–107. Springer, Berlin (2013)CrossRefGoogle Scholar
  64. 64.
    Weyns, D., Bencomo, N., Calinescu, R., Cámara, J., Ghezzi, C., Grassi, V., Grunske, L., Inverardi, P., Jezequel, J.M., Malek, S., Mirandola, R., Mori, M., Tamburrelli, G.: Perpetual assurances in self-adaptive systems. In: Software Engineering for Self-adaptive Systems. Lecture Notes in Computer Science, vol. 9640. Springer, Berlin (2016)Google Scholar
  65. 65.
    Weyns, D., Usman Iftikhar, M., Hughes, D., Matthys, N.: Applying architecture-based adaptation to automate the management of internet-of-things. In: European Conference on Software Architecture. Lecture Notes in Computer Science. Springer, Berlin (2018)CrossRefGoogle Scholar
  66. 66.
    Whittle, J., Sawyer, P., Bencomo, N., Cheng, B., Bruel, J.M.: RELAX: incorporating uncertainty into the specification of self-adaptive systems. In: IEEE International Requirements Engineering Conference, RE’09. IEEE Computer Society, Washington (2009)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.Katholieke Universiteit LeuvenLeuvenBelgium
  2. 2.Linnaeus UniversityVäxjöSweden

Personalised recommendations