Presentation is loading. Please wait.

Presentation is loading. Please wait.

Model Driven Development An introduction. Overview Using Models Using Models in Software Feasibility of MDA MDA Technologies The Unified Modeling Language.

Similar presentations


Presentation on theme: "Model Driven Development An introduction. Overview Using Models Using Models in Software Feasibility of MDA MDA Technologies The Unified Modeling Language."— Presentation transcript:

1 Model Driven Development An introduction

2 Overview Using Models Using Models in Software Feasibility of MDA MDA Technologies The Unified Modeling Language What we are doing & Conclusion Using Models Using Models in Software Feasibility of MDA MDA Technologies The Unified Modeling Language What we are doing & Conclusion

3 Using Models

4 Examples Precise models Precise models Simulation Verification Simulation Verification Constructie

5 Using Models Examples Different views … for each stakeholder … … all interconnected … Different views … for each stakeholder … … all interconnected … Electrician Interior designer Marketing Architect

6 Using Models Examples Zoom levels … information hiding … … understandability … Zoom levels … information hiding … … understandability … A bluilding in its environment A room in the building Structural view

7 Using Models Good models –Offer different views –Abstract away details [zooming] –Are understandable [symbols] –Are precise [and complete] –Follow common standards Good models –Offer different views –Abstract away details [zooming] –Are understandable [symbols] –Are precise [and complete] –Follow common standards

8 Using Models Why model? –Manage and understand great complexity –Experiment (simulate) –Communicate –Construction manual –User manual / documentation Why model? –Manage and understand great complexity –Experiment (simulate) –Communicate –Construction manual –User manual / documentation

9 Using Models In Software

