A Very Short Introduction to ModelDriven Development MDD




![[1]: “all meaning is mapping-mediated, which is to say, all meaning comes from analogies. [1]: “all meaning is mapping-mediated, which is to say, all meaning comes from analogies.](https://slidetodoc.com/presentation_image_h2/9bf4670c00218233e87e96703704ce90/image-5.jpg)





![From: Model-driven development: The good, the bad, and the ugly [1] “…the MDD community From: Model-driven development: The good, the bad, and the ugly [1] “…the MDD community](https://slidetodoc.com/presentation_image_h2/9bf4670c00218233e87e96703704ce90/image-11.jpg)
![[1] The Sketchers use UML to facilitate the understanding of code… use the sketches [1] The Sketchers use UML to facilitate the understanding of code… use the sketches](https://slidetodoc.com/presentation_image_h2/9bf4670c00218233e87e96703704ce90/image-12.jpg)
![[1] The Blueprinters. . . create very detailed design models, handed off to coders [1] The Blueprinters. . . create very detailed design models, handed off to coders](https://slidetodoc.com/presentation_image_h2/9bf4670c00218233e87e96703704ce90/image-13.jpg)
![[1] The model programmers support the use of UML (or other notation) as a [1] The model programmers support the use of UML (or other notation) as a](https://slidetodoc.com/presentation_image_h2/9bf4670c00218233e87e96703704ce90/image-14.jpg)




![Refinement [1]: “A relationship that represent a fuller specification of something that has already Refinement [1]: “A relationship that represent a fuller specification of something that has already](https://slidetodoc.com/presentation_image_h2/9bf4670c00218233e87e96703704ce90/image-19.jpg)

![[2]: The MDA Process PSM [3]: … separates specification of functionality from specification of [2]: The MDA Process PSM [3]: … separates specification of functionality from specification of](https://slidetodoc.com/presentation_image_h2/9bf4670c00218233e87e96703704ce90/image-21.jpg)


![References [1] http: //researchweb. watson. ibm. com/journal/sj/453/hailpern. html [2] Introduction to OMG's Unified Modeling References [1] http: //researchweb. watson. ibm. com/journal/sj/453/hailpern. html [2] Introduction to OMG's Unified Modeling](https://slidetodoc.com/presentation_image_h2/9bf4670c00218233e87e96703704ce90/image-24.jpg)
- Slides: 24
A (Very) Short Introduction to Model-Driven Development (MDD) (MDD ~ Model-Driven Engineering (MDE)) 1
From Wikipedia, the free encyclopedia on MDE: …on the use of software modeling as a primary form of expression. . . With the introduction of UML, MDE has become very popular today with a wide body of practitioners and supporting tools. . . 2
Content • What is a model? • Types of modellers. • UML and MDD (MDA). 3
Features of a Model A model according to Stachowiak exhibits the following features: Mapping feature A model is based on an original (there is a subject). Reduction feature A model only reflects a (relevant) selection of an original's properties. Pragmatic feature A model needs to be usable (in place of an original) with respect to some purpose. 4
[1]: “all meaning is mapping-mediated, which is to say, all meaning comes from analogies. ” Math terms: A homomorphism is a structure-preserving map from one structure to another. structure X structure Y 1 A 2 B 3 C D E subject model (what is being modelled) 5
I would say: All meaning comes from analogies and composition. + = 6
Most models found in software engineering are specification models (prescriptive models) and typically the "original" does not exist when the model is created. Doing reverse engineering is like making a descriptive model (descriptive models are the most common models in natural science). 7
Specification Models • Guides us in constructing a system. The model is like a blueprint – high complexity requires good modelling techniques. • Models may help us visualize a system at different levels of abstraction, this makes it easier to manage complexity and to understand the system. 8
Why Modelling? • High level of abstraction gives cheaper experiments (checking multiple solutions). • Models document decisions. • Models help communication between different stakeholders. 9
Content • What is a model? • Types of modellers. • UML and MDD (MDA). 10
From: Model-driven development: The good, the bad, and the ugly [1] “…the MDD community can be divided into three parts… sketchers. . . blueprinters, and … model programmers…. ” 11
[1] The Sketchers use UML to facilitate the understanding of code… use the sketches to help communicate ideas and alternatives about what you are about to do. … You do not show every class, just those that are interesting… 12
[1] The Blueprinters. . . create very detailed design models, handed off to coders to produce implementations. . . Sketchers and the blueprinters maintain a strong distinction between design models and code artefacts…. 13
[1] The model programmers support the use of UML (or other notation) as a development language with executable semantics (e. g. , action semantics or statecharts). The distinction between models and code is obscured… 14
Model Programmer Approaches Generative Approach to MDD Models are often used for code generation, followed by compilation and then execution. It keeps modelling and execution separate. Interpretative Approach to MDD Allows models to be directly executed (it relates to the interpretative programming language approach). 15
Content • What is a model? • Types of modellers. • UML and MDD (MDA). 16
UML 1. 3 Is Not a Visual Programming Language? “UML 1. 3 is a visual modeling language. It does not have all necessary visual and semantic support to replace programming languages. But the introduction of Action Semantics into UML has changed this!” Not all agrees – State Charts already existed and could be used instead of Action Semantics. 17
Executable UML • Abstracting away programming languages. • Class diagrams shows structure. • Statechart diagrams shows object lifecycle (control). • Action language shows behavior (algorithm) 18
Refinement [1]: “A relationship that represent a fuller specification of something that has already been specified at a certain level of detail or at a different semantic level. ” Refinement Realization Chain conceptual «refine» PIM towards a specific platform «refine» PIM/PSM «refine» PSM implementation running. impl. «compile» Implementation Source Code «load» Implementation Target Code Loaded Impl. Target Code The elements of the realization chain can be seen as models that in some way can be interpreted – lets call them Programs, even if some elements only model structure (as opposed to behavior). Interpretation of Program PSMm PIM 19 PSM 1 PSMm Runtime Instances Virtual. Machine Processor
Model-Driven Architecture (MDA) A software design approach for the development of software systems. . . a set of guidelines for the structuring of specifications, which are expressed as models. It was launched by the Object Management Group (OMG) in 2001. 20
[2]: The MDA Process PSM [3]: … separates specification of functionality from specification of implementation of that functionality on a specific platform. . ” Bridge Code Bridge [4]: First, you build a model with a high level of abstraction independent of any implementation technology. This is called a Platform Independent Model (PIM). Next, the PIM is transformed into one or more Platform Specific Models (PSMs). A PSM is tailored to specify your system in terms of the implementation constructs that are available in one specific implementation technology, e. g. a database model, an EJB model. The final step is to transform a PSM to code. Because a PSM fits technology very closely, this transformation is rather trivial. The complex step is the one in which a PIM is transformed to a PSM. 21
MDA Example 1 Several Application Platform Independent Model PIM Reverse engineer First transformation PSM CORBA Model EJB Model XML/SOAP Model Other Models CORBA Code EJB Code XML/SOAP Code Other Code Second transformation Implementation 22
MDA Example 2 Three Tier Solution – One Application PIM PSM Relational DB PSM EJB Comp. PSM Web PSM SQL Code PSM EJB Code PSM JSP Code 23
References [1] http: //researchweb. watson. ibm. com/journal/sj/453/hailpern. html [2] Introduction to OMG's Unified Modeling Language™ (UML™) [accessed Aug. 2002] http: //www. omg. org/gettingstarted/what_is_uml. htm [3] OMG Editor: Model Driven Architecture (MDA) (ormsc/01 -07 -01) http: //www. omg. org/cgi-bin/doc? ormsc/2001 -07 -01 Accessed 19 August 2002 [4] Addison-Wesley, MDA Explained: The Model Driven Architecture™: Practice and Promise Anneke Kleppe, Jos Warmer, Wim Bast (Klasse Objecten, Soest, the Netherlands http: //www. klasse. nl/english/mda-introduction. html) [1] Douglas Hofstadter. I Am a Strange Loop (ISBN 0 -465 -03078 -5) (2007) 24