Self Adaptive Software. An Architecture-Based Approach to Self-Adaptive Software - P eyman Oreizy, Michael M. Gorlick, Richard N. Taylor, Dennis Heimbigner, Gregory Johnson, Nenad Medvidovic, Alex Quilici,David S. Rosenblum, and Alexander L. Wolf Presenter : Viral Mehta ([email protected]).
“Software that modifies its behavior in response to changes in its operating environment – end user input ,external hardware device and sensors”
Eg: Fleet of unmanned air vehicles.
Continuously running Applications
Changes in Environment
paint of a room.
Can Serve multiple purpose by changing behavior
Open or Closed adaptation
Type of autonomy
Information Type and Accuracy
Developing a compressive adaptation methodology that spans adaptation in the small to adaptation in the large, and then develop the technology that support the entire range of adaptations.
Change app. s/w.Software Adaptation in the Large
Process by which changes are applied, controlled and verified.
Entities / Phases:
Dynamic software Architectures
C2 / Weaves
Maintaining consistency and system integrity
Architecture evolution manager
Editors / Interpreter
Service requested form above components
Notifications to components below
Flexible Components - do not share a common address space / common thread of controlDynamic software Architectures - C2
Object as input – object as output
Blind communicationDynamic software Architectures - Weaves
Neither places restriction on granularity of components
Asynchronous communicationSimilarities Weaves / C2 (help adaptation)
Ongoing adaptations continuously threatens system safety, reliability and correctness
Strict correspondence between the architectural model and the executing implementation required.
Architecture evolution manager (AEM)
changes – single / Transaction
Maintains consistency between the architectural model and implementation as changes are applied
Prevents changes from violating architectural constraints.
eg. Each component has to be connected to a connector
Used to construct architecture and describe modification. Eg. Visio
critiques as arch is built – prevent semantic errors / ensure min amount of safety
to interpret change scripts
Describes the life cycle of adaptive software systems
Monitors and evaluates the application and its operating environment
Deploys change description to running application
Embedded assertions (inline observers)
resource shortage ,violation of low level constrained
responds to the occurrence of event pattern
Availability of network connection
Inconsistencies can occur when some architectural element behaves in a manner inconsistent with the required behavior or when an elements assumption about its environment becomes invalid
Attributed graph grammar
runtime checks using observers
Determines which observations are necessary for deciding when and where adaptations are required.
Takes in to account environmental assumptions, expected behaviors, availability of observers, and their costs
Determines which adaptations to make and when
For faster reaction : Predefined solution framework
Propagate among various sites to make required changes
carry with them the new components / connectors
coordinated changes at multiple sites