Software Engineering for Self-Adaptive Systems III. Assurances


Book Description

A major challenge for modern software systems is to become more cost-effective, while being versatile, flexible, resilient, energy-efficient, customizable, and configurable 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 the software system with self-adaptation capabilities. Despite recent advances in this area, one key aspect that remains to be tackled in depth is the provision of assurances. Originating from a Dagstuhl seminar held in December 2013, this book constitutes the third volume in the series “Software Engineering for Self-Adaptive Systems”, and looks specifically into the provision of assurances. Opening with an overview chapter on Research Challenges, the book presents 13 further chapters written and carefully reviewed by internationally leading researchers in the field. The book is divided into topical sections on research challenges, evaluation, integration and coordination, and reference architectures and platforms.




Software Engineering for Self-Adaptive Systems


Book Description

The carefully reviewed papers in this state-of-the-art survey describe a wide range of approaches coming from different strands of software engineering, and look forward to future challenges facing this ever-resurgent and exacting field of research.




Assurances for Self-Adaptive Systems


Book Description

The increasing complexity of systems and the growing uncertainty in their operational environments have created a critical need to develop systems able to improve their operation, adapt to change, and recover from failures autonomously. This situation has led to recent advances in self-adaptive systems able to reconfigure their structure and modify their behavior at run-time to adapt to environmental changes. Despite these advances, one key aspect of self-adaptive systems that remains to be tackled in depth is "assurances": the provision of evidence that the system satisfies its stated functional and non-functional requirements during its operation in the presence of self-adaptation. This book is one of the outcomes of the ESEC/FSE 2011 Workshop on Assurances for Self-Adaptive Systems (ASAS), held in Szeged, Hungary, in September 2011. It contains extended versions of some of the papers presented during the workshop, as well as invited papers from recognized experts. The 12 refereed papers were thoroughly reviewed and selected. The book consists of four parts: formal verification, models and middleware, failure prediction, and assurance techniques.




[email protected]


Book Description

Traditionally, research on model-driven engineering (MDE) has mainly focused on the use of models at the design, implementation, and verification stages of development. This work has produced relatively mature techniques and tools that are currently being used in industry and academia. However, software models also have the potential to be used at runtime, to monitor and verify particular aspects of runtime behavior, and to implement self-* capabilities (e.g., adaptation technologies used in self-healing, self-managing, self-optimizing systems). A key benefit of using models at runtime is that they can provide a richer semantic base for runtime decision-making related to runtime system concerns associated with autonomic and adaptive systems. This book is one of the outcomes of the Dagstuhl Seminar 11481 on [email protected] held in November/December 2011, discussing foundations, techniques, mechanisms, state of the art, research challenges, and applications for the use of runtime models. The book comprises four research roadmaps, written by the original participants of the Dagstuhl Seminar over the course of two years following the seminar, and seven research papers from experts in the area. The roadmap papers provide insights to key features of the use of runtime models and identify the following research challenges: the need for a reference architecture, uncertainty tackled by runtime models, mechanisms for leveraging runtime models for self-adaptive software, and the use of models at runtime to address assurance for self-adaptive systems.




An Introduction to Self-adaptive Systems


Book Description

A concise and practical introduction to the foundations and engineering principles of self-adaptation Though it has recently gained significant momentum, the topic of self-adaptation remains largely under-addressed in academic and technical literature. This book changes that. Using a systematic and holistic approach, An Introduction to Self-adaptive Systems: A Contemporary Software Engineering Perspective provides readers with an accessible set of basic principles, engineering foundations, and applications of self-adaptation in software-intensive systems. It places self-adaptation in the context of techniques like uncertainty management, feedback control, online reasoning, and machine learning while acknowledging the growing consensus in the software engineering community that self-adaptation will be a crucial enabling feature in tackling the challenges of new, emerging, and future systems. The author combines cutting-edge technical research with basic principles and real-world insights to create a practical and strategically effective guide to self-adaptation. He includes features such as: An analysis of the foundational engineering principles and applications of self-adaptation in different domains, including the Internet-of-Things, cloud computing, and cyber-physical systems End-of-chapter exercises at four different levels of complexity and difficulty An accompanying author-hosted website with slides, selected exercises and solutions, models, and code Perfect for researchers, students, teachers, industry leaders, and practitioners in fields that directly or peripherally involve software engineering, as well as those in academia involved in a class on self-adaptivity, this book belongs on the shelves of anyone with an interest in the future of software and its engineering.




Managing Trade-offs in Adaptable Software Architectures


Book Description

