Final Report Summary - REQUIREMENTS@RUNTIME (Requirements-aware systems)
Marie-Curie Project: Requirements-aware Systems ( Requirements@run.time) - 255507
People: Nelly Bencomo (Fellow), Valerie Issarny (Scientist in charge)
www.nellybencomo.me/ReqAwareSys.html
1. PUBLISHABLE SUMMARY
The 24-month project started on the 16/05/2011 and has successfully finished on the 15/05//2013.
A. 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.
B. 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. requirements@run.time).
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 and 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.
In order to meet the objectives the following activities were identified: Systematic literature review, Runtime representation of requirements, Synchronization goals-architecture and Evaluation.
C. Work performed
The work performed during the 24 months can be summarized as follows.
0. Activity: Systematic literature review (Months 1-4, Months 8-12)
Dr. Bencomo reviewed the corresponding fields of requirements for software-intensive systems with adaptive capabilities (making emphasis on specifying adaptive software and on run-time representation of requirements). It allowed Dr. Bencomo to reassess the state-of-the art. This step directly supports RO1 and RO3 as the literature review enabled her to identify the limitations and advantages of the current candidate techniques to compare with the outcome techniques of this project.
This part of the work contributes towards meeting RO1 and RO3 and should support RO2 in the next period.
1. Study of the use of runtime goal models and the RELAX language to represent runtime requirements and support the decision-making of self-adaptive systems. (Activity: Runtime representation of requirements, Months 1--14)
This part of the work contributes towards meeting RO1, RO2, and RO3
Main results achieved so far:
- A Claim-based RELAXation technique: An approach to account for system and environmental uncertainty by RELAXing Claims when there is uncertainty about the evidence for or against a Claim's truth value. The approach can be seen as an implementation of the RELAX language. Experimental results performed on show that RELAXing Claims enables a self-adaptive systems to reduce the number of unnecessary adaptations.
- A Claim-based technique for self-explanation in self-adaptive systems: Our approach also offers explanation of how a system is meeting its requirements, and the reasons why the ways of meeting these were selected.
2. Study of the use of runtime goal models and dynamic decision networks with Bayesian learning to support the decision-making of self-adaptive systems. (Activities Runtime representation of requirements, Synchronization goals-architecture, Evaluation. Mainly executed during months 11-24)
This part of the work contributes towards meeting RO1, RO2, and RO3
Main results achieved so far:
- A Bayesian-based technique to support the decision making of self-adaptive systems. This is a new technique that adopts probabilistic methods (i.e. Bayesian methods) and decision theory to assess the consequences of uncertainty. The approach offers the benefits of machine learning.
3. Study of the role of models@run.time in supporting on-the-fly interoperability and dynamic generation of software in the context of the CONNECT project. (Activities Synchronization goals-architecture, Evaluation. Mainly executed during months 7--21)
This part of the work contributes towards meeting RO2.
Main results achieved so far:
- Contributions towards a technique to use runtime models to support the dynamic synthesis of mediators. During runtime, mediators are formally characterized as runtime models to allow the runtime synthesis of software. In order to do that we have used the contributions of the EU CONNECT project (https://www.connect-forever.eu). We have illustrated how the required runtime models are automatically inferred during execution and refined by exploiting learning and synthesis techniques provided by CONNECT. Crucially, the technique allows the conception of runtime models during the execution of the system
4. Study of goal patterns for emergent systems using CONNECT. (Activities Runtime representation of requirements, Synchronization goals-architecture, Evaluation. Executed during months 8-20)
This part of the work contributes towards meeting RO1 and RO2.
Main results achieved so far:
- A goal-based model-driven approach for deriving emergent system requirements: Using domain ontologies, these requirements are mapped onto linear temporal logic expressions. Later, from these expressions, the middleware layer identifies candidate services to synthesize mediators that intercept and translate service invocations. The technique has been specifically tailored to the CONNECT-based emergent middleware system.
5. Study on how to tackle the obsolescence of quality specifications models in service-based systems using runtime requirements. (Activities Runtime representation of requirements, Evaluation. Executed during months 10-18)
This part of the work contributes towards meeting RO1 and RO3.
Main results achieved so far:
- A technique to mitigate the temporal obsolescence of specification models using the idea of runtime requirements.
6. Activity Dissemination. Executed during months 1-24.
Main results achieved so far: Dr. Bencomo has written different publications during the execution of the Marie-Curie project (see list of publications).
D. Conclusions and potential impact and use:
Self-adaptation of software systems is a topic that has been intensively studied in the last years. However, even after many advances,, at present and in practice, we cannot expect an adaptive systems to be aware of their own requirements. Furthermore, requirements of these systems do not evolve dynamically, even though a truly adaptive system should be also able to satisfy new requirements that have appeared during execution.
During the last few years after the submission of this Marie Curie proposal, several results have been published in the area of requirements-aware systems for self-adaptive systems and this work is one the few research projects that have contributed towards those results. These results are relevant for the development of systems that maintain cognitive control (by humans) over their runtime adaptation. Furthermore, such cognitive control provides the basis for these systems to explain their adaptations and possible exceptions in terms that humans understand. This contributes to overcoming the FP7 ICT Challenge 7: Independent living, inclusion and Governance. Having systems able to explain themselves in terms that humans (who do not necessarily know about computing) contributes towards addressing the challenges of independent living and inclusion. Furthermore, a software intensive system able to dynamically adapt is relevant for critical areas such as energy, smart home energy management, transportation and other areas like e-health and public welfare. The results of the project contribute substantially to Europe’s excellence in the area of development of dynamically adaptive systems. Specifically, the contributions are towards scientific foundations, methods and tools for engineering and developing software-intensive systems that can adapt to unforeseen changes of requirements on the principle of requirements reflection and also Bayesian AI.
Generally, resource consumption has been according to plan. We have used the resources as it was planned. No deviations have occurred. Dr. Bencomo is now a lecturer in Aston University in the UK pursuing her research agenda, which is a follow-up of the finished Marie Curie fellowship.
People: Nelly Bencomo (Fellow), Valerie Issarny (Scientist in charge)
www.nellybencomo.me/ReqAwareSys.html
1. PUBLISHABLE SUMMARY
The 24-month project started on the 16/05/2011 and has successfully finished on the 15/05//2013.
A. 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.
B. 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. requirements@run.time).
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 and 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.
In order to meet the objectives the following activities were identified: Systematic literature review, Runtime representation of requirements, Synchronization goals-architecture and Evaluation.
C. Work performed
The work performed during the 24 months can be summarized as follows.
0. Activity: Systematic literature review (Months 1-4, Months 8-12)
Dr. Bencomo reviewed the corresponding fields of requirements for software-intensive systems with adaptive capabilities (making emphasis on specifying adaptive software and on run-time representation of requirements). It allowed Dr. Bencomo to reassess the state-of-the art. This step directly supports RO1 and RO3 as the literature review enabled her to identify the limitations and advantages of the current candidate techniques to compare with the outcome techniques of this project.
This part of the work contributes towards meeting RO1 and RO3 and should support RO2 in the next period.
1. Study of the use of runtime goal models and the RELAX language to represent runtime requirements and support the decision-making of self-adaptive systems. (Activity: Runtime representation of requirements, Months 1--14)
This part of the work contributes towards meeting RO1, RO2, and RO3
Main results achieved so far:
- A Claim-based RELAXation technique: An approach to account for system and environmental uncertainty by RELAXing Claims when there is uncertainty about the evidence for or against a Claim's truth value. The approach can be seen as an implementation of the RELAX language. Experimental results performed on show that RELAXing Claims enables a self-adaptive systems to reduce the number of unnecessary adaptations.
- A Claim-based technique for self-explanation in self-adaptive systems: Our approach also offers explanation of how a system is meeting its requirements, and the reasons why the ways of meeting these were selected.
2. Study of the use of runtime goal models and dynamic decision networks with Bayesian learning to support the decision-making of self-adaptive systems. (Activities Runtime representation of requirements, Synchronization goals-architecture, Evaluation. Mainly executed during months 11-24)
This part of the work contributes towards meeting RO1, RO2, and RO3
Main results achieved so far:
- A Bayesian-based technique to support the decision making of self-adaptive systems. This is a new technique that adopts probabilistic methods (i.e. Bayesian methods) and decision theory to assess the consequences of uncertainty. The approach offers the benefits of machine learning.
3. Study of the role of models@run.time in supporting on-the-fly interoperability and dynamic generation of software in the context of the CONNECT project. (Activities Synchronization goals-architecture, Evaluation. Mainly executed during months 7--21)
This part of the work contributes towards meeting RO2.
Main results achieved so far:
- Contributions towards a technique to use runtime models to support the dynamic synthesis of mediators. During runtime, mediators are formally characterized as runtime models to allow the runtime synthesis of software. In order to do that we have used the contributions of the EU CONNECT project (https://www.connect-forever.eu). We have illustrated how the required runtime models are automatically inferred during execution and refined by exploiting learning and synthesis techniques provided by CONNECT. Crucially, the technique allows the conception of runtime models during the execution of the system
4. Study of goal patterns for emergent systems using CONNECT. (Activities Runtime representation of requirements, Synchronization goals-architecture, Evaluation. Executed during months 8-20)
This part of the work contributes towards meeting RO1 and RO2.
Main results achieved so far:
- A goal-based model-driven approach for deriving emergent system requirements: Using domain ontologies, these requirements are mapped onto linear temporal logic expressions. Later, from these expressions, the middleware layer identifies candidate services to synthesize mediators that intercept and translate service invocations. The technique has been specifically tailored to the CONNECT-based emergent middleware system.
5. Study on how to tackle the obsolescence of quality specifications models in service-based systems using runtime requirements. (Activities Runtime representation of requirements, Evaluation. Executed during months 10-18)
This part of the work contributes towards meeting RO1 and RO3.
Main results achieved so far:
- A technique to mitigate the temporal obsolescence of specification models using the idea of runtime requirements.
6. Activity Dissemination. Executed during months 1-24.
Main results achieved so far: Dr. Bencomo has written different publications during the execution of the Marie-Curie project (see list of publications).
D. Conclusions and potential impact and use:
Self-adaptation of software systems is a topic that has been intensively studied in the last years. However, even after many advances,, at present and in practice, we cannot expect an adaptive systems to be aware of their own requirements. Furthermore, requirements of these systems do not evolve dynamically, even though a truly adaptive system should be also able to satisfy new requirements that have appeared during execution.
During the last few years after the submission of this Marie Curie proposal, several results have been published in the area of requirements-aware systems for self-adaptive systems and this work is one the few research projects that have contributed towards those results. These results are relevant for the development of systems that maintain cognitive control (by humans) over their runtime adaptation. Furthermore, such cognitive control provides the basis for these systems to explain their adaptations and possible exceptions in terms that humans understand. This contributes to overcoming the FP7 ICT Challenge 7: Independent living, inclusion and Governance. Having systems able to explain themselves in terms that humans (who do not necessarily know about computing) contributes towards addressing the challenges of independent living and inclusion. Furthermore, a software intensive system able to dynamically adapt is relevant for critical areas such as energy, smart home energy management, transportation and other areas like e-health and public welfare. The results of the project contribute substantially to Europe’s excellence in the area of development of dynamically adaptive systems. Specifically, the contributions are towards scientific foundations, methods and tools for engineering and developing software-intensive systems that can adapt to unforeseen changes of requirements on the principle of requirements reflection and also Bayesian AI.
Generally, resource consumption has been according to plan. We have used the resources as it was planned. No deviations have occurred. Dr. Bencomo is now a lecturer in Aston University in the UK pursuing her research agenda, which is a follow-up of the finished Marie Curie fellowship.