Model-Based Software Design and Adaptation

Similar documents
Looking for Patterns in Content: From Design to End-Users Consumption.

Runtime Software Architectural Models for Adaptation, Recovery and Evolution

Architecture-Centric Evolution in Software Product Lines:

Model-based Run-Time Software Adaptation for Distributed Hierarchical Service Coordination

SWE 621: Software Modeling and Architectural Design. Lecture Notes on Software Design. Lecture 8 Architectural Design of Distributed Applications

SWE 760 Lecture 1: Introduction to Analysis & Design of Real-Time Embedded Systems

SOFTWARE MODELING AND DESIGN. UML, Use Cases, Patterns, and. Software Architectures. Ki Cambridge UNIVERSITY PRESS. Hassan Gomaa

Finite State Machine Modeling for Software Product Lines. Finite State Machines and Statecharts

On the Role of Architectural Styles in Improving the Adaptation Support of Middleware Platforms

SWE 760. Lecture 9: Component-based Software Architectures for Real-Time Embedded Systems

CS4514 Real-Time Systems and Modeling

Engineering Distributed Software: a Structural Discipline

Towards a Resilient Information Architecture Platform for the Smart Grid: RIAPS

Distributed Software Engineering. an Architectural Approach

Finite State Machines and Statecharts

Designing Command and Data Handling (C&DH) Subsystems from Software Architectural Design Patterns

Overview of Patterns: Introduction

Applying End User Software Product Line Engineering for Smart Spaces

A Pattern-based Modeling Approach for Software Product Line Engineering

Topics in Object-Oriented Design Patterns

UP Requirements. Software Design - Dr Eitan Hadar (c) Activities of greater emphasis in this book. UP Workflows. Business Modeling.

Concurrent Object-Oriented Development with Behavioral Design Patterns

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout

Feature/Class Modeling for Software Product Lines

Design Patterns. Gunnar Gotshalks A4-1

Designing Component-Based Architectures with Rational Rose RealTime

SWE 621: Software Modeling and Architectural Design. Lecture Notes on Software Design. Lecture 14 - Course Review

Universal Communication Component on Symbian Series60 Platform

Feature Modeling for Software Product Lines. Feature Modeling

Software Architecture

SYLLABUS CHAPTER - 1 [SOFTWARE REUSE SUCCESS FACTORS] Reuse Driven Software Engineering is a Business

Steps in Using COMET/UML

Automated Software Product Line Engineering and Product Derivation

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

Design and Performance Modeling of Component Interconnection Patterns for Distributed Software Architectures

Modeling variability in software product lines with the variation point model

Basic vs. Reliable Multicast

Development of dynamically evolving and self-adaptive software. 4. Dynamic software update

A Knowledge-Based Approach to Generating Target System Specifications from a Domain Model

CAS 703 Software Design

UNIT V *********************************************************************************************

Lecture 2. Basics of networking in automotive systems: Network. topologies, communication principles and standardised protocols

DISTRIBUTED COMPUTER SYSTEMS ARCHITECTURES

An Introduction to Software Architecture By David Garlan & Mary Shaw 94

Architectural Blueprint The 4+1 View Model of Software Architecture. Philippe Kruchten

Object-Oriented Design (OOD) Case Study : Architecture and Detail Design and Software Design Document (SDD) Prepared by Shahliza Abd Halim

Integrating interoperable automation technologies across the IIoT Layered Databus Architecture

Patterns Architectural Styles Archetypes

UML-Based Service Robot Software Development: A Case Study

Chapter 13: Architecture Patterns

TITUS A Graphical Design Methodology for Embedded Automotive Software

CISC 322 Software Architecture

Model-Based Development of Embedded Real-Time Systems

Your Global Automation Partner. Elevating Ethernet Intelligence: Implementing Ethernet Technology in Industrial Applications. White Paper - W1004

Green Lights Forever: Analyzing the Security of Traffic Infrastructure

SCADE. SCADE Architect System Requirements Analysis EMBEDDED SOFTWARE

A Role-based Use Case Model for Remote Data Acquisition Systems *

Content(2) Contribution of OOT in Software Engineering History of SE Technologies and Contribution of OOT JAIST Koichiro Ochimizu

Information and Software Technology

Introduction to Design Patterns

Processes. Process Concept

