F-16 Modular Mission Computer
F-16 Modular Mission Computer
Application Software
Application Software
Achieving Cross-Platform Compatibility with
Achieving Cross-Platform Compatibility with
Increased Productivity and Quality using the
Increased Productivity and Quality using the
OMG’s Model Driven Architecture
OMG’s Model Driven Architecture
Lauren E. Clark
Lauren E. Clark
Chief Engineer
Chief Engineer
F-16 Modular Mission Computer Software
F-16 Modular Mission Computer Software
Lockheed Martin Aeronautics Company
Lockheed Martin Aeronautics Company
Terry Ruthruff
Terry Ruthruff
Staff Specialist
Staff Specialist
Software Engineering Core
Software Engineering Core
Lockheed Martin Aeronautics Company
Lockheed Martin Aeronautics Company
Allan Kennedy
Allan Kennedy
Managing Director
Managing Director
Kennedy Carter Limited
Kennedy Carter Limited
Bary D. Hogan
Bary D. Hogan
Methodology Lead
Methodology Lead
F-16 Modular Mission Computer Software
F-16 Modular Mission Computer Software
Lockheed Martin Aeronautics Company
Agenda
Agenda
The Platform
The Platform
Cross-Platform Compatibility: The Goal
Cross-Platform Compatibility: The Goal
The eXecutable MDA Approach:
The eXecutable MDA Approach:
eXecutable UML Modeling
eXecutable UML Modeling
Platform Specific Mapping (Design Tagging)
Platform Specific Mapping (Design Tagging)
Automatic Code Generation
Automatic Code Generation
Software
Basic Software Components
Basic Software Components
Hardware
Hardware
Software Execution
Platform
Application Software
Application Software Interface
Application Software:
 High-level software that is unique to
the application(s) for which the
embedded computer (i.e. subsystem) exists
 80-90% of the total software (in terms
of long-term development cost)
Application Software:
 High-level software that is unique to
the application(s) for which the
embedded computer (i.e. subsystem) exists
 80-90% of the total software (in terms
of long-term development cost)
Software Execution Platform:
 Low-level software, the purpose of
which is to provide services that allow the Application Software to run on the hardware
Software Execution Platform:
 Low-level software, the purpose of
Software Execution
Platform
Board Support Package / BIT
Software Execution Platform
Software Execution Platform
Hardware
Hardware
Application Software
Application Software Interface
Device Drivers Operating System
Software Architecture Software Execution Platform:
 Low-level software, the purpose of
which is to provide services that allow the Application Software to run on the hardware
Software Execution Platform:
 Low-level software, the purpose of
Software Execution
Platform
Device Drivers Operating System Software Architecture
Software Architecture
Software Architecture
Hardware
Hardware
Application Software
Application Software Interface
Software Architecture:
 Low-level software providing the
framework within which the Application Software executes
 Provides execution control, data /
message management, error handling, and various support services to the Application Software
 Assumes a particular Application
Software language
 Unique to the hardware; but, since it
must support all requirements levied by the Application Software, is not delivered with the hardware
Software Architecture:
 Low-level software providing the
framework within which the Application Software executes
 Provides execution control, data /
message management, error handling, and various support services to the Application Software
 Assumes a particular Application
Software language
 Unique to the hardware; but, since it
must support all requirements levied by the Application Software, is not delivered with the hardware
Board Support Package / BIT
Software Architecture
Application Software InterfaceApplication Software Interface
Application Software Interface
Software Execution
Platform
Device Drivers Operating System Software Architecture
Application Software Interface
Application Software Interface
Hardware
Hardware
Application Software
Application Software Interface:
 The boundary between the Application
Software and the Software Execution Platform
 The specified methods by which the
Application Software can make
requests and use the services of the Software Execution Platform and the Software Execution Platform can
provide its services to the Application Software
 This interface is specified by the
Software Execution Platform
Application Software Interface:
 The boundary between the Application
Software and the Software Execution Platform
 The specified methods by which the
Application Software can make
requests and use the services of the Software Execution Platform and the Software Execution Platform can
provide its services to the Application Software
 This interface is specified by the
