(Papyrus, 2012) and is based on three main
operations:
The automatic detection of the atomic and
composites evolutions for a better
management of their impacts.
The migration operation used to adapt the
models to the new profile version. The
migration should be as automated as possible.
The optimization operation: it consists in
improving the models in order to give a better
representation of the system (i.e. to improve
the model meaning). This operation is semi-
automated by the fact that the alerts and
recommendations are processed in interaction
with the model designer.
This paper is organized as follows: section 2
presents some existing tools, technics and our
approach positions. Section 3 gives a classification
of the profile evolutions. Section 4 details the
adaptation process in P²E tool on an illustrating
example. Finally, section 5 concludes the paper and
put some future research directions forward.
2 EXISTING TOOLS
Existing tools consider the evolutions when the
abstract syntax is described as a metamodel. None of
them treat the case of evolution of UML profiles.
Nevertheless, we studied how adaptable they could
be for this use. We evaluate these tools according to
four criteria that interest us:
- The differences between two metamodel
versions: are they collected during the evolution
or a posteriori of the evolution?
- What is the role of the model designer in the
approach?
- What kind of changes treats the tool (atomic or
composite)?
- Do they propose a classification of the changes?
Hermandosfer et al. proposed a tool called
COPE (Hermandosfer et al., 2008). This system
records all the atomic changes detected during a
metamodel evolution and attaches to each atomic
change a migration operation. This migration
operation is specific to a change and specified
programmatically by the metamodel designer. By
the fact that COPE treats the changes directly after
the detection, it doesn’t have interest to classify
these changes. So, it doesn’t propose a classification
of changes impact. Our approach is dedicated to
models designers who do not participate to the
profile evolution but only have the different profile
versions. So, COPE is not adapted to our goal.
Cicchetti et al. propose in (Cicchetti et al., 2008)
a tool which is based on two transformations
execution. The first transformation consists in
transforming the metamodel as an input to a
difference metamodel. By using this difference
metamodel, the metamodel designer (who may be
the model designer as well) specifies a difference
model (containing all the changes between two
versions of the same metamodel). From this model,
the second transformation generates the
corresponding migration transformation. Cicchetti et
al. do not define a classification of the obtained
changes but reuse the classification of Grushko et al.
As for (Hermandosfer et al., 2008), this approach
only treats atomic changes while we focus on all
kind of changes (composites or atomics).
Furthermore, our tool uses a difference model
automatically obtained, while in (Cicchetti et al.,
2008) they need a manual specification of
differences. The metamodel designer should be able
to identify the differences between two metamodel
versions and then to specify them; but it is not
systematically the case.
Levendovszky et al. in (Levendovszky et al.,
2010) define a language called Model Change
Language (MCL). Using this language, the
metamodel designer (who is also the model
designer) manually defines the rules that map the
matching concepts between two metamodel
versions. The difference detection here corresponds
to the establishment of these mapping rules. The
migration tool uses an algorithm specified by the
designer as input. It interprets the rules set and
executes them. The approach doesn’t propose a
difference model or a classification step. This
approach is not adapted to our goal; we want to have
the most automated process to reduce as much as
possible the models designer intervention.
Grushko et al. (Grushko et al., 2007) focused on
the management of Ecore-based metamodel. Their
migration tool uses the ChangeRecorder facility in
the EMF tool set to detect atomic changes between
two versions of the metamodel. Their migration tool
then generates a model migration in the Epsilon
Transformation Language (ETL). But, the migration
model is only generated for renaming changes. For
other changes, the metamodel designer has to
manually specify the appropriate transformation.
We were interested in the classification proposed in
(Grushko et al., 2007) that classifies the changes
according to their impact on models (which is also
our goal). Its decomposition defines three categories:
Non-breaking change (“does not require any
ICSOFT 2012 - 7th International Conference on Software Paradigm Trends
212