Causes of change requirements faults

Software Self-Adaptation
A survey of the field
“Self-adaptive software evaluates its own behavior and
changes behavior when the evaluation indicates it is not
accomplishing what the software is intended to do, or when
better functionality or performance is possible”.
- DARPA Broad Agency Announcement 98/12 -
Advisor: Prof. J.P. Sousa
Student: Nikolaos Abatzis
SWE796 – Spring 2008





Introduction
Why change? causes
Change what? effects
Choices, choices …
Are we there yet?
SWE 796 - Spring ‘08
2
need for runtime change
 timescale for change
 complexity
 mobility - we must take account of the environment
(embedded systems are majority of systems around
~98%)1
enabler for change
 capability (Moore’s law)
Robertson, P., Laddaga, R. and Shrobe, H., Introduction: The First International Workshop on SelfAdaptive Software, Oxford UK 2000
1
SWE 796 - Spring ‘08
3
Change drives adaptation
Self-adaptation
Causes of change
•self-healing
•requirements
•self-optimizing
•faults
•resources
not trivial !
SWE 796 - Spring ‘08
4
Change drives adaptation
Causes of change
•requirements
•faults
•resources
SWE 796 - Spring ‘08
Self-adaptation
•self-healing
•self-optimizing
5
Different focus based on change handled
SWE 796 - Spring ‘08
6
 What is a resource?
 “simple”, i.e. CPU, energy, network bandwidth
 service, i.e. speech recognition
 composite service, i.e. speech-to-speech
SWE 796 - Spring ‘08
7
Effects of change





Software parameters (fidelity)
Algorithms, switch the executing code
redeployment of components
Use of resources
Services
SWE 796 - Spring ‘08
8
different models & mechanisms,
SWE 796 - Spring ‘08
9
SWE 796 - Spring ‘08
10
process control loops
feedback loop
Shaw, M., Beyond Objects: A software design paradigm based on process control, in ACM Software Engineering
notes, 20(1), January 1995, 27-38
SWE 796 - Spring ‘08
11
Control loop for self-* systems
Autonomic Computing: An architectural blueprint for autonomic computing, IBM, June 2006 (Fourth Ed.).
SWE 796 - Spring ‘08
12
Adaptation at different levels
Autonomic Computing: An architectural blueprint for autonomic computing, IBM, June 2006 (Fourth Ed.).
SWE 796 - Spring ‘08
13
architecture-based self-adaptation
 Model composed of components & connectors
 Specific to C2, Weaves [Oreizy+, 1999]
 Architecture is generic, reusable adaptation mechanism
[Garlan+, 2004]
 Mechanisms for adaptation based on
 Knowledge, potential to adapt the mechanism itself
[Georgas+, 2004]
 Self-adaptation language, Stitch [Cheng+, 2007]
 Hierarchical parallel finite state machines (HFSM)
[Karsai+, 2001]
SWE 796 - Spring ‘08
14
architecture of self-adaptation
 peer-to-peer, aggregator-escalator-peer,
Chain-of-configurators (Chain-ofresponsibility pattern, Visitor pattern)
[Hawthorn+, 2005]
 Evaluation using ABAS [Neti+, 2007]
SWE 796 - Spring ‘08
15
SWE 796 - Spring ‘08
16
No model of the system per se
 Agent transfers internal state, PortBased agents [Dixon+,2000]
 Use an adaptation automaton to map old
process states to new states
[Biyani+,2007]
 Agents dynamically change commitments
which puts them in specific roles, situated
(in an environment) multiagent systems
(MAS) [Weyns+,2007]
SWE 796 - Spring ‘08
17
Model of the system
 Contained within each runtime
component, autonomous [Georgiadis+,
2002]
SWE 796 - Spring ‘08
18
SWE 796 - Spring ‘08
19
search solutions – random & centralized control
 population-based model
 Mechanisms: crossover, mutation, selection,
fitness
 Genetic algorithms [Whitley, 1994]. Genetic
programming, use algorithms to generate
programs! [Poli+,2008]
 Evolution platform – AVIDA [Golsby+,2007]
 Generate state diagrams for processing components
SWE 796 - Spring ‘08
20
compose a solution, distributed
 Cell inspired
 no specific model
 simple “instructions”
 local communication
 Cell automata [George+, 2002]
 shows self-healing, very low-level
 Cell inspired agents [Nagpal+, 2003]
 Self-assembly, computational synthesis
SWE 796 - Spring ‘08
21
SWE 796 - Spring ‘08
22
 Managing a resource at the O/S level
 conserve energy by adapting the fidelity of the data
presented to an application (Odyssey)[Flinn+,1999]
 Managing multiple resources
 Maximize a utility function for a user executing one or
more tasks given available resources and their QoS,
Environment Manager – Aura [Sousa+,2003]
 Choice of runtime execution platform, given
bandwidth, CPU, memory and energy considerations,
tactics – Chroma [Balan+,2003]
SWE 796 - Spring ‘08
23
 Managing multiple users
 Microeconomics/centralized – auction
protocol[Capra+,2003]
 everybody wins! Maximize the sum of bids received
 Microeconomics/distributed – congestion
pricing[Neugebauer+,2000]
 each user is charged depending on the “scarcity” of the
resource requested
SWE 796 - Spring ‘08
24
Causes of change
Self-adaptation
•requirements
•self-healing
•faults
•self-optimizing
•resources
System complexity,
environment, embedded systems
have to deal with change. They
need to adapt to it.
Adapting topology, resource
usage, fidelity. No on-the-fly
application modification, not yet
anyways.
 Many promising approaches exist,
bringing tools from control theory,
biology, economics, utility theory,
artificial intelligence, etc.
SWE 796 - Spring ‘08
25
Question:
Who, what, when, adapts the adapting
mechanisms?
SWE 796 - Spring ‘08
26
Thank You !!!
Questions ???
SWE 796 - Spring ‘08
27