SlideShare a Scribd company logo
www.kc.com Model Driven Architecture and eXecutable UML Allan Kennedy Founder, Kennedy Carter Ltd Co-chair, OMG Object Reference Model sub-committee K E N N E D Y  C A R T E R
Agenda: MDA: Key Themes The MDA Value Proposition The MDA Guide and the MDA Reference Model Supporting MDA with eXecutable UML Model Transformation and Code Generation Integration with the HLA/RTI
MDA: Some Key Themes Three primary viewpoints for modelling The Computation Independent Model (CIM) Precise business model, oriented to stakeholders, uncommitted to specific algorithms or system boundary. Also known as a Domain Model.  The Platform Independent Model (PIM) Precise, computationally complete (executable), uncommitted to any specific platform (portable), oriented to stakeholders (prototyping) and developers (a testable specification), a long life asset  The Platform Specific Model (PSM) Precise, complete, conforms to constraints of a specific (class of) platform(s), probably generated from a PIM, oriented to technology experts  Interoperability defined at the model level, not the middleware level Models are integrated in order to construct complete systems Models are derived from other models by (partially) automated transformation So, MDA promises to be rigorous but lightweight, -> agile modelling
MDA Models are Strategic Long-Life Assets “ A 20 year, standards-based software architecture” Wouldn’t it be nice to know that your strategic assets are correct ? They need to be tested They need to be executable UML becomes executable when used with an action language xUML models are finished when they execute their acceptance test correctly xUML models are validated specifications which offer a strong contractual basis for implementation by external contractors or in-house teams
MDA Models: Integration and Interoperability “ Integrate what you have built with what you will build” Models of legacy assets, COTS products and new developments … are integrated to create platform independent models of entire systems or services. Models can exist as legacy code or a set of executable interface definitions - UML is not the only suitable formalism Interoperability is defined at the model level not the middleware level
MDA Models Are Future Proof “ Tracking the next best thing” Platform Independence makes models future proof, capable of being ported to faster, better, cheaper platforms as they become available Standardised mappings for common platforms are built into MDA tools Specialised mappings to target any platform are specified with configurable model transformation tools. Automated mappings can guarantee interoperability between systems deployed on different platforms Automated mappings simplify the creation of a safety argument
Supporting MDA with eXecutable UML eXecutable UML – A precise modelling formalism: Subset of UML Action Semantics compliant Action Language - ASL (UML 1.5) # navigate from this account instance to the owning customer instance owningCustomer = this -> R1 # unlink this instance from the owning customer via R1 unlink this R1 owningCustomer # find the set of all other account instances owned by that customer {otherOwnedAccounts} = owningCustomer -> R1 # if there are no other owned accounts for this customer, then # send a deletion event to the customer instance if countof {otherOwnedAccounts} = 0 then generate deleteCustomer() to owningCustomer endif # delete this instance of account delete this … .the result is a fully executable model
Supporting MDA with eXecutable UML eXecutable UML – A proven development process oriented towards... Executable modelling Large-scale reuse Pattern based design SPECIFY DOMAINS Identify new/reused domains Model system use cases VALIDATE PIMs Execute domain use cases Execute system use cases BUILD PLATFORM INDEPENDENT  DOMAIN MODELS Model Domain Use Cases Build Static Model Build Dynamic Models Specify Actions Execute and debug xUML models FORMALISE ABSTRACT  PLATFORM SPECIFIC MODEL Select or develop suitable patterns  and mechanisms (Build/Buy xUML compiler) PRODUCE TARGET CODE Apply design patterns to xUML models (manually or automatically) Perform target testing
MDA with xUML: 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 © 2001 Lockheed Martin Corporation
MDA with xUML: 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 © 2001 Lockheed Martin Corporation
MDA with xUML: State Charts State Charts: Behavior is formalized during state modeling Class lifecycles are modeled using signal-driven state machines Class operations are defined © 2001 Lockheed Martin Corporation
MDA with xUML: Action Language Action Specification Language: State actions and class operations are specified using the 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 © 2001 Lockheed Martin Corporation
MDA with xUML: Testing and Debugging PIM’s The iUML Simulator provides a model execution environment Single stepping, breakpoints, browsing of run time objects Can integrate with legacy code Batch (regression) testing of models
MDA with xUML: Integrating Models Air Traffic Control System Build Set counterpartIcon = this -> CPR1 $USE UI [   ] = makeIconFlash[   ] on counterpartIcon $ENDUSE CPR1 Bridge operation counterpart association Air Traffic Control Domain <<required interface>> Air Traffic Controller Aircraft requestPermission ToTaxi required operation User Interface Domain Icon <<provided interface>> Client makeIcon Flash provided operation
MDA with xUML: PIM to PSM Mappings xUML Process supports fully automatic transformation to PSMs Mapping rules can be specified … (part of) xUML Class Attribute Signal Design Metamodel Implementation Metamodel Define Mapping xUML Metamodel Define Mapping (part of) Design Metamodel (object-based) Class PrivateDatum PublicMethod (part of)  Ada 83 Metamodel Package BodyVariable SpecSubprogram
MDA with xUML: Mark-ups Design Tags Class Allocation Program Allocation Max Instance Count Event Rate Event Queue Throw Away Initialization Source Type Subtype of etc. Automatic Code Generator Application Software Interface Definition Software Execution Platform Specific Language Specific Defines © 2001 Lockheed Martin Corporation Source Code Files ... ... ... ... xUML Models ... ...
The iCCG Framework 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 © 2001 Lockheed Martin Corporation
MDA with xUML: Systematic Mappings Systematic Mappings can always be expressed by Action Language operating on the (meta) model of xUML…. is provided by  0..* has 0..* R2 Class name keyLetter Operation Name type class Class<ClassName> { public: <returnType1> <operationName1>(); <returnType2> <operationName2>(); //………. private: static char *className; static char *classKeyLetter; //……. <attribute1Type> <attributeName1>; <attribute2Type> <attributeName2>; <attribute3Type> <attributeName3>; <attribute4Type> <attributeName4>; //……. }; C ++  Code Pattern {allClasses} = find-all Class for eachClass in {allClasses} do $FORMAT code_file class Class[T:eachClass.name] { public: $ENDFORMAT  {theOperations} = eachClass -> R2 for eachOperation in {theOperations} do $FORMAT code_file [T:eachOperation.type] [T:eachOperation.name](); $ENDFORMAT endfor $FORMAT code_file private: static char *[T:eachClass.name]; static char *[T:eachClass.keyLetter]; $ENDFORMAT endfor Mapping Rules in ASL
Extending iCCG with a Platform Model 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 develop- ment may be performed concurrently with the  same methods and tools © 2001 Lockheed Martin Corporation
Configurable Code Generation -Summary Can support very sophisticated mappings iCCG Code Generator Class name keyLetter Operation Name type R2 iCCG Provided  Metam odels Wheel number current speed Valve number state R17 Project domain models Project’s code {allClasses} = find-all Class for eachClass in {allClasses} do $FORMAT code_file class Class[T:eachClass.name] { public: $ENDFORMAT  {theOperations} = eachClass -> R2 for eachOperation in {theOperations} do $FORMAT code_file [T:eachOperation.type] [T:eachOperation.name](); $ENDFORMAT endfor $FORMAT code_file private: static char *[T:eachClass.name]; static char *[T:eachClass.keyLetter]; $ENDFORMAT endfor Project written mappings in ASL Project Code Generator Generate an executable using an existing code generator
Supporting MDA with eXecutable UML iUML Product Suite Requirements Engineering and Use Case Analysis eX ecutable UML Modelling Model Simulation and Testing Built-in Configuration Management Scalable Multi-user Repository Off-the-shelf Code Generation TA-5  C++ Single Task TA-5/HLA  C++ targeting the HLA/RTI TA-6  very efficient embedded C Fully Configurable Code Generation (iCCG) Uses eXecutable UML models to build the code generator
Projects Using MDA with eXecutable UML Lockheed Martin Aeronautics: F16 MMC (Ada 83, Ada 95) BAE Systems: Stingray torpedo MLU (Ada 95) TRW Automotive: vehicle stability system (efficient C) Siemens Metering: ‘intelligent’ gas meter (C) Thales: Nimrod MR4 crew trainers (C++) GD Government Systems: ATM Switch for US Army (C) Royal Netherlands Navy: combat systems (C++) Nortel Networks: Passport Voice Gateway (C++) GCHQ: classified distributed application (C, objectstore) UK NHS:  patient control of access to medical records (C++) US DoD: Single Integrated Air Picture (C++, HLA/RTI) BAE Systems: migration of legacy systems to xUML (Ada 83)
Questions to Ask Your Tool Vendor test my PIMS? integrate multiple PIMS with each other and with legacy components? specify my preferred mapping from my PIMS to my particular platform? generate 100% of my deployable system? In other words: Are you offering me a genuine MDA solution? Can I (and if so, how do I)…..
So, What Next? Take the literature: Supporting MDA with eXecutable UML Configurable Code Generation in MDA with iCCG The ASL Reference Manual Visit the web-site: www.kc.com Download iUMLite (full product, limited only by model size) Experiment with MDA and executable models Questions, Queries? Email me,  [email_address] Quotes? Email  [email_address]

More Related Content

PPT
MDA with Executable UML
PPT
Code Generation with MDA and xUML
PDF
Automatically bridging UML profiles into MOF metamodels
PDF
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSE
PDF
[2015/2016] Architectural languages
PDF
Practical Experiences Migrating Unified Modeling Language Models to IBM® Rati...
PDF
[2015/2016] Modern development paradigms
PPTX
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
MDA with Executable UML
Code Generation with MDA and xUML
Automatically bridging UML profiles into MOF metamodels
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSE
[2015/2016] Architectural languages
Practical Experiences Migrating Unified Modeling Language Models to IBM® Rati...
[2015/2016] Modern development paradigms
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...

What's hot (20)

PDF
Software Architecture: Styles
PDF
Introduction to ARCHITECTURAL LANGUAGES
PDF
Architecture Description Languages
PDF
[2016/2017] Architectural languages
PDF
Pr full uml
PPT
4. class diagrams using uml
 
PDF
Code Generation 2014 - ALF, the Standard Programming Language for UML
PPS
14 ooad uml-19
PDF
Model-driven architecture (MDA)
PPTX
4+1 view model
PDF
BCA IPU VB.NET UNIT-III
PPT
agile architecture - two hour presentation - two worked examples
PPTX
UML 2.5: Specification Simplification
PPT
PDF
Devnology Back to School: Empirical Evidence on Modeling in Software Development
PDF
Transaction level modeling an overview
PDF
10.1.1.65.2852
PDF
MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTS
PDF
Elaboration and domain model
PPS
C programming session 08
Software Architecture: Styles
Introduction to ARCHITECTURAL LANGUAGES
Architecture Description Languages
[2016/2017] Architectural languages
Pr full uml
4. class diagrams using uml
 
Code Generation 2014 - ALF, the Standard Programming Language for UML
14 ooad uml-19
Model-driven architecture (MDA)
4+1 view model
BCA IPU VB.NET UNIT-III
agile architecture - two hour presentation - two worked examples
UML 2.5: Specification Simplification
Devnology Back to School: Empirical Evidence on Modeling in Software Development
Transaction level modeling an overview
10.1.1.65.2852
MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTS
Elaboration and domain model
C programming session 08
Ad

Similar to Model Driven Architecture and eXecutable UML (20)

PPT
xUMLFinalPresentation.ppt
PPT
DOCX
MDD and modeling tools research
PPT
Pragmatic Model Driven Development using openArchitectureWare
PPTX
Model-Driven Development in the context of Software Product Lines
PDF
Constructing DSMLs
PPT
The embedded systems Model
PPT
Graphical Model Transformation Framework
PPT
Software development effort reduction with Co-op
PPT
dotNET frameworks
PPT
ERP_Up_Down.ppt
PPSX
MDE in Practice
PPTX
GNAT Pro User Day: QGen: Simulink® static verification and code generation
PPTX
Unified Modeling Language
PPTX
QGen GNAT Industrial User Day
PPTX
Introduction to ASP.NET MVC
PDF
Tail-f Systems Whitepaper - Configuration Management Simplified
PPT
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
PDF
6 - Architetture Software - Model transformation
xUMLFinalPresentation.ppt
MDD and modeling tools research
Pragmatic Model Driven Development using openArchitectureWare
Model-Driven Development in the context of Software Product Lines
Constructing DSMLs
The embedded systems Model
Graphical Model Transformation Framework
Software development effort reduction with Co-op
dotNET frameworks
ERP_Up_Down.ppt
MDE in Practice
GNAT Pro User Day: QGen: Simulink® static verification and code generation
Unified Modeling Language
QGen GNAT Industrial User Day
Introduction to ASP.NET MVC
Tail-f Systems Whitepaper - Configuration Management Simplified
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
6 - Architetture Software - Model transformation
Ad

More from elliando dias (20)

PDF
Clojurescript slides
PDF
Why you should be excited about ClojureScript
PDF
Functional Programming with Immutable Data Structures
PPT
Nomenclatura e peças de container
PDF
Geometria Projetiva
PDF
Polyglot and Poly-paradigm Programming for Better Agility
PDF
Javascript Libraries
PDF
How to Make an Eight Bit Computer and Save the World!
PDF
Ragel talk
PDF
A Practical Guide to Connecting Hardware to the Web
PDF
Introdução ao Arduino
PDF
Minicurso arduino
PDF
Incanter Data Sorcery
PDF
PDF
Fab.in.a.box - Fab Academy: Machine Design
PDF
The Digital Revolution: Machines that makes
PDF
Hadoop + Clojure
PDF
Hadoop - Simple. Scalable.
PDF
Hadoop and Hive Development at Facebook
PDF
Multi-core Parallelization in Clojure - a Case Study
Clojurescript slides
Why you should be excited about ClojureScript
Functional Programming with Immutable Data Structures
Nomenclatura e peças de container
Geometria Projetiva
Polyglot and Poly-paradigm Programming for Better Agility
Javascript Libraries
How to Make an Eight Bit Computer and Save the World!
Ragel talk
A Practical Guide to Connecting Hardware to the Web
Introdução ao Arduino
Minicurso arduino
Incanter Data Sorcery
Fab.in.a.box - Fab Academy: Machine Design
The Digital Revolution: Machines that makes
Hadoop + Clojure
Hadoop - Simple. Scalable.
Hadoop and Hive Development at Facebook
Multi-core Parallelization in Clojure - a Case Study

Recently uploaded (20)

PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Encapsulation theory and applications.pdf
PPTX
A Presentation on Artificial Intelligence
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Machine Learning_overview_presentation.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Cloud computing and distributed systems.
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Network Security Unit 5.pdf for BCA BBA.
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Encapsulation theory and applications.pdf
A Presentation on Artificial Intelligence
“AI and Expert System Decision Support & Business Intelligence Systems”
Diabetes mellitus diagnosis method based random forest with bat algorithm
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Unlocking AI with Model Context Protocol (MCP)
Per capita expenditure prediction using model stacking based on satellite ima...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
20250228 LYD VKU AI Blended-Learning.pptx
Machine Learning_overview_presentation.pptx
The AUB Centre for AI in Media Proposal.docx
Cloud computing and distributed systems.
sap open course for s4hana steps from ECC to s4
Network Security Unit 5.pdf for BCA BBA.

Model Driven Architecture and eXecutable UML

  • 1. www.kc.com Model Driven Architecture and eXecutable UML Allan Kennedy Founder, Kennedy Carter Ltd Co-chair, OMG Object Reference Model sub-committee K E N N E D Y C A R T E R
  • 2. Agenda: MDA: Key Themes The MDA Value Proposition The MDA Guide and the MDA Reference Model Supporting MDA with eXecutable UML Model Transformation and Code Generation Integration with the HLA/RTI
  • 3. MDA: Some Key Themes Three primary viewpoints for modelling The Computation Independent Model (CIM) Precise business model, oriented to stakeholders, uncommitted to specific algorithms or system boundary. Also known as a Domain Model. The Platform Independent Model (PIM) Precise, computationally complete (executable), uncommitted to any specific platform (portable), oriented to stakeholders (prototyping) and developers (a testable specification), a long life asset The Platform Specific Model (PSM) Precise, complete, conforms to constraints of a specific (class of) platform(s), probably generated from a PIM, oriented to technology experts Interoperability defined at the model level, not the middleware level Models are integrated in order to construct complete systems Models are derived from other models by (partially) automated transformation So, MDA promises to be rigorous but lightweight, -> agile modelling
  • 4. MDA Models are Strategic Long-Life Assets “ A 20 year, standards-based software architecture” Wouldn’t it be nice to know that your strategic assets are correct ? They need to be tested They need to be executable UML becomes executable when used with an action language xUML models are finished when they execute their acceptance test correctly xUML models are validated specifications which offer a strong contractual basis for implementation by external contractors or in-house teams
  • 5. MDA Models: Integration and Interoperability “ Integrate what you have built with what you will build” Models of legacy assets, COTS products and new developments … are integrated to create platform independent models of entire systems or services. Models can exist as legacy code or a set of executable interface definitions - UML is not the only suitable formalism Interoperability is defined at the model level not the middleware level
  • 6. MDA Models Are Future Proof “ Tracking the next best thing” Platform Independence makes models future proof, capable of being ported to faster, better, cheaper platforms as they become available Standardised mappings for common platforms are built into MDA tools Specialised mappings to target any platform are specified with configurable model transformation tools. Automated mappings can guarantee interoperability between systems deployed on different platforms Automated mappings simplify the creation of a safety argument
  • 7. Supporting MDA with eXecutable UML eXecutable UML – A precise modelling formalism: Subset of UML Action Semantics compliant Action Language - ASL (UML 1.5) # navigate from this account instance to the owning customer instance owningCustomer = this -> R1 # unlink this instance from the owning customer via R1 unlink this R1 owningCustomer # find the set of all other account instances owned by that customer {otherOwnedAccounts} = owningCustomer -> R1 # if there are no other owned accounts for this customer, then # send a deletion event to the customer instance if countof {otherOwnedAccounts} = 0 then generate deleteCustomer() to owningCustomer endif # delete this instance of account delete this … .the result is a fully executable model
  • 8. Supporting MDA with eXecutable UML eXecutable UML – A proven development process oriented towards... Executable modelling Large-scale reuse Pattern based design SPECIFY DOMAINS Identify new/reused domains Model system use cases VALIDATE PIMs Execute domain use cases Execute system use cases BUILD PLATFORM INDEPENDENT DOMAIN MODELS Model Domain Use Cases Build Static Model Build Dynamic Models Specify Actions Execute and debug xUML models FORMALISE ABSTRACT PLATFORM SPECIFIC MODEL Select or develop suitable patterns and mechanisms (Build/Buy xUML compiler) PRODUCE TARGET CODE Apply design patterns to xUML models (manually or automatically) Perform target testing
  • 9. MDA with xUML: 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 © 2001 Lockheed Martin Corporation
  • 10. MDA with xUML: 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 © 2001 Lockheed Martin Corporation
  • 11. MDA with xUML: State Charts State Charts: Behavior is formalized during state modeling Class lifecycles are modeled using signal-driven state machines Class operations are defined © 2001 Lockheed Martin Corporation
  • 12. MDA with xUML: Action Language Action Specification Language: State actions and class operations are specified using the 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 © 2001 Lockheed Martin Corporation
  • 13. MDA with xUML: Testing and Debugging PIM’s The iUML Simulator provides a model execution environment Single stepping, breakpoints, browsing of run time objects Can integrate with legacy code Batch (regression) testing of models
  • 14. MDA with xUML: Integrating Models Air Traffic Control System Build Set counterpartIcon = this -> CPR1 $USE UI [ ] = makeIconFlash[ ] on counterpartIcon $ENDUSE CPR1 Bridge operation counterpart association Air Traffic Control Domain <<required interface>> Air Traffic Controller Aircraft requestPermission ToTaxi required operation User Interface Domain Icon <<provided interface>> Client makeIcon Flash provided operation
  • 15. MDA with xUML: PIM to PSM Mappings xUML Process supports fully automatic transformation to PSMs Mapping rules can be specified … (part of) xUML Class Attribute Signal Design Metamodel Implementation Metamodel Define Mapping xUML Metamodel Define Mapping (part of) Design Metamodel (object-based) Class PrivateDatum PublicMethod (part of) Ada 83 Metamodel Package BodyVariable SpecSubprogram
  • 16. MDA with xUML: Mark-ups Design Tags Class Allocation Program Allocation Max Instance Count Event Rate Event Queue Throw Away Initialization Source Type Subtype of etc. Automatic Code Generator Application Software Interface Definition Software Execution Platform Specific Language Specific Defines © 2001 Lockheed Martin Corporation Source Code Files ... ... ... ... xUML Models ... ...
  • 17. The iCCG Framework 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 © 2001 Lockheed Martin Corporation
  • 18. MDA with xUML: Systematic Mappings Systematic Mappings can always be expressed by Action Language operating on the (meta) model of xUML…. is provided by 0..* has 0..* R2 Class name keyLetter Operation Name type class Class<ClassName> { public: <returnType1> <operationName1>(); <returnType2> <operationName2>(); //………. private: static char *className; static char *classKeyLetter; //……. <attribute1Type> <attributeName1>; <attribute2Type> <attributeName2>; <attribute3Type> <attributeName3>; <attribute4Type> <attributeName4>; //……. }; C ++ Code Pattern {allClasses} = find-all Class for eachClass in {allClasses} do $FORMAT code_file class Class[T:eachClass.name] { public: $ENDFORMAT {theOperations} = eachClass -> R2 for eachOperation in {theOperations} do $FORMAT code_file [T:eachOperation.type] [T:eachOperation.name](); $ENDFORMAT endfor $FORMAT code_file private: static char *[T:eachClass.name]; static char *[T:eachClass.keyLetter]; $ENDFORMAT endfor Mapping Rules in ASL
  • 19. Extending iCCG with a Platform Model 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 develop- ment may be performed concurrently with the same methods and tools © 2001 Lockheed Martin Corporation
  • 20. Configurable Code Generation -Summary Can support very sophisticated mappings iCCG Code Generator Class name keyLetter Operation Name type R2 iCCG Provided Metam odels Wheel number current speed Valve number state R17 Project domain models Project’s code {allClasses} = find-all Class for eachClass in {allClasses} do $FORMAT code_file class Class[T:eachClass.name] { public: $ENDFORMAT {theOperations} = eachClass -> R2 for eachOperation in {theOperations} do $FORMAT code_file [T:eachOperation.type] [T:eachOperation.name](); $ENDFORMAT endfor $FORMAT code_file private: static char *[T:eachClass.name]; static char *[T:eachClass.keyLetter]; $ENDFORMAT endfor Project written mappings in ASL Project Code Generator Generate an executable using an existing code generator
  • 21. Supporting MDA with eXecutable UML iUML Product Suite Requirements Engineering and Use Case Analysis eX ecutable UML Modelling Model Simulation and Testing Built-in Configuration Management Scalable Multi-user Repository Off-the-shelf Code Generation TA-5 C++ Single Task TA-5/HLA C++ targeting the HLA/RTI TA-6 very efficient embedded C Fully Configurable Code Generation (iCCG) Uses eXecutable UML models to build the code generator
  • 22. Projects Using MDA with eXecutable UML Lockheed Martin Aeronautics: F16 MMC (Ada 83, Ada 95) BAE Systems: Stingray torpedo MLU (Ada 95) TRW Automotive: vehicle stability system (efficient C) Siemens Metering: ‘intelligent’ gas meter (C) Thales: Nimrod MR4 crew trainers (C++) GD Government Systems: ATM Switch for US Army (C) Royal Netherlands Navy: combat systems (C++) Nortel Networks: Passport Voice Gateway (C++) GCHQ: classified distributed application (C, objectstore) UK NHS: patient control of access to medical records (C++) US DoD: Single Integrated Air Picture (C++, HLA/RTI) BAE Systems: migration of legacy systems to xUML (Ada 83)
  • 23. Questions to Ask Your Tool Vendor test my PIMS? integrate multiple PIMS with each other and with legacy components? specify my preferred mapping from my PIMS to my particular platform? generate 100% of my deployable system? In other words: Are you offering me a genuine MDA solution? Can I (and if so, how do I)…..
  • 24. So, What Next? Take the literature: Supporting MDA with eXecutable UML Configurable Code Generation in MDA with iCCG The ASL Reference Manual Visit the web-site: www.kc.com Download iUMLite (full product, limited only by model size) Experiment with MDA and executable models Questions, Queries? Email me, [email_address] Quotes? Email [email_address]