Model Driven Development An introduction Overview Using Models
- Slides: 38
Model Driven Development An introduction
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 • Examples Precise models Simulation Verification Constructie
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 the building Zoom levels … information hiding … … understandability …
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 (simulate) Communicate Construction manual User manual / documentation
Using Models In Software
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 { 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 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 – 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 in SW history
Feasibility of MDA
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 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 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 separated from its meta model Zoom View B
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 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 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 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]: 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 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 – 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 • 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 – Class diagram – Communication/Sequence diagram
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 • 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 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, Tagged values and Constraints Definition Application
What we are doing & Conclusions
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 • 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
- Agile model driven development amdd
- Logic driven model
- Using risk to balance agile and plan driven methods
- Modals and semi-modals
- Hypothesis driven development
- Data driven web applications
- Test driven development
- Karakteristik market driven strategy
- Test driven development
- Behavior driven development protractor
- Unity test driven development
- Gartner hype cycle banking
- Feature driven development template
- Behavior driven development
- Manjula perera
- Type driven development scala
- Feature driven development template
- Hype driven development
- Behavior driven development behat
- Feature driven development
- What is bioinformatics an introduction and overview
- Introduction product overview
- Introduction product overview
- Introduction product overview
- Introduction product overview
- Cars model research
- Mamdm
- Using recursion in models and decision making sheet 3
- Multiplying decimals with models
- Lesson 3 using economic models
- Using algebra to solve problems
- Using inaccurate models in reinforcement learning
- Model-driven dss
- Model driven architecture
- Time driven model of leadership
- Model driven decision support system
- Canvas vs model driven apps
- Egg of sustainability model
- Software development life cycle presentation