Search the Dagstuhl Website
Looking for information on the websites of the individual seminars? - Then please:
Not found what you are looking for? - Some of our services have separate websites, each with its own search option. Please check the following list:
Schloss Dagstuhl - LZI - Logo
Schloss Dagstuhl Services
Within this website:
External resources:
  • DOOR (for registering your stay at Dagstuhl)
  • DOSA (for proposing future Dagstuhl Seminars or Dagstuhl Perspectives Workshops)
Within this website:
External resources:
Within this website:
External resources:
  • the dblp Computer Science Bibliography

Dagstuhl Seminar 08031

Software Engineering for Self-Adaptive Systems

( Jan 13 – Jan 18, 2008 )

(Click in the middle of the image to enlarge)

Please use the following short url to reference this page:


Press Room


The simultaneous explosion of information, the integration of technology, and the continuous evolution from software- intensive systems to ultra-large-scale (ULS) systems requires new and innovative approaches for building, running and managing software systems [18]. A consequence of this continuous evolution is that software systems must become more versatile, flexible, resilient, dependable, robust, energy-efficient, recoverable, customizable, configurable, or self-optimizing by adapting to changing operational contexts and environments. The complexity of current software-based systems has led the software engineering community to look for inspiration in diverse related fields (e.g., robotics, artificial intelligence) as well as other areas (e.g., biology) to find new ways of designing and managing systems and services. In this endeavour, the capability of the system to adjust its behaviour in response to its perception of the environment and the system itself in form of self-adaptation has become one of the most promising directions.

The topic of self-adaptive systems has been studied within the different research areas of software engineering, including, requirements engineering, software architectures, middleware, component-based development, and programming languages, however most of these initiatives have been isolated and until recently without a formal forum for discussing its diverse facets. Other research communities that have also investigated this topic from their own perspective are even more diverse: fault-tolerant computing, distributed systems, biologically inspired computing, distributed artificial intelligence, integrated management, robotics, knowledge-based systems, machine learning, control theory, etc. In addition, research in several application areas and technologies has grown in importance, for example, adaptable user interfaces, autonomic computing, dependable computing, embedded systems, mobile ad hoc networks, mobile and autonomous robots, multi-agent systems, peer-to-peer applications, sensor networks, service-oriented architectures, and ubiquitous computing.

It is important to emphasise that in all the above initiatives the common element that enables the provision of self-adaptability is software because of its flexible nature. However, the proper realization of the self-adaptation functionality still remains a significant intellectual challenge, and only recently have the first attempts in building self-adaptive systems emerged within specific application domains. Moreover, little endeavour has been made to establish suitable software engineering approaches for the provision of self- adaptation. In the long run, we need to establish the foundations that enable the systematic development of future generations of self-adaptive systems. Therefore it is worthwhile to identify the commonalities and differences of the results achieved so far in the different fields and look for ways to integrate them.

The development of self-adaptive systems can be viewed from two perspectives, either top-down when considering an individual system, or bottom-up when considering cooperative systems. Top-down self-adaptive systems assess their own behaviour and change it when the assessment indicates a need to adapt due to evolving functional or non-functional requirements. Such systems typically operate with an explicit internal representation of themselves and their global goals. In contrast, bottom-up self-adaptive systems (self- organizing systems) are composed of a large number of components that interact locally according to simple rules. The global behaviour of the system emerges from these local interactions. The global behaviour of the system emerges from these local interactions, and it is di±cult to deduce properties of the global system by studying only the local properties of its parts. Such systems do not necessarily use internal representations of global properties or goals; they are often inspired by biological or sociological phenomena. The two cases of self-adaptive behaviour in the form of individual and cooperative self-adaptation are two extreme poles. In practice, the line between both is rather blurred, and compromises will often lead to an engineering approach incorporating representatives from these two extreme poles. For example, ultra large-scale systems need both top-down self-adaptive and bottom-up self-adaptive characteristics (e.g., the Web is basically decentralized as a global system but local sub-webs are highly centralized). However, from the perspective of software development the major challenge is how to accommodate in a systematic engineering approach traditional top-down approaches with bottom-up approaches.

The goal of this road map paper is to summarize and point out the current state-of-the-art, its limitations, and identify critical challenges for the software engineering of self-adaptive systems. Specifically, we intend to focus on development methods, techniques, and tools that seem to be required to support the systematic development of complex software systems with dynamic self-adaptive behaviour. In contrast to merely speculative and conjectural visions and ad hoc approaches for systems supporting self-adaptability, the objective of this paper is to establish a road map for research and identify the main research challenges for the systematic software engineering of self-adaptive systems.

