2. Roadmap
What is a model ?
What is Model Driven Engineering ?
MDSE Application
Metamodeling, modeling and transform
01
02
03
04
3. The human mind continuously re-works reality by
applying cognitive processes
Abstraction
Important notions of abstraction
What is a model ?
Capability of finding the commonality in many
different observations
generalize specific features of real objects
classify the objects into coherent clusters
aggregate objects into more complex ones
We will see…
Abstraction and human mind
16. Ludovico Iovino, Model Driven Engineering– MDE principles
What is a model?
- A model represents reality for the given purpose;
- The model is an abstraction of reality in the sense that it cannot
represent all aspects of reality
17. Ludovico Iovino, Model Driven Engineering– MDE principles
What is a model?
- A model represents reality for the given purpose;
- The model is an abstraction of reality in the sense that it cannot
represent all aspects of reality
- Modeling, in the broadest sense, is the cost-effective use of
something in place of something else for some cognitive purpose.
18. Ludovico Iovino, Model Driven Engineering– MDE principles
What is a model?
- A model represents reality for the given purpose;
- The model is an abstraction of reality in the sense that it cannot
represent all aspects of reality
- Modeling, in the broadest sense, is the cost-effective use of
something in place of something else for some cognitive purpose.
- It allows us to use something that is simpler, safer or cheaper than
reality instead of reality for some purpose
19. This allows us to deal with the world in a simplified
manner, avoiding the complexity, danger and
irreversibility of reality
Simpler, safer or cheaper than reality
20. Ludovico Iovino, Model Driven Engineering– MDE principles
What is a model?
- A model represents reality for the given purpose;
- The model is an abstraction of reality in the sense that it cannot
represent all aspects of reality
- Modeling, in the broadest sense, is the cost-effective use of
something in place of something else for some cognitive purpose.
- It allows us to use something that is simpler, safer or cheaper than
reality (instead of reality) for some purpose
- This allows us to deal with the world in a simplified manner, avoiding
the complexity, danger and irreversibility of reality
21. Ludovico Iovino, Model Driven Engineering– MDE principles
What is a model?
- A model represents reality for the given purpose;
- The model is an abstraction of reality in the sense that it cannot
represent all aspects of reality
- Modeling, in the broadest sense, is the cost-effective use of
something in place of something else for some cognitive purpose.
- It allows us to use something that is simpler, safer or cheaper than
reality instead of reality for some purpose
- This allows us to deal with the world in a simplified manner, avoiding
the complexity, danger and irreversibility of reality
29. Ludovico Iovino, Model Driven Engineering– MDE principles
So…what is a model?
- A simplified or partial representation of reality, defined in order to
accomplish a task or to reach an agreement
30. Ludovico Iovino, Model Driven Engineering– MDE principles
So…what is a model?
- A simplified or partial representation of reality, defined in order to
accomplish a task or to reach an agreement
ModelrepresentsSystem
Mapping Feature A model is based on an original (=system)
31. Ludovico Iovino, Model Driven Engineering– MDE principles
So…what is a model?
- A simplified or partial representation of reality, defined in order to
accomplish a task or to reach an agreement
ModelrepresentsSystem
Mapping Feature A model is based on an original (=system)
Reduction Feature A model only reflects a (relevant) selection of the
original‘s properties
32. Ludovico Iovino, Model Driven Engineering– MDE principles
So…what is a model?
- A simplified or partial representation of reality, defined in order to
accomplish a task or to reach an agreement
ModelrepresentsSystem
Mapping Feature A model is based on an original (=system)
Reduction Feature A model only reflects a (relevant) selection of the
original‘s properties
Pragmatic Feature A model needs to be usable in place of an original
with respect to some purpose
36. Ludovico Iovino, Model Driven Engineering– MDE principles
Motivation
- Model as the central artifact of software development
Model
Rapid prototyping
Static analysis
Code generation
Automated testing
Refactoring/
Transformation
Documentation
37. Ludovico Iovino, Model Driven Engineering– MDE principles
Motivation
- Quality problems in software development
[Slide by Bernhard Rumpe]
38. Ludovico Iovino, Model Driven Engineering– MDE principles
Motivation
- Quality problems in software development
[Slide by Bernhard Rumpe]
39. Ludovico Iovino, Model Driven Engineering– MDE principles
Motivation
- Quality problems in software development
[Slide by Bernhard Rumpe]
40. Ludovico Iovino, Model Driven Engineering– MDE principles
Motivation
- Quality problems in software development
[Slide by Bernhard Rumpe]
41. Ludovico Iovino, Model Driven Engineering– MDE principles
Motivation
- Traditional usage of models in software development
- Communication with customers and users (requirement specification,
prototypes)
- Support for software design, capturing of the intention
- Task specification for programming
- Code visualization
[Slide by Bernhard Rumpe]
42. Ludovico Iovino, Model Driven Engineering– MDE principles
Motivation
Models as drafts
- Communication of ideas and alternatives
- Objective: modeling per se
Models as guidelines
- Design decisions are documented
- Objective: instructions for implementation
Models as programs
- Applications are generated automatically
- Objective: models are source code and vice versa
[Slide by Bernhard Rumpe]
t
43. Ludovico Iovino, Model Driven Engineering– MDE principles
MDSE Concepts
- Model Driven Software Engineering (MDSE) concepts
44. Ludovico Iovino, Model Driven Engineering– MDE principles
Model Driven Software Engineering (MDSE) concepts
Abstraction from specific realization technologies
- Requires modeling languages, which do not hold specific concepts of realization technologies (e.g., Java
EJB)
- Improved portability of software to new/changing technologies – model once, build everywhere
- Interoperability between different technologies can be automated (so called Technology Bridges)
Automated code generation from abstract models
- e.g., generation of Java-APIs, XML Schemas, etc. from UML
- Requires expressive and precise models
- Increased productivity and efficiency (models stay up-to-date)
Separate development of application and infrastructure
- Separation of application-code and infrastructure-code (e.g. Application Framework) increases
reusability
- Flexible development cycles as well as different development roles possible
45. Ludovico Iovino, Model Driven Engineering– MDE principles
Model Driven Software Engineering (MDSE) Equation
Models
46. Ludovico Iovino, Model Driven Engineering– MDE principles
Model Driven Software Engineering (MDSE) Equation
+Models Transformations
47. Ludovico Iovino, Model Driven Engineering– MDE principles
Model Driven Software Engineering (MDSE) Equation
+Models Transformations Software=
48. Ludovico Iovino, Model Driven Engineering– MDE principles
Model Driven Software Engineering (MDSE) Equation
+Models Transformations Software=
49. Ludovico Iovino, Model Driven Engineering– MDE principles
The MD* Jungle of Acronyms
- Model-Driven Development (MDD) is a development paradigm that uses
models as the primary artifact of the development process.
- Model-driven Architecture (MDA) is the particular vision of MDD proposed by
the Object Management Group (OMG)
- Model-Driven Engineering (MDE) is a superset of MDD because it goes beyond
of the pure development
- Model-Based Engineering (or “model-based development”) (MBE) is a softer
version of MDE, where models do not “drive” the process
50. Ludovico Iovino, Model Driven Engineering– MDE principles
Target of MDSE
- The Problem Domain is defined as the field or area of expertise that
needs to be examined to solve a problem.
- The Domain Model is the conceptual model of the problem domain
(entities, relations, roles, constraint)
- Technical Spaces represent specific working contexts for the
specification, implementation, and deployment of applications
(decide the storage formats)
51. Ludovico Iovino, Model Driven Engineering– MDE principles
Target of MDSE
- The Problem Domain is defined as the field or area of expertise that
needs to be examined to solve a problem.
- The Domain Model is the conceptual model of the problem domain
(entities, relations, roles, constraint)
- Technical Spaces represent specific working contexts for the
specification, implementation, and deployment of applications
(decide the storage formats)
52. Ludovico Iovino, Model Driven Engineering– MDE principles
Target of MDSE
- The Problem Domain is defined as the field or area of expertise that
needs to be examined to solve a problem.
- The Domain Model is the conceptual model of the problem domain
(entities, relations, roles, constraint)
- Technical Spaces represent specific working contexts for the
specification, implementation, and deployment of applications
(decide the storage formats)
53. Ludovico Iovino, Model Driven Engineering– MDE principles
Modeling languages
- Domain-Specific Languages (DSLs): languages that are designed
specifically for a certain domain or context
- DSLs have been largely used in computer science. Examples: HTML,
Logo, VHDL, SQL
- General Purpose Modeling Languages (GPMLs, GMLs, or GPLs):
languages that can be applied to any sector or domain for (software)
modeling purposes
- The typical examples are: UML, Petri-nets, or state machines
54. Ludovico Iovino, Model Driven Engineering– MDE principles
Metamodeling
- To represent the models themselves as “instances” of some more
abstract models.
- Metamodel = yet another abstraction, highlighting properties of the
model itself
- Modelware is the MDSE paradigm not so different from
grammarware
55. Ludovico Iovino, Model Driven Engineering– MDE principles
Metamodeling
- To represent the models themselves as “instances” of some more
abstract models.
- Metamodel = yet another abstraction, highlighting properties of the
model itself
- The relationship between models and metamodel is called
conformance (c2)
m
MM
Conform to (c2)
58. Ludovico Iovino, Model Driven Engineering– MDE principles
Model Transformation
- Transformations are defined at metamodel level but applied at model
level
- MDSE provides appropriate languages for defining model transformation
rules
- Rules can be written manually from scratch by a developer, or can be
defined as a refined specification of an existing one.
- Alternatively, transformations themselves can be produced automatically
out of some higher level mapping rules between models
- defining a mapping between elements of a model to elements to another one
(model mapping or model weaving)
- automating the generation of the actual transformation rules through a system that
receives as input the two model definitions and the mapping
- Transformations themselves can be seen as models!
60. Ludovico Iovino, Model Driven Engineering– MDE principles
Model Transformation
- Software modernization
61. Ludovico Iovino, Model Driven Engineering– MDE principles
Model Transformation
- Software modernization
Exomorphic Transformation
62. Ludovico Iovino, Model Driven Engineering– MDE principles
Model Transformation
- Software modernization
Exomorphic Transformation
Transforms this view into another view
63. Ludovico Iovino, Model Driven Engineering– MDE principles
Model Classification
- A very simple way of classifying the modeling languages and the
respective models is based on the level of abstraction at which the
modeling is performed
- Describe requirements and needs at very abstract level without details to the
implementation
- Define the behavior of the system in terms of stored data w/o technological
details
- Define all the technological aspects in detail
64. Ludovico Iovino, Model Driven Engineering– MDE principles
Model Classification
- Static models: Focus on the static aspects of the system in terms of
managed data and of structural shape and architecture of the
system.
- Dynamic models: Emphasize the dynamic behavior of the system by
showing the execution
65. Ludovico Iovino, Model Driven Engineering– MDE principles
Model Classification
- Static models: Focus on the static aspects of the system in terms of
managed data and of structural shape and architecture of the
system.
- Dynamic models: Emphasize the dynamic behavior of the system by
showing the execution
66. Ludovico Iovino, Model Driven Engineering– MDE principles
Model Classification
- Static models: Focus on the static aspects of the system in terms of
managed data and of structural shape and architecture of the
system.
- Dynamic models: Emphasize the dynamic behavior of the system by
showing the execution
67. Ludovico Iovino, Model Driven Engineering– MDE principles
MDSE adoption in Industry
- Some studies done in the past 5 years show that modeling is not
extensively adopted among practitioners
- New developments in the last few years in terms of new technologies
and the release of standard tools have changed the landscape
- As Steve Mellor like to say “modeling and MDE will be commonplace
in 3 years time”
68. Ludovico Iovino, Model Driven Engineering– MDE principles
MDSE adoption in Industry
- Some studies done in the past 5 years show that modeling is not
extensively adopted among practitioners
- New developments in the last few years in terms of new technologies
and the release of standard tools have changed the landscape
- As Steve Mellor like to say “modeling and MDE will be commonplace
in 3 years time [since 1985]
69. Ludovico Iovino, Model Driven Engineering– MDE principles
MDSE adoption in Industry
- Experts think that the biggest challenges faced by companies
adopting MDE approaches are not much on the technical side…
70. Ludovico Iovino, Model Driven Engineering– MDE principles
MDSE adoption in Industry
- Experts think that the biggest challenges faced by companies
adopting MDE approaches are not much on the technical side…
- But much more on the human factor side:
“Dealing with people’s habits and resistance to change”
“Accepting and adopting standards”
“Tool availability, business lines ,…”
“Impatience of getting to the results”
71. Ludovico Iovino, Model Driven Engineering– MDE principles
Tool support
- Many people assume that drawing tools and modeling tools are two
interchangeable concepts
72. Ludovico Iovino, Model Driven Engineering– MDE principles
Tool support
- Many people assume that drawing tools and modeling tools are two
interchangeable concepts … this is far from true
- Only some tools are drawing and modeling tools at the same time
- Some modeling tools use a concrete textual syntax for specifying
models and thus there is no support for drawing in them
73. Many drawing tools are not modeling tools. A drawing tool can be considered a
modeling tool if the tool “understands” the drawings
Tool support
74. Many drawing tools are not modeling tools. A drawing tool can be considered a
modeling tool if the tool “understands” the drawings
Tool support
Check the correctnes
Have a meaning
Can be exported
Can be processed
…
Editor's Notes
MDD implementation is semi-automatically generated from models
MDA modeling and transformation languages are standardized by OMG
MDE complete model-based software engineering process e.g. reverse engineering
MBE e.g models written by modelers by then given by hand as a blueprint to the programmer
Logo-pen based simple drawing
VHDL hardware description language