Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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)
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)
Di Marzo-Serugendo, G., Gleizes, M.P., Karageorgos, A.: Self-organisation in MAS. Knowledge Engineering Review 20(2), 165–189 (2005)
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)
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), http://www.sei.cmu.edu/uls/
Ottino, J.M.: Engineering complex systems. Nature 427(6973), 399–400 (2004)
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)
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)
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)
Liu, H., Parashar, M.: Accord: a programming framework for autonomic applications. IEEE Transactions on Systems, Man, and Cybernetics 36(3), 341–352 (2006)
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)
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), http://www.springerlink.com/content/rh7wx0675k5mx544/
Hellerstein, J.L., Diao, Y., Parekh, S., Tilbury, D.M.: Feedback Control of Computing Systems. John Wiley & Sons, Chichester (2004)
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)
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)
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)
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)
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)
Boehm, B.W.: A spiral model of software development and enhancement. IEEE Computer 21(5), 61–72 (1988)
Lehman, M.M.: Software’s future: Managing evolution. IEEE Software 15(1), 40–44 (1998)
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)
Nilsson, N.J.: Principles of Artificial Intelligence. Tioga Press, Palo Alto (1980)
Gat, E.: Three-layer Architectures, pp. 195–210. MIT/AAAI Press, Cambridge (1997)
Burns, R.: Advanced Control Engineering. Butterworth-Heinemann (2001)
Dorf, R.C., Bishop, R.H.: Modern Control Systems, 10th edn. Prentice-Hall, Englewood Cliffs (2005)
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)
Astrom, K., Wittenmark, B.: Adaptive Control, 2nd edn. Addison-Wesley, Reading (1995)
Söderström, T., Stoica, P.: System Identification. Prentice-Hall, Englewood Cliffs (1988)
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)
Kokar, M.M., Baclawski, K., Eracar, Y.A.: Control theory-based foundations of self-controlling software. IEEE Intelligent Systems 14(3), 37–45 (1999)
McKinley, P.K., Sadjadi, M., Kasten, E.P., Cheng, B.H.: Composing adaptive software. IEEE Computer 37(7), 56–64 (2004)
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)
Kephart, J.O., Chess, D.M.: The vision of autonomic computing. IEEE Computer 36(1), 41–50 (2003)
IBM Corporation: An architectural blueprint for autonomic computing. White Paper, 4th edn., IBM Corporation, http://www-03.ibm.com/autonomic/pdfs/AC_Blueprint_White_Paper_4th.pdf
Shaw, M.: Beyond objects. ACM SIGSOFT Software Engineering Notes (SEN) 20(1), 27–38 (1995)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Klein, M., Kazman, R.: Attribute-based architectural styles. Technical Report CMU/SEI-99-TR-022, Software Engineering Institute (SEI) (1999), http://www.sei.cmu.edu/pub/documents/99.reports/pdf/99tr022.pdf
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)
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)
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)
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)
Liberzon, D., Morse, A.: Basic problems in stability and design of switched systems. IEEE Control Systems Magazine 19(5), 59–70 (1999)
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)
Lightstone, S.: Seven software engineering principles for autonomic computing development. Innovations in Systems and Software Engineering 3(1), 71–74 (2007)
Sackmann, S., Strüker, J., Accorsi, R.: Personalization in privacy-aware highly dynamic systems. Communications of the ACM 49(9), 32–38 (2006)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Brun, Y. et al. (2009). 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. Lecture Notes in Computer Science, vol 5525. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-02161-9_3
Download citation
DOI: https://doi.org/10.1007/978-3-642-02161-9_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-02160-2
Online ISBN: 978-3-642-02161-9
eBook Packages: Computer ScienceComputer Science (R0)