Hossein Tajalli, Joshua Garcia, George Edwards, and Nenad Medvidovic Computer Science Department University of Southern California.

Slides:



Advertisements
Similar presentations
Jeremy S. Bradbury, James R. Cordy, Juergen Dingel, Michel Wermelinger
Advertisements

3° Workshop Nazionale del Gruppo di Interesse in Ingegneria del Software Genova, 2-3 ottobre 2006 CASE – Libera Università di Bolzano-Bozen RCOST – Università
Automated Theorem Proving Lecture 1. Program verification is undecidable! Given program P and specification S, does P satisfy S?
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.
By Xiangzhe Li Thanh Nguyen.  Components and connectors are composed in a specific way in a given system’s architecture to accomplish that system’s objective.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Software Architectures and Embedded Systems Nenad Medvidovic with Sam Malek and Marija Mikic-Rakic Computer Science Department University of Southern California.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
Train Control Language Teaching Computers Interlocking By: J. Endresen, E. Carlson, T. Moen1, K. J. Alme, Haugen, G. K. Olsen & A. Svendsen Synthesizing.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
Analysis of Software Architectures. What Is Architectural Analysis? Architectural analysis is the activity of discovering important system properties.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
© Copyright Jeff Offutt, 2000 WESAS, 5/00 1 Analyzing Software Architecture Descriptions to Generate System-level Tests Aynur Abdurazik, Zhenyi Jin, Jeff.
Challenges in Adapting Automated Planning for Autonomic Computing Biplav Srivastava Subbarao Kambhampati IBM India Research Lab Arizona State University.
A Model-Driven Framework for Architectural Evaluation of Mobile Software Systems George Edwards Dr. Nenad Medvidovic Center.
1 Software Architecture: a Roadmap David Garlen Roshanak Roshandel Yulong Liu.
An Architectural Approach to Robotics Software Design, Implementation, and Deployment Brian D’Souza Joshua Garcia Ivo Krka Natachart Laotheppitak Hossein.
Self Adaptive Software
1 Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors Nenad Medvidovic with Marija Rakic and Barry Boehm University.
Identifying Architectural Bad Smells Joshua Garcia, Daniel Popescu, George Edwards and Nenad Medvidovic University of Southern California.
Self-Stabilization An Introduction Aly Farahat Ph.D. Student Automatic Software Design Lab Computer Science Department Michigan Technological University.
Chapter 1: Overview of Workflow Management Dr. Shiyong Lu Department of Computer Science Wayne State University.
Software Self-Adaptation A survey of the field “Self-adaptive software evaluates its own behavior and changes behavior when the evaluation indicates it.
Automatic Software Testing Tool for Computer Networks ARD Presentation Adi Shachar Yaniv Cohen Dudi Patimer
Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning.
Marco Blumendorf I July 21th, 2009 Towards a Model-Based Framework for the Development of Adaptive Multimodal User Interfaces.
1 Autonomic Computing An Introduction Guenter Kickinger.
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
Verification of Translation Model Transformations Levi Lúcio †, Bentley James Oakes, and Hans Vangheluwe †,‡ † School of Computer Science, McGill University,
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Architecture-based Adaptivity by Amir Taherkordi INF5360: Seminar on Dependable and Adaptive Distributed Systems Department of Informatics.
A Specification Language and Test Planner for Software Testing Aolat A. Adedeji 1 Mary Lou Soffa 1 1 DEPARTMENT OF COMPUTER SCIENCE, UNIVERSITY OF VIRGINIA.
Automating service management Tiina Niklander Faculty of Science Department of Computer Science In AMICT 2008 Petrozavodsk, May 2008.
2/6/01USC - Center for Software Engineering 1 Marrying Software Architecture with Configuration Management Techniques Roshanak Roshandel
Formalizing the Asynchronous Evolution of Architecture Patterns Workshop on Self-Organizing Software Architectures (SOAR’09) September 14 th 2009 – Cambrige.
Christian Heinzemann 11. Oktober 2015 Modeling Behavior of Self-Adaptive Systems Seminar Software Quality and Safety.
Plan-Directed Architectural Change for Autonomous Systems Daniel Sykes, William Heaven, Jeff Magee, Jeff Kramer Imperial College London.
Chapter 1: Overview of Workflow Management Dr. Shiyong Lu Department of Computer Science Wayne State University.
Henry Muccini - Computer Science Department, Universita' dell'Aquila, Italy Paola Inverardi - Computer Science Department, Universita'
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
Cracow Grid Workshop, October 27 – 29, 2003 Institute of Computer Science AGH Design of Distributed Grid Workflow Composition System Marian Bubak, Tomasz.
An Implementation and Performance Evaluation of Language with Fine-Grain Thread Creation on Shared Memory Parallel Computer Yoshihiro Oyama, Kenjiro Taura,
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Class 5 Architecture-Based Self-Healing Systems David Garlan Carnegie Mellon University.
Haley: A Hierarchical Framework for Logical Composition of Web Services Haibo Zhao, Prashant Doshi LSDIS Lab, Dept. of Computer Science, University of.
Enabling Self-management Of Component Based Distributed Applications Ahmad Al-Shishtawy 1, Joel Höglund 2, Konstantin Popov 2, Nikos Parlavantzas 3, Vladimir.
1 Run-Time Software Engineering An approach for Embedded and Ubiquitous Computing Environments Sooyong Park Sogang University South.
Software Deployment and Mobility. Introduction Deployment is the placing of software on the hardware where it is supposed to run. Redeployment / migration.
Enabling Self-management of Component-based High-performance Scientific Applications Hua (Maria) Liu and Manish Parashar The Applied Software Systems Laboratory.
Testing Implementation Conformance with respect to its Architectural specification Software Architectures and Testing Begin Antonia Bertolino IEI - CNR,
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Survey of Tools to Support Safe Adaptation with Validation Alain Esteva-Ramirez School of Computing and Information Sciences Florida International University.
Architecture-Driven Self- Adaptation and Self- Management in Robotics Systems By George Edwards, Joshua Garcia, Farshad Tajalli, Daniel Popescu, Nenad.
Hossein Tajalli & Joshua Garcia. Motivation Self-* or autonomic systems Self-configuration, self-adaptation, and self-healing Why we might want self-adaptive.
George Edwards Computer Science Department Center for Systems and Software Engineering University of Southern California
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
Mechanisms for Requirements Driven Component Selection and Design Automation 최경석.
Software Architecture Lecture 3
Software Architecture
Chapter 18 Maintaining Information Systems
Software Architecture Lecture 3
Model-Driven Analysis Frameworks for Embedded Systems
The Extensible Tool-chain for Evaluation of Architectural Models
Software Architecture Lecture 3
The Extensible Tool-chain for Evaluation of Architectural Models
Software Architecture Lecture 3
Software Architecture Lecture 3
Automated Analysis and Code Generation for Domain-Specific Models
Software Architecture Lecture 3
Presentation transcript:

