On Designing Self-Adaptive Software Systems

Norha Milena Villegas Machado, Hausi A. Müller, Gabriel Tamura Morimitsu


Self-adaptive systems modify themselves at run-time in order to control the satisfaction of their requirements under changing environmental conditions. Over the past century, feedback-loops have been used as important models for controlling dynamic behavior of mechanical, electrical, fluid and chemical systems in the corresponding fields of engineering. More recently, they also have been adopted for engineering self-adaptive software systems. However, obtaining sound and explicit mappings consistently between adaptive software architectures and feedback loop elements is still an open challenge. This paper, recalling a reference model proposed previously with that goal, discuss key aspects on the design of adaptive software where feedback loop elements are explicitly defined as first-class components in its software architecture. It complements this discussion with an illustration of the process to use this reference model by applying it to a plausible adaptive software example. This paper aims at providing a reference starting point to support software engineers in the process of designing self-adaptive software systems.


Self-adaptation; reference models for self-adaptation; self-adaptive software; control loops.


Abid, Z., Chabridon, S., & Conan, D. (2009). A framework for quality of context management. En Quality of Context. First International Workshop, QuaCon 2009, Stuttgart, Germany, June 25-26, 2009. Revised Papers (Lecture Notes in Computer Science 5786) (120-131). Berlín, Alemania: Springer-Verlag. DOI: 10.1007/978-3-642-04559-2

Bass, L., Clements, P., & Kazman, R. (2003). Software Architecture in Practice (2nd ed.). Boston, MA: Addison-Wesley.

Caprarescu, B.A, Petcu, D., (2009). A Self-Organizing Feedback Loop for Autonomic Computing. En Proceedings Computation World: future computing, service computation, cognitive, content, patterns. ComputationWorld, 2009 (pp.126-131). Los Alamitos, CA: IEEE Computer Society

Cheng, B.H., Lemos, R., Giese, H., Inverardi, P., Magee, J., Andersson, J.,...Whittle, J. (2009). Software Engineering for Self-Adaptive Systems: A Research Roadmap. En Software Engineering for Self-Adaptive Systems (Lecture Notes in Computer Science 5525) (pp. 1-26). Berlín, Alemania: Springer-Verlag. doi: 10.1007/978-3-642-02161-9

Chignell, M., Cordy, J., Ng, J., & Yesha, J. (Eds.) (2010). The smart Internet. Current research and future applications (Lecture Notes in Computer Science 6400). Berlín, Alemania: Springer-Verlag. DOI: 10.1007/978-3-642-16599-3

Coutaz, J., Crowley, J.L., & Dobson, S. (2005). Context is key. Communications of the ACM (48)3, 49–53.

Frincu, M.E., Villegas, N.M., Petcu, D., Müller, H.A., & Rouvoy, R. (2011). Self-healing distributed scheduling platform. En Proceedings IEEE International symposium on cluster, cloud and grid computing, CCGrid 2011 (pp. 225-234). Los Alamitos, CA: IEEE Computer Society

Garlan, D., Cheng, S-W., & Schmerl, B. (2003). Increasing System Dependability through Architecture-Based Self-Repair. En Architecting dependable systems (Lecture Notes in Computer Science 2677) (pp. 61-89). Berlín, Alemania: Springer-Verlag. doi: 10.1007/3-540-45177-3

Giese, H., Brun, Y., Serugendo, J.D.M., Gacek, C., Kienle, H., Müller, H.,…Shaw, M. (2009). Engineering self-adaptive and self-managing systems. En Applied Algebra, Algebraic Algorithms and Error-Correcting Codes. 18th International Symposium, AAECC-18 2009, Tarragona, Spain, June 8-12, 2009. Proceedings (Lecture Notes in Computer Science 5527) (pp. 47-69). Berlín, Alemania: Springer-Verlag. doi: 10.1007/978-3-642-02181-7

Hebig, R., Giese, H., & Becker, B. (2010). Making control loops explicit when architecting self-adaptive systems. En Proceedings 2nd international workshop on Self-organizing architectures (pp. 21–28). New York, NY: ACM.

Hellerstein, J.L., Diao, Y., Parekh, S., & Tilbury, D.M. (2004). Feedback Control of Computing Systems. Hoboken, NJ: John Wiley & Sons.

