Model Driven Development An introduction Overview Using Models

  • Slides: 38
Download presentation
Model Driven Development An introduction

Model Driven Development An introduction

Overview • Using Models • • Using Models in Software • • Feasibility of

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

Using Models • Examples Precise models Simulation Verification Constructie

Using Models • Examples Precise models Simulation Verification Constructie

Using Models • Examples Electrician Interior designer Architect Marketing Different views … for each

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

Using Models • Examples Structural view A bluilding in its environment A room in

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

Using Models • Good models – – – Offer different views Abstract away details

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

Using Models • Why model? – – – Manage and understand great complexity Experiment

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

Using Models In Software

Using Models In Software

Using Models In Software • Many software projects Where are the Models? [code is

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

Using Models In Software • More positive ? if (expression) { statements; } else

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

Using Models In Software • Model Driven Development – Precise models [same goals as

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 The MDA page - www. omg. org/mda The MDA vision - www. omg. org/docs/ormsc/01 -07 -01. pdf

Using Models In Software • Model once, Generate anywhere – Platform Independent Model –

Using Models In Software • Model once, Generate anywhere – Platform Independent Model – Platform Description Model – Platform Specific Model Essential system concepts (Mark) * - Changing platform PIM PDM [C++|CORBA, J 2 EE, . NET] - Design decisions * Transformer PSM Code

Using Models In Software • Is this feasible? – Looking for a possible answer

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

Feasibility of MDA

Feasibility of MDA

Feasibility of MDA • Evolution Platform “Use” 3 GL Middleware Assembly Operating System 0’en

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

Feasibility of MDA Level of abstrction Model Transformations Level of abstrction • Semantic gap

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

MDA Technologies

MDA Technologies

MDA Technologies • MDA is all about standards – Modeling • UML 2 •

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

MDA Technologies • (Meta) modeling View A – A model has no meaning when

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

M 3 MOF - Meta Object Facility M 2 UML, CWM, RDBM, your language

M 3 MOF - Meta Object Facility M 2 UML, CWM, RDBM, your language M 1 Classes, associations, operations, etc. Tables, keys, etc. M 0 Objects, links, etc. Records etc. “Talk about” “Define” • 4 meta levels “Instance of” MDA Technologies

M 3 source Class Association destination M 2 M 1 M 0 Class Person

M 3 source Class Association destination M 2 M 1 M 0 Class Person Name: String man: Person Name = Jan 1 * Attribute “Talk about” “Define” • Applied to UML “Instance of” MDA Technologies

MDA Technologies • Transformations M 3 MOF M 2 UML Define transformation RDBM M

MDA Technologies • Transformations M 3 MOF M 2 UML Define transformation RDBM M 1 UML model Apply transformation RDBM model MOF: : Class(name=class) MOF: : Class(name=table) UML: : Class(name=person) RDBM: : Table(name=person)

MDA Technologies • Transformations – – – Defined at the meta level Executed at

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. UML A TF 1 UML B TF 2 (persistency) UML B (Logging) TF 3 UML B (Language)

MDA Technologies • Transformations based on – Target language limitations • E. g. UML-UML[Java]:

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 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

MDA Technologies • Defining transformations – “The missing link” – Many specific - non

MDA Technologies • 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

MDA Technologies • Interoperability – Based on MOF – Model exchange - XMI –

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

The Unified Modeling Language V 2. 0

The Unified Modeling Language V 2. 0

The Unified Modeling Language • What is it? – A visual modeling language –

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

The Unified Modeling Language • Most used in UML – Use case diagram –

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

The Unified Modeling Language • We need to start using – State charts [state

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

The Unified Modeling Language

The Unified Modeling Language

The Unified Modeling Language • Action Semantics – Really act upon your models •

The Unified Modeling Language • 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 x. UML area Book (2004) : Model Driven Architecture with Excutable UML 2. 0 Activity and Action Models - http: //www. jot. fm/issues/issue_2003_07/column 3

The Unified Modeling Language • Profiles – Customization of UML (or any other MOF

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)

The Unified Modeling Language • Profiles – Annotations to standard UML models • Stereotypes,

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

What we are doing & Conclusions

What we are doing & Conclusions

What we are doing • What are we doing? – Building experienced with UML

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)

Conclusions • MDA is – Rising the level of abstraction • Specific (modeling) languages

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