Hossein Tajalli, Joshua Garcia, George Edwards, and Nenad Medvidovic Computer Science Department University of Southern California

Introduction Modern Software Requirements High reliability High availability Run-time support for Alter/extend functionality Handle failure Update (e.g. to fix bugs) Architecture-Based Autonomic Systems Self-aware, self-adapting, and self-healing Low complexity High scalability Builds on existing work

Example Application 1234 unlock lock loadlock unload unlock LockedØLoaded ˄ Locked Operations: lock unlock Locker Comp Operations: load unload Loader Comp Domain Model Description

Implementation & Goal Change Executer Loader Locker Connector New Executer 1234 unlock lock loadlock unload unlock LockedØLoaded ˄ Locked GOAL 4 New GOAL 1

PLAN StateAction 1unlock 2load 3lock 4DONE PLAN StateAction 4unlock 3unload 2lock 1DONE Planning 1234 unlock lock loadlock unload unlock LockedØLoaded ˄ Locked GOAL 4 New GOAL 1 Executer Loader Locker Connector

Change of Requirements 1234 unlock lock loadlock unload unlock LockedØLoaded ˄ Locked 5 loadadjust Misplaced Operations: lock unlock Locker Comp Operations: load unload Loader Comp Operations: adjust Adjuster Comp

Change of Requirements Executer Connector New Executer 1234 unlock lock loadlock unload unlock LockedØLoaded ˄ Locked GOAL 4 5 loadadjust Misplaced Loader Locker Adjuster

Policy-based Adaptation Executer Connector 1234 unlock lock loadlock unload unlock LockedØLoaded ˄ Locked GOAL 4 5 loadadjust Misplaced Loader Locker Adjuster Policy: If (state=“Misplaced”) Instantiate(Adjuster); Add(Adjuster); Connect(Adjuster, Connector); Replace(Executer); New Executer

Policy-based Self-Adaptive Systems Current Policy-based systems (e.g. PBAAM [Georgas&Taylor08]) Puts lots of burden on system architect Manually created policies: time-consuming, error-prone Only handle foreseen situations

Plan-based Self-Adaptive Systems Current plan-based self-adaptive systems (e.g. [Sykes08]) Manual system requirement definition Cannot handle change in system requirements Cannot handle goal change at runtime Are not used to change the structure of the software

