Developing Adaptable Software Architectures for Real-Time Systems Using Design Patterns Lawrence Chung, Kendra Cooper, Anna Yi The University of Texas.

Slides:



Advertisements
Similar presentations
A UML Profile for Goal-Oriented and Use Case-Driven Representation of NFRs and FRs Sam Supakkul Titat Software LLC Lawrence Chung The.
Advertisements

Basic Concepts in Component-Based Software Engineering
Seyed Mohammad Ghaffarian ( ) Computer Engineering Department Amirkabir University of Technology Fall 2010.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
PRESENTED BY SANGEETA MEHTA EECS810 UNIVERSITY OF KANSAS OCTOBER 2008 Design Patterns.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Toward Component Non-functional Interoperability Analysis: A UML- based and Goal-oriented Approach Sam Supakkul and Lawrence Chung The University of Texas.
Enterprise Resource Planning
Nary Subramanian Firmware Engineer Applied Technology Division Anritsu Company Richardson, TX. Lawrence Chung.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
BDP Behavioral Pattern. BDP-2 Behavioral Patters Concerned with algorithms & assignment of responsibilities Patterns of Communication between Objects.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Software Waterfall Life Cycle Requirements Construction Design Testing Delivery and Installation Operations and Maintenance Concept Exploration Prototype.
Choon Oh Lee OSGi Service Platform. About OSGi Service Platform What it is, Where it is used, What features it provides are Today’s Content.
Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Pattern Oriented Software Architecture for Networked Objects Based on the book By Douglas Schmidt Michael Stal Hans Roehnert Frank Buschmann.
Virtual OSGi Framework and Telecommunications Sam Supakkul Yotta Networks Digital Pockets, LLC Dallas, Texas Lawrence Chung Dept.
05 - Patterns Intro.CSC4071 Design Patterns Designing good and reusable OO software is hard. –Mix of specific + general –Impossible to get it right the.
Case Studies on Design Patterns Design Refinements Examples.
Applying a Goal-Oriented Method for Hazard Analysis: A Case Study Sam Supakkul The University of Texas at Dallas Lawrence Chung The.
The Grid Component Model: an Overview “Proposal for a Grid Component Model” DPM02 “Basic Features of the Grid Component Model (assessed)” -- DPM04 CoreGrid.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
CPSC 875 John D. McGregor C9 - Tactics. Tactics A tactic is a transformation Given that the pre-condition of the tactic is true The tactic defines changes.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
Comparing JavaBeans and OSGi Towards an Integration of Two Complementary Component Models HUMBERTO CERVANTES JEAN-MARIE FAVRE 09/02.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Venkita Subramonian, Christopher Gill, Guandong Wang, Zhenning Hu, Zhenghui Xie Department of.
Generative Programming. Automated Assembly Lines.
Object-Oriented Design Principles and Patterns. © 2005, James R. Vallino2 How Do You Design? What principles guide you when you create a design? What.
Open Service Gateway Initiative (OSGi) Reporter : 林學灝 侯承育 1.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Core Indigo Patterns Ted Neward
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © 2006 GridCOMP Grids Programming with components. An.
ECE450S – Software Engineering II
Patterns in programming1. 2 What are patterns? Answers to common design problems. A language used by developers –To discuss answers to design problems.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Design Patterns VIII Chain of Responsibility, Strategy, State.
05/26/2004www.indyjug.net1 Indy Java User’s Group May Knowledge Services, Inc.
Capturing and Reusing Functional and Non-functional Requirements Knowledge: A Goal-Object Pattern Approach Lawrence Chung and Sam Supakkul The University.
COTS-Aware Requirements Engineering and Software Architecting
Patterns Roberto Damiani Mendes. Roteiro Definition; Definition; Architecture Patterns; Architecture Patterns; Design Patterns; Design Patterns; GRASP.
Lecture 18: Object-Oriented Design
Java EE Patterns Dan Bugariu.  What is Java EE ?  What is a Pattern ?
CSE 303 – Software Design and Architecture
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Venkita Subramonian, Christopher Gill, Ying Huang, Marc Sentany Department of Computer Science.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Software Architecting Using Goals, Scenarios, Patterns and Objects Lawrence Chung The University of Texas at Dallas.
Integrating FRs and NFRs: A Use Case and Goal Driven Approach Presented by Chin-Yi Tsai.
Chapter 8 Object Design Reuse and Patterns. More Patterns Abstract Factory: Provide manufacturer independence Builder: Hide a complex creation process.
CS 5150 Software Engineering Lecture 16 Program Design 3.
Integrating FRs and NFRs: A Use Case and Goal Driven Approach Sam Supakkul Network Surveillance Systems MCI Lawrence Chung Dept. of.
Rule-based Context-aware Adaptation Using a Goal-Oriented Ontology Hongyuan Wang (Jilin University, China) Rutvij Mehta (The University of Texas at Dallas,USA)
CLASSIFICATION OF DESIGN PATTERNS Hladchuk Maksym.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Design Patterns: MORE Examples
Software Design Refinement Using Design Patterns
Strategy Design Pattern
Event Handling Patterns Asynchronous Completion Token
Introduction to Advanced Java Programming
OO Methodology OO Architecture.
Instructor: Dr. Hany H. Ammar
John D. McGregor C8 - Tactics
Software Architecture
Strategy Design Pattern
Java History, Editions, Version Features
Presentation transcript:

Developing Adaptable Software Architectures for Real-Time Systems Using Design Patterns Lawrence Chung, Kendra Cooper, Anna Yi The University of Texas at Dallas