Software Execution Platform
Hardware Platform #2
Hardware Platform #2
Application Software
Board Support Package / BIT
Board Support Package / BIT
Device Drivers
Device Drivers Operating SystemOperating System Software Architecture
Software Architecture Application Software Interface
Hold Constant
Hardware
Hardware
Cross-Platform Compatibility: The Usual Approach
Cross-Platform Compatibility: The Usual Approach
Hardware Platform #1
Hardware Platform #1
Application Software
Application Software Interface
Device Drivers Operating System Software Architecture
Board Support Package / BIT
Maintain a constant Application Software Interface
Maintain a constant Application Software Interface
Hardware Platform
Hardware Platform
Cross-Platform Compatibility Issues
Cross-Platform Compatibility Issues
Application Software
Device Drivers
Device Drivers Operating SystemOperating System Software Architecture
Software Architecture Application Software Interface
Board Support Package / BIT
Board Support Package / BIT
Can a constant
Can a constant
Application Software Interface
Application Software Interface
always be maintained?
always be maintained?
Consider…
 What if the language or operating
system becomes obsolete?
 What if it is necessary to port even
a part of the Application Software to a legacy platform not having the resources to support the newer Software Execution Platforms?
Consider…
 What if the language or operating
system becomes obsolete?
 What if it is necessary to port even
Hardware Platform
Hardware Platform
Cross-Platform Compatibility Issues
Cross-Platform Compatibility Issues
Application Software
Device Drivers
Device Drivers Operating SystemOperating System Software Architecture
Software Architecture Application Software Interface
Board Support Package / BIT
Board Support Package / BIT
Even if it were possible, would one
Even if it were possible, would one
always want to maintain a constant
always want to maintain a constant
Application Software Interface?
Application Software Interface?
Consider…
 What if hardware or Software
Execution Platform changes could provide more Application Software capability, but only by means of changing the Application Software Interface?
Consider…
 What if hardware or Software
Hardware Platform
Hardware Platform
Cross-Platform Compatibility: The Goal
Cross-Platform Compatibility: The Goal
Application Software
Device Drivers
Device Drivers Operating SystemOperating System Software Architecture
Software Architecture Application Software Interface
Board Support Package / BIT
Board Support Package / BIT
The goal
The goal
should be to provide
should be to provide
cross-platform compatibility
cross-platform compatibility
of Application Software
of Application Software
despite
despite
any
any
Implementation,
Implementation,
or platform specific, changes
or platform specific, changes
:
:
that is, changes to
that is, changes to
the Hardware Platform,
the Hardware Platform,
the Software Execution Platform,
the Software Execution Platform,
or the
or the
eXecutable MDA: Application Software Development
eXecutable MDA: Application Software Development
eXecutable UML
eXecutable UML
Modeling
Modeling
Requirements
Requirements
Definition
Definition
Integration
Integration
& Test
& Test
Platform Specific
Platform Specific
Mapping
Mapping
(Design Tagging)
(Design Tagging)
Automatic
Code Generation
Application
Software
Interface
Definition
The eXecutable
The eXecutable
MDA Approach
MDA Approach
as supported by as supported by
KC’s iUML and iCCG
eXecutable UML Modeling: Domain Model
eXecutable UML Modeling: Domain Model
Domain Model
(Package Diagram):
 The software application space
is partitioned into multiple platform independent domain models
 Mappings between the
domains are defined as contracts for required and provided
services
Domain Model
(Package Diagram):
 The software application space
is partitioned into multiple platform independent domain models
 Mappings between the
domains are defined as contracts for required and provided
eXecutable UML Modeling: Class Diagrams
eXecutable UML Modeling: Class Diagrams
Class Diagrams:
 Within each platform
independent domain model, conceptual entities
are modeled first: classes,attributes, and associations are abstracted
 Behavior, though considered, is
not modeled explicitly in this view
Class Diagrams:
 Within each platform
independent domain model, conceptual entities
are modeled first: classes,attributes, and associations are abstracted
 Behavior, though considered, is
eXecutable UML Modeling: State Charts
eXecutable UML Modeling: State Charts
State Charts:
 Behavior is formalized during
state modeling
 Class lifecycles are modeled
using signal-driven state machines
 Class operations are defined
State Charts:
 Behavior is formalized during
state modeling
 Class lifecycles are modeled
using signal-driven state machines
eXecutable UML Modeling: Action Language
eXecutable UML Modeling: Action Language
Action Specification Language:
 State actions and class
operations are specified using Kennedy Carter’s Action
Specification Language (ASL)
 ASL is a higher order and much
simpler language than a typical high order language (e.g. C++)
 ASL deals with UML concepts,
not implementation concepts
 ASL was a major influence on
the newly adopted Precise Action Semantics for the UML
Action Specification Language:
 State actions and class
operations are specified using Kennedy Carter’s Action
Specification Language (ASL)
 ASL is a higher order and much
simpler language than a typical high order language (e.g. C++)
 ASL deals with UML concepts,
not implementation concepts
 ASL was a major influence on
