This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Achieving CrossAchieving Cross--Platform Compatibility with Platform Compatibility with Increased Productivity and Quality using the Increased Productivity and Quality using the OMGOMG’’s s Model Driven ArchitectureModel Driven Architecture
Lauren E. ClarkLauren E. ClarkChief EngineerChief EngineerFF--16 Modular Mission Computer Software16 Modular Mission Computer SoftwareLockheed Martin Aeronautics CompanyLockheed Martin Aeronautics Company
Terry Terry RuthruffRuthruffStaff SpecialistStaff SpecialistSoftware Engineering CoreSoftware Engineering CoreLockheed Martin Aeronautics CompanyLockheed Martin Aeronautics Company
Allan KennedyAllan KennedyPresidentPresidentKennedy Carter LimitedKennedy Carter Limited
Bary Bary D. HoganD. HoganMethodology LeadMethodology LeadFF--16 Modular Mission Computer Software16 Modular Mission Computer SoftwareLockheed Martin Aeronautics CompanyLockheed Martin Aeronautics Company
● Low-level software, the purpose ofwhich is to allow the ApplicationSoftware to run on the hardware
Software Execution Platform:
● Low-level software, the purpose ofwhich is to allow the ApplicationSoftware to run on the hardware
Lockheed Martin Aeronautics Company
Software ExecutionPlatform
Board Support Package / BIT
Board Support Package / BuiltBoard Support Package / Built--In TestIn Test
HardwareHardware
Application Software
Application Software Interface
Device Drivers Operating System
Software Architecture
Board Support Package:
● Lowest-level boot software / firmwarethat allows all other software (includingthe Operating System) to be loadedinto memory and begin executing
● Unique to the hardware; and usuallydelivered with the hardware (locatedin some type of ROM)
Built-In Test (BIT):
● Low-level software that detects andreports hardware errors
● Unique to the hardware; and usuallydelivered with the hardware
Board Support Package:
● Lowest-level boot software / firmwarethat allows all other software (includingthe Operating System) to be loadedinto memory and begin executing
● Unique to the hardware; and usuallydelivered with the hardware (locatedin some type of ROM)
Built-In Test (BIT):
● Low-level software that detects andreports hardware errors
● Unique to the hardware; and usuallydelivered with the hardware
Board Support Package / BITBoard Support Package / BIT
Lockheed Martin Aeronautics Company
Software ExecutionPlatformOperating System
Operating SystemOperating System
HardwareHardware
Application Software
Application Software Interface
Operating System:
● Low-level software that, once booted,manages all other software (thismanagement involving such things asmultitasking, memory sharing, I/Ointerrupt handling, error and statusreporting, etc.)
● Unique to the hardware (i.e. it must atleast be ported to each new hardwareplatform); and sometimes deliveredwith the hardware
Operating System:
● Low-level software that, once booted,manages all other software (thismanagement involving such things asmultitasking, memory sharing, I/Ointerrupt handling, error and statusreporting, etc.)
● Unique to the hardware (i.e. it must atleast be ported to each new hardwareplatform); and sometimes deliveredwith the hardware
Device Drivers
Software Architecture
Operating SystemOperating System
Board Support Package / BIT
Lockheed Martin Aeronautics Company
Software ExecutionPlatformDevice Drivers Operating System
Device DriversDevice Drivers
HardwareHardware
Application Software
Application Software Interface
Device Drivers:
● Low-level software that manages theinput from and output to the variousexternal devices in support of theApplication Software
● Unique to the hardware; but usuallynot delivered with the hardware
Device Drivers:
● Low-level software that manages theinput from and output to the variousexternal devices in support of theApplication Software
● Unique to the hardware; but usuallynot delivered with the hardware
Software Architecture
Board Support Package / BIT
Device DriversDevice Drivers
Lockheed Martin Aeronautics Company
Software ExecutionPlatformDevice Drivers Operating System
Software Architecture
Software ArchitectureSoftware Architecture
HardwareHardware
Application Software
Application Software Interface
Software Architecture:
● Low-level software providing theframework within which the ApplicationSoftware executes
● Provides execution control, data /message management, error handling,and various support services to theApplication Software
● Assumes a particular ApplicationSoftware language
● Unique to the hardware; but, since itmust support all requirements leviedby the Application Software, is notdelivered with the hardware
Software Architecture:
● Low-level software providing theframework within which the ApplicationSoftware executes
● Provides execution control, data /message management, error handling,and various support services to theApplication Software
● Assumes a particular ApplicationSoftware language
● Unique to the hardware; but, since itmust support all requirements leviedby the Application Software, is notdelivered with the hardwareBoard Support Package / BIT
● The boundary between the ApplicationSoftware and the Software ExecutionPlatform
● The specified methods by which theApplication Software can makerequests and use the services of theSoftware Execution Platform and theSoftware Execution Platform canprovide its services to the ApplicationSoftware
● This interface is specified by theSoftware Execution Platform
Application Software Interface:
● The boundary between the ApplicationSoftware and the Software ExecutionPlatform
● The specified methods by which theApplication Software can makerequests and use the services of theSoftware Execution Platform and theSoftware Execution Platform canprovide its services to the ApplicationSoftware
● This interface is specified by theSoftware Execution PlatformBoard Support Package / BIT
Lockheed Martin Aeronautics Company
Hardware Platform #2Hardware Platform #2
Application Software
Board Support Package / BITBoard Support Package / BIT
Device DriversDevice Drivers Operating SystemOperating System
Software ArchitectureSoftware Architecture
Application Software Interface
HoldConstant
HardwareHardware
CrossCross--Platform Compatibility: The Usual ApproachPlatform Compatibility: The Usual Approach
Hardware Platform #1Hardware Platform #1
Application Software
Application Software Interface
Device Drivers Operating System
Software Architecture
Board Support Package / BIT
Maintain a constant Application Software InterfaceMaintain a constant Application Software Interface
Device DriversDevice Drivers Operating SystemOperating System
Software ArchitectureSoftware Architecture
Application Software Interface
Board Support Package / BITBoard Support Package / BIT
Can a constantCan a constantApplication Software InterfaceApplication Software Interface
always be maintained?always be maintained?
Consider…
● What if the language or operatingsystem becomes obsolete?
● What if it is necessary to port evena part of the Application Softwareto a legacy platform not having theresources to support the newerSoftware Execution Platforms?
Consider…
● What if the language or operatingsystem becomes obsolete?
● What if it is necessary to port evena part of the Application Softwareto a legacy platform not having theresources to support the newerSoftware Execution Platforms?
● What if hardware or SoftwareExecution Platform changes couldprovide more Application Softwarecapability, but only by means ofchanging the Application SoftwareInterface?
Consider…
● What if hardware or SoftwareExecution Platform changes couldprovide more Application Softwarecapability, but only by means ofchanging the Application SoftwareInterface?
Lockheed Martin Aeronautics Company
Hardware PlatformHardware Platform
CrossCross--Platform Compatibility: The GoalPlatform Compatibility: The Goal
Application Software
Device DriversDevice Drivers Operating SystemOperating System
Software ArchitectureSoftware Architecture
Application Software Interface
Board Support Package / BITBoard Support Package / BIT
The goalThe goalshould be to provideshould be to provide
•• xUML models are a complete representation xUML models are a complete representation of the application space (not a topof 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) representationModeling 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 implementationModel (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 platform, and the application software interface)interface)
Lockheed Martin Aeronautics Company
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 MappingDesign Tagging: Specifying the PIM to PSM Mapping
Source Code Files...
...
......Automatic
Code Generator
xUML Models
...
...
Application Software Interface Definition
Software ExecutionPlatform Specific
Software ExecutionPlatform Specific
LanguageSpecific
LanguageSpecific
Defines
Lockheed Martin Aeronautics Company
Design Tagging: Specifying the PIM to PSM MappingDesign Tagging: Specifying the PIM to PSM Mapping
Design Tagging:
● Design tag values representimplementation-specific designdecisions
● Design tagging is applied to,but not embedded in, the xUMLmodels (tags and tag valuesmay be included or excluded)
● Code Generator assumes themost standard implementation,such that only exceptions mustbe tagged
Design Tagging:
● Design tag values representimplementation-specific designdecisions
● Design tagging is applied to,but not embedded in, the xUMLmodels (tags and tag valuesmay be included or excluded)
● Code Generator assumes themost standard implementation,such that only exceptions mustbe tagged
Lockheed Martin Aeronautics Company
Design Tagging: SummaryDesign Tagging: Summary
•• Whereas xUML modeling is implementationWhereas xUML modeling is implementation--independent, Design Tagging is independent, Design Tagging is implemenimplemen--tationtation--dependent (i.e. specific to a particular dependent (i.e. specific to a particular Application Software Interface)Application Software Interface)
•• ImplementationImplementation--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 modelsmodels
•• 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 taggedonly 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 excludedmay be included or excluded
Platform SpecificPlatform SpecificMappingMapping
(Design Tagging)(Design Tagging)
Lockheed Martin Aeronautics Company
Modelof
Implementation
...
...
Automatic Code Generation: 3 Levels of ModelsAutomatic Code Generation: 3 Levels of Models
Automatic Code Generation: The Code GeneratorAutomatic Code Generation: The Code Generator
Modelof
Application
...
...ApplicationElements:
(e.g. Aircraft, Missile,Target, etc.)
ApplicationElements:
(e.g. Aircraft, Missile,Target, etc.)
Level 1Level 1Developed
byProgram
Developedby
Program
GeneratedGeneratedSource CodeSource Code
for Targetfor TargetPlatformPlatform
The Code Generator includes all implementationThe Code Generator includes all implementation--dependent detailsdependent details(those dependent upon the Application Software Interface (those dependent upon the Application Software Interface –– specific to the specific to the Hardware, the Software Execution Platform, the Implementation LaHardware, the Software Execution Platform, the Implementation Language)nguage)
● The Configurable CodeGenerator may be adaptedto the meet the requirementsof any Platform SpecificImplementation (i.e. of anyApplication Software Interface)
● Code Generator andApplication Software develop-ment may be performedconcurrently
Code Generator Development:
● The Configurable CodeGenerator may be adaptedto the meet the requirementsof any Platform SpecificImplementation (i.e. of anyApplication Software Interface)
● Code Generator andApplication Software develop-ment may be performedconcurrently
•• 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) platformplatform
•• 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 strategystrategy−− Development cost: 1Development cost: 1--2 architects2 architects
•• Nearly all implementationNearly 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 developerssoftware developers
The Portable ProductsThe Portable Products(and therefore the Configured Products(and therefore the Configured Productsto be placed in an Enterpriseto be placed in an Enterprise--Level Level Software Reuse Library)Software Reuse Library)
Lockheed Martin Aeronautics Company
Advantages of the Advantages of the eXecutable eXecutable MDA ApproachMDA 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 spaceanalysis 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 ensuredmodels 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 injectedwhich 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 QualityIncreased Quality
Lockheed Martin Aeronautics Company
Advantages of the Advantages of the eXecutableeXecutable MDA ApproachMDA Approach
•• Rework is reducedRework is reduced−− Early validation through simulation Early validation through simulation
reduces reworkreduces 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 timein Integration & Test span time
−− Higher quality implementation (due to Higher quality implementation (due to automation) reduces reworkautomation) reduces rework
•• Software development span time is reduced Software development span time is reduced by automating the implementation phaseby 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 implementationimplementation--specific design tasksspecific design tasks•• 4040--60% of physical source code60% of physical source code
Increased ProductivityIncreased Productivity
Lockheed Martin Aeronautics Company
Advantages of the Advantages of the eXecutableeXecutable MDA ApproachMDA 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 developeddeveloped−− 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 InterfaceSoftware Interface
−− xUML models are compatible with any xUML models are compatible with any implementation languageimplementation language
The Goal of Cross-Platform Compatibility of Application Softwareis Attainable with the eXecutable MDA Approach
The Goal of CrossThe Goal of Cross--Platform Compatibility of Application SoftwarePlatform Compatibility of Application Softwareis Attainable with the is Attainable with the eXecutable eXecutable MDA ApproachMDA Approach
Lockheed Martin Aeronautics Company
Contact InformationContact Information
Lauren E. ClarkLauren E. ClarkChief EngineerChief EngineerFF--16 Modular Mission Computer Software16 Modular Mission Computer SoftwareLockheed Martin Aeronautics CompanyLockheed Martin Aeronautics Company
Terry Terry RuthruffRuthruffStaff SpecialistStaff SpecialistSoftware Engineering CoreSoftware Engineering CoreLockheed Martin Aeronautics CompanyLockheed Martin Aeronautics Company