0
www.kc.com Model Driven Architecture and eXecutable UML Allan Kennedy Founder, Kennedy Carter Ltd Co-chair, OMG Object Ref...
Agenda: <ul><li>MDA: Key Themes </li></ul><ul><li>The MDA Value Proposition </li></ul><ul><li>The MDA Guide and the MDA Re...
MDA: Some Key Themes <ul><li>Three primary viewpoints for modelling </li></ul><ul><ul><li>The Computation Independent Mode...
MDA Models are Strategic Long-Life Assets <ul><li>“ A 20 year, standards-based software architecture” </li></ul><ul><li>Wo...
MDA Models: Integration and Interoperability <ul><li>“ Integrate what you have built with what you will build” </li></ul><...
MDA Models Are Future Proof <ul><li>“ Tracking the next best thing” </li></ul><ul><li>Platform Independence makes models f...
Supporting MDA with eXecutable UML <ul><li>eXecutable UML – A precise modelling formalism: </li></ul><ul><ul><li>Subset of...
Supporting MDA with eXecutable UML <ul><li>eXecutable UML – A proven development process oriented towards... </li></ul><ul...
MDA with xUML: Domain Model <ul><li>Domain Model </li></ul><ul><li>(Package Diagram): </li></ul><ul><li>The software appli...
MDA with xUML: Class Diagrams <ul><li>Class Diagrams: </li></ul><ul><li>Within each platform  </li></ul><ul><li>independen...
MDA with xUML: State Charts <ul><li>State Charts: </li></ul><ul><li>Behavior is formalized during </li></ul><ul><li>state ...
MDA with xUML: Action Language <ul><li>Action Specification Language: </li></ul><ul><li>State actions and class </li></ul>...
MDA with xUML: Testing and Debugging PIM’s <ul><li>The iUML Simulator provides a model execution environment </li></ul><ul...
MDA with xUML: Integrating Models Air Traffic Control System Build Set counterpartIcon = this -> CPR1 $USE UI [   ] = make...
MDA with xUML: PIM to PSM Mappings <ul><li>xUML Process supports fully automatic transformation to PSMs </li></ul><ul><li>...
MDA with xUML: Mark-ups <ul><li>Design Tags </li></ul><ul><li>Class Allocation </li></ul><ul><li>Program Allocation </li><...
The iCCG Framework <ul><li>Configurable Code Generator: </li></ul><ul><li>Code Generator is developed </li></ul><ul><li>us...
MDA with xUML: Systematic Mappings <ul><li>Systematic Mappings can always be expressed by Action Language operating on the...
Extending iCCG with a Platform Model <ul><li>Code Generator Development: </li></ul><ul><li>The Configurable Code </li></ul...
Configurable Code Generation -Summary Can support very sophisticated mappings iCCG Code Generator Class name keyLetter Ope...
Supporting MDA with eXecutable UML iUML Product Suite <ul><li>Requirements Engineering and Use Case Analysis </li></ul><ul...
Projects Using MDA with eXecutable UML <ul><li>Lockheed Martin Aeronautics: F16 MMC (Ada 83, Ada 95) </li></ul><ul><li>BAE...
Questions to Ask Your Tool Vendor <ul><li>test my PIMS? </li></ul><ul><li>integrate multiple PIMS with each other and with...
So, What Next? <ul><li>Take the literature: </li></ul><ul><ul><li>Supporting MDA with eXecutable UML </li></ul></ul><ul><u...
Upcoming SlideShare
Loading in...5
×

Model Driven Architecture and eXecutable UML

