Lecture, Winter 2021, Master Studies, University of Paderborn
The complexity of software systems, the evolution of requirements, and the uncertainty of requirements and environments challenge the management of running systems. One promising solution are self-adaptive systems, that is, systems that are able to adapt their behavior in response to changing and uncertain requirements and environments. In this lecture we will discuss the foundations as well as methods and techniques to engineer and assure self-adaptive systems. The focus will be on the software engineering aspects and how self-adaptation impacts typical software engineering activities. A selection of methods and techniques will be exemplified on research prototypes (so-called exemplars) in the tutorials and project.
The lecture will introduce the foundations, methods, and techniques for developing and assuring self-adaptive systems, which will be exemplified in the tutorials and project to gain practical experience. This exemplification will be based on so-called exemplars originating from the research community of self-adaptive software systems (http://self-adaptive.org/exemplars/).