To present and motivate these challenges, the paper is structured using the four views which have been identified as essential. Each of these views are roughly presented in terms of the state of the art and the challenges ahead. We first review the state of the art and needs concerning requirements (Section 2). Then, the relevant modelling dimensions are discussed in Section 3 before we discuss the engineering of self-adaptive systems in Section 4. The considerations are completed by looking into the current achievements and needs for assurance in the context of self-adaptive systems in Section 5. Finally, the findings are summarized in Section 6 in terms of lessons learned and future challenges.

  • Jesper Andersson (Linnaeus University - Växjö, SE) [dblp]
  • Luciano Baresi (Polytechnic University of Milan, IT) [dblp]
  • Basil Becker (Hasso-Plattner-Institut - Potsdam, DE)
  • Nelly Bencomo (Lancaster University, GB) [dblp]
  • Yuriy Brun (USC - Los Angeles, US) [dblp]
  • Carlos Canal (University of Malaga, ES)
  • Mauro Caporuscio (INRIA - Le Chesnay, FR)
  • Betty H. C. Cheng (Michigan State University - East Lansing, US) [dblp]
  • Bojan Cukic (West Virginia University - Morgantown, US) [dblp]
  • Rogerio de Lemos (University of Kent, GB) [dblp]
  • Giovanna Di Marzo Serugendo (University of London, GB) [dblp]
  • Schahram Dustdar (TU Wien, AT) [dblp]
  • Anthony Finkelstein (University College London, GB) [dblp]
  • Cristina Gacek (Newcastle University, GB)
  • Kurt Geihs (Universität Kassel, DE) [dblp]
  • Holger Giese (Hasso-Plattner-Institut - Potsdam, DE) [dblp]
  • Vincenzo Grassi (University of Rome "Tor Vergata", IT) [dblp]
  • Ethan Hadar (CA Inc. - Yogneam, Israel, IL)
  • Svein Hallsteinsen (SINTEF ICT - Trondheim, NO)
  • Robert Hirschfeld (Hasso-Plattner-Institut - Potsdam, DE) [dblp]
  • Paola Inverardi (University of L'Aquila, IT) [dblp]
  • Gabor Karsai (Vanderbilt University, US) [dblp]
  • Holger M. Kienle (University of Victoria, CA)
  • Jeff Kramer (Imperial College London, GB) [dblp]
  • Marin Litoiu (IBM Canada Ltd. - Ontario, CA) [dblp]
  • Jeff Magee (Imperial College London, GB) [dblp]
  • Sam Malek (George Mason University - Fairfax, US) [dblp]
  • Fabio Mancinelli (INRIA - Le Chesnay, FR)
  • Raffaela Mirandola (Politecnico di Milano, IT) [dblp]
  • Pieter J. Mosterman (The MathWorks Inc. - Natick, US) [dblp]
  • Hausi A. Müller (University of Victoria, CA) [dblp]
  • Oscar M. Nierstrasz (Universität Bern, CH) [dblp]
  • Sooyong Park (Sogang University - Seoul, KR) [dblp]
  • Mauro Pezzè (University of Lugano, CH) [dblp]
  • Andreas Rasche (Hasso-Plattner-Institut - Potsdam, DE)
  • Paul Robertson (BBN Technologies - Cambridge, US)
  • Hartmut Schmeck (KIT - Karlsruher Institut für Technologie, DE) [dblp]
  • Mary Shaw (Carnegie Mellon University - Pittsburgh, US) [dblp]
  • Matthias Tichy (Universität Paderborn, DE) [dblp]
  • Massimo Tivoli (University of L'Aquila, IT) [dblp]
  • Danny Weyns (KU Leuven, BE) [dblp]
  • Jon Whittle (Lancaster University, GB) [dblp]

Related Seminars
  • Dagstuhl Seminar 10431: Software Engineering for Self-Adaptive Systems (2010-10-24 - 2010-10-29) (Details)
  • Dagstuhl Seminar 13511: Software Engineering for Self-Adaptive Systems: Assurances (2013-12-15 - 2013-12-19) (Details)

  • modelling / simulation
  • sw-engineering
  • semantics / specification / formal methods

  • Software engineering
  • self-adaptability
  • requirements engineering
  • software architectures
  • formal models
  • programming languages
  • software components
  • software deployment
  • evolution
  • self-organization
  • self-management