• No results found

F-16 Modular Mission Computer Application Software

N/A
N/A
Protected

Academic year: 2021

Share "F-16 Modular Mission Computer Application Software"

Copied!
35
0
0

Loading.... (view fulltext now)

Full text

(1)

F

F

-

-

16 Modular Mission Computer

16 Modular Mission Computer

Application Software

Application Software

Achieving Cross

Achieving Cross

-

-

Platform Compatibility with

Platform Compatibility with

Increased Productivity and Quality using the

Increased Productivity and Quality using the

OMG

OMG

s

s

Model Driven Architecture

Model Driven Architecture

Lauren E. Clark

Lauren E. Clark

Chief Engineer

Chief Engineer

F

F--16 Modular Mission Computer Software16 Modular Mission Computer Software Lockheed Martin Aeronautics Company

Lockheed Martin Aeronautics Company

Terry

Terry RuthruffRuthruff

Staff Specialist

Staff Specialist

Software Engineering Core

Software Engineering Core

Lockheed Martin Aeronautics Company

Lockheed Martin Aeronautics Company

Allan Kennedy

Allan Kennedy

President

President

Kennedy Carter Limited

Kennedy Carter Limited

Bary

Bary D. HoganD. Hogan Methodology Lead

Methodology Lead

F

F--16 Modular Mission Computer Software16 Modular Mission Computer Software Lockheed Martin Aeronautics Company

(2)

Agenda

Agenda

Basic Software Components

Basic Software Components

Cross

Cross

-

-

Platform Compatibility: The Goal

Platform Compatibility: The Goal

The eXecutable

The

eXecutable

MDA Approach:

MDA Approach:

eXecutable

eXecutable

UML Modeling

UML Modeling

Platform Specific Mapping (Design Tagging)

Platform Specific Mapping (Design Tagging)

Automatic Code Generation

Automatic Code Generation

(3)

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 allow the Application Software to run on the hardware

Software Execution Platform:

Low-level software, the purpose of

which is to allow the Application Software to run on the hardware

(4)

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 allow the Application Software to run on the hardware

Software Execution Platform:

Low-level software, the purpose of

which is to allow the Application Software to run on the hardware

(5)

Software Execution

Platform

Board Support Package / BIT

Board Support Package / Built

Board Support Package / Built

-

-

In Test

In Test

Hardware

Hardware

Application Software

Application Software Interface

Device Drivers Operating System Software Architecture

Board Support Package:

Lowest-level boot software / firmware

that allows all other software (including the Operating System) to be loaded into memory and begin executing

● Unique to the hardware; and usually

delivered with the hardware (located in some type of ROM)

Built-In Test (BIT):

Low-level software that detects and

reports hardware errors

Unique to the hardware; and usually

delivered with the hardware

Board Support Package:

Lowest-level boot software / firmware

that allows all other software (including the Operating System) to be loaded into memory and begin executing

● Unique to the hardware; and usually

delivered with the hardware (located in some type of ROM)

Built-In Test (BIT):

Low-level software that detects and

reports hardware errors

Unique to the hardware; and usually

delivered with the hardware

Board Support Package / BIT

(6)

Software Execution

Platform

Operating System

Operating System

Operating System

Hardware

Hardware

Application Software

Application Software Interface

Operating System:

Low-level software that, once booted,

manages all other software (this

management involving such things as multitasking, memory sharing, I/O interrupt handling, error and status reporting, etc.)

Unique to the hardware (i.e. it must at

least be ported to each new hardware platform); and sometimes delivered with the hardware

Operating System:

Low-level software that, once booted,

manages all other software (this

management involving such things as multitasking, memory sharing, I/O interrupt handling, error and status reporting, etc.)

Unique to the hardware (i.e. it must at

least be ported to each new hardware platform); and sometimes delivered with the hardware

Device Drivers

Software Architecture

Operating System

Operating System

(7)

Software Execution

Platform

Device Drivers Operating System

Device Drivers

Device Drivers

Hardware

Hardware

Application Software

Application Software Interface

Device Drivers:

Low-level software that manages the

input from and output to the various external devices in support of the Application Software

Unique to the hardware; but usually

not delivered with the hardware

Device Drivers:

Low-level software that manages the

input from and output to the various external devices in support of the Application Software

Unique to the hardware; but usually

not delivered with the hardware

Software Architecture

Board Support Package / BIT

Device Drivers

(8)

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

(9)

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

(10)

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

Cross

-

-

Platform Compatibility: The Usual Approach

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

(11)

Hardware Platform

Hardware Platform

Cross

Cross

-

-

Platform Compatibility Issues

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

a part of the Application Software to a legacy platform not having the resources to support the newer Software Execution Platforms?

(12)

Hardware Platform

Hardware Platform

Cross

Cross

-

-

Platform Compatibility Issues

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

Execution Platform changes could provide more Application Software capability, but only by means of changing the Application Software Interface?

(13)

Hardware Platform

Hardware Platform

Cross

Cross

-

-

Platform Compatibility: The Goal

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

cross

-

-

platform compatibility

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

Application Software Interface

(14)

eXecutable

eXecutable

MDA: Application Software Development

MDA: Application Software Development

eXecutable

eXecutable

UML

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

The

eXecutable

eXecutable

MDA Approach

(15)

eXecutable

eXecutable

UML Modeling: Domain Model

UML Modeling: Domain Model

Domain Model

(Package Diagram):

The software application space

is partitioned into multiple platform independent models (or domains)

● Mappings between the

domains (bridges) are defined

Domain Model

(Package Diagram):

The software application space

is partitioned into multiple platform independent models (or domains)

● Mappings between the

(16)

eXecutable

eXecutable

UML Modeling: Class Diagrams

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

not modeled explicitly in this view

(17)

eXecutable

eXecutable

UML Modeling: State Charts

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

(18)

eXecutable

eXecutable

UML Modeling: ASL

UML Modeling: ASL

Action Specification Language:State actions and class

operations are specified using a precise 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 object oriented

concepts, not implementation concepts

ASL conforms to the UML

Precise Action Semantics

Action Specification Language:

State actions and class

operations are specified using a precise 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 object oriented

concepts, not implementation concepts

ASL conforms to the UML

(19)

eXecutable

eXecutable

UML Modeling: Simulation

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

(20)

eXecutable

eXecutable

UML Modeling: Summary

UML Modeling: Summary

eXecutable

eXecutable

UML

UML

Modeling

Modeling

xUML models are a complete representation xUML models are a complete representation of the application space (not a top

of the application space (not a top-level or -level or preliminary design)

preliminary design)

Modeling is performed using a Unified Modeling is performed using a Unified Modeling Language (UML) representation Modeling Language (UML) representation

Modeling makes use of a precise Action Modeling makes use of a precise Action Specification Language (ASL) and is Specification Language (ASL) and is therefore executable (providing early therefore executable (providing early validation of the models)

validation of the models)

Each xUML model is a Platform Independent Each xUML model is a Platform Independent Model (PIM), or completely implementation Model (PIM), or completely implementation- -independent (i.e. -independent of the

independent (i.e. independent of the

hardware platform, the software execution hardware platform, the software execution platform, and the application software

(21)

Design Tags ● Class Allocation ● Program AllocationMax Instance CountEvent RateEvent QueueThrow AwayInitialization ● Source Type ● Subtype ofetc. Design Tags ● Class Allocation ● Program AllocationMax Instance CountEvent RateEvent QueueThrow AwayInitialization ● Source Type ● Subtype ofetc.

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 Defines

(22)

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

most standard implementation, such that only exceptions must be tagged

(23)

Design Tagging: Summary

Design Tagging: Summary

Whereas xUML modeling is implementation-Whereas xUML modeling is implementation -independent, Design Tagging is

independent, Design Tagging is implemen-implemen -tation

tation--dependent (i.e. specific to a particular dependent (i.e. specific to a particular Application Software Interface)

Application Software Interface)

Implementation-Implementation-specific design decisions specific design decisions (only those needed to support code

(only those needed to support code generation) are made during Design generation) are made during Design

Tagging, and are represented with design Tagging, and are represented with design tag values that are applied to the xUML tag values that are applied to the xUML models

models

The most standard implementation is always The most standard implementation is always assumed by the code generator, such that assumed by the code generator, such that only exceptions must be tagged

only exceptions must be tagged

Design Tagging is overlaid on (not Design Tagging is overlaid on (not

embedded in) the xUML models, such that it embedded in) the xUML models, such that it may be included or excluded

may be included or excluded

Platform Specific

Platform Specific

Mapping

Mapping

(Design Tagging)

(Design Tagging)

(24)

Model of

Implementation

...

...

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:

(e.g. Procedure, Array, Program, Event Queue, etc.) Level 1 Level 1 Level 2 Level 2 Level 3 Level 3 Developed by Program Developed by Program Supplied by Tool Vendor Supplied by Tool Vendor Developed by Program Developed by Program

(25)

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 Tool Vendor Supplied by Tool Vendor

Automatic Code Generation: Level 2

Automatic Code Generation: Level 2

-

-

Simulation Code

Simulation Code

Step 1:

Step 1: Populate instancesPopulate instances of

of xUMLxUMLMetamodelMetamodel withwith

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

(26)

Model of Implementation

...

...

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 Tool Vendor Supplied by Tool Vendor

Automatic Code Generation: Level 3

Automatic Code Generation: Level 3

-

-

Target Code

Target Code

Step 1:

Step 1: Populate instancesPopulate instances of

of xUMLxUMLMetamodelMetamodel withwith 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 instancesPopulate instances of

of Model of ImplementationModel of Implementation with

with populated xUMLpopulated xUML Metamodel

Metamodel instancesinstances

Code Generation: Code Generation: Generation of Generation of Source Code Source Code for Target for Target (Embedded) (Embedded) Platform Platform (e.g.

(27)

The Code Generator

The Code Generator

Model of Implementation

...

...

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 Tool Vendor Supplied by Tool Vendor

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

The Code Generator includes all implementation--dependent detailsdependent details (those dependent upon the Application Software Interface

(28)

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

The Tool Vendor 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

The Tool Vendor supplies a

set of xUML models (known as the Configurable Code Generator) that serve as a generic translation framework

(29)

Automatic Code Generation: Code Generator Development

Automatic Code Generation: Code Generator Development

Code Generator Development:The Configurable Code

Generator 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 develop-ment may be performed

concurrently

Code Generator Development:The Configurable Code

Generator 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 develop-ment may be performed

(30)

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

used for simulation of the eXecutableeXecutable UML 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

software using the same eXecutable eXecutable MDA MDA strategy

strategy

Development cost: 1Development cost: 1--2 architects2 architects

Nearly all implementation-Nearly all implementation-specific design 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 Generation

(31)

Automatic Code Generator

Portable Application Software Products

Portable Application Software Products

Source Code

Source Code

Application

Software

Interface

eXecutable

eXecutable

UML

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

eXecutable

UML

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

to be placed in an Enterprise--Level Level Software Reuse Library)

(32)

Advantages of the

Advantages of the

eXecutable

eXecutable

MDA Approach

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

Definition approximately 2/3 of the

defects are injected during

defects are injected during

implementation (coding)

implementation (coding)

Increased Quality

(33)

Advantages of the

Advantages of the

eXecutable

eXecutable

MDA Approach

MDA Approach

Rework is reducedRework is reduced

Early validation through simulation Early validation through simulation reduces rework

reduces rework

• Increase in Increase in eXecutableeXecutable UML modeling UML modeling span time is more than offset by decrease

span time is more than offset by decrease

in Integration & Test span time

in 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

implementation--specific design tasksspecific design tasks

• 40-60% of physical source code

Increased Productivity

(34)

Advantages of the

Advantages of the

eXecutable

eXecutable

MDA Approach

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 code generator is platform for which a code generator is developed

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

Cross

-

-

Platform Compatibility

Platform Compatibility

The Goal of Cross-Platform Compatibility of Application Software is Attainable with the eXecutable MDA Approach

The Goal of Cross

The Goal of Cross--Platform Compatibility of Application SoftwarePlatform Compatibility of Application Software is Attainable with the

(35)

Contact Information

Contact Information

Lauren E. Clark Lauren E. Clark Chief Engineer Chief Engineer F

F--16 Modular Mission Computer Software16 Modular Mission Computer Software Lockheed Martin Aeronautics Company

Lockheed Martin Aeronautics Company

Terry

Terry RuthruffRuthruff Staff Specialist

Staff Specialist

Software Engineering Core

Software Engineering Core

Lockheed Martin Aeronautics Company

Lockheed Martin Aeronautics Company

[email protected]

[email protected]

(817) 763

(817) 763--27482748

Bary

Bary D. HoganD. Hogan

Methodology Lead

Methodology Lead

F

F--16 Modular Mission Computer Software16 Modular Mission Computer Software Lockheed Martin Aeronautics Company

Lockheed Martin Aeronautics Company

[email protected] [email protected] (817) 763 (817) 763--35253525 [email protected] [email protected] (817) 763 (817) 763--26202620 Allan Kennedy Allan Kennedy President President

Kennedy Carter Limited

Kennedy Carter Limited

allan

allan@@kckc.com.com

(+44) 1483 483 200

References

Related documents