In Model-Driven Engineering (MDE) metamodels play a key role since they underpin the specification of different kinds of modeling artifacts, and the development of a wide range of model management tools. Consequently, when a metamodel is changed modelers and developers have to deal with the induced coupled evolutions i.e., adapting all those artifacts that might have been affected by the operated meta- model changes. Over the last years, several approaches have been proposed to deal with the coupled evolution problem, even though the treatment of changes is still a time consum- ing and error-prone activity. In this paper we propose an ap- proach supporting users during the adaptation steps that can- not be fully automated. The approach has been implemented by extending the EMFMigrate language and by exploiting the user input facility of the Epsilon Object Language. The approach has been applied to cope with the coupled evolu- tion of metamodels and model-to-text transformations.
Supporting Users to Manage Breaking and Unresolvable Changes in Coupled Evolution
1. Dipartimento di Ingegneria e Scienze
Università degli Studi dell’Aquila
dell’Informazione e Matematica
Supporting Users to Manage
Breaking and Unresolvable
Changes in Coupled Evolution
Alfonso Pierantonio
joint work with
Davide Di Ruscio, Juri Di
Rocco, Ludovico Iovino
2. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
2
Introduction
Metamodels play a key role in any metamodeling
ecosystem since they are at the core of a wide
range of modeling artifacts.
Metamodel
3. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
3
Introduction
«Between 50% and 80% of the overall cost [in sw
projects] are spent on evolution»
[S. Ducasse: keynote@SLE’15 today!]
4. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
4
Introduction
«Between 50% and 80% of the overall cost [in sw
projects] are spent on evolution»
[S. Ducasse: keynote@SLE’15 today!]
5. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
5
Introduction
«Between 50% and 80% of the overall cost [in sw
projects] are spent on evolution»
[S. Ducasse: keynote@SLE’15 today!]
Similarly to software metamodels evolves as well:
however whenever a metamodel changes other
artifacts must be consequently adapted!
All the artifacts in the ecosystem, including models,
model transformations, textual and graphical editors,
and code generators, are affected.
Metamodels are easily locked in!
6. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
6
Introduction
Metamodel changes can be classified as
– non-breaking (NBC)
– breaking and resolvable (BRC)
– breaking and unresolvable (BUC)
depending on their impact and on the kind of artifact.
In the last case, user intervention is important to
provide additional information, which cannot be
inferred or derived.
7. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
7
Existing approaches (selection)
Model co-evolution:
[1] A. Cicchetti, D. Di Ruscio, R. Eramo, and A. Pierantonio. Automating co-evolution in model-driven
engineering. In Procs.of EDOC 2008, pages 222–231. IEEE Computer So- ciety, 2008.
[2] F. Mantz, Y. Lamo, and G. Taentzer. Co-transformation of type and instance graphs supporting
merging of types with retyping. ECEASST, (61), 2013.
[3] F. Mantz, G. Taentzer, and Y. Lamo. Customizing model migrations by rule schemes. In Procs.
IWPSE’13, pages 1– 10. ACM, 2013.
Model transformations co-evolution:
[4] J. Di Rocco, D. Di Ruscio, L. Iovino, and A. Pierantonio. Dealing with the coupled evolution of
metamodels and model- to-text transformations. In ME’14 at MoDELS 2014, 2014.
[5] Levendovszky, D. Balasubramanian, A. Narayanan, and G. Karsai. A Novel Approach to Semi-
automated Evolution of DSML Model Transformation. In Procs. SLE’10, volume 5969 of LNCS, pages
23–41. Springer, 2010.
Other kind of artifacts co-evolution:
[6] D. Di Ruscio, L. Iovino, and A. Pierantonio. Managing the coupled evolution of metamodels and
textual concrete syntax specifications. In SEAA’13, pages 114–121, Sept 2013.
[7] A. Kusel, J. Etzlstorfer, E. Kapsammer, P. Lange, W. Rets- chitzegger, J. Schoenboeck, W.
Schwinger, and M. Wimmer. A Systematic Taxonomy of Metamodel Evolution Impacts on OCL
Expressions. In ME’14 at MoDELS 2014, Sept. 2014.
8. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
8
Existing approaches
All these approaches aim at automating the
management of non-breaking, and breaking and
resolvable changes.
The management of breaking and unresolvable
changes is still a challenging activity with little support
– they are usually managed by applying default migration
actions according to predefined heuristics with no control
at all
9. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
9
Proposal
In order to overcome the uncertainty and/or lack of
information during the automated consistency
restoring process, we propose a human-in-loop
approach:
– The user is interactively asked to contribute with the
missing information in order to complete the adaptation
process.
– It is a variability management process or a way for
managing forms of known uncertainty.
10. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
10
Motivating scenario
11. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
11
Motivating scenario
12. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
12
Motivating scenario
13. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
13
Motivating scenario
14. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
14
Motivating scenario
15. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
15
Motivating scenario
16. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
16
Metamodel Evolution
Applied changes in the motivating scenario:
1. split attribute
2. change reference type
3. extract metaclass
evolution
1
1
2
2
3
3
17. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
17
1. Split attribute co-evolution
The expression [binding.url] has to be migrated,
however it is uncertainty whether to be replaced by
– [binding.requestUrl], or
– [binding.requestCookies]
Metamodel evolution Corrupted excerpt of the code generator
18. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
18
2. Change Reference Type co-evolution
The template generateViewData cannot be invoked
on elements with type Data anymore (because of the
reference type change)
Metamodel evolution
Corrupted excerpt of the code generator
19. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
19
Extract Metaclass co-evolution
The expression [aTemplate.style] cannot be
evaluated anymore, consistency can be restored
with:
– [aTemplate.style.src]
– [aTemplate.style.href]
Metamodel evolution
Corrupted excerpt of the code generator
20. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
20
Proposed Adaptation Approach
The adaptation process relies on an extension of
EMFMigrate realized by means of the epsilon
platform
D. Wagelaar, L. Iovino, D. Ruscio, and A. Pierantonio. Translational semantics of a co-evolution specific language with
the EMF transformation virtual machine. In Theory and Practice of Model Transformations, ICMT 2012, LNCS 7307,
192–207.
21. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
21
Proposed Adaptation Approach
The adaptation flow is formalized by the following sequence
diagram
22. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
22
Proposed Adaptation Approach
EMFMigrate is a co-evolution language for EMF-
based artifact migration
– It consists of migration rules applied on a given artifact A
conforming to a metamodel MM
– EMFMigrate has been extended to generate Epsilon
programs
23. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
23
Migration Programs
A ANT script is generated together with the Epsilon
transformation to orchestrate the following
Whenever necessary the user is prompt for
necessary information, which permits to resolve
uncertainty points
24. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
24
1. Split attribute co-evolution
The expression [binding.url] has to be migrated,
however it is uncertainty whether to be replaced by
– [binding.requestUrl], or
– [binding.requestCookies]
Metamodel evolution Corrupted excerpt of the code generator
25. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
25
2. Change Reference Type co-evolution
The template generateViewData cannot be invoked
on elements with type Data anymore (because of the
reference type change)
Metamodel evolution
Corrupted excerpt of the code generator
26. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
26
Extract Metaclass co-evolution
The expression [aTemplate.style] cannot be
evaluated anymore, consistency can be restored
with:
– [aTemplate.style.src]
– [aTemplate.style.href]
Metamodel evolution
Corrupted excerpt of the code generator
27. Workshop on Domain-Specific Modeling – 27 OCT 2015, Pittsburgh, Pennsylvania, United States
27
Conclusions
An approach the management of breaking and
unresolvable changes is proposed.
It consists of
– generating all possible alternatives (a model with variability) and
– Interactively resolving the variability
It has been demonstrated on Acceleo templates, however
the approach is mature to be applied to any EMF-based
artifact
Future work includes a off-the-shelf catalog of migrators
associated to the refactorings catalog in
http://www.metamodelrefactoring.org/
RouterBinding.url -> RouterBinding.(requestURL + requestCookie)
change ref type data: Data -> Attribute
da attributo in Template, style diventa reference ad una nuova metaclasse Style