18 October 2001 OOPSLA 2001 Workshop on Patterns for OO Distributed RT & Embedded Systems Wendy Roll - 1 Pattern Usage in an Avionics Product Line Wendy.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Chapter 7 – Object-Oriented Design
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
Moving from Analysis to Design. Overview ● What is the difference between analysis and design? ● Logical v. physical design ● System v. detailed design.
Seyed Mohammad Ghaffarian ( ) Computer Engineering Department Amirkabir University of Technology Fall 2010.
1 Quality Objects: Advanced Middleware for Wide Area Distributed Applications Rick Schantz Quality Objects: Advanced Middleware for Large Scale Wide Area.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Lecture 23: Software Architectures
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
Ch 12 Distributed Systems Architectures
Chapter 22 Object-Oriented Design
Course Instructor: Aisha Azeem
Design Patterns academy.zariba.com 1. Lecture Content 1.What are Design Patterns? 2.Creational 3.Structural 4.Behavioral 5.Architectural 6.Design Patterns.
Design Patterns Ric Holt & Sarah Nadi U Waterloo, March 2010.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Objektorienteret netværkskommunikation Presentation: Architectures for Distributed Systems.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
Software Reuse Prof. Ian Sommerville
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
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.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
Tiny Components – a collection of initial ideas copyright © 2003 Tiny Components Tiny Components A Component Model for Small, Embedded or Mobile devices.
Implementing Design Patterns Using Java St. Louis Java Special Interest Group Eric M. Burke Object Computing, Inc. Presented on July 9, 1998 (updated July.
An Introduction to Software Architecture
Pattern Oriented Software Architecture for Networked Objects Based on the book By Douglas Schmidt Michael Stal Hans Roehnert Frank Buschmann.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
1 Another group of Patterns Architectural Patterns.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
Bold Stroke First Software Product Line Conference1 Generative Techniques for Real-Time Embedded Systems David Sharp The Boeing.
Architectural Design Identifying system components and their interfaces.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
PCES PI 0ct Boeing Open Experimental Platform Boeing Phantom Works St. Louis, Missouri Dave Sharp Brian Mendel
CSC480 Software Engineering Lecture 11 September 30, 2002.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
Presentation: Architectural Design for Distributed Systems Objektorienteret netværkskom.
CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Netprog: Corba Object Services1 CORBA 2.0 Object Services Ref: The Essential Distributed Objects Survival Guide: Orfali, Harky & Edwards.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
OBJECT ORIENTED AND FUNCTION ORIENTED DESIGN 1 Chapter 6.
OOPSLA Oct Towards a Pattern Language for NEST Middleware Venkita Subramonian & Chris Gill, Washington University, St.Louis David Sharp, The Boeing.
Design Reuse Earlier we have covered the re-usable Architectural Styles as design patterns for High-Level Design. At mid-level and low-level, design patterns.
1 BBN Technologies Quality Objects (QuO): Adaptive Management and Control Middleware for End-to-End QoS Craig Rodrigues, Joseph P. Loyall, Richard E. Schantz.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
Seminar on Service Oriented Architecture Distributed Systems Architectural Models From Coulouris, 5 th Ed. SOA Seminar Coulouris 5Ed.1.
SEA Side – Extreme Programming 1 SEA Side Software Engineering Annotations Architectural Patterns Professor Sara Stoecklin Director of Software Engineering-
Chapter : 9 Architectural Design
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Design Patterns: MORE Examples
OO Methodology OO Architecture.
Object-Oriented Principles and Implementations
Inventory of Distributed Computing Concepts and Web services
Frameworks And Patterns
Inventory of Distributed Computing Concepts
Overview of AIGA platform
Chapter 5 Architectural Design.
Presentation transcript:

18 October 2001 OOPSLA 2001 Workshop on Patterns for OO Distributed RT & Embedded Systems Wendy Roll - 1 Pattern Usage in an Avionics Product Line Wendy Roll* - David Sharp – The Boeing Company * presenter

18 October 2001 OOPSLA 2001 Workshop on Patterns for OO Distributed RT & Embedded Systems Wendy Roll - 2 Outline n Domain Characteristics n Technical and Developmental Forces n Architecture Development Process n Examples of Pattern Usage & Evolution n Pattern Relationships

18 October 2001 OOPSLA 2001 Workshop on Patterns for OO Distributed RT & Embedded Systems Wendy Roll - 3 Fighter Avionics Operational Domain- Characteristics Radar WeaponsNav Sensors Weapon Management Data Links Many Computers Multiple Buses Constrained Tactical Links O(10 6 ) Lines of Code Hard & Soft Real-Time Periodic & Aperiodic Mission Computer Vehicle Mgmt COTS

18 October 2001 OOPSLA 2001 Workshop on Patterns for OO Distributed RT & Embedded Systems Wendy Roll - 4 Fighter Avionics Operational Domain- Example Functionality Release Weapons Fuse Targets From Data Links Update Navigation State Predict Selected Weapon Trajectories Update Steering Cues Mission Computer Update Displays Fuse Targets From Sensors Modify Display Suite Via Pilot Pushbutton Perform Built- In-Test Activate Backup Mode Select Weapons Aperiodic Periodic

18 October 2001 OOPSLA 2001 Workshop on Patterns for OO Distributed RT & Embedded Systems Wendy Roll - 5 Technical and Developmental Forces n Technical Forces Product Line Variability –Operating Systems, HW Architectures –Sensors, Displays, Other External Devices –Functional Requirements Performance n Developmental Forces Technical/Cultural Revolution in Boeing –OO Technology, C++, CORBA –Product Line Development Complexity Increasingly Large Team of Developers

18 October 2001 OOPSLA 2001 Workshop on Patterns for OO Distributed RT & Embedded Systems Wendy Roll - 6 Architecture Development Domain-Driven, Goal-Guided Architecture Development Developed Architecture 2, 5: Develop and Measure Domain Components 4: Use Goals to Drive Architecture Development Decisions 1: Develop Architecture Goals 3: Use Concrete Development to Identify Architectural Issues t Patterns

18 October 2001 OOPSLA 2001 Workshop on Patterns for OO Distributed RT & Embedded Systems Wendy Roll - 7 Real-Time Performance Architecture Goals Isolate avionics system specifics Support both single and multi-CPU systems Maximize Reuse Contain Change in the Logical and Physical Architectures Maximize pluggability of software components Software Architecture Requires Meeting Product Line Goals within Real-Time Performance Software Architecture Requires Meeting Product Line Goals within Real-Time Performance

18 October 2001 OOPSLA 2001 Workshop on Patterns for OO Distributed RT & Embedded Systems Wendy Roll - 8 Architectural Patterns n Layered Architecture Separate high and low level concerns Control dependencies Provide overall system structure n Model/View/Controller Architecture Separate core domain representation from user interface Model ViewController DependenciesDependencies

18 October 2001 OOPSLA 2001 Workshop on Patterns for OO Distributed RT & Embedded Systems Wendy Roll - 9 Multi-Dimensional Layering Pattern DependenciesDependencies Common Software Model Operator Infrastructure Configurator DependenciesDependencies Project Software Model Operator Infrastructure Configurator

18 October 2001 OOPSLA 2001 Workshop on Patterns for OO Distributed RT & Embedded Systems Wendy Roll - 10 Component Patterns n Strategic Patterns That Define: Different component types – Component Configurable Component Distributable Component Real Time Component Tradeoffs and consequences of design choices Implementation issues Component Patterns Guide Application Development Organization Component Patterns Guide Application Development Organization

18 October 2001 OOPSLA 2001 Workshop on Patterns for OO Distributed RT & Embedded Systems Wendy Roll - 11 Component Structure n Based on Facade Design Pattern ComponentConsumer ComponentFacade ComponentSupplier1ComponentSupplier2

18 October 2001 OOPSLA 2001 Workshop on Patterns for OO Distributed RT & Embedded Systems Wendy Roll - 12 Component Pattern Consequences n Encapsulates Change n Defines Distribution Boundaries n Localizes Concurrency Control n Identifies Pluggable Entities n Enhances Reusability n Reduces Complexity n Defines Object Ownership

18 October 2001 OOPSLA 2001 Workshop on Patterns for OO Distributed RT & Embedded Systems Wendy Roll - 13 AirframeFactory CreateHorizontalSubstate () : HorizontalSubstate* CreateVerticalSubstate () : VerticalSubstate* CreateRotationalSubstate () : RotationalSubstate* Airframe HorizontalSensor HorizontalSubstate 1..* VerticalSensor VerticalSubstate 1..* RotationalSensor RotationalSubstate 1..* Abstract Factory-Smart Facade n Abstract Factory Pattern Defines Configuration Technique

18 October 2001 OOPSLA 2001 Workshop on Patterns for OO Distributed RT & Embedded Systems Wendy Roll - 14 Component Evolution n Currently exploring CORBA Component Model Concepts ComponentEquivalentInterface GetFacet() > Facet1 GetData() > Facet2 PointAt() > EventSource Push() > EventSink Push() > EventSourceAdapter EventSinkAdapter Component Extension Interface Pattern used for smaller role-based facets

18 October 2001 OOPSLA 2001 Workshop on Patterns for OO Distributed RT & Embedded Systems Wendy Roll - 15 Control Flow n Desired Variabilities Simplify and isolate standard interfaces Number and types of components System execution modes Notification types –periodic, multiple entry points and correlated n Patterns Observer, mediator, and external polymorphism Physical Variability Logical 1..*

18 October 2001 OOPSLA 2001 Workshop on Patterns for OO Distributed RT & Embedded Systems Wendy Roll - 16 Control Flow consumer Adapter consumer Proxy event Channel supplier Proxy supplier 1: push 2: push 3: push 4: push 5: consumer message Events remove modal dependencies Complex event dependencies support variable notification Ext. Polymorph Pattern isolates standard interfaces Mediator Pattern removes supplier knowledge Event Service Dispatch Correlation Subscription Anonymous Supplier and Consumer Communication for Control Flow Preserves Encapsulation of Dependencies Anonymous Supplier and Consumer Communication for Control Flow Preserves Encapsulation of Dependencies

18 October 2001 OOPSLA 2001 Workshop on Patterns for OO Distributed RT & Embedded Systems Wendy Roll - 17 Communication - Data n Desired Variabilities Flexible component-to-processor allocation Isolation from network protocols Optimization of network performance n Patterns Broker, proxy, caching proxy Physical Variability

18 October 2001 OOPSLA 2001 Workshop on Patterns for OO Distributed RT & Embedded Systems Wendy Roll - 18 Processor 1Processor 2 Reads From Local and Remote Clients Appear Identical Communication - Data Reads Remote Communication Caching Proxy Pattern hides supplier location, hides effects of network bandwidth, and isolates broker implementation supplier Master replication Proc1 orbProc1orbProc2 replication Proc2 supplier DistProxy remote Client 1: GetData 2: SetData 3: SetData 4: SetData 5: GetPosition local Client 6: GetPosition Broker Pattern isolates network protocols CORBA ORB

18 October 2001 OOPSLA 2001 Workshop on Patterns for OO Distributed RT & Embedded Systems Wendy Roll - 19 Communication - Data Writes Remote Communication Processor 1Processor 2 Writes To Local and Remote Suppliers Appear Identical CORBA ORB supplier Master orbProc1orbProc2 supplier DistProxy remote Client local Client 3: SetMode 2: SetMode 1: SetMode 4: SetMode Proxy hides supplier location Broker pattern isolates network protocols

18 October 2001 OOPSLA 2001 Workshop on Patterns for OO Distributed RT & Embedded Systems Wendy Roll - 20 Layers MVC Doc-View Multi-Dim Layers Dual Inheritance Hierarchy Component Façade Callback Observer Adapter Object Adapter Abstract Factory Cache Proxy Ext Poly Proxy Distributed Proxy Passive Objects ConcurrencyNo Locking Null Lock Null Object Internal Locking External Locking Mediator Strategy Synch Cache Proxy Arch Structure Control Flow Concurrency Distribution Pattern Map for Avionics PL