Hellerstein, J.L., Singhal, S., & Wang, Q. (2009). Research Challenges in Control Engineering of Computing Systems. IEEE Transactions on Network and Service Management (6)4, 206.211.

IBM Corporation (2006). An architectural blueprint for autonomic computing (4th ed.) [Technical Report]. Hawthorne, NY: Autor

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

Kramer, J., & Magee, J. (2007). Self-managed systems: an architectural challenge. En Proceedings: 2007 workshop on the Future of Software Engineering (FOSE 2007) (pp. 259-268). Los Alamitos, CA: IEEE Computer Society

Müller, H., Pezzè, M., & Shaw, M. (2008). Visibility of control in adaptive systems. En Proceedings 2nd international workshop on Ultra-large-scale software-intensive systems, ULSSIS 2008 (pp. 23-26). New Yok, NY: ACM.

Müller, H.A., Kienle, H.M., & Stege, U., (2009). Autonomic computing: Now you see it, now you don’t. Design and evolution of autonomic software systems. En Software Engineering. International Summer Schools, ISSSE 2006-2008, Salerno, Italy, Revised Tutorial Lectures (Lecture Notes in Computer Science 5413). (pp. 32-54). Berlín, Alemania: Springer-Verlag. doi: 10.1007/978-3-540-95888-8

Ogata, K. (2010). Modern Control Engineering (5th ed.). Boston, MA: Prentice Hall.

Oreizy, P., Medvidovic, N., & Taylor, R.N., (2008). Runtime software adaptation: framework, approaches, and styles. En Proceedings 30th International Conference on Software Engineering, ICSE 2008 (pp. 899-910). New Yok, NY: ACM.

Parra, C., Blanc, X., & Duchien, L. (2009). Context Awareness for Dynamic Service-Oriented Product Lines. En Proceedings 13th Intentaional Software Product Line Conference, SPLC 2009 (pp.131.140). New Yok, NY: ACM.

Salehie, M., & Tahvildari, L. (2009). Self-Adaptive Software: Landscape and Research Challenges. ACM Transactions on Autonomous and Adaptive Systems (4)2, 14:1-14:42. doi: 10.1145/1516533.1516538

Solomon, B., Ionescu, D., Litoiu, M., & Mihaescu, M. (2007). A real-time adaptive control of autonomic computing environments. En Proceedings 17th Annual International Conference hosted by the Centre for Advanced Studies Research, IBM Canada Software Laboratory, CASCON 2007 (pp. 124-136). New York, NY: ACM

Tamura, G., Casallas, R., Cleve, A., & Duchien, L. (2011a). QoS Contract-Aware Reconfiguration of Component Architectures Using E-Graphs. En 7th International Workshop on Formal Aspects of Component Software, FACS 2010 (Lecture Notes in Computer Science 6921) (pp. 34-52). Berlín, Alemania: Springer-Verlag.

Tamura, G., Villegas, N.M., Müller, H.A., Duchien, L., & Casallas, R. (2011b). A control-engineered reference model to optimize context relevance in self-adaptation. Recuperado de: https://connex.csc.uvic.ca/access/content/group/eac7abb3-27a0-4a53-be0f-10525cabe46e/Papers/control-based-reference-model-for-self-adapt.pdf

Truex, D.P., Baskerville, R., & Klein, H. (1999). Growing systems in emergent organizations. Communications of the ACM (42)8, 117–123.

Villegas, N.M., & Müller, H.A. (2010). Managing dynamic context to optimize smart interactions and services. En The Smart Internet: Current Research and Future Applications (Lecture Notes in Computer Science 6400) (pp. 289-318). Berlín, Alemania: Springer-Verlag.

Villegas, N.M., Müller, H.A., Muñoz, J.C., Lau, A., Ng, J., & Brealey, C. (2011a [in press]). A dynamic context management infrastructure for supporting user-driven web integration in the personal web. En Proceedings the 2011 Conference of the Center for Advanced Studies on Collaborative Research, Canada (CASCON 2010) (pp. 1-15). New York, NY: ACM.

Villegas, N.M., Müller, H.A., Tamura, G., Duchien, L., & Casallas, R. (2011b). A framework for evaluating quality-driven self-adaptive software systems. En Proceeding 6th international symposium on Software engineering for adaptive and self-managing systems (pp. 80–89). New York, NY: ACM.

DOI: http://dx.doi.org/10.18046/syt.v9i18.1076


  • There are currently no refbacks.