Presentation is loading. Please wait.

Presentation is loading. Please wait.

Www.kc.com K E N N E D Y C A R T E R Model Driven Architecture and eXecutable UML Allan Kennedy Founder, Kennedy Carter Ltd Co-chair, OMG Object Reference.

Similar presentations


Presentation on theme: "Www.kc.com K E N N E D Y C A R T E R Model Driven Architecture and eXecutable UML Allan Kennedy Founder, Kennedy Carter Ltd Co-chair, OMG Object Reference."— Presentation transcript:

1 www.kc.com K E N N E D Y C A R T E R Model Driven Architecture and eXecutable UML Allan Kennedy Founder, Kennedy Carter Ltd Co-chair, OMG Object Reference Model sub-committee

2 K E N N E D Y C A R T E RAgenda:  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 K E N N E D Y C A R T E R 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 K E N N E D Y C A R T E R 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 K E N N E D Y C A R T E R 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 K E N N E D Y C A R T E R 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 K E N N E D Y C A R T E R 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 K E N N E D Y C A R T E R 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 K E N N E D Y C A R T E R MDA with xUML: Domain Model Domain Model (Package Diagram): l The software application space is partitioned into multiple platform independent domain models l Mappings between the domains are defined as contracts for required and provided services Domain Model (Package Diagram): l The software application space is partitioned into multiple platform independent domain models l Mappings between the domains are defined as contracts for required and provided services © 2001 Lockheed Martin Corporation

10 K E N N E D Y C A R T E R MDA with xUML: Class Diagrams Class Diagrams: l Within each platform independent domain model, conceptual entities are modeled first: classes,attributes, and associations are abstracted l Behavior, though considered, is not modeled explicitly in this view Class Diagrams: l Within each platform independent domain model, conceptual entities are modeled first: classes,attributes, and associations are abstracted l Behavior, though considered, is not modeled explicitly in this view © 2001 Lockheed Martin Corporation

11 K E N N E D Y C A R T E R MDA with xUML: State Charts State Charts: l Behavior is formalized during state modeling l Class lifecycles are modeled using signal-driven state machines l Class operations are defined State Charts: l Behavior is formalized during state modeling l Class lifecycles are modeled using signal-driven state machines l Class operations are defined © 2001 Lockheed Martin Corporation

12 K E N N E D Y C A R T E R MDA with xUML: Action Language Action Specification Language: l State actions and class operations are specified using the Action Specification Language (ASL) l ASL is a higher order and much simpler language than a typical high order language (e.g. C++) l ASL deals with UML concepts, not implementation concepts l ASL was a major influence on the newly adopted Precise Action Semantics for the UML Action Specification Language: l State actions and class operations are specified using the Action Specification Language (ASL) l ASL is a higher order and much simpler language than a typical high order language (e.g. C++) l ASL deals with UML concepts, not implementation concepts l ASL was a major influence on the newly adopted Precise Action Semantics for the UML © 2001 Lockheed Martin Corporation

13 K E N N E D Y C A R T E R 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 K E N N E D Y C A R T E R 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 > Air Traffic Controller Aircraft requestPermission ToTaxi required operation User Interface Domain Icon > Client makeIcon Flash provided operation

15 K E N N E D Y C A R T E R 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 Design Metamodel Implementation Metamodel Implementation Metamodel Define Mapping xUML Metamodel xUML Metamodel Define Mapping (part of) Design Metamodel (object-based) Class PrivateDatum PublicMethod (part of) Ada 83 Metamodel Package BodyVariable SpecSubprogram

16 K E N N E D Y C A R T E R Design Tags l Class Allocation l Program Allocation l Max Instance Count l Event Rate l Event Queue l Throw Away l Initialization l Source Type l Subtype of l etc. Design Tags l Class Allocation l Program Allocation l Max Instance Count l Event Rate l Event Queue l Throw Away l Initialization l Source Type l Subtype of l etc. MDA with xUML: Mark-ups Source Code Files... Automatic Code Generator xUML Models... Application Software Interface Definition Software Execution Platform Specific Software Execution Platform Specific Language Specific Language Specific Defines © 2001 Lockheed Martin Corporation

17 K E N N E D Y C A R T E R The iCCG Framework Configurable Code Generator: l Code Generator is developed using the same eXecutable MDA strategy l Kennedy Carter supplies a set of xUML models (known as the Configurable Code Generator) that serve as a generic translation framework Configurable Code Generator: l Code Generator is developed using the same eXecutable MDA strategy l 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 K E N N E D Y C A R T E R 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..* Class name keyLetter Operation Name type has 0..* R2 class Class { public: (); //………. private: static char *className; static char *classKeyLetter; //……. ; //……. }; 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 K E N N E D Y C A R T E R Extending iCCG with a Platform Model Code Generator Development: l 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) l Code Generator and Application Software develop- ment may be performed concurrently with the same methods and tools Code Generator Development: l 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) l Code Generator and Application Software develop- ment may be performed concurrently with the same methods and tools © 2001 Lockheed Martin Corporation

20 K E N N E D Y C A R T E R Configurable Code Generation -Summary iCCG Code Generator Class name keyLetter Operation Name type R2 iCCG Provided Metamodels 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 Can support very sophisticated mappings Project Code Generator Generate an executable using an existing code generator

21 K E N N E D Y C A R T E R Supporting MDA with eXecutable UML iUML Product Suite Requirements Engineering and Use Case Analysis eXecutable 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 K E N N E D Y C A R T E R 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 K E N N E D Y C A R T E R 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 K E N N E D Y C A R T E R 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, allan.kennedy@kc.com allan.kennedy@kc.com  Quotes?  Email sales@kc.com sales@kc.com


Download ppt "Www.kc.com K E N N E D Y C A R T E R Model Driven Architecture and eXecutable UML Allan Kennedy Founder, Kennedy Carter Ltd Co-chair, OMG Object Reference."

Similar presentations


Ads by Google