240 likes | 428 Views
An Architecture-Based Approach to Self-Adaptive Software . Presenters Douglas Yu-cheng Su Ajit G. Sonawane. What is Self-adaptive software?.
E N D
An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane
What is Self-adaptive software? “A software that modifies its own behavior in response to the changes in its operating environment such as end-user input, external hardware devices and sensors”
Why Adaptive Software? • Software’s original promise: ‘application that retain full plasticity throughout their lifecycle and that are as easy to modify in the field as they are on the drawing board’ High-level programming languages, Object Oriented analysis and design etc falls short of keeping the promise. Self-adaptive software – provides to keep the promise!
What issues to keep in mind? • Condition • Open-adaptive or Close-adaptive • Cost-Effectiveness • Frequency • Information type and accuracy
Software Adaptation In-The-Large I Goals • Develop a comprehensive adaptation methodology that supports the entire range of adaptation process or life-cycle.
Software Adaptation In-The-Large II Adaptation Life-Cycle
Software Adaptation In-The-Large III Important Features of Adaptation Life-Cycle: • Change Management(Adaptation Management) - Identify and Specify Changes - Plan Changes - Correctness and Coordination of Changes (Software Agents, Explicit Representation of Environment to deploy) • Change Mechanism (Evolution Management) - Approaches (Architectural Based) - Maintain Consistency and Enact Change Plan An Ontology for self-adaptive software
Evolution Management • Dynamic Software Architecture - Components, Connectors, and Topology - Reliable Manner with Architectural Formalisms • Maintaining Consistency & System Integrity - Facilities for guiding and checking modifications - Manager to coordinate changes • Enact Changes - Architecture editor
Dynamic Software Architecture I- Weaves & C2 C2 • Hierarchy of concurrent components • Service request • Broadcast notification • Flexible component (no inter-dependent component thread)
Dynamic Software Architecture II- Weaves & C2 Weaves • Object as input and output • Laws of blind communication • Flexible connectors
Dynamic Software Architecture III- Weaves & C2 Similarities between Weaves & C2: • Distinguish between components and connectors • No restrictions on the granularity of the components or implementation language • Asynchronous messages for inter-component communication • Component encapsulates functionalities and controls
Maintaining Consistency & System Integrity • Need to integrate facilities for guiding and checking modifications • Need to provide maintenance for strict correspondence between architectural model and implementation Solution: Architecture Evolution Manager (AEM) • Maintain “change transaction”(single, basic, and atomic operation) • Maintain consistency between architectural model and executing implementation • Reify changes in architectural model • Prevent changes from violating architectural constraints.
Enacting Changes Architecture Editor (To construct architectures and describe modifications) • Design Wizard (To prevent semantic errors) • Modification Interpreter (To interpret change scripts written by AEM)
Adaptation Management Functions • Collect Changes • Monitors and Evaluates the application and its operational environment • Plans Adaptations • Deploys change descriptions to running application
Adaptation Management contRequirement for Self-Adaptive Software • Observers Evaluates the behavior of the self-adaptive application and monitors its operating environment. • Planners Utilizes the observations to plan adaptive responses. • Deployers Enact the responses within the application Requires infrastructure support in the form of “registry” (e.g. Software Dock)
Collecting Observation • Embedded Assertions (inline observers) • Use of ‘Expectation Agent’ • Monitor events that occur outside of Application e.g. availability of network connection, dynamic architectural change • Human Observers in cooperation with automated changes
Evaluation and Monitoring • Use of Attributed graph grammers
Planning Changes Two distinct forms of planning • Observation Planning Which observations are necessary for deciding when and where adaptations are required Classic Planning Problem • Adaptation Planning Exactly which adaptations to make and when
Deploying Change Descriptors • Use of Mobile Agents
Methodology CRM ERP Workflow Automation Others Strength • Fine-grain architectural-based approach to supports the entire range of adaptive software
Weakness • Fine-grain architectural-based approach to supports the entire range of adaptive software. Too Fine-grain??? • Domain specific ontology/framework for adaptive software?
Weakness cont. Example: Workflow Automation
Thank You. Question or Comments?