The Capture and Evolution of Contextual Requirements: The Case of Adaptive Systems




Knauss, Alessia

Journal Title

Journal ISSN

Volume Title



Today’s software systems are becoming increasingly integrated into the lives of their end-users and their ever-changing environments and needs. These demands lead to a growing complexity of systems. The development of adaptive systems is a promising way to manage this complexity. Adaptive systems are able to adapt their behavior at operation time while considering the changing operational environment to maximize the satisfaction of end-user needs. However, adaptive systems have their own challenges to overcome. Especially, requirements engineering for adaptive systems is challenging given the fact that requirements are active runtime entities and can change at runtime. Requirements engineering activities have not only to take place at design but also at runtime. Requirements engineering for adaptive systems is an emerging research area that has so far received little attention, compared to other research areas (e.g., architecture) for adaptive systems. Adaptive systems need to have a full understanding of the context in order to handle the complexity and satisfy end-user needs. Therefore, a new trend in require- ments engineering for adaptive systems emerged to document requirements with the context in which the requirements are valid. Such contextual requirements necessi- tate adaptive systems to consider and define context in order to fully understand the requirements at operation time. Further, adaptive systems must be able to cope with uncertainty inherent in a changing runtime environment. Otherwise, adaptive sys- tems will not be able to satisfy end-user needs. Therefore, after the system has been deployed, support for the evolution of contextual requirements is needed, too. The trend of considering context as part of a contextual requirement poses new challenges in the field of requirements engineering. This dissertation investigates the capture and evolution of contextual requirements for adaptive systems, which leads to three contributions: First, this dissertation presents a framework that differentiates between context and requirements as two separate entities in contextual requirements that can be captured and can be evolved independently. It is especially necessary to capture and evolve the essential context to support the ability of a system to adapt to fulfilling the needs of its end-users, whose requirements and context are constantly changing. The framework is then applied in two case studies. The first case study investi- gates the usefulness of existing requirements elicitation techniques for the elicitation of contextual requirements. This dissertation’s second contribution is the empirical evidence that existing requirement elicitation techniques can be used for the capture of contextual requirements at design time. We propose a combination of interviews, focus groups and prototyping that we found useful in eliciting contextual requirements in our case study. The second study develops and evaluates techniques to support the evolution of context when contextual requirements are validated at runtime. For this purpose we propose an approach which uses machine learning and feedback loops to support the evolution of contextual requirements and which represents the third contribution of this dissertation.



software engineering, requirements evolution, context, contextual requirements, adaptive systems