SRI VENKATESWARA COLLEGE OF ENGINERRING AND TECHNOLOGY THIRUPACHUR,THIRUVALLUR UNIT I OOAD PART A

Introduction to Design Patterns

AIMS Things in a Fog (TGIF): A Framework to Support Multidomain Research in the Internet of Things

Hitless Failover and Hitless Upgrade User Guide

Patterns for Decoupling

On Interacting Control Loops in Self-Adaptive Systems

Presenter: Dong hyun Park

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 1. Introduction

ELEVATING ETHERNET INTELLIGENCE:

CDS ISA100 Wireless. Redundancy techniques to increase reliability in ISA100 Wireless networks. Mircea Vlasin

Fault tolerance based on the Publishsubscribe Paradigm for the BonjourGrid Middleware

CS420: Operating Systems

Embedded Systems. 8. Communication

INTRODUCTION TO SELF-ORGANIZING MANAGEMENT & CONTROL PLANE, ETSI NGP ISG

EXPERIENCE OF COMMUNICATIONS SOFTWARE EVOLUTION AND PERFORMANCE IMPROVEMENT WITH PATTERNS

CSCI 3130 Software Architectures 1/3. February 5, 2013

Outline. Design Patterns. Observer Pattern. Definitions & Classifications

Lab Manual. Object Oriented Analysis And Design. TE(Computer) VI semester

A High-Level Distributed Execution Framework for Scientific Workflows

06. Analysis Modeling

An Open System Framework for component-based CNC Machines

Declarative Self-Expand Service Access Framework for NASA Mission Users

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Pattern-Based Architectural Design Process Model

PROJECT FINAL REPORT

10조 이호진 이지 호

It also performs many parallelization operations like, data loading and query processing.

Optimizing Management Functions in Distributed Systems

LabVIEW FPGA in Hardware-in-the-Loop Simulation Applications

Software Architecture Patterns

Coordination Patterns

MIL-STD-1553 INTERFACES TO TELEMETRY SYSTEMS

Opportunistic Application Flows in Sensor-based Pervasive Environments

System models for distributed systems

ITU-APT Workshop on NGN Planning March 2007, Bangkok, Thailand

Analysis of Peer-to-Peer Protocols Performance for Establishing a Decentralized Desktop Grid Middleware

Direct deployment of component-based automation systems

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Collaborative Hardware/Software Partition of Coarse-Grained Reconfigurable System Using Evolutionary Ant Colony Optimization

Transcription:

Model-Based Software Design and Adaptation Hassan Gomaa and Mohamed Hussein Department of Information and Software Engineering George Mason University Fairfax, VA USA hgomaa@gmu.edu SEAMS 07 Minneapolis, May 2007

Safety Critical Systems Dynamic Software Adaptation in Safety Critical Systems Highly available, Time critical Examples: air traffic control systems, spacecraft, automotive and aircraft control systems Challenge Evolve the configuration of software application at run-time Application must be operational during dynamic reconfiguration 2

Approach Most software product line research aimed at deriving different family members from Product line architecture + implementation At Configuration Time NOT at Run Time Research approach Model all configurations of safety critical system as product line members Dynamically change from one family member to a different family member at Run Time Develop Software Reconfiguration Patterns 3

Related Work Dynamic Reconfiguration Environments Dynamically change a software configuration to a new configuration Conic / Regis (Imperial College) C2 (UC Irvine) Software Design and Architectural Patterns Systematic reuse concepts for the design of applications Gamma et al, Buschmann et al Reusable and Configurable Product Line Architectures Product line design methods and tools (GMU EDLC/KBSEE) KOALA (Philips) FAST (Lucent) PULSE/KOBRA (Fraunhofer) 4

Evolutionary Product Line Life Cycle - Build, then Deploy 5

Reconfigurable Evolutionary Product Line Life Cycle Reconfigure after Deployment 6

Software Architectural Patterns Software Architectural Patterns [Buschmann, Shaw] Recurring architectures used in various software applications Goal: Design Software Architecture from Software Architectural Patterns Architectural Structure Patterns Address structure of major subsystems Architectural Communication Patterns Reusable interaction sequences between components 7

