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: The Next Evolutionary Step? Allan Kennedy Founder, Kennedy Carter Ltd.

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: The Next Evolutionary Step? Allan Kennedy Founder, Kennedy Carter Ltd."— 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: The Next Evolutionary Step? Allan Kennedy Founder, Kennedy Carter Ltd

2 K E N N E D Y C A R T E R MDA: The Important Ideas  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 automated transformation  So, MDA promises to be rigorous but lightweight, -> agile modelling

3 K E N N E D Y C A R T E R Real Engineers Use A Rigorous Process Construct the system from large, reusable components Build precise, predictive models Subject the models to rigorous testing before implementation To build this Establish a well- defined and automated construction process

4 K E N N E D Y C A R T E R Construct the system from large, reusable components Build precise, predictive models Subject the models to rigorous testing before implementation To build this Establish a well- defined and automated construction process BUILD PLATFORM-INDEPENDENT MODELS (PIMS) Model domain use cases Build Static Model - Class Diagram Build Dynamic Model - State Charts & Interactions Build Action Model - Operations & State Actions Compile and debug PIMS VALIDATE PIMS Execute domain use cases Execute system use cases SPECIFY SYSTEM CONSTRUCTION PROCESS Define/Buy PIM To PSI Mapping Rules Build/Buy PIM compiler GENERATE SYSTEM Apply PIM to PSI Mapping Rules (Execute PIM Compiler) Perform target testing MDA with eXecutable UML - What Real Software Engineers Need SPECIFY DOMAINS Identify new/reused domains Model system use cases

5 K E N N E D Y C A R T E R Projects Using MDA with eXecutable UML (and 100% Code Generation)  US DoD: Single Integrated Air Picture (C++, HLA/RTI)  Lockheed Martin Aeronautics: F16 MMC (Ada 83, Ada 95)  BAE Systems: Stingray torpedo MLU (Ada 95)  Thales: Nimrod MR4 crew trainers (C++)  GD Government Systems: ATM Switch for US Army (C)  Royal Netherlands Navy: combat systems (C++)  GCHQ: classified distributed application (C, objectstore)  BAE Systems: Management of obsolescence (Structured Analysis, Ada)  TRW Automotive: vehicle stability system (efficient C)  Siemens Metering: ‘intelligent’ gas meter (C)  Nortel Networks: Passport Voice Gateway (C++)  UK NHS: ebookings, patient control of access to medical records (C++)

6 K E N N E D Y C A R T E R But Why MDA?  The usual reasons - Faster, Better, Cheaper  Faster better cheaper development processes that result in…  …systems that can be ported readily to faster better cheaper platforms as they become established

7 K E N N E D Y C A R T E R MDA is about formalising your knowledge and expertise  Whatever development method you follow, system development exposes and/or generates a considerable quantity of knowledge about the actual and planned architecture (at all levels) of a system or system of systems  MDA promises to provide a set of languages for formalising that knowledge as stakeholder-friendly models that can be verified for correctness…  End-User knowledge about the enterprise  Systems and IT knowledge about platforms  Programmer knowledge about best development practice  …and that can be leveraged to automate the production of downstream deliverables.  If, additionally, the models are PIM’s, then they have the potential to be strategic long life assets.

8 Lockheed Martin Aeronautics Company © 2001 Lockheed Martin Corporation F-16 Modular Mission Computer Application Software Model Driven Architecture and Executable UML: The Lockheed Martin Experience Lauren E. Clark Chief Engineer F-16 Modular Mission Computer Software Lockheed Martin Aeronautics Company Terry Ruthruff Staff Specialist Software Engineering Core Lockheed Martin Aeronautics Company Allan Kennedy Managing Director Kennedy Carter Limited Bary D. Hogan Methodology Lead F-16 Modular Mission Computer Software Lockheed Martin Aeronautics Company

9 K E N N E D Y C A R T E R F16 MMC Background  F-16 originally designed as a lightweight air superiority fighter  Jointly built by Belgium, Denmark, Netherlands, Norway, US  First F-16A flew Dec 76, first operational Jan 1979  More than 4,000 F-16s manufactured to date  Modular Mission Computer (MMC) in post-July 1996 aircraft  Also to be retrofitted to 1,000 earlier aircraft  Replaces computers for Fire Control, Head-up display, Stores management  Multiple MIPS R3000 64-bit CPUs, 60 MB memory, 155 MIPs  30x throughput & memory at 60% weight, volume & power