eXecutable UML Modeling: Simulation
eXecutable UML Modeling: Simulation
Simulation:
 Since a precise Action
Specification Language is used, models are executable and
therefore may be simulated
 Simulation features resemble
those of a high order language debugger
 Models may be validated long
before they are implemented
Simulation:
 Since a precise Action
Specification Language is used, models are executable and
therefore may be simulated
 Simulation features resemble
those of a high order language debugger
 Models may be validated long
Design Tags
 Class Allocation  Program Allocation  Max Instance Count  Event Rate
 Event Queue  Throw Away  Initialization  Source Type  Subtype of  etc.
Design Tags
 Class Allocation
 Program Allocation
 Max Instance Count
 Event Rate
 Event Queue
 Throw Away
 Initialization
 Source Type
 Subtype of
 etc.
Design Tagging: Specifying the PIM to PSM Mapping
Design Tagging: Specifying the PIM to PSM Mapping
Source Code Files
...
...
...
...
Automatic
Code Generator
xUML Models
...
...
Application Software Interface Definition
Software Execution Platform Specific
Software Execution Platform Specific
Language Specific
Language Specific
Design Tagging: Specifying the PIM to PSM Mapping
Design Tagging: Specifying the PIM to PSM Mapping
Design Tagging:
 Design tag values represent
implementation-specific design decisions
 Design tagging is applied to,
but not embedded in, the xUML models (tags and tag values may be included or excluded)
 Code Generator assumes the
most standard implementation, such that only exceptions must be tagged
Design Tagging:
 Design tag values represent
implementation-specific design decisions
 Design tagging is applied to,
but not embedded in, the xUML models (tags and tag values may be included or excluded)
 Code Generator assumes the
Model of Platform
...
...
Automatic Code Generation: 3 Levels of Models
Automatic Code Generation: 3 Levels of Models
Model of xUML
...
...
xUML Elements:(e.g. Class, Attribute, Association,
Tag, etc.)
xUML Elements:
(e.g. Class, Attribute, Association, Tag, etc.) Model of Application
...
...
Application Elements:(e.g. Aircraft, Missile, Target, etc.) Application Elements:
(e.g. Aircraft, Missile, Target, etc.)
Implementation Elements:
(e.g. Procedure, Array, Program, Event
Queue, etc.)
Implementation Elements:
Model of xUML
...
...
xUML Elements:(e.g. Class, Attribute, Association,
Tag, etc.)
xUML Elements:
(e.g. Class, Attribute, Association, Tag, etc.) Level 2 Level 2 Supplied by Kennedy Carter Supplied by Kennedy Carter
Automatic Code Generation: Level 2 - Simulation Code
Automatic Code Generation: Level 2 - Simulation Code
Step 1:
Step 1: Populate instances Populate instances of
of xUML Metamodel withxUML Metamodel with
Code Generation: Code Generation: Generation of Generation of Simulation Code Simulation Code for Development for Development Platform Platform
(e.g. UNIX C Code)
(e.g. UNIX C Code) Model of Application
...
...
Application Elements:(e.g. Aircraft, Missile, Target, etc.) Application Elements:
(e.g. Aircraft, Missile, Target, etc.) Level 1 Level 1 Developed by Program Developed by Program
When we say that “xUML models are executable” we mean that
Model of Platform
...
...
Implementation Elements:(e.g. Procedure, Array, Program, Event
Queue, etc.)
Implementation Elements:
(e.g. Procedure, Array, Program, Event Queue, etc.) Level 3 Level 3 Developed by Program Developed by Program Model of xUML
...
...
xUML Elements:(e.g. Class, Attribute, Association,
Tag, etc.)
xUML Elements:
(e.g. Class, Attribute, Association, Tag, etc.) Level 2 Level 2 Supplied by Kennedy Carter Supplied by Kennedy Carter
Automatic Code Generation: Level 3 - Target Code
Automatic Code Generation: Level 3 - Target Code
Step 1:
Step 1: Populate instances Populate instances of
of xUML Metamodel withxUML Metamodel with
Model of Application
...
...
Application Elements:(e.g. Aircraft, Missile, Target, etc.) Application Elements:
(e.g. Aircraft, Missile, Target, etc.) Level 1 Level 1 Developed by Program Developed by Program Step 2:
Step 2: Populate instances Populate instances of
of Model of ImplementationModel of Implementation
with
with populated xUMLpopulated xUML Metamodel instances Metamodel instances Code Generation: Code Generation: Generation of Generation of Source Code Source Code for Target for Target (Embedded) (Embedded) Platform Platform
(e.g. Ada/C++ Code)
The Code Generator The Code Generator
Model of Platform
...
...
Implementation Elements:(e.g. Procedure, Array, Program, Event
Queue, etc.)
Implementation Elements:
(e.g. Procedure, Array, Program, Event Queue, etc.) Level 3 Level 3 Developed by Program Developed by Program Model of xUML
...
...
xUML Elements:(e.g. Class, Attribute, Association,
Tag etc.)
xUML Elements:
(e.g. Class, Attribute, Association, Tag etc.) Level 2 Level 2 Supplied by Kennedy Carter Supplied by Kennedy Carter
Automatic Code Generation: The Code Generator
Automatic Code Generation: The Code Generator
Model of Application
...
...
Application Elements:(e.g. Aircraft, Missile, Target, etc.) Application Elements:
(e.g. Aircraft, Missile, Target, etc.) Level 1 Level 1 Developed by Program Developed by Program Generated Generated Source Code Source Code for Target for Target Platform Platform
The Code Generator includes all implementation-dependent details
Automatic Code Generation: Code Generator Development
Automatic Code Generation: Code Generator Development
Configurable Code Generator:
 Code Generator is developed