Managing Trade-Offs in Adaptable Software Architectures explores the latest research on adapting large complex systems to changing requirements. To be able to adapt a system, engineers must evaluate different quality attributes, including trade-offs to balance functional and quality requirements to maintain a well-functioning system throughout the lifetime of the system. This comprehensive resource brings together research focusing on how to manage trade-offs and architect adaptive systems in different business contexts. It presents state-of-the-art techniques, methodologies, tools, best practices, and guidelines for developing adaptive systems, and offers guidance for future software engineering research and practice. Each contributed chapter considers the practical application of the topic through case studies, experiments, empirical validation, or systematic comparisons with other approaches already in practice. Topics of interest include, but are not limited to, how to architect a system for adaptability, software architecture for self-adaptive systems, understanding and balancing the trade-offs involved, architectural patterns for self-adaptive systems, how quality attributes are exhibited by the architecture of the system, how to connect the quality of a software architecture to system architecture or other system considerations, and more. - Explains software architectural processes and metrics supporting highly adaptive and complex engineering - Covers validation, verification, security, and quality assurance in system design - Discusses domain-specific software engineering issues for cloud-based, mobile, context-sensitive, cyber-physical, ultra-large-scale/internet-scale systems, mash-up, and autonomic systems - Includes practical case studies of complex, adaptive, and context-critical systems




Software Engineering for Self-Adaptive Systems


Book Description

Although the self-adaptability of systems has been studied in a wide range of disciplines, from biology to robotics, only recently has the software engineering community recognized its key role in enabling the development of self-adaptive systems that are able to adapt to internal faults, changing requirements, and evolving environments. The 15 carefully reviewed papers included in this state-of-the-art survey were presented at the International Seminar on "Software Engineering for Self-Adaptive Systems", held in Dagstuhl Castle, Germany, in October 2010. Continuing the course of the first book of the series on "Software Engineering for Self-Adaptive Systems" the collection of papers in this second volume comprises a research roadmap accompanied by four elaborating working group papers. Next there are two parts - with three papers each - entitled "Requirements and Policies" and "Design Issues"; part four of the book contains four papers covering a wide range of "Applications".




Modeling collaborations in self-adaptive systems of systems


Book Description

An increasing demand on functionality and flexibility leads to an integration of beforehand isolated system solutions building a so-called System of Systems (SoS). Furthermore, the overall SoS should be adaptive to react on changing requirements and environmental conditions. Due SoS are composed of different independent systems that may join or leave the overall SoS at arbitrary point in times, the SoS structure varies during the systems lifetime and the overall SoS behavior emerges from the capabilities of the contained subsystems. In such complex system ensembles new demands of understanding the interaction among subsystems, the coupling of shared system knowledge and the influence of local adaptation strategies to the overall resulting system behavior arise. In this report, we formulate research questions with the focus of modeling interactions between system parts inside a SoS. Furthermore, we define our notion of important system types and terms by retrieving the current state of the art from literature. Having a common understanding of SoS, we discuss a set of typical SoS characteristics and derive general requirements for a collaboration modeling language. Additionally, we retrieve a broad spectrum of real scenarios and frameworks from literature and discuss how these scenarios cope with different characteristics of SoS. Finally, we discuss the state of the art for existing modeling languages that cope with collaborations for different system types such as SoS.




Engineering Adaptive Software Systems


Book Description

This book discusses the problems and challenges in the interdisciplinary research field of self-adaptive software systems. Modern society is increasingly filled with software-intensive systems, which are required to operate in more and more dynamic and uncertain environments. These systems must monitor and control their environment while adapting to meet the requirements at runtime. This book provides promising approaches and research methods in software engineering, system engineering, and related fields to address the challenges in engineering the next-generation adaptive software systems. The contents of the book range from design and engineering principles (Chap. 1) to control–theoretic solutions (Chap. 2) and bidirectional transformations (Chap. 3), which can be seen as promising ways to implement the functional requirements of self-adaptive systems. Important quality requirements are also dealt with by these approaches: parallel adaptation for performance (Chap. 4), self-adaptive authorization infrastructure for security (Chap. 5), and self-adaptive risk assessment for self-protection (Chap. 6). Finally, Chap. 7 provides a concrete self-adaptive robotics operating system as a testbed for self-adaptive systems. The book grew out of a series of the Shonan Meetings on this ambitious topic held in 2012, 2013, and 2015. The authors were active participants in the meetings and have brought in interesting points of view. After several years of reflection, they now have been able to crystalize the ideas contained herein and collaboratively pave the way for solving some aspects of the research problems. As a result, the book stands as a milestone to initiate further progress in this promising interdisciplinary research field.




Evaluation of Novel Approaches to Software Engineering


Book Description

This book constitutes the refereed proceedings of the 13th International Conference on Evaluation of Novel Approaches to Software Engineering, ENASE 2018, held in Funchal, Madeira, Portugal, in March 2018. The 17 revised full papers and 5 revised short papers presented were carefully reviewed and selected from 95 submissions. The papers are organized in topical sections on service science and business information systems and software engineering.