10 K E N N E D Y C A R T E RAgenda  The Platform  Cross-Platform Compatibility: The Goal  Implementing MDA with eXecutable UML:  Platform Independent Modeling  Platform Specific Mapping (Design Tagging)  Configurable 100% Code Generation  Benefits derived from using MDA

11 K E N N E D Y C A R T E R Software Basic Software Components Hardware Software Execution Platform Application Software Application Software Interface Application Software: l l High-level software that is unique to the application(s) for which the embedded computer (i.e. subsystem) exists l l 80-90% of the total software (in terms of long-term development cost) Application Software: l l High-level software that is unique to the application(s) for which the embedded computer (i.e. subsystem) exists l l 80-90% of the total software (in terms of long-term development cost) Software Execution Platform: l l Low-level software, the purpose of which is to provide services that allow the Application Software to run on the hardware Software Execution Platform: l l Low-level software, the purpose of which is to provide services that allow the Application Software to run on the hardware

12 K E N N E D Y C A R T E R Software Execution Platform Device DriversOperating System Software Architecture Hardware Application Software Application Software Interface Software Architecture: l l Low-level software providing the framework within which the Application Software executes l l Provides execution control, data / message management, error handling, and various support services to the Application Software l l Assumes a particular Application Software language l l Unique to the hardware; but, since it must support all requirements levied by the Application Software, is not delivered with the hardware Software Architecture: l l Low-level software providing the framework within which the Application Software executes l l Provides execution control, data / message management, error handling, and various support services to the Application Software l l Assumes a particular Application Software language l l 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

13 K E N N E D Y C A R T E R Hardware Platform #2 Application Software Board Support Package / BIT Device Drivers Operating System Software Architecture Application Software Interface Hold Constant Hardware Cross-Platform Compatibility: The Usual Approach Hardware Platform #1 Application Software Application Software Interface Device DriversOperating System Software Architecture Board Support Package / BIT Maintain a constant Application Software Interface Portable

14 K E N N E D Y C A R T E R Hardware Platform Cross-Platform Compatibility: The Goal Application Software Device Drivers Operating System Software Architecture Application Software Interface Board Support Package / BIT The goal should be to provide cross-platform compatibility of Application Software despite any Implementation, or platform specific, changes: that is, changes to the Hardware Platform, the Software Execution Platform, or the Application Software Interface

15 K E N N E D Y C A R T E R MDA with eXecutable UML: Development Process eXecutable UML ModelingRequirementsDefinition Integration & Test Platform Specific Platform Specific Mapping (Design Tagging) (Design Tagging) Automatic Code Generation Application Software Interface Definition as supported by KC’s iUML and iCCG

16 K E N N E D Y C A R T E R Construct the system from large, reusable components Build precise, predictive models Subject the models to rigorous testing before implementation To build this Establish a well- defined and automated construction process BUILD PLATFORM-INDEPENDENT MODELS (PIMS) Model domain use cases Build Static Model - Class Diagram Build Dynamic Model - State Charts & Interactions Build Action Model - Operations & State Actions Compile and debug PIMS VALIDATE PIMS Execute domain use cases Execute system use cases SPECIFY SYSTEM CONSTRUCTION PROCESS Define/Buy PIM To PSI Mapping Rules Build/Buy PIM compiler GENERATE SYSTEM Apply PIM to PSI Mapping Rules (Execute PIM Compiler) Perform target testing MDA with eXecutable UML - What Real Software Engineers Need SPECIFY DOMAINS Identify new/reused domains Model system use cases

17 K E N N E D Y C A R T E R eXecutable UML Modeling: Domain Model Domain Model (Package Diagram): l l The software application space is partitioned into multiple platform independent domain models l l Mappings between the domains are defined as contracts for required and provided services Domain Model (Package Diagram): l l The software application space is partitioned into multiple platform independent domain models l l Mappings between the domains are defined as contracts for required and provided services

18 K E N N E D Y C A R T E R Construct the system from large, reusable components Build precise, predictive models Subject the models to rigorous testing before implementation To build this Establish a well- defined and automated construction process BUILD PLATFORM-INDEPENDENT MODELS (PIMS) Model domain use cases Build Static Model - Class Diagram Build Dynamic Model - State Charts & Interactions Build Action Model - Operations & State Actions Compile and debug PIMS VALIDATE PIMS Execute domain use cases Execute system use cases SPECIFY SYSTEM CONSTRUCTION PROCESS Define/Buy PIM To PSI Mapping Rules Build/Buy PIM compiler GENERATE SYSTEM Apply PIM to PSI Mapping Rules (Execute PIM Compiler) Perform target testing MDA with eXecutable UML - What Real Engineers Want SPECIFY DOMAINS Identify new/reused domains Model system use cases

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

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

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