using the same eXecutable MDA strategy
 Kennedy Carter supplies a
set of xUML models (known as the Configurable Code Generator) that serve as a generic translation framework
Configurable Code Generator:
 Code Generator is developed
using the same eXecutable MDA strategy
 Kennedy Carter supplies a
Automatic Code Generation: Code Generator Development
Automatic Code Generation: Code Generator Development
Code Generator Development:
 The Configurable Code
Generator (iCCG) may be adapted to the meet the
requirements of any Platform Specific Implementation (i.e. of any Application Software Interface)
 Code Generator and
Application Software ment may be performed
concurrently
Code Generator Development:
 The Configurable Code
Generator (iCCG) may be adapted to the meet the
requirements of any Platform Specific Implementation (i.e. of any Application Software Interface)
 Code Generator and
Application Software ment may be performed
Automatic Code Generation: Summary
Automatic Code Generation: Summary
 Automatic code generation is simply an Automatic code generation is simply an
extension of the code generation technique
extension of the code generation technique
used for simulation of the eXecutable UML
used for simulation of the eXecutable UML
models on the development platform, this
models on the development platform, this
extension being for the target (embedded)
extension being for the target (embedded)
platform
platform
 The code generator is developed within the The code generator is developed within the
same environment as the application
same environment as the application
software using the same eXecutable MDA
software using the same eXecutable MDA
strategy
strategy
 Development cost: 1-2 architectsDevelopment cost: 1-2 architects
 Nearly all implementation-specific design Nearly all implementation-specific design
