On Designing Self-Adaptive Software Systems

  • Norha Milena Villegas Machado University of Victoria, British Columbia
  • Hausi A. Müller University of Victoria, British Columbia
  • Gabriel Tamura Morimitsu Universidad Icesi, Cali
Keywords: Self-adaptation, reference models for self-adaptation, self-adaptive software, control loops.


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.


Download data is not yet available.

Author Biographies

Norha Milena Villegas Machado, University of Victoria, British Columbia

Ph.D. Candidate under the supervision of Dr. Hausi A. Müller, Department of Computer Science, University of Victoria, Canada. She is a CAS student at the Center for Advanced Studies at the IBM Toronto Laboratory (2010-2011). Her dissertation focuses on the application of dynamic context management to the optimization of self-adaptive software systems. Her research interests include control theory, autonomic computing, dynamic context management, context-awareness, semantic web, and service-oriented systems. Norha Villegas received a Diploma Degree in Systems Engineering and a Graduate Degree in Organizational Informatics Management in 2002 and 2004, from Universidad Icesi, Cali, Colombia.

Hausi A. Müller, University of Victoria, British Columbia

Professor, Department of Computer Science and Associate Dean of Research, Faculty of Engineering at University of Victoria, Canada. He is a Visiting Scientist at the Center for Advanced Studies at the IBM Toronto Laboratory (CAS), CA Canada Inc., and the Carnegie Mellon Software Engineering Institute (SEI). Dr. Müller‘s research interests include software engineering, self-adaptive and self-managing systems, context-aware systems, and service-oriented systems. He serves on the Editorial Board of Software Maintenance and Evolution and Software Process: Improvement and Practice (JSME). He served on the Editorial Board of IEEE Transactions on Software Engineering (TSE) 1994-2000, 2005- 2009). He is Chair of the IEEE Technical Council on Software Engineering (TCSE). Dr. Müller received a Diploma Degree in Electrical Engineering in 1979 from the Swiss Federal Institute of Technology (ETH), Zürich, Switzerland and MSc and PhD degrees in Computer Science in 1984 and 1986 from Rice University in Houston, Texas, USA.

Gabriel Tamura Morimitsu, Universidad Icesi, Cali
PhD student in co-supervision between University of Los Andes, Bogotá, Colombia, and University of Lille 1, Lille, France, and a member of the INRIA-USTL-CNRS team-project ADAM (Adaptive Distributed Applications and Middleware) and the Software Construction Research Group. Gabriel Tamura obtained his M.Sc. degree in Systems and Computing Engineering from Universidad de Los Andes, Bogotá, Colombia, in 1996, and his professional degree in Computing Engineering from Universidad Javeriana, Cali, Colombia. His current research interests include the engineering of context-aware self-adaptive software systems and the evolution of component-based and service-oriented computing.


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.
Discussion papers