22 K E N N E D Y C A R T E R MDA with xUML: Testing PIM’s Simulation: l l Since a precise Action Specification Language is used, models are executable and therefore may be simulated l l Simulation features resemble those of a high order language debugger l l Models may be validated long before they are implemented Simulation: l l Since a precise Action Specification Language is used, models are executable and therefore may be simulated l l Simulation features resemble those of a high order language debugger l l Models may be validated long before they are implemented

23 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

24 K E N N E D Y C A R T E R Construct the system from large, reusable components Build precise, predictive models Subject the models to rigorous testing before implementation To build this Establish a well- defined and automated construction process BUILD PLATFORM-INDEPENDENT MODELS (PIMS) Model domain use cases Build Static Model - Class Diagram Build Dynamic Model - State Charts & Interactions Build Action Model - Operations & State Actions Compile and debug PIMS VALIDATE PIMS Execute domain use cases Execute system use cases SPECIFY SYSTEM CONSTRUCTION PROCESS Define/Buy PIM To PSI Mapping Rules Build/Buy PIM compiler GENERATE SYSTEM Apply PIM to PSI Mapping Rules (Execute PIM Compiler) Perform target testing MDA with eXecutable UML - What Real Software Engineers Need SPECIFY DOMAINS Identify new/reused domains Model system use cases

25 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

26 K E N N E D Y C A R T E R Design Tags l l Class Allocation l l Program Allocation l l Max Instance Count l l Event Rate l l Event Queue l l Throw Away l l Initialization l l Source Type l l Subtype of l l etc. Design Tags l l Class Allocation l l Program Allocation l l Max Instance Count l l Event Rate l l Event Queue l l Throw Away l l Initialization l l Source Type l l Subtype of l 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

27 K E N N E D Y C A R T E R Model of Platform... MDA: Automatic Code Generation 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: (e.g. Procedure, Array, Program, Event Queue, etc.) Developed by Program Developed by Program Supplied by Kennedy Carter Supplied by Kennedy Carter Developed by Program Developed by Program

28 K E N N E D Y C A R T E R Model of xUML... xUML Elements: (e.g. Class, Attribute, Association, Tag, etc.) xUML Elements: (e.g. Class, Attribute, Association, Tag, etc.) Supplied by Kennedy Carter Supplied by Kennedy Carter Automatic Code Generation: Simulation Code Step 1: Populate instances of xUML Metamodel with Model of Application Code Generation: Generation of Simulation Code for Development Platform (e.g. UNIX C Code) Model of Application... Application Elements: (e.g. Aircraft, Missile, Target, etc.) Application Elements: (e.g. Aircraft, Missile, Target, etc.) Developed by Program Developed by Program When we say that “xUML models are executable” we mean that “executable code can be automatically generated from them”

29 K E N N E D Y C A R T E R Model of Platform... Implementation Elements: (e.g. Procedure, Array, Program, Event Queue, etc.) Implementation Elements: (e.g. Procedure, Array, Program, Event Queue, etc.) 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.) Supplied by Kennedy Carter Supplied by Kennedy Carter Automatic Code Generation: Target Code Step 1: Populate instances of xUML Metamodel with Model of Application Model of Application... Application Elements: (e.g. Aircraft, Missile, Target, etc.) Application Elements: (e.g. Aircraft, Missile, Target, etc.) Developed by Program Developed by Program Step 2: Populate instances of Model of Implementation with populated xUML Metamodel instances Code Generation: Generation of Source Code for Target (Embedded)Platform (e.g. Ada/C++ Code)

30 K E N N E D Y C A R T E R 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.) 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.) Supplied by Kennedy Carter Supplied by Kennedy Carter 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.) Developed by Program Developed by Program Generated Source Code for Target Platform The Code Generator includes all implementation-dependent details (those dependent upon the Application Software Interface – specific to the Hardware, the Software Execution Platform, the Implementation Language)

31 K E N N E D Y C A R T E R The iCCG Framework Configurable Code Generator: l l Code Generator is developed using the same eXecutable MDA strategy l 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 l Code Generator is developed using the same eXecutable MDA strategy l l Kennedy Carter supplies a set of xUML models (known as the Configurable Code Generator) that serve as a generic translation framework