Domain of software adaptation can be modeled Model can be used to plan for adaptation Software Adaptation Domain Inst(C1) Add(C1) Add(C2) Inst(C2) Inst(C1) Inst(C2) Kill(C2) Kill(C1) Remove(C1) Add(C1) Remove(C1) Add(C2) Remove(C2) Connect(C1,C2) Disconnect(C1,C2) Exist(C1) ˄ Exist(C2) ˄ ArchIncludes(C1) ˄ ArchIncludes(C2) ˄ Connected(C1,C2) Exist(C1) ˄ Exist(C2) ˄ ArchIncludes(C1) ˄ ArchIncludes(C2) Exist(C1) ˄ Exist(C2) ˄ ArchIncludes(C1) Exist(C1) ˄ Exist(C2) ˄ ArchIncludes(C2) Exist(C1) ˄ Exist(C2) Exist(C2) Exist(C1) Ø 5 Architecture C1 C

Software Adaptation Domain (Planning) 5 Architecture C1 8 Architecture C1C2 GOAL INITIAL Adaptation PLAN StateAction 5Add(C2) 7Connect(C1,C2) 8DONE

Software Adaptation Domain (Implementation) Inst(C1) Add(C1) Add(C2) Inst(C2) Inst(C1) Inst(C2) Kill(C2) Kill(C1) Remove(C1) Add(C1) Remove(C1) Add(C2) Remove(C2) Connect(C1,C2) Disconnect(C1,C2) Exist(C1) ˄ Exist(C2) ˄ ArchIncludes(C1) ˄ ArchIncludes(C2) ˄ Connected(C1,C2) Exist(C1) ˄ Exist(C2) ˄ ArchIncludes(C1) ˄ ArchIncludes(C2) Exist(C1) ˄ Exist(C2) ˄ ArchIncludes(C1) Exist(C1) ˄ Exist(C2) ˄ ArchIncludes(C2) Exist(C1) ˄ Exist(C2) Exist(C2) Exist(C1) Ø Operations: Inst(C); Kill(C); Add(C); Remove(C); Connect(C1,C2); Distconnect(C1,C2); Admin Comp

PLASMA Our Solution to Self-Adaptation A Plan-based Layered Architecture for Software Model-driven Adaptation (PLASMA)

PLASMA vs. Current Self-adaptive Methods Policy-based self-adaptivePLASMA Architect captures different situation which requires adaptation PLASMA decides when adaptation is required Architect creates the policies manually Adaptation plans are created automatically Error-prone adaptation policiesError-free adaptation plans Plan-based self-adaptivePLASMA Architect provides the domain model PLASMA creates the domain model from component models automatically Can not handle change in domain model (system requirements) PLASMA handles changes in domain model Plans for application (not for software adaptation) PLASMA plans for both application and software adaptation

Our Solution: PLASMA Application Component Models Application Domain Model Adaptation Component Models Adaptation Domain Model Adaptation Goal Application Goal Application Plan Adaptation Plan Modeling Planning Adaptation Architecture Application Plan Executer Adaptation Plan Executer

1. Adaptive Layered Style PLASMA Ingredients 2. Architecture Description Language component loader is{ state { loaded : Boolean; locked : Boolean; } interface{ prov loading: load(); prov unloading: unload(); } operations{ prov opLoad:{ pre \not(loaded)) \and \not(locked)); post (loaded); } prov opunLoad:{ pre (loaded)\and(\not(locked)); post \not (loaded); } …. } 3. Planning MBP Plan 1234 unlock lock loadlock unload unlock GOAL 4

1. ADAPTIVE LAYERED STYLE

Adaptive Layered Style Overview Each layer manages and adapts the layer below it Meta-layer architecture Specialized meta-components Collector, Analyzer, and Admin Arbitrary number of layers Component 1 Component 2Component 3 CollectorAnalyzerAdmin Meta Layer Application Layer Architecture EventReference

PLASMA Layered Architecture PLASMA is a 3-layer instance of the adaptive layered style Component 1 Executer Component 2 CollectorAnalyzerAdmin Application Layer Adaptation Layer CollectorAnalyzerAdmin Planning Layer Application Planer Adaptation Planer Component 3

2. ARCHITECTURE DESCRIPTION LANGUAGE

Architecture Description Language ADL A notation for modeling a software architecture SADEL Adapted from C2SADEL Models components, connectors, and topology Component behavior in terms of operation pre-conditions and post-conditions

