Advanced Software Engineering course - Guest Lecture
Weaving Models
This presentation has been developed in the context of the Advanced Software Engineering course at the DISIM Department of the University of L’Aquila (Italy).
http://www.di.univaq.it/malavolta
1. Università degli Studi dell’Aquila
Weaving Models
Ivano Malavolta
DISIM Department, University of L’Aquila
ivano.malavolta@univaq.it
2. The material in these slides may be freely reproduced
and distributed, partially or totally, as far as an explicit
reference or acknowledge to the material author is
preserved.
Ivano Malavolta
3. MDE Primer
Model Weaving
Why Linking Models together?
Model Weaving & Weaving Models
The AMW Project
The AMW User Interface
The AMW Core Metamodel
Extending AMW
Examples
4. GOALS
to abstract upon selected aspects of the system
to assess specific properties of the system early in the
life cycle
http://mdse-book.com
7. the metamodels for metamodels
defines the first-class entities, relationships and
constraints of a modeling language
a reduced representation of the system
models should have a focus in order to be useful
the “real thing”
...example
8. The means to specify the way to produce target models from a
number of source models
Can be either horizontal or vertical
9. Why Linking Models together?
Model Weaving & Weaving Models
The AMW Project
The AMW User Interface
The AMW Core Metamodel
Extending AMW
Examples
10. A system can be represented by “n” models
Each model focusses on a specific aspect
11. It is often necessary to establish links between elements of
different models
Tool interoperability
Transformation specification
Linking entities across models
Traceability
Model merging
Model annotation
12. Model weaving is a generic operation that establishes fine-
grained correspondences between model elements*
Each correspondence defines associations between elements
from different models
According to the everything-is-a-model principle in MDE:
models = models, metamodels, transformations,
weaving models, etc.
* FABRO, M. D. D., BZIVIN, J., JOUAULT, F., AND VALDURIEZ, P. Applying generic
model management to data mapping. In Proceedings of the Journes Bases de Donnes
Avances (BDA05) (2005).
13. Weaving models are special kinds of models that link together
other models
In general a weaving model contains a set of links between elements
of a model and elements of another model
Linked models are called woven models
14. Weaving models conform to a weaving metamodel
A weaving metamodel specifies the types of links that can be
established between woven models
15. The operation of automatically creating a weaving model
If we consider two woven models, the matching operation can
be seen as a function
match : mm1 X mm2 WMM
Examples of matching policies:
• name similarity (eg. via edit distance)
• structural similarity
16. AMW, the Atlas Model Weaver*, is a platform that manages
weaving models
AMW is part of the AMMA** platform, and it is being developed
by the ATLAS group, INRIA
It provides:
• an EMF-based implementation of weaving model
• an extensible GUI to create & manage weaving models
• a core weaving metamodel
* DIDONET DEL FABRO M., B´E ZIVIN J., JOUAULT F. AND BRETON E. AND
GUELTAS G. AMW: a generic model weaver. In Proc. of 1re Journe sur l’Ingnierie
Dirige par les Modles, Paris, France. pp 105-114 (2005).
** http://wiki.eclipse.org/index.php/AMMA
17. Weaving Tools
Woven Woven
model model
Projects Weaving
Model
Weaving
properties
18. The core weaving metamodel enables to create links between
model elements
It can be extended to add other mapping semantics
there is the possibility of creating variable mapping languages
dedicated to specific application requirements
19. Every element in a WM
has a name & description
The root
element
Weaving Links
of a WM
(can be nested)
Identify the
woven models
The type of elements
that are linked
Contain the identifiers
of the woven elements
20. Weaving metamodel extensions must either:
• extend the core WMM
• extend other weaving extensions
WMM extensions can be arranged hierarchically
The following classes of the core metamodel can be extended:
Wmodel
WModelRef
WElementRef
Wlink
WLinkEnd
WElementRef