Software Engineering for Self-Adaptive Systems: Research Challenges in the Provision of Assurances

  title={Software Engineering for Self-Adaptive Systems: Research Challenges in the Provision of Assurances},
  author={Rog{\'e}rio de Lemos and David Garlan and Carlo Ghezzi and Holger Giese and Jesper Andersson and Marin Litoiu and Bradley R. Schmerl and Danny Weyns and Luciano Baresi and Nelly Bencomo and Yuriy Brun and Javier C{\'a}mara and Radu Calinescu and Myra B. Cohen and Alessandra Gorla and Vincenzo Grassi and Lars Grunske and Paola Inverardi and Jean-Marc J{\'e}z{\'e}quel and Sam Malek and Raffaela Mirandola and Marco Mori and Hausi A. M{\"u}ller and Romain Rouvoy and Cec{\'i}lia M. F. Rubira and {\'E}ric Rutten and Mary Shaw and Giordano Tamburrelli and Gabriel Tamura and Norha M. Villegas and Thomas Vogel and Franco Zambonelli},
  booktitle={Software Engineering for Self-Adaptive Systems},
The important concern for modern software systems is to become more cost-effective, while being versatile, flexible, resilient, dependable, energy-efficient, customisable, configurable and self-optimising when reacting to run-time changes that may occur within the system itself, its environment or requirements. One of the most promising approaches to achieving such properties is to equip software systems with self-managing capabilities using self-adaptation mechanisms. Despite recent advances… 

10 Challenges for the specification of self-adaptive software

The main contribution of this paper is a list of ten challenges to achieve a better-defined specification of requirements for SAS systems, and a more effective verification of such specifications.

Architecting Trustworthy Self-Adaptive Systems (Tutorial)

This tutorial presents the ENTRUST methodology for achieving a similar level of trust in self- Adaptive systems, the first end-to-end methodology for architecting trustworthy self-adaptive systems and dynamic assurance cases guaranteeing the suitability of the software for its intended applications.

Architecting Trustworthy Self-adaptive Systems

This tutorial will present the ENTRUST methodology for achieving a similar level of trust in selfadaptive systems and show how ENTR Trust can be used to engineer a self-adaptive unmanned underwater vehicle system and aSelf- Adaptive service-based system.

Software Engineering of Self-adaptive Systems

  • Danny Weyns
  • Computer Science
    Handbook of Software Engineering
  • 2019
In this chapter, a particular perspective on the evolution of the field of self-adaptation in six waves is provided, which put complementary aspects of engineering self- Adaptive systems in focus that synergistically have contributed to the current knowledge in the field.

A Learning Approach to Enhance Assurances for Real-Time Self-Adaptive Systems

This work proposes a method to provide assurance of self-adaptive systems, at design-and runtime, with special focus on real-time constraints, which combines off-line requirements elicitation and model checking with on-line data collection and data mining to guarantee the system's goals.

ActivFORMS: A Model-Based Approach to Engineer Self-Adaptive Systems

ActivFORMS (Active FORmal Models for Self-adaptation) provides guarantees for the correct behavior of the feedback loop with respect to a set of correctness properties at design time and preserves the guarantees at runtime.

Comparison of approaches for developing self-adaptive systems

This work addresses this issue by presenting a taxonomy for the analysis and comparison of different approaches for developing self-adaptive systems, and demonstrates how these dimensions can be applied to compare and classify related work.

Self-Adaptive Software Systems in Contested and Resource-Constrained Environments: Overview and Challenges

A systematic literature review of publications over the last decade finds that the most frequent application domains are those where failures are frequent and costly, namely, cloud computing, web services and applications, and servers.

ActivFORMS: A Formally-Founded Model-Based Approach to Engineer Self-Adaptive Systems

ActivFORMS contributes an end-to-end approach for engineering self-adaptive systems, spanning four main stages of the life cycle of a feedback loop: design, deployment, runtime adaptation, and evolution.

A Formal Model for Quality-Driven Decision Making in Self-Adaptive Systems

A formal model for quality-driven self-adaptive systems under uncertainty is introduced and high-level Petri nets and plausible Petrinets are combined in order to model complex data structures enabling system quality attributes quantification and to improve the decision-making process through selecting the most plausible plans with regard to the system's actual context.



Challenges in Composing and Decomposing Assurances for Self-Adaptive Systems

How existing assurance techniques can be applied to composing and decomposing assurances for self-adaptive systems are discussed, the challenges in applying them are highlighted, existing research to address some of these challenges are summarized, and gaps and opportunities are identified by future research.

Using Models at Runtime to Address Assurance for Self-Adaptive Systems

A key challenge for self-adaptive software systems is assurance, and fundamental to the develop- ment of runtime assurance techniques is research into the use of models at runtime.

Uncertainty in Self-Adaptive Software Systems

This paper characterized the sources of uncertainty in self-adaptive software system, and demonstrated its impact on the system’s ability to satisfy its objectives, and provided an alternative notion of optimality that explicitly incorporates the uncertainty underlying the knowledge (models) used for decision making.

Software Engineering for Self-Adaptive Systems: A Second Research Roadmap

The goal of this roadmap paper is to summarize the state-of-the-art and identify research challenges when developing, deploying and managing self-adaptive software systems. Instead of dealing with a

A framework for evaluating quality-driven self-adaptive software systems

This paper proposes a framework for evaluating quality-driven self-adaptive software systems, based on a survey of self- Adaptive system papers and a set of adaptation properties derived from control theory properties, and establishes a mapping between these properties and software quality attributes.

Engineering Self-Adaptive Systems through Feedback Loops

The state-of-the-art in engineering self-adaptive systems is explored and the critical challenges the community must address to enable systematic and well-organized engineering of self- Adaptive and self-managing software systems are identified.

Uncertainties in the modeling of self-adaptive systems: a taxonomy and an example of availability evaluation

This work motivates the need for the consideration of the concept of uncertainty in the model-based evaluation as a primary actor, classifies the avowed uncertainties of self-adaptive systems, and illustrates examples of how different types of uncertainties are present in the modeling of system characteristics for availability requirement satisfaction.

Software Engineering for Self-Adaptive Systems: A Research Roadmap

The goal of this roadmap paper is to summarize the state-of-the-art and to identify critical challenges for the systematic software engineering of self-adaptive systems. The paper is partitioned into

Using Architectural Style as a Basis for System Self-repair

This paper shows how to generalize solutions by making architectural style a parameter in the monitoring/repair framework and its supporting infrastructure, and the value of this generalization is that it allows one to tailor monitoring/ repair mechanisms to match both the properties of interest and the available operators for run time adaptation.

A survey of formal methods in self-adaptive systems

The study shows that the attention for self-adaptive software systems is gradually increasing, but the number of studies that employ formal methods remains low, and there is a need for light-weight tools to support runtime verification.