Architectural Structure Patterns for Software Product Lines Layered patterns very important for evolution Layers of Abstraction Kernel Client/Server patterns Basic Client/Server Client/Broker/Server Client/Agent/Server Control Patterns very important in RT Design Centralized Control Distributed Control Hierarchical Control 8

» Distributed Control Pattern» sensor Input «control component» : Distributed Controller actuator Output event event sensor Input «control component» : Distributed Controller actuator Output event event sensor Input «control component» : Distributed Controller actuator Output «input component» : SensorNode «output component» : ActuatorNode «input component» : SensorNode «output component» : ActuatorNode «input component»» : SensorNode «output component» : ActuatorNode Several control components Control is distributed among components Each component controls part of system Receives sensor input from input components Executes state machine Controls external environment via output components Communicates with other control components to provide overall control 9

Hierarchical Control Pattern Hierarchical Controller Provides high level control Sends commands to lower level control components 10

Architectural Communication Patterns for Software Product Lines Asynchronous communication patterns Synchronous communication patterns Very important for evolutionary design: Broker Communication Patterns Broker forwarding Broker handle Discovery Concurrent component Asynchronous message Synchronous message Response to synchronous message Group Communication Patterns Broadcast Subscription/notification 11

Subscription/Notification Pattern Subscription/Notification Pattern - Client subscribes to join group - Receives messages sent to all members of group 12

Software Reconfiguration Patterns Concept Design software architecture based on software architectural patterns For every software architectural pattern Design a software reconfiguration pattern Reconfiguration Pattern Specifies how a set of components cooperate to change the system configuration to a new configuration Characteristics of Reconfiguration Pattern Reconfiguration state machine model Component transitions to a state where it can be removed and replaced Reconfiguration Collaboration model Component interactions to change configuration 13

Reconfiguration State Machine Model Basic Model is based on Kramer/Magee Component transitions to a state where it can be reconfigured Active State: Component is operational Passive State: Component Is not participating in a transaction that it initiated Still participating in other transactions Quiescent State: Component Idle Not participating in any transactions Ready to be removed from configuration 14

Reconfiguration State Machine 15

Software Reconfiguration Patterns Approach Develop reconfiguration patterns for well-known software architectural patterns Build software product line architectures using Software architectural patterns Software reconfiguration patterns Software Reconfiguration Patterns developed Master-Slave pattern Centralized Control pattern Client / Server pattern Decentralized Control pattern 16

Software Reconfiguration Patterns Master-Slave pattern Master component can be replaced after receiving responses from all Slave components Slave components can be replaced after Master is quiescent Centralized Control pattern Removing or replacing any component in the system requires the Central Controller to be quiescent Client / Server pattern Client can be added or removed after completing a transaction Server can be removed or replaced after completing current transaction (s) Decentralized Control pattern 17

Decentralized Control Reconfiguration Pattern Decentralized Control components communicate with each other Components must notify each other if going quiescent Component can cease to communicate with neighbor but can continue with other processing 18

Reconfiguration State Machine 19

Component Reconfiguration State Machine New states to assist components in the reconfiguration process Needed for more complex component interactions Passivating State: Component Is disengaging itself from transactions It is participating in It has initiated Is not initiating any new transactions Waiting For Acknowledgement State: Component has sent notification message (s) to disengage itself To interconnected components 20

Reconfiguration State Machine 21

Dynamic Software Reconfiguration Framework Manages reconfiguration process Different configurations are members of product line 22

Dynamic Software Reconfiguration Change Management Model Reconfiguration steps to switch from old to new configurations Drive components to Full quiescence, e.g., to unlink and remove Partial quiescence, e.g., to unlink Change configuration commands E.g., to replace component: Quiesce, unlink, remove old component, insert new component, relink, restart Prototype developed using Rational Rose RT 23

Example of Dynamic Software Reconfiguration Reconfigurable factory automation SPL architecture Uses: Master-Slave, Client / Server, & Decentralized Control patterns a) Before reconfiguration b) After reconfiguration 24

Conclusions Goal Dynamically change from one SPL family member to a different family member at Run Time Research Approach Software Reconfiguration Patterns Dynamic Software Reconfiguration framework Rose RT environment Future work Develop additional reconfiguration patterns Investigate issues of pattern interaction Investigate performance issues in dynamic reconfiguration Investigate unplanned or unexpected dynamic recovery and reconfiguration issues 25