32 K E N N E D Y C A R T E R MDA with xUML: PIM-PSM Mapping Rules in ASL  Systematic Mappings are expressed by Action Language operating on the xUML (meta)model: Mapping Rules in ASL {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 C++ Code Archetype class Class { public: (); //………. private: static char *className; static char *classKeyLetter; //……. ; //……. }; is provided by 0..* Class name keyLetter Operation Name type has 0..* R2

33 K E N N E D Y C A R T E R Extending iCCG with a Platform Model Code Generator Development: l 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 l Code Generator and Application Software develop- ment may be performed concurrently with the same methods and tools Code Generator Development: l 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 l Code Generator and Application Software develop- ment may be performed concurrently with the same methods and tools

34 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

35 K E N N E D Y C A R T E R Automatic Code Generator Portable Application Software Products Source Code Application Software Interface eXecutable UML Models Program Specific Program Specific Mapping (Design Tag Values) (Design Tag Values) Automatic Code Generator Program Specific Program Specific Mapping (Design Tag Values) (Design Tag Values) Source Code Application Software Interface eXecutable UML Models The Portable Products (and therefore the Configured Products to be placed in an Enterprise-Level Software Reuse Library)

36 K E N N E D Y C A R T E R Advantages of the MDA with xUML Approach  The majority of software developers are isolated from implementation details, allowing them to focus on a thorough analysis of the application space  Maintenance of the application source code is eliminated, while maintenance of the xUML models is ensured  Defect injection (and the resulting rework) is reduced by automating the software phase in which most defects are injected  On a typical program, after Requirements Definition approximately 2/3 of the defects are injected during implementation (coding) Increased Quality

37 K E N N E D Y C A R T E R Advantages of the MDA with xUML Approach  Rework is reduced  Early validation through simulation reduces rework  Increase in eXecutable UML modeling span time is more than offset by decrease in Integration & Test span time  Higher quality implementation (due to automation) reduces rework  Software development span time is reduced by automating the implementation phase  Application Software development schedule is reduced by at least 20%  The code generator, not each software developer, performs the majority of implementation-specific design tasks  40-60% of physical source code Increased Productivity

38 K E N N E D Y C A R T E R Advantages of the MDA with xUML Approach  One Application Software xUML Model database may be reused (as is) on any platform for which a mapping is defined (ie: a code generator is developed)  xUML models are compatible with any hardware platform, any Software Execution Platform, and any Application Software Interface  xUML models are compatible with any implementation language Cross-Platform Compatibility The Goal of Cross-Platform Compatibility of Application Software is Attainable with the OMG’s MDA supported by eXecutable UML The Goal of Cross-Platform Compatibility of Application Software is Attainable with the OMG’s MDA supported by eXecutable UML

39 K E N N E D Y C A R T E R Further Reading:

40 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

41 K E N N E D Y C A R T E R MDA is “Stakeholder Oriented Development”  MDA models are accessible representations of stakeholder knowledge  MDA models formalise specialised knowledge:  End-User knowledge about the enterprise  Systems and IT knowledge about platforms  Programmer knowledge about best development practice  MDA models (in xUML) are working prototypes which support requirements elicitation from stakeholders

42 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

43 K E N N E D Y C A R T E R MDA ‘Future Proofs’ System Development  “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

44 K E N N E D Y C A R T E R MDA with executable UML is a Lightweight Process  Executable modelling offers all the benefits of code-centric development without the drawbacks:  No redundancy in the development process  Automated traceability  Synchronised documentation  Early testing  Less rework  MDA with executable UML can exploit all the insights of agile development without sacrificing platform independence.  The Models ARE the Code!

45 K E N N E D Y C A R T E R  Join me in Room S 001 for further discussion and demonstrations immediately after lunch. 14.00 - 15.00  Visit the web-site:  www.kc.com  Download iUMLite (full product, limited only by model size)  Experiment with MDA and executable models  Download Technical Literature  Supporting MDA with eXecutable UML  Configurable Code Generation in MDA with iCCG  The ASL Reference Manual  Read the book: Model Driven Architecture with Executable UML, written by Kennedy Carter’s leading consultants. Published by Cambridge University Press, March 2004 So, What Next?


Download ppt "Www.kc.com K E N N E D Y C A R T E R Model Driven Architecture and eXecutable UML: The Next Evolutionary Step? Allan Kennedy Founder, Kennedy Carter Ltd."

Similar presentations


Ads by Google