bold stroke first software product line conference1 generative techniques for real-time embedded...
TRANSCRIPT
First Software Product Line Conference
1
Bold Stroke
Generative Techniques for Real-Time Embedded Systems
David [email protected]
The Boeing CompanySt. Louis, Missouri
First Software Product Line Conference
2
Bold StrokeComponent Pattern
Structure Based on Façade Design Pattern*
*Gamma et al., Design Patterns: Elements of Reusable Object-Oriented Software
ComponentConsumer
ComponentFacade
ComponentSupplier1 ComponentSupplier2
Shown in Unified Modeling Language
First Software Product Line Conference
3
Bold StrokeConfigurable Component Pattern
Example
Airframe
ConfigurationAPI
...
HorizontalSensors
... VerticalSensors
... RotationalSensors
...
INSUser API
Configuration API
EGIUser API
Configuration API
ADCUser API
Configuration API
Static WiringDependencies OptionalOptional
RequiredRequired
Horiz.Substate
VerticalSubstate
Rot.Substate
User API
Project SpecificProject Specific
ReusedReused
First Software Product Line Conference
4
Bold Stroke
AirframeFactory
CreateHorizontalSubstate () : HorizontalSubstate*CreateVerticalSubstate () : VerticalSubstate*CreateRotationalSubstate () : RotationalSubstate*
Airframe
HorizontalSensor
HorizontalSubstate
1..*
VerticalSensor
VerticalSubstate
1..*
RotationalSensor
RotationalSubstate
1..*1..* 1..* 1..*
Configurable Component Pattern
Implementation (cont) Abstract Factory Pattern* Defines
Configuration Technique
*Gamma et al., Design Patterns: Elements of Reusable Object-Oriented Software
First Software Product Line Conference
5
Bold Stroke
Logical Architecture Overview
Model
InfrastructureServices
Operator
Configurator
Building Blocks
Real World Model
Avionics Interfaces
Dependencies
View Controller CommandsDisplaySurfaces
DisplayFormats
Cockpits
MissilesBallisticWeapons
SteeringAirframeEarthModel
GroundPoints
StateMachines
Distributors
Radar INS GPS
ORBServices
EventService
NameService
ReplicationService
PersistenceService
SchedulerService
I/OService
TimeService
SystemConfigurator
LayerConfigurator
First Software Product Line Conference
6
Bold Stroke
OFP Production System
Project Specific Components
Essential Project Specific Plug-ins
Essential Common Components
Desired Pluggable Common Components
OFP Configurator
Project Library
Reuse Library
OFPs Created Via Component Selection and WiringOFPs Created Via Component Selection and Wiring
First Software Product Line Conference
7
Bold Stroke
Component Composition Methods New System Development
• Spreadsheet• Purdue Tool• XML-Based Tool• Model-Based Integration of Embedded Systems
Program Tools (MoBIES)
Legacy System Upgrades
First Software Product Line Conference
8
Bold Stroke
Spreadsheet Tool
Perl Script
C++ Code
ComponentType Identifier PersistenceEnabled …
Processor1Layer1
ComponentA Class1 1101 YComponentB Class2 1102 YComponentC Class3 1103 N
Layer2ComponentD Class2 1201 YComponentE Class4 1202 N
Processor2Layer1
ComponentF Class5 2101 NComponentG Class5 2102 N
Layer2ComponentH Class1 2201 YComponentI Class6 2202 Y
First Software Product Line Conference
9
Bold Stroke
Purdue Tool
Code Generator
“Build Master”
Build Model
Graphical Viewer/Editor
C++ Code
First Software Product Line Conference
10
Bold Stroke
XML Based Tool<config><processor><layer><component>…</component></layer></processor></config>
Table and Graphical Based
Viewers/Editors
First Software Product Line Conference
11
Bold Stroke
MoBIES New DARPA Program Composition technologies for real-time
systems• Multi-view modeling of cross-cutting properties
– Scheduling, concurrency, distribution...• Meta-code generation• Framework integration
Also “Program Composition for Embedded Systems” (PCES)-
AOP for real-time systems
First Software Product Line Conference
12
Bold Stroke
Legacy Upgrades “Incremental Upgrade of Legacy Systems”
Program• Automated generation of C++ wrappers for legacy
software• Using Honeywell MetaH toolset
First Software Product Line Conference
13
Bold Stroke
Lessons Learned Need both tabular and graphical views Key issues:
• Simplicity• Scalability• Configuration management