Title: 18 October 2001
1Pattern Usage in an Avionics Product Line
- Wendy Roll - wendy.c.roll_at_boeing.com
- David Sharp david.sharp_at_boeing.com
- The Boeing Company
presenter
2Outline
- Domain Characteristics
- Technical and Developmental Forces
- Architecture Development Process
- Examples of Pattern Usage Evolution
- Pattern Relationships
3Fighter Avionics Operational Domain-
Characteristics
Constrained Tactical Links
Many Computers
Periodic Aperiodic
Multiple Buses
Mission Computer
Vehicle Mgmt
Radar
COTS
Hard Soft Real-Time
O(106) Lines of Code
4Fighter Avionics Operational Domain- Example
Functionality
Update Steering Cues
Fuse Targets From Sensors
Fuse Targets From Data Links
Mission Computer
Perform Built-In-Test
Activate Backup Mode
Update Navigation State
Release Weapons
Select Weapons
Update Displays
Predict Selected Weapon Trajectories
Modify Display Suite Via Pilot Pushbutton
Aperiodic
Periodic
5Technical and Developmental Forces
- Technical Forces
- Product Line Variability
- Operating Systems, HW Architectures
- Sensors, Displays, Other External Devices
- Functional Requirements
- Performance
- Developmental Forces
- Technical/Cultural Revolution in Boeing
- OO Technology, C, CORBA
- Product Line Development Complexity
- Increasingly Large Team of Developers
6Architecture Development
1 Develop Architecture Goals
4 Use Goals to Drive Architecture Development
Decisions
Developed Architecture
Patterns
t
3 Use Concrete Development to Identify
Architectural Issues
2, 5 Develop and Measure Domain Components
Domain-Driven, Goal-Guided Architecture
Development
7Architecture Goals
in the Logical and Physical Architectures
Contain Change
- Isolate avionics system specifics
- Support both single and multi-CPU systems
Maximize Reuse
- Maximize pluggability of software components
Real-Time Performance
Software Architecture Requires Meeting Product
Line Goals within Real-Time Performance
8Architectural Patterns
- Layered Architecture
- Separate high and low level concerns
- Control dependencies
- Provide overall system structure
- Model/View/Controller Architecture
- Separate core domain representation from user
interface
D e p e n d e n c i e s
9Multi-Dimensional Layering Pattern
D e p e n d e n c i e s
D e p e n d e n c i e s
10Component Patterns
- 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
11 Component Structure
- Based on Facade Design Pattern
ComponentConsumer
ComponentSupplier1
ComponentSupplier2
12Component PatternConsequences
- Encapsulates Change
- Defines Distribution Boundaries
- Localizes Concurrency Control
- Identifies Pluggable Entities
- Enhances Reusability
- Reduces Complexity
- Defines Object Ownership
13Abstract Factory-Smart Facade
- Abstract Factory Pattern Defines Configuration
Technique
HorizontalSubstate
VerticalSubstate
RotationalSubstate
1..
1..
1..
1..
1..
1..
HorizontalSensor
VerticalSensor
RotationalSensor
14Component Evolution
- Currently exploring CORBA Component Model Concepts
ltltInterfacegtgt
ComponentEquivalentInterface
Component
GetFacet()
Extension Interface Pattern used for smaller
role-based facets
ltltInterfacegtgt
Facet1
GetData()
EventSinkAdapter
ltltInterfacegtgt
Facet2
EventSourceAdapter
PointAt()
ltltInterfacegtgt
ltltInterfacegtgt
EventSource
EventSink
Push()
Push()
15Control Flow
- Desired Variabilities
- Simplify and isolate standard interfaces
- Number and types of components
- System execution modes
- Notification types
- periodic, multiple entry points and correlated
- Patterns
- Observer, mediator, and external polymorphism
16Control Flow
Mediator Pattern removes supplier knowledge
consumer
Events remove modal dependencies
5 consumer message
consumer
supplier
Ext. Polymorph Pattern isolates standard
interfaces
Adapter
1 push
4 push
Dispatch
consumer
supplier
Proxy
Proxy
Correlation
2 push
Complex event dependencies support variable
notification
Subscription
3 push
event
Event Service
Channel
Anonymous Supplier and Consumer Communication for
Control Flow Preserves Encapsulation of
Dependencies
17Communication - Data
- Desired Variabilities
- Flexible component-to-processor allocation
- Isolation from network protocols
- Optimization of network performance
- Patterns
- Broker, proxy, caching proxy
18Communication - Data ReadsRemote Communication
Reads From Local and Remote Clients Appear
Identical
Processor 1
Processor 2
remote
local
Client
Client
5 GetPosition
6 GetPosition
Caching Proxy Pattern hides supplier location,
hides effects of network bandwidth, and isolates
broker implementation
supplier
supplier
Master
DistProxy
4 SetData
1 GetData
replication
replication
Proc2
Proc1
CORBA ORB
2 SetData
3 SetData
Broker Pattern isolates network protocols
orbProc1
orbProc2
19Communication - Data WritesRemote Communication
Writes To Local and Remote Suppliers Appear
Identical
Processor 1
Processor 2
remote
local
Client
Client
4 SetMode
1 SetMode
supplier
supplier
Proxy hides supplier location
Master
DistProxy
2 SetMode
3 SetMode
CORBA ORB
Broker pattern isolates network protocols
orbProc1
orbProc2
20Pattern Map for Avionics PL
Arch Structure
Concurrency
No Locking
Internal Locking
Layers
Null Lock
Concurrency
MVC
Multi-Dim Layers
External Locking
Null Object
Doc-View
Abstract Factory
Synch Cache Proxy
Component
Dual Inheritance Hierarchy
Adapter
Distributed Proxy
Façade
Object Adapter
Callback
Passive Objects
Proxy
Control Flow
Distribution
Mediator
Observer
Ext Poly
Cache Proxy
Strategy