Skip to main content

Software Engineering of Self-adaptive Systems

  • Chapter
  • First Online:

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.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   169.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD   219.99
Price excludes VAT (USA)
  • Durable hardcover 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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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)

    Chapter  Google Scholar 

  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. Baldauf, M., Dustdar, S., Rosenberg, F.: A survey on context-aware systems. Int. J. Ad Hoc Ubiquit. Comput. 2(4), 263–277 (2007)

    Article  Google Scholar 

  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. 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. 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)

    Chapter  Google Scholar 

  7. Blair, G., Bencomo, N., France, R.B.: Models@run.time. Computer 42(10), 22–27 (2009)

    Article  Google Scholar 

  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)

    Article  Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  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)

    Article  Google Scholar 

  12. Cachin, C.: Architecture of the Hyperledger Blockchain Fabric. IBM Research, Zurich (2016)

    Google Scholar 

  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)

    Article  Google Scholar 

  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. 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. Cheng, S., Garlan, D.: Stitch: a language for architecture-based self-adaptation. J. Syst. Softw. 85(12), 2860–2875 (2012)

    Article  Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  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. 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. 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. 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. 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. 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. 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. 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. Esfahani, N., Malek, S.: Uncertainty in self-adaptive software systems. In: Software Engineering for Self-adaptive Systems II, pp. 214–238. Springer, Berlin (2013)

    Chapter  Google Scholar 

  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. 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. Garlan, D., Cheng, S., Huang, A., Schmerl, B., Steenkiste, P.: Rainbow: architecture-based self-adaptation with reusable infrastructure. Computer 37(10), 46–54 (2004)

    Article  Google Scholar 

  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. Hakansson, A.: Artificial intelligence in smart sustainable societies. In: Software Technology Exchange Workshop, STEW. Swedsoft, Sweden (2017)

    Google Scholar 

  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. Hellerstein, J., Diao, Y., Parekh, S., Tilbury, D.: Feedback Control of Computing Systems. Wiley, Hoboken (2004)

    Book  Google Scholar 

  35. Herlihy, M.: Blockchains from a Distributed Computing Perspective. Brown University (2018)

    Google Scholar 

  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. 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. Jackson, M.: The meaning of requirements. Ann. Softw. Eng. 3, 5–21 (1997)

    Article  Google Scholar 

  39. Kephart, J., Chess, D.: The vision of autonomic computing. Computer 36(1), 41–50 (2003)

    Article  MathSciNet  Google Scholar 

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

    Article  Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

    Article  Google Scholar 

  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. 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. 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. 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. 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. 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. Redwine, S., Riddle, W.: Software technology maturation. In: International Conference on Software Engineering, ICSE ’85. IEEE Computer Society Press, Washington (1985)

    Google Scholar 

  52. Salehie, M., Tahvildari, L.: Self-adaptive software: landscape and research challenges. Trans. Auton. Adaptive Syst. 4, 14:1–14:42 (2009)

    Article  Google Scholar 

  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. 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)

    Article  Google Scholar 

  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. Silva Souza, V., Lapouchnian, A., Angelopoulos, K., Mylopoulos, J.: Requirements-driven software evolution. Comput. Sci. Res. Dev. 28(4), 311–329 (2013)

    Article  Google Scholar 

  57. van Lamsweerde, A., Darimont, R., Letier, E.: Managing conflicts in goal-driven requirements engineering. IEEE Trans. Softw. Eng. 24(11), 908–926 (1998)

    Article  Google Scholar 

  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)

    Article  Google Scholar 

  59. Weyns, D., Ahmad, T.: Claims and Evidence for Architecture-Based Self-adaptation: A Systematic Literature Review, pp. 249–265. Springer, Berlin (2013)

    Chapter  Google Scholar 

  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. 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)

    Article  Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  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 

Download references

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.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Danny Weyns .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Weyns, D. (2019). Software Engineering of Self-adaptive Systems. In: Cha, S., Taylor, R., Kang, K. (eds) Handbook of Software Engineering. Springer, Cham. https://doi.org/10.1007/978-3-030-00262-6_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-00262-6_11

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-00261-9

  • Online ISBN: 978-3-030-00262-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics