• Tidak ada hasil yang ditemukan

New_MDA.ppt 6636KB Jun 23 2011 12:14:54 PM

N/A
N/A
Protected

Academic year: 2017

Membagikan "New_MDA.ppt 6636KB Jun 23 2011 12:14:54 PM"

Copied!
32
0
0

Teks penuh

(1)

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

(2)

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

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

Software Execution Platform:

 Low-level software, the purpose of

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

Software Execution Platform:

 Low-level software, the purpose of

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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:

(20)

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

(21)

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)

(22)

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

(23)

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

(24)

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

(25)

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

(26)

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)

(27)

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

(28)

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

(29)

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

(30)

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 UMLeXecutable 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 modelsPIMS 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 processBut 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

(31)

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

(32)

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

[email protected]

[email protected]

(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

[email protected]

[email protected]

(817) 763-3525

(817) 763-3525

[email protected]

[email protected]

(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

Referensi

Dokumen terkait

[r]

PERSENTASE KETERSEDIAAN FASILITAS MILIK TINGKAT SD PROVINSI GORONTALO.. TAHUN

diri yang terbentuk karena pemahaman diri, konsep diri positif yang stabil, pola asuh yang diberikan dapat diterapkan oleh anak dalam keseharian, sikap masyarakat yang

(3) bagaimana dampak seni karawitan terhadap nilai tanggung Jawab pada pendidikan karakter? Adapun metode yang digunakan adalah kualitatif dan menggunakan teknik

Sebuah Disertasi yang diajukan untuk memenuhi salah satu syarat memperoleh gelar Doktor Pendidikan Bahasa Indonesia pada Sekolah Pascasarjana Universitas Pendidikan Indonesia.

Gangguan pendengaran merupakan suatu keadaan yang menyertai lanjutnya usia sebab lansia merupakan kelompok yang beresiko tinggi mengalami perubahan sensori (pendengaran

Pada penelitian ini akan dilakukan pengujian berbagai model basis data relasional dengan menggunakan berbagai jumlah data, kemudian akan dilakukan pengujian pada

Dari tabel 6 diatas dapat dilihat bahwa kabupaten Mandailing Natal memiliki sektor- sektor yang memiliki nilai negatif yaitu sektor peranian, pertambangan dan