10 Many software projects Construction if (expression) { statements; } else { statements; } for (expression; expression; expression) { statements; } do { statements; } while (expression); while (expression) { statements; } switch (expression) { case constant: statements; break; default: statements; Where are the Models? [code is a model too!] Precise models Precise models Simulation Verification Simulation Verification But.. One view One level of detail Not understandable Not very abstract But.. One view One level of detail Not understandable Not very abstract

11 Using Models In Software More positive Precise models Precise models Simulation Verification Simulation Verification Construction if (expression) { statements; } else { statements; } for (expression; expression; expression) { statements; } do { statements; } while (expression); while (expression) { statements; } switch (expression) { case constant: statements; break; default: statements; ? ? (Long term) value?

12 Using Models In Software Model Driven Development –Precise models [same goals as other industries] –  Raising the abstraction level further –  Separating application logic from the implementing technology –  Automatic model transformations Model Driven Architecture –MDD, the OMG way –Others are MS Software factories, Model Integrated Computing, etc. Common principles We will talk mainly about MDA Model Driven Development –Precise models [same goals as other industries] –  Raising the abstraction level further –  Separating application logic from the implementing technology –  Automatic model transformations Model Driven Architecture –MDD, the OMG way –Others are MS Software factories, Model Integrated Computing, etc. Common principles We will talk mainly about MDA The MDA page - www.omg.org/mda The MDA vision - www.omg.org/docs/ormsc/01-07-01.pdf

13 * Using Models In Software Model once, Generate anywhere –Platform Independent Model –Platform Description Model –Platform Specific Model Model once, Generate anywhere –Platform Independent Model –Platform Description Model –Platform Specific Model PIMPDM PSMCode Transformer Essential system concepts - Changing platform [C++|CORBA, J2EE,.NET] - Design decisions - Changing platform [C++|CORBA, J2EE,.NET] - Design decisions (Mark) *

14 Using Models In Software Is this feasible? –Looking for a possible answer in SW history Is this feasible? –Looking for a possible answer in SW history

15 Feasibility of MDA

16 Evolution Hardware Operating System Middleware 0’en en 1’en Assembly 3GL Programming environment Programming environment Platform Level of abstrction “Transform to” (“Compile to”) “Transform to” (“Compile to”) “Use” The increase of the level of abstraction at both sides is the enabler of MDA

17 Feasibility of MDA Semantic gap closes MDA Machine code Machine code with OS 3GL with OS 3GL with MW Model A Model B Model C Level of abstrction Model Transformations The Abstract Platform - http://wwwhome.cs.utwente.nl/~alme/cvitae/almeida-edoc2004-abstractplatform.pdf Modeler’s playground Programmer’s playground

18 MDA Technologies

19 MDA is all about standards –Modeling UML2 CWM … –Meta modeling MOF –Model Exchange XMI UML Diagram interchange –Transformations QVT Templates General scripts … MDA is all about standards –Modeling UML2 CWM … –Meta modeling MOF –Model Exchange XMI UML Diagram interchange –Transformations QVT Templates General scripts … 1 1 2 2 3 3 4 4 Define your own language Model the application Use different tools to … … execute the necessary transformations

20 MDA Technologies (Meta) modeling –A model has no meaning when separated from its meta model (Meta) modeling –A model has no meaning when separated from its meta model View A View B Zoom

21 MDA Technologies 4 meta levels MOF - Meta Object Facility UML, CWM, RDBM, your language Classes, associations, operations, etc. Tables, keys, etc. Objects, links, etc. Records etc. M3 M2 M1 M0 “Talk about” “Define” “Talk about” “Define” “Instance of”

22 MDA Technologies Applied to UML M3 M2 M1 M0 “Talk about” “Define” “Talk about” “Define” “Instance of” ClassAssociation source destination ClassAttribute 1 * Person Name: String man:Person Name = Jan

23 MDA Technologies Transformations MOF UML model M3 M2 M1 RDBM model Define transformation Apply transformation MOF::Class(name=class)MOF::Class(name=table) UML::Class(name=person) RDBM::Table(name=person)

24 MDA Technologies Transformations –Defined at the meta level –Executed at the model level –Source & target model –Replace / Add / Remove elements –Inter / Intra language Transformation stages –From more abstract to more platform specific –E.g. Transformations –Defined at the meta level –Executed at the model level –Source & target model –Replace / Add / Remove elements –Inter / Intra language Transformation stages –From more abstract to more platform specific –E.g. UML A UML B (persistency) UML B (Logging) UML B (Language) TF 1TF2TF3

25 MDA Technologies Transformations based on –Target language limitations E.g. UML-UML[Java]: remove multiple inheritance –Aspects Weave aspect models in the primary model –Model annotations Using profiles Transformations based on –Target language limitations E.g. UML-UML[Java]: remove multiple inheritance –Aspects Weave aspect models in the primary model –Model annotations Using profiles Equivalence Rules for UML Class Diagrams, M. Gogolla, M. Richters An Aspect-Based Approach to Modeling Access Control Concerns, I. Ray, R. France, G. Georg An Introduction to UML Profiles, L. Fuentes-Fernández, A. Vallecillo-Moreno

26 MDA Technologies Defining transformations –“The missing link” –Many specific - non standard - ways –Wait for QVT - Query, View, Transform –  IBM Model Transformation Framework (MTF) Defining transformations –“The missing link” –Many specific - non standard - ways –Wait for QVT - Query, View, Transform –  IBM Model Transformation Framework (MTF) MTF - www-128.ibm.com/developerworks/rational/library/05/503_sebas/ Query View Transform RFP - www.omg.org/cgi-bin/doc?ad/2002-4-10

27 MDA Technologies Interoperability –Based on MOF –Model exchange - XMI –Reflective APIs - JMI, C(ORBA)MI, etc. Interoperability –Based on MOF –Model exchange - XMI –Reflective APIs - JMI, C(ORBA)MI, etc. Tool bus Desinger Tool Transformation Tool Simulation Tool...

28 The Unified Modeling Language V2.0

29 The Unified Modeling Language What is it? –A visual modeling language –To specify software in a OO fashion –Now: UML 2.0 to better support MDA What will we discuss? –Action Semantics –Profiles What is it? –A visual modeling language –To specify software in a OO fashion –Now: UML 2.0 to better support MDA What will we discuss? –Action Semantics –Profiles

30 The Unified Modeling Language Most used in UML –Use case diagram –Class diagram –Communication/Sequence diagram Most used in UML –Use case diagram –Class diagram –Communication/Sequence diagram

31 The Unified Modeling Language We need to start using –State charts [state of an object] –Activity diagrams [state of an algorithm] We need to start using –State charts [state of an object] –Activity diagrams [state of an algorithm]

32 The Unified Modeling Language

33 Action Semantics –Really act upon your models Create objects, set attributes, etc. –In a platform independent way –Using Activity diagrams –And/Or an Action Specification Language (ASL) –Mostly used in the xUML area Action Semantics –Really act upon your models Create objects, set attributes, etc. –In a platform independent way –Using Activity diagrams –And/Or an Action Specification Language (ASL) –Mostly used in the xUML area Book (2004) : Model Driven Architecture with Excutable UML UML 2.0 Activity and Action Models - http://www.jot.fm/issues/issue_2003_07/column3

34 The Unified Modeling Language Profiles –Customization of UML (or any other MOF model) –The main uses of profiles are Adding custom symbols to constructs Adding semantics (for semantics variation points) Adding constraints Generally adding information (for transformations or documentation) Profiles –Customization of UML (or any other MOF model) –The main uses of profiles are Adding custom symbols to constructs Adding semantics (for semantics variation points) Adding constraints Generally adding information (for transformations or documentation)

35 The Unified Modeling Language Profiles –Annotations to standard UML models Stereotypes, Tagged values and Constraints Profiles –Annotations to standard UML models Stereotypes, Tagged values and Constraints Definition Application

36 What we are doing & Conclusions

37 What we are doing What are we doing? –Building experienced with UML 2.0 and all of its aspects in industrial cases –Looking how to specify traceability between transformations and how to explicitly specify dependencies between transformations using profiles –Setting up a UML based framework to configure component platforms in a platform independent way (currently for Draco and CCM) –Modeling real time aspects in UML using profiles (future work) What are we doing? –Building experienced with UML 2.0 and all of its aspects in industrial cases –Looking how to specify traceability between transformations and how to explicitly specify dependencies between transformations using profiles –Setting up a UML based framework to configure component platforms in a platform independent way (currently for Draco and CCM) –Modeling real time aspects in UML using profiles (future work)

38 Conclusions MDA is –Rising the level of abstraction Specific (modeling) languages Seperating business knowledge from implementation technology –Applying automatic transformations –Managing the metadata centrally Is MDA ready? –Still work in progress –But... We can use some parts UML+profiles Limited code generation MDA is –Rising the level of abstraction Specific (modeling) languages Seperating business knowledge from implementation technology –Applying automatic transformations –Managing the metadata centrally Is MDA ready? –Still work in progress –But... We can use some parts UML+profiles Limited code generation


Download ppt "Model Driven Development An introduction. Overview Using Models Using Models in Software Feasibility of MDA MDA Technologies The Unified Modeling Language."

Similar presentations


Ads by Google