2,667

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,667
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
172
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Model Driven Architecture and eXecutable UML"

  1. 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. 2. Agenda: <ul><li>MDA: Key Themes </li></ul><ul><li>The MDA Value Proposition </li></ul><ul><li>The MDA Guide and the MDA Reference Model </li></ul><ul><li>Supporting MDA with eXecutable UML </li></ul><ul><li>Model Transformation and Code Generation </li></ul><ul><li>Integration with the HLA/RTI </li></ul>
  3. 3. MDA: Some Key Themes <ul><li>Three primary viewpoints for modelling </li></ul><ul><ul><li>The Computation Independent Model (CIM) </li></ul></ul><ul><ul><ul><li>Precise business model, oriented to stakeholders, uncommitted to specific algorithms or system boundary. Also known as a Domain Model. </li></ul></ul></ul><ul><ul><li>The Platform Independent Model (PIM) </li></ul></ul><ul><ul><ul><li>Precise, computationally complete (executable), uncommitted to any specific platform (portable), oriented to stakeholders (prototyping) and developers (a testable specification), a long life asset </li></ul></ul></ul><ul><ul><li>The Platform Specific Model (PSM) </li></ul></ul><ul><ul><ul><li>Precise, complete, conforms to constraints of a specific (class of) platform(s), probably generated from a PIM, oriented to technology experts </li></ul></ul></ul><ul><li>Interoperability defined at the model level, not the middleware level </li></ul><ul><li>Models are integrated in order to construct complete systems </li></ul><ul><li>Models are derived from other models by (partially) automated transformation </li></ul><ul><li>So, MDA promises to be rigorous but lightweight, -> agile modelling </li></ul>
  4. 4. MDA Models are Strategic Long-Life Assets <ul><li>“ A 20 year, standards-based software architecture” </li></ul><ul><li>Wouldn’t it be nice to know that your strategic assets are correct ? </li></ul><ul><li>They need to be tested </li></ul><ul><li>They need to be executable </li></ul><ul><li>UML becomes executable when used with an action language </li></ul><ul><li>xUML models are finished when they execute their acceptance test correctly </li></ul><ul><li>xUML models are validated specifications which offer a strong contractual basis for implementation by external contractors or in-house teams </li></ul>
  5. 5. MDA Models: Integration and Interoperability <ul><li>“ Integrate what you have built with what you will build” </li></ul><ul><li>Models of legacy assets, COTS products and new developments </li></ul><ul><li>… are integrated to create platform independent models of entire systems or services. </li></ul><ul><li>Models can exist as legacy code or a set of executable interface definitions - UML is not the only suitable formalism </li></ul><ul><li>Interoperability is defined at the model level not the middleware level </li></ul>
  6. 6. MDA Models Are Future Proof <ul><li>“ Tracking the next best thing” </li></ul><ul><li>Platform Independence makes models future proof, capable of being ported to faster, better, cheaper platforms as they become available </li></ul><ul><li>Standardised mappings for common platforms are built into MDA tools </li></ul><ul><li>Specialised mappings to target any platform are specified with configurable model transformation tools. </li></ul><ul><li>Automated mappings can guarantee interoperability between systems deployed on different platforms </li></ul><ul><li>Automated mappings simplify the creation of a safety argument </li></ul>
  7. 7. Supporting MDA with eXecutable UML <ul><li>eXecutable UML – A precise modelling formalism: </li></ul><ul><ul><li>Subset of UML </li></ul></ul><ul><ul><li>Action Semantics compliant Action Language - ASL (UML 1.5) </li></ul></ul># 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. 8. Supporting MDA with eXecutable UML <ul><li>eXecutable UML – A proven development process oriented towards... </li></ul><ul><ul><li>Executable modelling </li></ul></ul><ul><ul><li>Large-scale reuse </li></ul></ul><ul><ul><li>Pattern based design </li></ul></ul>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. 9. MDA with xUML: Domain Model <ul><li>Domain Model </li></ul><ul><li>(Package Diagram): </li></ul><ul><li>The software application space </li></ul><ul><li>is partitioned into multiple </li></ul><ul><li>platform independent domain </li></ul><ul><li>models </li></ul><ul><li>Mappings between the </li></ul><ul><li>domains are defined as contracts </li></ul><ul><li>for required and provided </li></ul><ul><li>services </li></ul>© 2001 Lockheed Martin Corporation
  10. 10. MDA with xUML: Class Diagrams <ul><li>Class Diagrams: </li></ul><ul><li>Within each platform </li></ul><ul><li>independent domain model, </li></ul><ul><li>conceptual entities </li></ul><ul><li>are modeled first: </li></ul><ul><li>classes,attributes, and </li></ul><ul><li>associations are abstracted </li></ul><ul><li>Behavior, though considered, is </li></ul><ul><li>not modeled explicitly in this </li></ul><ul><li>view </li></ul>© 2001 Lockheed Martin Corporation
  11. 11. MDA with xUML: State Charts <ul><li>State Charts: </li></ul><ul><li>Behavior is formalized during </li></ul><ul><li>state modeling </li></ul><ul><li>Class lifecycles are modeled </li></ul><ul><li>using signal-driven state </li></ul><ul><li>machines </li></ul><ul><li>Class operations are defined </li></ul>© 2001 Lockheed Martin Corporation
  12. 12. MDA with xUML: Action Language <ul><li>Action Specification Language: </li></ul><ul><li>State actions and class </li></ul><ul><li>operations are specified using </li></ul><ul><li>the Action Specification </li></ul><ul><li>Language (ASL) </li></ul><ul><li>ASL is a higher order and much </li></ul><ul><li>simpler language than a typical </li></ul><ul><li>high order language (e.g. C++) </li></ul><ul><li>ASL deals with UML concepts, </li></ul><ul><li>not implementation concepts </li></ul><ul><li>ASL was a major influence on </li></ul><ul><li>the newly adopted Precise </li></ul><ul><li>Action Semantics for the UML </li></ul>© 2001 Lockheed Martin Corporation
  13. 13. MDA with xUML: Testing and Debugging PIM’s <ul><li>The iUML Simulator provides a model execution environment </li></ul><ul><ul><li>Single stepping, breakpoints, browsing of run time objects </li></ul></ul><ul><li>Can integrate with legacy code </li></ul><ul><li>Batch (regression) testing of models </li></ul>
  14. 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. 15. MDA with xUML: PIM to PSM Mappings <ul><li>xUML Process supports fully automatic transformation to PSMs </li></ul><ul><li>Mapping rules can be specified … </li></ul>(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. 16. MDA with xUML: Mark-ups <ul><li>Design Tags </li></ul><ul><li>Class Allocation </li></ul><ul><li>Program Allocation </li></ul><ul><li>Max Instance Count </li></ul><ul><li>Event Rate </li></ul><ul><li>Event Queue </li></ul><ul><li>Throw Away </li></ul><ul><li>Initialization </li></ul><ul><li>Source Type </li></ul><ul><li>Subtype of </li></ul><ul><li>etc. </li></ul>Automatic Code Generator Application Software Interface Definition Software Execution Platform Specific Language Specific Defines © 2001 Lockheed Martin Corporation Source Code Files ... ... ... ... xUML Models ... ...
  17. 17. The iCCG Framework <ul><li>Configurable Code Generator: </li></ul><ul><li>Code Generator is developed </li></ul><ul><li>using the same eXecutable </li></ul><ul><li>MDA strategy </li></ul><ul><li>Kennedy Carter supplies a </li></ul><ul><li>set of xUML models (known </li></ul><ul><li>as the Configurable Code </li></ul><ul><li>Generator) that serve as a </li></ul><ul><li>generic translation framework </li></ul>© 2001 Lockheed Martin Corporation
  18. 18. MDA with xUML: Systematic Mappings <ul><li>Systematic Mappings can always be expressed by Action Language operating on the (meta) model of xUML…. </li></ul>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. 19. Extending iCCG with a Platform Model <ul><li>Code Generator Development: </li></ul><ul><li>The Configurable Code </li></ul><ul><li>Generator (iCCG) may be </li></ul><ul><li>adapted to the meet the </li></ul><ul><li>requirements of any Platform </li></ul><ul><li>Specific Implementation (i.e. </li></ul><ul><li>of any Application Software </li></ul><ul><li>Interface) </li></ul><ul><li>Code Generator and </li></ul><ul><li>Application Software develop- </li></ul><ul><li>ment may be performed </li></ul><ul><li>concurrently with the same </li></ul><ul><li>methods and tools </li></ul>© 2001 Lockheed Martin Corporation
  20. 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. 21. Supporting MDA with eXecutable UML iUML Product Suite <ul><li>Requirements Engineering and Use Case Analysis </li></ul><ul><li>eX ecutable UML Modelling </li></ul><ul><li>Model Simulation and Testing </li></ul><ul><li>Built-in Configuration Management </li></ul><ul><li>Scalable Multi-user Repository </li></ul><ul><li>Off-the-shelf Code Generation </li></ul><ul><ul><li>TA-5 C++ Single Task </li></ul></ul><ul><ul><li>TA-5/HLA C++ targeting the HLA/RTI </li></ul></ul><ul><ul><li>TA-6 very efficient embedded C </li></ul></ul><ul><li>Fully Configurable Code Generation (iCCG) </li></ul><ul><ul><li>Uses eXecutable UML models to build the code generator </li></ul></ul>
  22. 22. Projects Using MDA with eXecutable UML <ul><li>Lockheed Martin Aeronautics: F16 MMC (Ada 83, Ada 95) </li></ul><ul><li>BAE Systems: Stingray torpedo MLU (Ada 95) </li></ul><ul><li>TRW Automotive: vehicle stability system (efficient C) </li></ul><ul><li>Siemens Metering: ‘intelligent’ gas meter (C) </li></ul><ul><li>Thales: Nimrod MR4 crew trainers (C++) </li></ul><ul><li>GD Government Systems: ATM Switch for US Army (C) </li></ul><ul><li>Royal Netherlands Navy: combat systems (C++) </li></ul><ul><li>Nortel Networks: Passport Voice Gateway (C++) </li></ul><ul><li>GCHQ: classified distributed application (C, objectstore) </li></ul><ul><li>UK NHS: patient control of access to medical records (C++) </li></ul><ul><li>US DoD: Single Integrated Air Picture (C++, HLA/RTI) </li></ul><ul><li>BAE Systems: migration of legacy systems to xUML (Ada 83) </li></ul>
  23. 23. Questions to Ask Your Tool Vendor <ul><li>test my PIMS? </li></ul><ul><li>integrate multiple PIMS with each other and with legacy components? </li></ul><ul><li>specify my preferred mapping from my PIMS to my particular platform? </li></ul><ul><li>generate 100% of my deployable system? </li></ul><ul><li>In other words: </li></ul><ul><li>Are you offering me a genuine MDA solution? </li></ul>Can I (and if so, how do I)…..
  24. 24. So, What Next? <ul><li>Take the literature: </li></ul><ul><ul><li>Supporting MDA with eXecutable UML </li></ul></ul><ul><ul><li>Configurable Code Generation in MDA with iCCG </li></ul></ul><ul><ul><li>The ASL Reference Manual </li></ul></ul><ul><li>Visit the web-site: </li></ul><ul><ul><li>www.kc.com </li></ul></ul><ul><ul><li>Download iUMLite (full product, limited only by model size) </li></ul></ul><ul><ul><li>Experiment with MDA and executable models </li></ul></ul><ul><li>Questions, Queries? </li></ul><ul><ul><li>Email me, [email_address] </li></ul></ul><ul><li>Quotes? </li></ul><ul><ul><li>Email [email_address] </li></ul></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×