component Admin is{ state { Connected : Component, Connector -> Boolean; ComponentExist : Component -> Boolean;... } interface{ prov ConnectInterface: Connect(comp:Component; conn:Connector); prov instantiateCompInterface: instantiatComponent(comp:Component);... } operations{ prov opConnect:{ let conn:Connector; comp:Component; pre ((ConnectorExist(conn)) \and (ComponentExist(comp)) \and (\not(Connected (comp,conn))); post Connected(comp,conn); } prov opInstantiateComponent:{ let comp:Component; pre (\not(ComponentExist(comp))); post ComponentExist(comp); }... Component Models component loader is{ state { loaded : Boolean; locked : Boolean; } interface{ prov loading: load(); prov unloading: unload(); } operations{ prov opLoad:{ pre (\not(loaded)) \and (\not(locked)); post (loaded) \xor (misplaced); } prov opunLoad:{ pre (loaded) \and (\not(locked)); post \not (loaded); }... PLASMA only needs component models PLASMA calculates the architecture topology

SADEL for PLASMA Application Adaptation PLASMA

3. PLANNING

Planning Model-based planner Planning as model checking technique Check the correctness of formulas to find a plan Goals Reachability Maintainablity … Plans State-action sets PLASMA uses planning Behavior of application Software adaptation

Application Planning 27 Plan MBP (define (domain example) (:predicates (loaded) (misplaced) (locked) ) (:action load :precondition (and(not(loaded))(not(locked))) :effect(loaded) ) (:action unload :precondition(and(loaded)(not(locked))) :effect (not(loaded)) ) (:action unlock :precondition (locked) :effect(not(locked)) ) (:action lock :precondition (not(locked)) :effect (locked) ) (define (plan generated_plan) (:domain test) (:problem simpleProblem) (:body (repeat (switch (case (and (= (locked) 1) (= (loaded) 1)) (done)) (case (and (= (locked) 1) (= (loaded) 0) (= (misplaced) 1)) (action (adjust))) (case (and (= (locked) 1) (= (loaded) 0) (= (misplaced) 0)) (action (unlock))) (case (and (= (locked) 0) (= (loaded) 1)) (action (lock))) (case (and (= (locked) 0) (= (loaded) 0) (= (misplaced) 1)) (action (lock))) (case (and (= (locked) 0) (= (loaded) 0) (= (misplaced) 0)) (action (load))) (else (fail)) )) ) (define (problem simpleProblem) (:domain test) (:init (and (unknown(locked)) (unknown(loaded)) ) (:goal (and (locked) (loaded) )

Adaptation Planning Plan MBP

PLASMA Architecture Connector Plan Executer Loader Collector Adaptation Analyzer Admin CollectorAnalyzerAdmin ADL Model Parser ADL Model Parser Application Planner Adaptation Planner Planning Layer Adaptation Layer Application Layer Locker Adjuster

CASE STUDY

Case Study Robot convoy application One leader IRobot Waypoint following Several follower IRobot Camera following IR following GPS following Goal : IsFollowing ˄ ¬BehindAnObstacle

Case Study Deployment Desktop Computer Planning Layer Robot 1 Adaptation Layer Application Layer Plan Executer ColorFollower Camera Robot Actuators RoleNegotiator Robot 4 Adaptation Layer Application Layer Plan Executer ColorFollower Camera Robot Actuators RoleNegotiator

Situation Application Plan Length (# State-Actions) Application Planning Time (Sec) Adaptation Plan Length (# State-Actions) Adaptation Planning Time (Sec) Initial deployment Chang of req. & goal Camera failure Case Study Evaluation Initial deployment 15 components Change requirements and goal Add a Charger component Change goal to: IsFollowing ˄ ¬BehindAnObstacle ˄ ¬BatteryIsLow Failure Camera fails

Conclusions Automated adaptation Component failure Goal change System requirement change Automated planning for adaptation Adaptation plans are generated automatically Less burden on system architect Architect only provides component models and system goal Architect does not need to design the application topology Architect does not need to design the adaptation policies

?!

References [Giunchiglia&Traverso99] F. Giunchiglia and P. Traverso. Planning as model checking. In ECP, pages 1-20, 1999 [Medvidovic99] N. Medvidovic, D. S. Rosenblum, and R. N. Taylor. A language and environment for architecture-based software development and evolution. In ICSE '99: Proceedings of the 21st international conference on Software engineering, pages 44-53, New York, NY, USA, ACM. [Edwards09] G. Edwards, J. Garcia, H. Tajalli, D. Popescu, N. Medvidovic, G. Sukhatme, and B. Petrus. Architecture-driven self-adaptation and self- management in robotics systems. In Software Engineering for Adaptive and Self- Managing Systems (SEAMS'09), pages , [Sykes08] D. Sykes et al. From Goals to Components: A Combined Approach to Self-management. In Int. Workshop on Software Engineering for Adaptive and Self-managing Systems, [Georgas&Taylor08] J. C. Georgas and R. N. Taylor. Policy-based self-adaptive architectures: A feasibility study in the robotics domain. In Int. Workshop on Software Engineering for Adaptive and Self-managing Systems,

Details of planning 37 Application Component Models ADL Model Parser Planner Problem Generator Code Generator Domain Model Application Problem Plan Executer (.class) Problem