Conference Paper

Requirements-Aware Systems: A Research Agenda for RE for Self-adaptive Systems

Comput. Dept., Lancaster Univ., Lancaster, UK
DOI: 10.1109/RE.2010.21 Conference: RE 2010, 18th IEEE International Requirements Engineering Conference, Sydney, New South Wales, Australia, September 27 - October 1, 2010
Source: DBLP


Requirements are sensitive to the context in which the system-to-be must operate. Where such context is well understood and is static or evolves slowly, existing RE techniques can be made to work well. Increasingly, however, development projects are being challenged to build systems to operate in contexts that are volatile over short periods in ways that are imperfectly understood. Such systems need to be able to adapt to new environmental contexts dynamically, but the contextual uncertainty that demands this self-adaptive ability makes it hard to formulate, validate and manage their requirements. Different contexts may demand different requirements trade-offs. Unanticipated contexts may even lead to entirely new requirements. To help counter this uncertainty, we argue that requirements for self-adaptive systems should be run-time entities that can be reasoned over in order to understand the extent to which they are being satisfied and to support adaptation decisions that can take advantage of the systems' self-adaptive machinery. We take our inspiration from the fact that explicit, abstract representations of software architectures used to be considered design-time-only entities but computational reflection showed that architectural concerns could be represented at run-time too, helping systems to dynamically reconfigure themselves according to changing context. We propose to use analogous mechanisms to achieve requirements reflection. In this paper we discuss the ideas that support requirements reflection as a means to articulate some of the outstanding research challenges.

Download full-text


Available from: Nelly Bencomo,
  • Source
    • "Due to the increase in context-aware systems and the inherent challenges developing them, research in this field is aiming at improving the development process. The four areas of research into the process of creating such systems are requirements engineering [1] [2] [3] [4], design [5] [6] [7] [8] [9], implementation [10–14], and run-time [15–19]. However, most of the proposed solution directions aim at solving technological "
    [Show abstract] [Hide abstract]
    ABSTRACT: As the concept of context-awareness is becoming more popular the demand for improved quality of context-aware systems increases too. Due to the inherent challenges posed by context-awareness, it is harder to predict what the behavior of the systems and their context will be once provided to the end-user than is the case for non-context-aware systems. A domain where such upfront knowledge is highly important is that of well-being. In this paper, we introduce a method to model the well-being domain and to predict the effects the system will have on its context when implemented. This analysis can be performed at design time. Using these predictions, the design can be fine-tuned to increase the chance that systems will have the desired effect. The method has been tested using three existing well-being applications. For these applications, domain models were created in the Dynamic Well-being Domain Model language. This language allows for causal reasoning over the application domain. The models created were used to perform the analysis and behavior prediction. The analysis results were compared to existing application end-user evaluation studies. Results showed that our analysis could accurately predict success and possible problems in the focus of the systems, although certain limitation regarding the predictions should be kept into consideration.
    The Scientific World Journal 09/2015; 2015:931931. DOI:10.1155/2015/931931 · 1.73 Impact Factor
  • Source
    • "GuideArch helps the requirements engineers to make decisions during the RE process. Uncertainty in adaptive systems has also been tackled by RELAX [18], a formal requirements language that explicitly addresses uncertainty inherent in adaptive systems. RELAX uses fuzzy logic to specify more flexible requirements to handle the uncertainty. "
    [Show abstract] [Hide abstract]
    ABSTRACT: In recent years, there has been a growing interest towards the application of artificial intelligence approaches in software engineering (SE) processes. In the specific area of SE for self-adaptive systems (SASs) there is a growing research awareness about the synergy between SE and AI. However, just few significant results have been published. This paper briefly studies uncertainty in SASs and surveys techniques that have been developed to engineer SASs in order to tackle uncertainty. In particular, we highlight techniques that use AI concepts. We also report and discuss our own experience using Dynamic Decision Networks (DDNs) to model and support decision-making in SASs while explicitly taking into account uncertainty. We think that Bayesian inference, and specifically DDNs, provide a useful formalism to engineer systems that dynamically adapt themselves at runtime as more information about the environment and the execution context is discovered during execution. We also discuss partial results, challenges and future research avenues.
    2nd International NSF sponsored Workshop on Realizing Artificial Intelligence Synergies in Software Engineering RAISE 2013,; 05/2013
  • Source
    • "The requirements engineering community has been particularly active w.r.t. this research challenge [20]. For example RE- LAX [24], a requirements language for adaptive systems, explicitly addresses uncertainty by enabling engineers to capture uncertainty in the requirements definition. "
    [Show abstract] [Hide abstract]
    ABSTRACT: Modern software systems are often characterized by uncertainty and changes in the environment in which they are embedded. Hence, they must be designed as adaptive systems. We propose a framework that supports adaptation to non-functional manifestations of uncertainty. Our framework allows engineers to derive, from an initial model of the system, a finite state automaton augmented with probabilities. The system is then executed by an interpreter that navigates the automaton and invokes the component implementations associated to the states it traverses. The interpreter adapts the execution by choosing among alternative possible paths of the automaton in order to maximize the system's ability to meet its non-functional requirements. To demonstrate the adaptation capabilities of the proposed approach we implemented an adaptive application inspired by an existing worldwide distributed mobile application and we discussed several adaptation scenarios.
    Software Engineering (ICSE), 2013 35th International Conference on; 05/2013
Show more