Self Adaptive Systems

adeel02 574 views 15 slides Sep 21, 2018
Slide 1
Slide 1 of 15
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15

About This Presentation

The complexity of current software-based systems has led the software engineering community to look for inspiration in diverse related fields (e.g., robotics, artificial intelligence) as well as other areas (e.g., biology) to find new ways of designing and managing systems and services.


Slide Content

Self-Adaptive Systems

The complexity of current software-based systems has led the software engineering community to look for inspiration in diverse related fields (e.g., robotics, artificial intelligence) as well as other areas (e.g., biology) to find new ways of designing and managing systems and services. Self-adaptation Has become one of the most promising directions. The capability of the system to adjust its behaviour in response to its perception of the environment. Self-Adaptation

The development of self-adaptive systems can be viewed from two perspectives: top-down when considering an individual system assess their own behaviour and change it when the assessment indicates a need to adapt due to evolving functional or non-functional requirements bottom-up when considering cooperative systems The global behaviour of the system emerges from these local interactions. The Development of Self-adaptive Systems

Requirements - state of the art - research challenges Engineering - state of the art - research challenges Roadmap

Requirements engineering for self-adaptive systems, therefore, must address what adaptations are possible and what constrains how those adaptations are carried out. In short, requirements engineering for self-adaptive systems must deal with uncertainty because the expectations on the environment frequently vary over time . Requirements – State of the Art

That is, we cannot anticipate requirements for the entire set of possible environmental conditions and their respective adaptation specifications. For example, if a system is to respond to cyber-attacks, one cannot possibly know all attacks in advance since malicious actors develop new attack types all the time . As a result, requirements for self-adaptive systems may involve degrees of uncertainty or may necessarily be specified as “ incomplete ".

A New Requirements Language Mapping to Architecture Managing Uncertainty Online Goal Refinement Traceability from Requirements to Implementation Requirements – Challenges

Preliminary consideration Any attempt to automate self-adaptive systems necessarily has to consider feed-back loops. We focus on the feed-back loop - a concept that is elevated to a first-class entity in control engineering - when engineering self-adaptive software systems. Commonalities of self-adaptive systems What self-adaptive systems have in common is that design decisions are moved towards runtime and that the system reasons about its state and environment. The reasoning typically involves feedback processes with four key activities: collect, analyze, decide, and act Engineering: State of the Art & Feedback Loops

For example, keeping web services up and running for a long time requires: collecting of information that reflects the current state of the system, analysis of that information to diagnose performance problems or to detect failures, deciding how to resolve the problem (e.g., via dynamic load-balancing or healing), and acting to effect the made decision. Example:

When engineering a self-adaptive system, questions about these properties become important. The feedback cycle starts with the collection of relevant data from environmental sensors and other sources that reflect the current state of the system. Some of the engineering questions that need be answered are: How reliable is the sensor data? Engineering: Generic Control Loop

Tight-coupling between application code and adaptation logic Significant development effort to explicitly model the numerous potential states and paths from one state to a new state. Trace the self-adaptive requirements to implementation elements Challenges on Support Self-Adaptation

Autonomic computing seeks to improve computing systems with a similar aim of decreasing human involvement. The term “autonomic” comes from biology. In the human body, the autonomic nervous system takes care of unconscious reflexes, that is, bodily functions that do not require our attention The term autonomic computing was first used by IBM in 2001 to describe computing systems that are said to be self-managing. Autonomic Computing

Autonomic computing aims at providing systems with self-management capabilities self-configuration (automatic configuration according to a specified policy) self-optimization (continuous performance monitoring) self-healing (detecting defects and failures, and taking corrective actions) self-protection (taking preventive measures and defending against malicious attacks) Autonomic Computing