A Design Space for Self-Adaptive Systems

  • Yuriy Brun
  • Ron Desmarais
  • Kurt Geihs
  • Marin Litoiu
  • Antonia Lopes
  • Mary Shaw
  • Michael Smit
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7475)


Self-adaptive systems research is expanding as systems professionals recognize the importance of automation for managing the growing complexity, scale, and scope of software systems. The current approach to designing such systems is ad hoc, varied, and fractured, often resulting in systems with parts of multiple, sometimes poorly compatible designs. In addition to the challenges inherent to all software, this makes evaluating, understanding, comparing, maintaining, and even using such systems more difficult. This paper discusses the importance of systematic design and identifies the dimensions of the self-adaptive system design space. It identifies key design decisions, questions, and possible answers relevant to the design space, and organizes these into five clusters: observation, representation, control, identification, and enacting adaptation. This characterization can serve as a standard lexicon, that, in turn, can aid in describing and evaluating the behavior of existing and new self-adaptive systems. The paper also outlines the future challenges for improving the design of self-adaptive systems.


adaptive self-adaptive design architecture 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Andersson, J., de Lemos, R., Malek, S., Weyns, D.: Modeling Dimensions of Self-Adaptive Software Systems. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Self-Adaptive Systems. LNCS, vol. 5525, pp. 27–47. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  2. 2.
    Brake, N., Cordy, J.R., Dancy, E., Litoiu, M., Popescu, V.: Automating discovery of software tuning parameters. In: Proceedings of the 3rd International Workshop on Software Engineering for Adaptive and Self-Managing Systems, Leipzig, Germany, pp. 65–72 (2008)Google Scholar
  3. 3.
    Brooks Jr., F.P.: The Design of Design: Essays from a Computer Scientist. Addison-Wesley, New York (2010)Google Scholar
  4. 4.
    Brun, Y., Di 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: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Self-Adaptive Systems. LNCS, vol. 5525, pp. 48–70. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  5. 5.
    Buschmann, F., Henney, K., Schmidt, D.: Pattern-oriented software architecture: On patterns and pattern languages, vol. 5. John Wiley & Sons Inc. (2007)Google Scholar
  6. 6.
    Checiu, L., Solomon, B., Ionescu, D., Litoiu, M., Iszlai, G.: Observability and controllability of autonomic computing systems for composed web services. In: Proceedings of the 6th IEEE International Symposium on Applied Computational Intelligence and Informatics, pp. 269–274 (2011)Google Scholar
  7. 7.
    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 on Autonomous and Adaptive Systems (TAAS) 1, 223–259 (2006)CrossRefGoogle Scholar
  8. 8.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design patterns: Elements of reusable object-oriented software. Addison-Wesley Longman Publishing Co., Inc. (1995)Google Scholar
  9. 9.
    Geihs, K., Reichle, R., Wagner, M., Khan, M.U.: Modeling of Context-Aware Self-Adaptive Applications in Ubiquitous and Service-Oriented Environments. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Self-Adaptive Systems. LNCS, vol. 5525, pp. 146–163. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  10. 10.
    Ghanbari, H., Litoiu, M.: Identifying implicitly declared self-tuning behavior through dynamic analysis. In: Proceedings of the 4th International Workshop on Software Engineering for Adaptive and Self-Managing Systems, Vancouver, BC, Canada, pp. 48–57 (2009)Google Scholar
  11. 11.
    Hellerstein, J., Diao, Y., Parekh, S., Tilbury, D.: Feedback control of computing systems, pp. 378–384. Wiley Interscience (2004)Google Scholar
  12. 12.
    IBM: An architectural blueprint for autonomic computing. (June 2006),
  13. 13.
    Kazman, R., Klein, M., Barbacci, M., Longstaff, T., Lipson, H., Carriere, J.: The architecture tradeoff analysis method. In: Proceedings of the 4th IEEE International Conference on Engineering of Complex Computer Systems, pp. 68–78 (1998)Google Scholar
  14. 14.
    Kephart, J., Chess, D.: The vision of autonomic computing. Computer 36(1), 41–50 (2003)MathSciNetCrossRefGoogle Scholar
  15. 15.
    Kramer, J., Magee, J.: Self-managed systems: an architectural challenge. In: Future of Software Engineering, pp. 259–268 (2007)Google Scholar
  16. 16.
    Lane, T.G.: Studying software architecture through design spaces and rules. Tech. Rep. CMU/SEI-90-TR-18, Software Engineering Institute, Carnegie Mellon University (November 1990)Google Scholar
  17. 17.
    Litoiu, M.: Application performance evaluator and resource allocation tool (APERA) (May 2003),
  18. 18.
    Litoiu, M., Woodside, M., Zheng, T.: Hierarchical model-based autonomic control of software systems. In: Proceedings of the Workshop on Design and Evolution of Autonomic Application Software, St. Louis, MO, USA, pp. 1–7 (2005)Google Scholar
  19. 19.
    Ramirez, A.J., Cheng, B.H.C.: Design patterns for developing dynamically adaptive systems. In: Proceedings of the 5th International Workshop on Software Engineering for Adaptive and Self-Managing Systems, Cape Town, South Africa, pp. 49–58 (2010)Google Scholar
  20. 20.
    Shaw, M.: The role of design spaces. IEEE Software (Special Issue on Studying Professional Software Design) 29(1), 46–50 (2012)Google Scholar
  21. 21.
    Smit, M.: Supporting Quality of Service, Configuration, and Autonomic Reconfiguration using Services-Aware Simulation. Ph.D. thesis, University of Alberta (2011)Google Scholar
  22. 22.
    Villegas, N.M., Müller, H.A., Tamura, G., Duchien, L., Casallas, R.: A framework for evaluating quality-driven self-adaptive software systems. In: Proceeding of the 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, Waikiki, Honolulu, HI, USA, pp. 80–89 (2011)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Yuriy Brun
    • 1
  • Ron Desmarais
    • 2
  • Kurt Geihs
    • 3
  • Marin Litoiu
    • 4
  • Antonia Lopes
    • 5
  • Mary Shaw
    • 6
  • Michael Smit
    • 4
  1. 1.Computer Science & EngineeringUniversity of WashingtonSeattleUSA
  2. 2.University of VictoriaVancouverCanada
  3. 3.EECS DepartmentUniversity of KasselKasselGermany
  4. 4.York UniversityTorontoCanada
  5. 5.Department of InformaticsUniversity of LisbonLisboaPortugal
  6. 6.Institute for Software ResearchCarnegie Mellon UniversityPittsburghUSA

Personalised recommendations