tasks (all but the design decisions
tasks (all but the design decisions
represented by design tag values) are
represented by design tag values) are
performed by the code generator, not the
performed by the code generator, not the
software developers
software developers
Automatic Code Generator
Portable Application Software Products
Portable Application Software Products
Source Code
Source Code
Application
Software
Interface
eXecutable UML
eXecutable UML
Models
Models
Program Specific
Program Specific
Mapping
Mapping
(Design Tag Values)
(Design Tag Values)
Automatic Code Generator
Program Specific
Program Specific
Mapping
Mapping
(Design Tag Values)
(Design Tag Values)
Source Code
Source Code
Application
Software
Interface
eXecutable UML
eXecutable UML
Models
Models
The Portable Products
The Portable Products
(and therefore the Configured Products (and therefore the Configured Products to be placed in an Enterprise-Level to be placed in an Enterprise-Level Software Reuse Library)
Advantages of the eXecutable MDA Approach
Advantages of the eXecutable MDA Approach
 The majority of software developers are The majority of software developers are
isolated from implementation details,
isolated from implementation details,
allowing them to focus on a thorough
allowing them to focus on a thorough
analysis of the application space
analysis of the application space
 Maintenance of the application source code Maintenance of the application source code
is eliminated, while maintenance of the xUML
is eliminated, while maintenance of the xUML
models is ensured
models is ensured
 Defect injection (and the resulting rework) is Defect injection (and the resulting rework) is
reduced by automating the software phase in
reduced by automating the software phase in
which most defects are injected
which most defects are injected
 On a typical program, after Requirements On a typical program, after Requirements Definition approximately 2/3 of the defects
Definition approximately 2/3 of the defects
are injected during implementation
are injected during implementation
(coding)
(coding)
Increased Quality
Advantages of the eXecutable MDA Approach
Advantages of the eXecutable MDA Approach
 Rework is reducedRework is reduced
 Early validation through simulation Early validation through simulation
reduces rework
reduces rework
 Increase in eXecutable UML modeling span Increase in eXecutable UML modeling span
time is more than offset by decrease in
time is more than offset by decrease in
Integration & Test span time
Integration & Test span time
 Higher quality implementation (due to Higher quality implementation (due to
automation) reduces rework
automation) reduces rework
 Software development span time is reduced Software development span time is reduced
by automating the implementation phase
by automating the implementation phase
 Application Software development Application Software development
schedule is reduced by at least 20%
schedule is reduced by at least 20%  The code generator, not each software The code generator, not each software
developer, performs the majority of
developer, performs the majority of
implementation-specific design tasks
implementation-specific design tasks
Increased Productivity
Advantages of the eXecutable MDA Approach
Advantages of the eXecutable MDA Approach
 One Application Software xUML Model One Application Software xUML Model
database may be reused (as is) on any
database may be reused (as is) on any
platform for which a mapping is defined (ie: a
platform for which a mapping is defined (ie: a
code generator is developed)
code generator is developed)
 xUML models are compatible with any xUML models are compatible with any hardware platform, any Software
hardware platform, any Software
Execution Platform, and any Application
Execution Platform, and any Application
Software Interface
Software Interface
 xUML models are compatible with any xUML models are compatible with any implementation language
implementation language
Cross-Platform Compatibility
Cross-Platform Compatibility
The Goal of Cross-Platform Compatibility of Application Software
The Goal of Cross-Platform Compatibility of Application Software
is Attainable with the eXecutable MDA Approach
is Attainable with the eXecutable MDA Approach
The Goal of Cross-Platform Compatibility of Application Software
The Goal of Cross-Platform Compatibility of Application Software
is Attainable with the eXecutable MDA Approach
eXecutable MDA: Summary of Key Themes
eXecutable MDA: Summary of Key Themes
 The platform is an xUML virtual machine (but platform independent The platform is an xUML virtual machine (but platform independent
models can’t assume anything about the interface)
models can’t assume anything about the interface)
 To validate PIMS as long-life assets we need eXecutable UMLTo validate PIMS as long-life assets we need eXecutable UML  eXecutable UML needs an action language, not a 3GLeXecutable UML needs an action language, not a 3GL
 Systems are integrated from multiple platform independent modelsSystems are integrated from multiple platform independent models  PIMS offer contracts for required and provided servicesPIMS offer contracts for required and provided services
 100% code generation is essential to make MDA a lightweight process100% code generation is essential to make MDA a lightweight process  But don’t worry – its just another type of expert knowledge to formalise But don’t worry – its just another type of expert knowledge to formalise
in xUML
in xUML
 It worksIt works
Projects Using eXecutable MDA with KC’s Tools
Projects Using eXecutable MDA with KC’s Tools
BAE Systems: Stingray torpedo MLU
BAE Systems: Stingray torpedo MLU
TRW Automotive: vehicle stability system
TRW Automotive: vehicle stability system
Siemens Metering: ‘intelligent’ gas meter
Siemens Metering: ‘intelligent’ gas meter
Thales: Nimrod MR4 crew trainers
Thales: Nimrod MR4 crew trainers
GD Government Systems: ATM Switch for US Army
GD Government Systems: ATM Switch for US Army
Royal Netherlands Navy: combat systems
Royal Netherlands Navy: combat systems
Nortel Networks: Passport Voice Gateway
Nortel Networks: Passport Voice Gateway
GCHQ: classified distributed application
GCHQ: classified distributed application
Contact Information
Contact Information
Lauren E. Clark
Lauren E. Clark
Chief Engineer
Chief Engineer
F-16 Modular Mission Computer Software
F-16 Modular Mission Computer Software
Lockheed Martin Aeronautics Company
Lockheed Martin Aeronautics Company
Terry Ruthruff
Terry Ruthruff
Staff Specialist
Staff Specialist
Software Engineering Core
Software Engineering Core
Lockheed Martin Aeronautics Company
Lockheed Martin Aeronautics Company
(817) 763-2748
(817) 763-2748
Bary D. Hogan
Bary D. Hogan
Methodology Lead
Methodology Lead
F-16 Modular Mission Computer Software
F-16 Modular Mission Computer Software
Lockheed Martin Aeronautics Company
Lockheed Martin Aeronautics Company
(817) 763-3525
(817) 763-3525
(817) 763-2620
(817) 763-2620
Allan Kennedy
Allan Kennedy
Managing Director
Managing Director
Kennedy Carter Limited
allan
allan[email protected][email protected] (+44) 1483 226 180