Engineering Self-Adaptive Systems through Feedback Loops

  • Yuriy Brun
  • Giovanna Di Marzo Serugendo
  • Cristina Gacek
  • Holger Giese
  • Holger Kienle
  • Marin Litoiu
  • Hausi Müller
  • Mauro Pezzè
  • Mary Shaw
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5525)


To deal with the increasing complexity of software systems and uncertainty of their environments, software engineers have turned to self-adaptivity. Self-adaptive systems are capable of dealing with a continuously changing environment and emerging requirements that may be unknown at design-time. However, building such systems cost-effectively and in a predictable manner is a major engineering challenge. In this paper, we explore the state-of-the-art in engineering self-adaptive systems and identify potential improvements in the design process.

Our most important finding is that in designing self-adaptive systems, the feedback loops that control self-adaptation must become first-class entities. We explore feedback loops from the perspective of control engineering and within existing self-adaptive systems in nature and biology. Finally, we identify the critical challenges our community must address to enable systematic and well-organized engineering of self-adaptive and self-managing software systems.


Feedback Loop Software Engineering Control Loop Multiagent System Autonomic Computing 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abelson, H., Allen, D., Coore, D., Hanson, C., Homsy, G., Thomas, F., Knight, J., Nagpal, R., Rauch, E., Sussman, G.J., Weiss, R.: Amorphous computing. Communications of the ACM 43(5), 74–82 (2000)CrossRefGoogle Scholar
  2. 2.
    Diao, Y., Hellerstein, J.L., Parekh, S., Griffith, R., Kaiser, G., Phung, D.: Control theory foundation for self-managing computing systems. IEEE Journal on Selected Areas in Communications 23(12), 2213–2222 (2005)CrossRefGoogle Scholar
  3. 3.
    Di Marzo-Serugendo, G., Gleizes, M.P., Karageorgos, A.: Self-organisation in MAS. Knowledge Engineering Review 20(2), 165–189 (2005)CrossRefzbMATHGoogle Scholar
  4. 4.
    Brun, Y., Medvidovic, N.: Fault and adversary tolerance as an emergent property of distributed systems’ software architectures. In: 2nd ACM International Workshop on Engineering Fault Tolerant Systems (EFTS 2007), Dubrovnik, Croatia, pp. 38–43 (2007)Google Scholar
  5. 5.
    Feiler, P., Gabriel, R.P., Goodenough, J., Linger, R., Longstaff, T., Kazman, R., Klein, M., Northrop, L., Schmidt, D., Sullivan, K., Wallnau, K.: Ultra-large-scale systems: The software challenge of the future. Technical report, Software Engineering Institute (2006),
  6. 6.
    Ottino, J.M.: Engineering complex systems. Nature 427(6973), 399–400 (2004)CrossRefGoogle Scholar
  7. 7.
    Brown, G., Cheng, B.H., Goldsby, H., Zhang, J.: Goal-oriented specification of adaptation requirements engineering in adaptive systems. In: ACM 2006 International Workshop on Self-Adaptation and Self-Managing Systems (SEAMS 2006), Shanghai, China, pp. 23–29 (2006)Google Scholar
  8. 8.
    Richter, U., Mnif, M., Branke, J., Müller-Schloer, C., Schmeck, H.: Towards a generic observer/controller architecture for organic computing. In: Hochberger, C., Liskowsky, R. (eds.) INFORMATIK 2006: Informatik für Menschen. GI-Edition – Lecture Notes in Informatics, vol. P-93, pp. 112–119. Gesellschaft für Informatik (2006)Google Scholar
  9. 9.
    Garlan, D., Cheng, S.W., Schmerl, B.: Increasing system dependability through architecture-based self-repair. In: de Lemos, R., Gacek, C., Romanovsky, A. (eds.) Architecting Dependable Systems. LNCS, vol. 2677. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  10. 10.
    Liu, H., Parashar, M.: Accord: a programming framework for autonomic applications. IEEE Transactions on Systems, Man, and Cybernetics 36(3), 341–352 (2006)CrossRefGoogle Scholar
  11. 11.
    Peper, C., Schneider, D.: Component engineering for adaptive ad-hoc systems. In: ACM 2008 International Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2008), Leipzig, Germany, pp. 49–56 (2008)Google Scholar
  12. 12.
    Tanner, J.A.: Feedback control in living prototypes: A new vista in control engineering. Medical and Biological Engineering and Computing 1(3), 333–351 (1963),
  13. 13.
    Hellerstein, J.L., Diao, Y., Parekh, S., Tilbury, D.M.: Feedback Control of Computing Systems. John Wiley & Sons, Chichester (2004)CrossRefGoogle Scholar
  14. 14.
    Magee, J., Kramer, J.: Dynamic structure in software architectures. In: 4th ACM SIGSOFT Symposium on Foundations of Software Engineering (FSE 1996), San Francisco, CA, USA, pp. 3–14. ACM Press, New York (1996)CrossRefGoogle Scholar
  15. 15.
    Oreizy, P., Gorlick, M.M., Taylor, R.N., Heimbigner, D., Johnson, G., Medvidovic, N., Quilici, A., Rosenblum, D.S., Wolf, A.L.: An architecture-based approach to self-adaptive software. IEEE Intelligent Systems 14(3), 54–62 (1999)CrossRefGoogle Scholar
  16. 16.
    Cheng, S.W., Garlan, D., Schmerl, B.: Making self-adaptation an engineering reality. In: Babaoğlu, Ö., Jelasity, M., Montresor, A., Fetzer, C., Leonardi, S., van Moorsel, A., van Steen, M. (eds.) SELF-STAR 2004. LNCS, vol. 3460, pp. 158–173. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  17. 17.
    Kramer, J., Magee, J.: Self-managed systems: An architectural challenge. In: Future of Software Engineering (FOSE 2007), Minneapolis, MN, USA, pp. 259–268. IEEE Computer Society, Los Alamitos (2007)CrossRefGoogle Scholar
  18. 18.
    Royce, W.W.: Managing the development of large software systems. In: 9th ACM/IEEE International Conference on Software Engineering (ICSE 1970), pp. 328–338 (1970)Google Scholar
  19. 19.
    Boehm, B.W.: A spiral model of software development and enhancement. IEEE Computer 21(5), 61–72 (1988)CrossRefGoogle Scholar
  20. 20.
    Lehman, M.M.: Software’s future: Managing evolution. IEEE Software 15(1), 40–44 (1998)CrossRefGoogle Scholar
  21. 21.
    Dobson, S., Denazis, S., Fernández, A., Gaïti, D., Gelenbe, E., Massacci, F., Nixon, P., Saffre, F., Schmidt, N., Zambonelli, F.: A survey of autonomic communications. ACM Transactions Autonomous Adaptive Systems (TAAS) 1(2), 223–259 (2006)CrossRefGoogle Scholar
  22. 22.
    Nilsson, N.J.: Principles of Artificial Intelligence. Tioga Press, Palo Alto (1980)zbMATHGoogle Scholar
  23. 23.
    Gat, E.: Three-layer Architectures, pp. 195–210. MIT/AAAI Press, Cambridge (1997)Google Scholar
  24. 24.
    Burns, R.: Advanced Control Engineering. Butterworth-Heinemann (2001)Google Scholar
  25. 25.
    Dorf, R.C., Bishop, R.H.: Modern Control Systems, 10th edn. Prentice-Hall, Englewood Cliffs (2005)zbMATHGoogle Scholar
  26. 26.
    Müller, H.A., Pezzè, M., Shaw, M.: Visibility of control in adaptive systems. In: Second International Workshop on Ultra-Large-Scale Software-Intensive Systems (ULSSIS 2008), Workshop at 30th IEEE/ACM International Conference on Software Engineering (ICSE 2008), Leipzig, Germany (May 2008)Google Scholar
  27. 27.
    Astrom, K., Wittenmark, B.: Adaptive Control, 2nd edn. Addison-Wesley, Reading (1995)Google Scholar
  28. 28.
    Söderström, T., Stoica, P.: System Identification. Prentice-Hall, Englewood Cliffs (1988)zbMATHGoogle Scholar
  29. 29.
    Dumont, G., Huzmezan, M.: Concepts, methods and techniques in adaptive control. In: 2002 IEEE American Control Conference (ACC 2002), Anchorage, AK, USA, vol. 2, pp. 1137–1150 (2002)Google Scholar
  30. 30.
    Kokar, M.M., Baclawski, K., Eracar, Y.A.: Control theory-based foundations of self-controlling software. IEEE Intelligent Systems 14(3), 37–45 (1999)CrossRefGoogle Scholar
  31. 31.
    McKinley, P.K., Sadjadi, M., Kasten, E.P., Cheng, B.H.: Composing adaptive software. IEEE Computer 37(7), 56–64 (2004)CrossRefGoogle Scholar
  32. 32.
    Brittenham, P., Cutlip, R.R., Draper, C., Miller, B.A., Choudhary, S., Perazolo, M.: IT service management architecture and autonomic computing. IBM Systems Journal 46(3), 565–581 (2007)CrossRefGoogle Scholar
  33. 33.
    Kephart, J.O., Chess, D.M.: The vision of autonomic computing. IEEE Computer 36(1), 41–50 (2003)CrossRefGoogle Scholar
  34. 34.
    IBM Corporation: An architectural blueprint for autonomic computing. White Paper, 4th edn., IBM Corporation,
  35. 35.
    Shaw, M.: Beyond objects. ACM SIGSOFT Software Engineering Notes (SEN) 20(1), 27–38 (1995)CrossRefGoogle Scholar
  36. 36.
    Müller, H.A., Kienle, H.M., Stege, U.: Autonomic computing: Now you see it, now you don’t. In: Lucia, A.D., Ferrucci, F. (eds.) Software Engineering: International Summer Schools, ISSSE 2006-2008, Salerno, Italy, Revised Tutorial Lectures. LNCS, vol. 5413, pp. 32–54. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  37. 37.
    Litoiu, M., Woodside, M., Zheng, T.: Hierarchical model-based autonomic control of software systems. In: ACM ICSE Workshop on Design and Evolution of Autonomic Software, St. Louis, MO, USA, pp. 1–7 (2005)Google Scholar
  38. 38.
    Litoiu, M., Mihaescu, M., Ionescu, D., Solomon, B.: Scalable adaptive web services. In: Development for Service Oriented Architectures (SD-SOA 2008), Workshop at 30th IEEE/ACM International Conference on Software Engineering (ICSE 2008), Leipzig, Germany (2008)Google Scholar
  39. 39.
    Burmester, S., Giese, H., Münch, E., Oberschelp, O., Klein, F., Scheideler, P.: Tool support for the design of self-optimizing mechatronic multi-agent systems. International Journal on Software Tools for Technology Transfer (STTT) 10(3) (2008)Google Scholar
  40. 40.
    Brun, Y., Medvidovic, N.: An architectural style for solving computationally intensive problems on large networks. In: Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2007), Workshop at 29th IEEE/ACM International Conference on Software Engineering (ICSE 2007), Minneapolis, MN, USA (2007)Google Scholar
  41. 41.
    Di Marzo-Serugendo, G., Fitzgerald, J., Romanovsky, A., Guelfi, N.: A generic framework for the engineering of self-adaptive and self-organising systems. Technical report, School of Computer Science, University of Newcastle, Newcastle, UK (2007)Google Scholar
  42. 42.
    Nagpal, R.: Programmable Self-Assembly: Constructing Global Shape Using Biologically-Inspired Local Interactions and Origami Mathematics. PhD thesis, Massachusetts Institute of Technology, Cambridge, MA, USA (2001)Google Scholar
  43. 43.
    Clement, L., Nagpal, R.: Self-assembly and self-repairing topologies. In: Workshop on Adaptability in Multi-Agent Systems, First RoboCup Australian Open (AORC 2003), Sydney, Australia (2003)Google Scholar
  44. 44.
    Shen, W.M., Krivokon, M., Chiu, H., Everist, J., Rubenstein, M., Venkatesh, J.: Multimode locomotion via superbot reconfigurable robots. Autonomous Robots 20(2), 165–177 (2006)CrossRefGoogle Scholar
  45. 45.
    Sauter, J.A., Matthews, R., Parunak, H.V.D., Brueckner, S.A.: Performance of digital pheromones for swarming vehicle control. In: 4th International Joint Conference on Autonomous Agents and Multiagent Systems (AAMAS 2005), The Netherlands, pp. 903–910. ACM, New York (2005)CrossRefGoogle Scholar
  46. 46.
    Hofmeyr, S., Forrest, S.: Immunity by design: An artificial immune system. In: Genetic and Evolutionary Computation Conference (GECCO 1999), Orlando, Florida, USA, pp. 1289–1296. Morgan-Kaufmann, San Francisco (1999)Google Scholar
  47. 47.
    Klein, M., Kazman, R.: Attribute-based architectural styles. Technical Report CMU/SEI-99-TR-022, Software Engineering Institute (SEI) (1999),
  48. 48.
    Zhu, Q., Lin, L., Kienle, H.M., Müller, H.A.: Characterizing maintainability concerns in autonomic element design. In: 24th IEEE International Conference on Software Maintenance (ICSM 2008), Beijing, China, pp. 197–206 (2008)Google Scholar
  49. 49.
    Andersson, J., de Lemos, R., Malek, S., Weyns, D.: Reflecting on self-adaptive software systems. In: 2009 International Workshop on Self-Adaptation and Self-Managing Systems (SEAMS 2009), Vancouver, BC, Canada (to be published, 2009)Google Scholar
  50. 50.
    Babaoglu, Ö., Jelasity, M., Montresor, A., Fetzer, C., Leonardi, S., van Moorsel, A.P.A.: The self-star vision. In: Babaoğlu, Ö., Jelasity, M., Montresor, A., Fetzer, C., Leonardi, S., van Moorsel, A., van Steen, M. (eds.) SELF-STAR 2004. LNCS, vol. 3460, pp. 1–20. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  51. 51.
    Passino, K.M., Burgess, K.L.: Stability analysis of discrete event systems. Adaptive and Learning Systems for Signal Processing Communications, and Control. John Wiley & Sons, Inc., New York (1998)Google Scholar
  52. 52.
    Liberzon, D., Morse, A.: Basic problems in stability and design of switched systems. IEEE Control Systems Magazine 19(5), 59–70 (1999)CrossRefGoogle Scholar
  53. 53.
    Decarlo, R.A., Branicky, M.S., Pettersson, S., Lennartson, B.: Perspectives and Results on the Stability and Stabilizability of Hybrid Systems. Proceedings of the IEEE 88(7), 1069–1082 (2000)CrossRefGoogle Scholar
  54. 54.
    Lightstone, S.: Seven software engineering principles for autonomic computing development. Innovations in Systems and Software Engineering 3(1), 71–74 (2007)CrossRefGoogle Scholar
  55. 55.
    Sackmann, S., Strüker, J., Accorsi, R.: Personalization in privacy-aware highly dynamic systems. Communications of the ACM 49(9), 32–38 (2006)CrossRefGoogle Scholar
  56. 56.
    Cheng, B.H., de Lemos, R., Giese, H., et al.: Software engineering for self-adaptive systems: A research roadmap. In: Cheng, B.H., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Software Engineering for Self-Adaptive Systems. LNCS, vol. 5525. Springer, Heidelberg (2009)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Yuriy Brun
    • 1
  • Giovanna Di Marzo Serugendo
    • 2
  • Cristina Gacek
    • 3
  • Holger Giese
    • 4
  • Holger Kienle
    • 5
  • Marin Litoiu
    • 6
  • Hausi Müller
    • 5
  • Mauro Pezzè
    • 7
  • Mary Shaw
    • 8
  1. 1.University of Southern CaliforniaLos AngelesUSA
  2. 2.Birkbeck, University of LondonLondonUK
  3. 3.University of Newcastle upon TyneNewcastle upon TyneUK
  4. 4.Hasso Plattner Institute at the University of PotsdamGermany
  5. 5.University of VictoriaBritish ColumbiaCanada
  6. 6.York University and IBM Canada Ltd.Canada
  7. 7.University of Milano Bicocca, Italy and University of LuganoSwitzerland
  8. 8.Carnegie Mellon UniversityPittsburghUSA

Personalised recommendations