Why, What, How Software adaptation is an inevitable process Real-time systems also need adaptability (Micro-architectural) design patterns are considered promising, potentially with orders of magnitude in improvements (perhaps concerning architectural adaptability) But, lack of systematic methodology for developing adaptable (real-time) software using design patterns Our proposal: An NFR approach (treat adaptability as a (soft) goal to achieve)

An Example: HACS (Home Appliance Control System)

Proteus as a Framework 1. Post adaptability requirements, along with other NFRs and FRs 2.Refine NFRs and prioritize them 3. Consider architectural alternatives 4.Consider design patterns 5. Analyze tradeoffs among the architectures and design patterns 6. Select among the alternatives of architectures and corresponding design patterns that best satisfice the NFRs 7. Compose the selected design patterns into parts of the selected architectural design How to build such a system?

Developing Adaptable Software Using Design Patterns An architectural design is a solution There should be a corresponding problem Hence, need for establishing traceability But, starting with the problem Adaptability is a Non-Functional Requirement (NFR) – hard to define, conflicting with other NFRs, often subjective, etc.

An NFR Approach The NFR Framework for dealing with NFRs Establishes traceability between problem and solution Graded contributions: make, help, hurt, break Tradeoff analysis Softgoal interdependency graph (SIG) AND/OR decompositions, explore alternatives

SIG for Adaptable HACS with Design Patterns and Tradeoffs High Cohesion [Architecture, HACS] Low # Connection [Architecture, HACS] Mediated Connection [Architecture, HACS] Loose Coupling [Architecture, HACS] Low Coupling [Architecture,HACS] !Speed [HACS] Transformability [HACS] Detectability [Change in environment] Adaptability [HACS] Automatic- Manual- Recognizability [Change in HACS] Enactability [Change in HACS] - - Strategy Pattern [Architecture, HACS] Wrapper Pattern [Architecture, HACS] Reactor Pattern [Architecture, HACS] Indirect Connection [Architecture, HACS] Satisficing Adaptability Requirement

Design Patterns Solutions to recurring problems Architectural solutions as the highest-level Hence, component-/connection-oriented Micro-architectural “design patterns” started by GoF Data structure and algorithm oriented Cf. “idioms” for program patterns Important part of Java 2 Platform, Enterprise Edition (J2EE) -- an open standard for implementing and deploying component-based enterprise applications. Also for J2ME (Java 2 Platform, Mobile Edition)

Design Patterns for Adaptable Software Client Wrapper request( ) Wrappee specific_request( ) request( ) specific_request( ) Wrapper Pattern: Intent: To encapsulate lower-level functions within type-safe, modular, and portable class interfaces Helps to: 1) avoid tedious, error-prone, and non-portable programming of low-level IPC mechanisms 2) combine multiple related, but independent, functions into a single cohesive abstraction. Structure:

Design Patterns for Adaptable Software Reactor Pattern: Intent: To decouple event demultiplexing and event handler dispatching from the services performed in response to events. Helps to: 1) demultiplex multiple types of events from multiple sources of events efficiently within a single thread of control 2) extend application behavior without requiring changes to the event demultiplexing/dispatching framework. Structure:

Design Patterns for Adaptable Software Strategy Pattern: Intent: To define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it. Helps to: extend the policies for advertising, listening, creating, accepting, and executing a service handler without modifying the core algorithm. Structure:

Figure 7. Composition of Tailored Design Patterns for HACS Client Mobile Device Home_Appliance_Controller in Wrapper activate (appliance) Server Microwave_Oven in Wrappee activate_thru_socket( ) activate(appliance) ac.activate_thru_socket( ) Server Microwave_Oven in Wrappee activate_thru_rmi( ) ac.activate_thru_rmi( ) Case context: not-so-hungry: CookMostlyFinalAdjustOnArrival() very-hungry: FastCookFastSetTemp() romantic: SlowCookSlowSetTemp() hungry_tired_maybe_late: … Home_Appliance_Controller Strategy Cook_SetTemp() { hungry_tired_maybe_late } Client Mobile Device Context(activate) Strategy CookMostlyFinalAdjustOnArrival() Strategy FastCookFastSetTemp() { FastCook; FastSetTemperature } Strategy SlowCookSlowSetTemp() { SlowCook; SlowSetTemperature} Invocation Adapatation Composition of Design Patterns

Knowledge base of Architectural Patterns Search for architectural patterns for adaptable real-time system can be difficult and time-consuming A repository for efficient search and reuse of knowledge about architectural patterns for adaptability and about their implications Inference rules organized along hierarchies

Conclusions  Contributions A systematic methodology for using design patterns in developing adaptable (real-time) software  Future Work Future applications, e.g., to J2EE Populating KB Mapping pattern language categories to SIG

Open Services Gateway initiative (OSGi) Framework Features Component-based run-time framework for Java applications (bundles) Java API for managing bundle life-cycle Bundles installed or uninstalled on-demand from the network

The “compilation” of the Connection Management Pattern from the Acceptor, Connector, Reactor, Strategy and the Wrapper Façade patterns

The conventional method of accepting service requests: Initialization, Task-1, Task-2, …

Initialization, Task-1, Task-2, … The Acceptor Pattern: Advises decoupling of Initialization task from other tasks

Initialization, Task-1, Task-2, … Acceptor Pattern The Reactor Pattern: Provides synchronous demultiplexing of asynchronous events to their corresponding event-handlers Various strategies ATM, IP, SONET Strategy Pattern Low level functions Uniform interface Wrapper Pattern … all this is for the connection acceptor

On the connection requestor (client) side… Application makes connection request Connection handler Various strategies Cached Connect strategy, X strategy, Y strategy,… send_connect_request( )

Connector Acceptor, Strategy, Wrapper, combination Reactor + Acceptor-Connector Pattern Connection Management Pattern we saw…