Prize: Fellowship awarded competitively
Marie-Curie Project: Requirements-aware Systems ( Requirements@run.time)
People: Nelly Bencomo (Fellow), Valerie Issarny (Scientist in charge)
The 24-month project started on the 16th May 2011 and has successfully finished on the 15th May 2013.
Background: Increasingly software systems are required to survive fluctuations in their execution environment without or with only little human intervention. These systems, sometimes known as eternal software-intensive systems, need to fluidly reconfigure and adapt to the ongoing circumstances and find the way to continue accomplishing their functionalities and requirements. To date, however, software engineering (SE) research in software-intensive systems has mainly focused on software architecture and programming languages with excellent research results. For instance, research in software architecture has shown how software components can be dynamically added, removed or replaced at runtime to support adaptation, sometimes exploiting reflective constructs in modern programming languages to do so. Whilst these technologies provide an essential step towards an engineering science for software-intensive systems, they are not the end of the story as building these eternal systems is risky. Designers must ensure that any critical requirements of the system continue to be satisfied before, during and after a dynamic change. In current software engineering paradigms, systems are not aware of their requirements.
Objectives: This project used the novel notion of requirements reflection, that is, the ability of a system to dynamically observe and reason about its requirements. The project aimed to address the need of having systems requirements-aware by reifying requirements as run-time
objects (i.e. email@example.com).
The following were the concrete research objectives (RO) we had in the project:
RO1: Runtime representation of requirements: to offer support and techniques for reifying requirements as run-time objects, including both quality and behaviour requirements. Such techniques should allow the introspection and adaptation of requirements at runtime.
This first research objective is to offer support for run-time representation of requirements in a form suitable for introspection and modification during the execution of the system.
RO2: Synchronization goals-architecture: to relate run-time requirements decisions to changes in the ongoing software architecture.
This objective aims at supporting the maintenance of a synchronization connection between the (dynamically changeable) requirements and the architecture of the system.
RO3: to implement and evaluate the results in the context of a set of challenging case studies.
Analyzing and evaluating the outcomes of RO1 and RO2 have revealed strengths but also limitations. We have evaluated the strengths and also limitations of the techniques developed to meet RO1 and RO2 an also techniques done by other researchers (results published in different publications an papers).
The fellow, Dr. Bencomo has succeeded meeting the three research objectives stated at the beginning of the project. Three different techniques towards runtime representations of requirements for self-adaptive systems have been provided. Specifically, these techniques are based on the use of runtime goal models, Bayesian dynamic decision networks and Fuzzy logic with computing with words techniques. For the three techniques, different real-life case studies have been undertaken to demonstrate the feasibility of executing changes on the architecture of the system due to changes on requirements during execution. Several international publications have been published reporting the evaluations and comparisons with relevant related work.