<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Automated Metamodel/Model Co-Evolution using a Multi-Objective Optimization Approach</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Wael Kessentini GEODES-DIRO University of Montreal</institution>
          ,
          <country country="CA">Canada</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-Metamodels undergo many changes during the evolution of several software modeling languages and projects. As a consequence, models have to be updated for preserving their conformance with the new metamodel versions. A common practice is to manually define rules for each metamodel evolution to co-evolve the corresponding models. In this paper, we propose a generic automated approach for the metamodel/model coevolution. In our approach, we view the co-evolution as a multiobjective optimization problem, and we solve it using the NSGAII algorithm. Our algorithm search for solutions that minimize (1) the non-conformities with the new metamodel version, (2) the changes to the existing models, and (3) the loss of information. We successfully evaluated our approach on the evolution of the well-known UML state machine metamodel. Index Terms-Metamodel/model co-evolution, Model migration, Coupled evolution, NSGA-II</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        Model-Driven Engineering (MDE) considers models as
first-class artifacts during the software lifecycle [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Available
techniques, approaches, and tools for MDE are growing and
they support a huge variety of activities, such as model
creation, model transformation, and code generation. As in
MDE the modeling languages are explicitly modeled and
therefore, as any other model changeable, the evolution of
models often depends on the evolution of their metamodels.
Metamodels are subject to many changes during the evolution
of software modeling languages and language maintenance
projects, especially when it comes to domain-specific
modeling languages [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Thus, models have to be updated for
preserving their conformance with the new metamodel version.
      </p>
      <p>The remainder of this paper is structured as follows.
Section II provides the background of model co-evolution and
demonstrates the challenges addressed in this paper based on a
motivating example. In Section III, we give an overview of our
proposal and explain how we adapted the NSGA-II algorithm
to find optimal new models. Section IV discusses the design
and results of the empirical evaluation of our approach. After
surveying related work in Section V, we conclude with some
pointers to future work in Section VI.</p>
    </sec>
    <sec id="sec-2">
      <title>II. MOTIVATINGEXAMPLE</title>
      <p>This section introduces the background, namely the basic
notions of metamodels and models, the conformsTo
relationship, as well as an example to demonstrate the challenges one
is facing when dealing with metamodel/model co-evolution.</p>
      <sec id="sec-2-1">
        <title>A. Background: Metamodels and Models</title>
        <p>
          Metamodels are the means in MDE to specify the abstract
syntax of modeling languages [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. For defining metamodels,
there are meta-modeling standards (such as MOF, Ecore)
available which are mostly based on a core subset of the UML
class diagrams, i.e., there are classes, attributes, and references
used to specify the modeling languages, i.e., the intentional
description of all possible models of a given language. These
metamodels are instantiated to produce models which are in
essence object graphs, i.e., consisting of objects (instances of
classes) representing the modeling elements, object slots for
storing values (instances of attributes), and links between the
objects (instances of references), which have to conform to
the UML class diagram describing the metamodel. Therefore,
the abstract syntax of models is often represented in terms of
UML object diagrams. In order for a model to conform to
its metamodel, there have to be several constraints fulfilled.
These constraints are normally referred to as conformsTo
relationship [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ].
        </p>
        <p>To make the conformsTo relationship more concrete, we give
an excerpt of the constraints concerning objects in models
and their relationship to classes in metamodels. Objects are
instantiated from classes. Thus for each referred type of an
object in a given model, a corresponding class must exist in
the metamodel (name equivalence) and the corresponding class
must not be abstract. Such constraints may be formulated in
in the following way:
context M!Object:
inv typeExists:
MM!Class.allInstances() -&gt;
exists(c|c.name = self.type and not c.abstract)</p>
        <p>An example metamodel and corresponding model is shown
in Figure 2a and Figure 1a, respectively. This simple language
allows to define simple state machines consisting of states
having a name and predecessors as well as successor states.</p>
      </sec>
      <sec id="sec-2-2">
        <title>B. Metamodel/Model Co-Evolution: A Motivating Example</title>
        <p>
          While some metamodels, such as UML, are standardized
and changed rarely, metamodels for Domain-Specific
Modeling Languages (DSMLs) [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], representing concepts within a
certain domain, are frequently subject to change [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ].
        </p>
        <p>
          As most of the current metamodeling frameworks are
currently strict in the sense that only fully conformed models can
be used, metamodel evolution requires to co-evolve the already
existing model instances, which may no longer conform to the
new metamodel version. In such cases, model migration scripts
have to be provided in current tools [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], to re-establish the
conformance between models and their metamodels. However,
finding the best migration scripts to co-evolve the models is
left to the user of such tools or default migration scripts are
provided. However, exploring the actual co-evolution space is
still an open challenge.
        </p>
        <p>Figure 2 shows an example of a simplified metamodel
evolution, based on the simple State Machine language. The
metamodel evolution comprises three steps: extract sub-classes
for State class resulting in InitialState, SimpleState, and
FinalState, make class State abstract, and push-down, create
and refine the cardinalities of the predecessor/successor
references for the subclasses. This results in the fact that besides
other constraints violations, the constraint shown previously
is violated when considering the initial model shown in
Figure 1a and its conformance to the new metamodel version
in Figure 2b.</p>
        <p>To re-establish conformance for the given example, assume
for now that only two operations on models are used in
this context. Non-conforming objects may either be retyped
(reclassified as instances of the concrete classes) or deleted.
Thus, the potential solution space for retyping or deleting
non-conforming elements contains (c + 1)O solutions (with
c=number of candidate classes + 1 for deletion, o=number of
nonconforming objects).</p>
        <p>This means, in our given example, we would end up with 64
possible co-evolutions while one (probably the preferred one)
of these is shown in Figure 1b. This one seems the preferred
one due to several reasons such as the number of changes
introduced (e.g., loss of information by deleting some model
elements) and the number violated conformance constraints.</p>
        <p>To this end, we propose in this paper to consider the model
co-evolution problem as a multi-objective one to find a balance
between the consistency with the previous version of the model
and the conformance to the new metamodel.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>III. MODEL CO-EVOLUTION: A MULTI-OBJECTIVE PROBLEM</title>
      <sec id="sec-3-1">
        <title>A. Overview</title>
        <p>The goal of our approach is to derive a tentative new
version, of an existing model, that conforms to a new version
of its original metamodel. We view this derivation as a search
in the space of all possible sequences of modifications of
the original models. The search is guided by three objectives,
which aims at minimizing (1) the number of non conformities
with the new version of the metamodel, (2) the number of the
changes to the initial model and (3) the loss of information
after modifying the initial model. In other words, the generated
new revised model has to be similar as much as possible to
the initial model while conforming to the new metamodel
version. Therefore, we implemented our idea in the form
of a multi-objective optimization algorithm that computes
an optimal sequence of edit operations representing the best
trade-off between the three objectives. More concretely, our
algorithm takes as inputs the initial and revised versions of the
metamodel, a list of models to update and a list of possible
edit operations to apply to the models (retype and delete). It
generates as output a sequence of edit operations that should
be applied to the initial version of the model to generate a
new version compatible with the new metamodel version.</p>
        <p>
          The space of all possible sequences of editing operations
can be very large, especially when dealing with large models.
An exhaustive search method could be inefficient in this cases.
Alternatively, we use a heuristic search with a multi-objective
evolutionary algorithm, NSGA-II [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. In the next paragraphs,
we describe the adaptation of the generic NSGA-II algorithm
to the co-evolution problem.
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>B. Adapting NSGA-II for Model Co-Evolution</title>
        <p>
          NSGA-II [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] is one of the most-used multi-objective
evolutionary algorithms (EAs) in tackling real-world problems,
including software engineering ones [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ], [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] to find
tradeoffs between different objectives. It begins by generating an
offspring population from a parent one by means of variation
operators (crossover and mutation) such that both populations
have the same size. After that, it ranks the merged population
(parents and children) into several non-dominance layers,
called fronts.
        </p>
        <p>Non-dominated solutions are assigned a rank of 1 and
constitute the first layer (Pareto front). After removing solutions
of the first layer, the non-dominated solutions form the second
layer and so on and so forth until no non-dominated solutions
remain. After assigning solutions to fronts, each solution is
assigned a diversity score, called crowding distance, inside
each front. This distance defines a partial ranking inside the
front which aims, later, at favoring solutions that are far from
the others in terms of objective values. A solution is then
characterized by its layer and its crowding distance inside the
layer.</p>
        <p>To finish an iteration of the evolution, we perform the
environmental selection to form the parent population for the
next generation by picking half of the solutions. The solutions
are included iteratively from the Pareto front to the lowest
layers. If half of the population is reached inside a front
than the crowding distance is used to complete the parent
population.</p>
        <p>1) Problem formulation: The model co-evolution problem
involves searching for the best sequence of edit operations to
apply among the set of possible ones. A good solution s is a
sequence of edit operations to apply to an initial model with
the objectives of minimizing the number of non-conformities
nvc with the new metamodel version, the number of changes
nbOp to the initial model, and the loss of information disIm
between the initial and the evolved models. Formally:
8&gt;M inimize f1(s) = nvc(s)
&lt;</p>
        <p>M inimize f2(s) = nbOp(s)
&gt;:M inimize f1(s) = disIm(s)</p>
        <p>The first fitness function nvc(s) counts the number of
violation constraints w.r.t. the evolved metamodel after applying
a sequence s of edit operations.</p>
        <p>
          We used in our experiments the implementation constraints
proposed by Schoenboeck et al. [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
        </p>
        <p>For the two remaining objectives, which aims at minimizing
the changes to the initial models, we used simple
approximations. nbOp(s) is simply the number of editing operations in a
sequence s. disIm(s) measure the difference in size between
the initial Mi and the revised Mr models. If the difference
is negative or null then disIm(s) = 0 (no information loss).
Otherwise, disIm(s) = size(Mi) size(Mr).</p>
        <p>2) NSGA-II Application : To adapt NSGA-II to our
problem, it is necessary to define (1) how to represent a
coevolution solution, (2) how to derive new solutions from
existing ones, and (3) how to evaluate a solution.</p>
        <p>Solution representation. We mentioned earlier that a
solution is a sequence of edit operations to be applied to the model
to evolve. This can be seen as an inplace transformation.
However, as we are dealing with two versions of a metamodel, we
decided to represent a solution as an outplace transformation.
Rather than editing the initial model, we create a new model.
Thus, we only have creation operations, but not retyping ones.
Although we are not supposed to delete elements directly
in the initial model, we use deletion operations to “repair”
candidate solutions during the evolution, i.e., deleting an
element that was previously created. A candidate solution
(individual) is then represented with a vector whose elements
are the creation/deletion operations to create the new version
of a model from the initial one. Each edit operation specifies
the model element to which it is applied. Consequently, vectors
encoding different solution candidates may have different sizes
depending on the number of operations in the sequences.</p>
        <p>The proposed algorithm first generates a population of
random operation sequences (solution candidates), which are
used in the subsequent iterations to produce new solutions.</p>
        <p>
          Solution derivation. In a search algorithm, the variation
operators play a key role of moving within the search space
with the aim of driving the search towards better solutions.
In each iteration, we select population size=2 individuals
from the population popi to form population popi+1. These
(population size=2) selected individuals will produce other
(population size=2) new individuals using a crossover and
mutation operators. To select parents for reproduction, we used
the principle of the roulette wheel [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. According to this
principle, the probability to select an individual for crossover
and mutation is directly proportional to its relative fitness in
the population.
        </p>
        <p>We use a one-point crossover operator. For our problem,
this operator split each parent operation sequence S1 (resp.
S2) into two subsequences fS11; S12g (resp. fS21; S22g)
according to a cut position k. Then, it combines the subsequences
to create to sibling solutions fS11; S22g and fS21; S12g. Our
crossover operator could create a child sequence that contains
conflict operations. In this case, it will be penalized by the
component nvc of the fitness function.</p>
        <p>The mutation operator consists in randomly selecting one
or two operations in a solution vector and modifying them.
Two modifications are used: (1) swapping the two selected
operations in the sequence or (2) replacing an operation by a
randomly created one.</p>
        <p>Solution evaluation. As mentioned in the problem
formulation, a solution is evaluated according to three objectives.
Thus, for each solution s, we calculate nvc(s), nbOp(s),
and disIm(s). These values are used later to establish the
dominance relation between solutions.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>IV. VALIDATION</title>
      <sec id="sec-4-1">
        <title>A. Research Questions</title>
        <p>
          The validation study was conducted to quantitatively and
qualitatively assess the completeness and correctness of our
co-evolution approach when applied to realistic settings and
to compare its performance with an existing deterministic
approach [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. More specifically, we aimed at answering the
following research questions:
        </p>
        <p>RQ1: To what extend the obtained results are attributable
to our approach and not to the fact of exploring a large
number of solutions? If a random search, exploring a
same number of solutions as our approach, gives same
or better results, this means that there is no need to use
a metaheuristic search.</p>
        <p>RQ2: To what extent can the proposed multi-objective
approach co-evolve models to make them comply with
a new metamodel version (in terms of correctness and
completeness of proposed edit operations)?</p>
      </sec>
      <sec id="sec-4-2">
        <title>B. Experimental Setting</title>
      </sec>
      <sec id="sec-4-3">
        <title>1) Studied Meta-models and Models: To answer the four</title>
        <p>
          research questions, we considered the evolution of UML State
Machine Metamodel from version 1.4 to 2.0 [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. Therefore,
the two versions were manually analyzed to determine the
actually applied changes. Additionally, we collected from
previous work [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] all the edit operation types that can be
applied to models for this metamodel evolution. We also
selected 10 models from version 1.4 and evolved them manually
to version 2.0, according to the collected edit operation types.
The manually defined sequences for the selected models are
used as baseline sequences for the calculation of precision and
recall scores.
        </p>
        <p>2) Evaluation Metrics: To compare our approach with the
other alternatives, we use precision and recall measures. For
an operation sequence corresponding to a given solution,
precision indicates the fraction of correctly edit operations
(w.r.t. the baseline sequence) among the set of all operations
in the sequence. Recall is the fraction of correctly identified
edit operations among the set of all expected operations.
Roughly speaking, the precision represents the probability that
a detected operation is correct whereas the recall is seen as
the probability that an expected operation is detected. Both
values range from 0 to 1, with higher values indicating good
solutions.</p>
        <p>The baseline sequences do not represent unique evolution
solutions for the used models. Indeed, more than one
alternative can be possible to evolve a given model. Thus, in
addition to automatic precision (AC-PR) and recall (AC-RE),
we calculated a manual precision (MC). For manual precision,
rather than comparing automatically the produced sequence
with the expected one, we checked operation by operation if
they are correct w.r.t. the evolved model.</p>
        <p>
          3) Statistical Tests: Since the used metaheuristic algorithms
(NSGA-II and GA) are stochastic by nature, different
executions may produce different results for the same model with the
same execution parameters. For this reason, our experimental
study is performed based on 30 independent simulation runs
and the obtained results by the alternative approaches are
compared using the Wilcoxon rank sum test [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] with a 95%
confidence level ( = 5%).
        </p>
        <p>4) Parameter Settings: Parameter setting has a significant
influence on the performance of a search algorithm. We
tried different values to set the execution parameters. For
the reported results, we used crossover probability = 0.8,
mutation probability = 0.5, population size = 100, number of
iteration = 1000. The same parameters were used for the
multiand mono-objective algorithms. For the random search, we
generated 1000 x 100 solutions and took the one with the best
fitness. This ensures that the tree alternatives (multi-objective,
mono-objective, and random) explore the same number of
solutions to have a fair comparison.</p>
      </sec>
      <sec id="sec-4-4">
        <title>C. Results</title>
        <p>Results for RQ1. We do not dwell long in answering
the first research question (RQ1) that involves comparing our
approach based on NSGA-II with random search. Figure 3
confirm that using NSGA-II (as well as the GA and the
deterministic algorithm) produce results by far better (and
statistically significant) than just randomly exploring a
comparable number of solutions. NSGA-II has precisions (AC-PR
and MC) and recall (AC-RE) more than twice higher than
the ones of random search as shown in Figure 3 ( 85% vs
40%).</p>
        <p>To formally answer RQ1, we state that there is an empirical
evidence that the quality of the co-evolution results obtained
are due to our multi-objective approach and not to the number
of explored solutions.</p>
        <p>Results for RQ2. We evaluated the averages AC-PR,
ACRE and MC scores for non-dominated co-evolution solutions
proposed by NSGA-II.</p>
        <p>For the precision and recall, Figure 4 shows that the
produced solutions using NSGA-II are similar to the baseline
ones with more than 80% of precision and recall (AC-PR and
AC-RE) in general. For four models (SM1, SM2, SM5, and
SM8), we obtained more than 90% for the recall. From another
perspective, we did not observe a correlation between the size
or the number of operations of the models and the precision
and recall. For example, we obtained higher precision and
recall for SM7 (40 elements and 82 operations) than for
SM2 (17 elements and 38 operations). This means that the
correctness of the results is not degraded as the size of the
models or the size of necessary modifications increase. For the
manual precision, the results are even better. Except for SM2
and SM9 all the MCs are higher than 90% with a perfect score
for SM8. Here again, the scalability in terms of correctness is
valid for MC. Indeed MC increases from 86% (SM2) to 94%
(SM10) while the size of the model (resp. operation sequence)
goes from 17 to 44 (resp. 38 to 94).</p>
        <p>To formally answer RQ2, we state that the multi-objective
co-evolution approach allows to migrate models with higher
precision and recall and with a limited number of edit
operations. This achieved without any explicit knowledge on the
specific changes that occurred on the metamodel.</p>
      </sec>
      <sec id="sec-4-5">
        <title>D. Threats to Validity</title>
        <p>
          There are several validity threats to the design of this study.
The first threat is related to the parameter tuning of our
multi-objective algorithm. Further experiments are required to
evaluate the impact of the parameters setting on the quality
of the solutions. A second threat is related to our choice
of taking the average of the three objective function in the
mono-objective algorithms. Other forms of combination, e.g.,
weighted average, may give different results. Further
experiments are required to compare our approach with different
settings of the mono-objective algorithm. In this study, we
performed our experiments on a single evolution scenario
(state machine metamodel from v1.4 to v2.0). Future
replications of this study are necessary to confirm our findings, in
particular, with industrial settings. In addition, the comparison
of the performance of NSGA-II to other existing approaches
is limited to the approach of Wimmer et al. [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. We plan
to conduct other comparisons by requesting the tools from the
authors or by re-implementing the state-of-the-art approaches.
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>V. RELATED WORK</title>
      <p>
        Several approaches emerged which aim to tackle
metamodel/model co-evolution from different angles using different
techniques (cf. e.g., [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] for an overview).
Metamodel/model coevolution approaches can be classified in three
categories [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]:
      </p>
      <p>
        Manual-specification approaches in which the migration
strategy is encoded manually by the modeler using
general purpose programming language (e.g. Java), or
transformation languages (e.g ATL, QVT) [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
Metamodel-matching techniques used to infer a migration
strategy from the difference between the original
metamodel and the evolved metamodel. [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
Operator-based approaches that records the metamodel
changes as a sequence of co-evolutionary operations used
later to infer a complete migration strategy [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]
[
        <xref ref-type="bibr" rid="ref24">24</xref>
        ].
      </p>
      <p>
        None of the existing approaches allows the exploration of
different possible co-evolution strategies. On the contrary, only
one specific strategy is either automatically derived or
manually developed from the calculated set of metamodel changes.
The only work we are aware of discussing metamodel/model
co-evolution using some search-based techniques is [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]. In
this paper, they authors discuss the idea of using
searchbased algorithms to reason about possible model changes, but
in contrast to our approach, they rely again on metamodel
differences which have to be computed (probably using a
search-based approach) before the co-evolution of models can
be performed. To the best of our knowledge, this approach
is unique compared to previous approaches and outperforms
logic-based approaches for repairing models [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
Furthermore, we are not dependent on the quality of metamodel
change detection algorithms.
      </p>
    </sec>
    <sec id="sec-6">
      <title>VI. CONCLUSION</title>
      <p>This paper proposes a multi-objective approach for the
coevolution of models by finding the best operation sequence
of changes applied to the initial model that generate the
target model conforming as much as possible to the evolved
metamodel. Therefore, a generated revised model is necessary
that minimizes the number of inconsistencies (with the new
metamodel), the number of operations and the dissimilarity
with the initial model. As the search space in terms of all
possible sequences of operations is potentially huge and we
have three objectives to optimize, we considered in this paper
the co-evolution process as a multi-objective optimization
problem.</p>
      <p>We evaluated our proposal with a metamodel evolution
scenario concerning a state machine modeling language. The
experiment results indicate clearly that the best generated
models have a precision and recall of more than 80% and
a manual precision of more than 90%. Furthermore, the
results provide strong evidence to support the claim that our
proposal outperforms both a mono-objective and deterministic
approaches for model co-evolution.</p>
      <p>We are working now on larger metamodels and models
with larger lists of operations to apply. This is necessary to
investigate more deeply the applicability of the approach in
practice, but also to study the performance of our approach
when dealing with very large models.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>J.</given-names>
            <surname>Be</surname>
          </string-name>
          ´zivin, “
          <article-title>On the unification power of models,” Software and System Modeling</article-title>
          , vol.
          <volume>4</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>171</fpage>
          -
          <lpage>188</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>B.</given-names>
            <surname>Meyers</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          , “
          <article-title>A framework for evolution of modelling languages</article-title>
          ,
          <source>” Sci. Comput. Program.</source>
          , vol.
          <volume>76</volume>
          , no.
          <issue>12</issue>
          , pp.
          <fpage>1223</fpage>
          -
          <lpage>1246</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>T.</surname>
          </string-name>
          <article-title>K u¨hne, “Matters of (Meta-</article-title>
          )
          <string-name>
            <surname>Modeling</surname>
          </string-name>
          ,”
          <source>Software and Systems Modeling</source>
          , vol.
          <volume>5</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>369</fpage>
          -
          <lpage>385</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>J.</given-names>
            <surname>Schoenboeck</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kusel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Etzlstorfer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Kapsammer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Schwinger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Wischenbart</surname>
          </string-name>
          , “
          <article-title>CARE: A Constraint-based Approach for Re-establishing Conformance-relationships,”</article-title>
          <source>in Proceedings of the Tenth Asia-Pacific Conference on Conceptual Modelling, ser. APCCM '14</source>
          ,
          <year>2014</year>
          , pp.
          <fpage>19</fpage>
          -
          <lpage>28</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>L.</given-names>
            <surname>Iovino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Pierantonio</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Malavolta</surname>
          </string-name>
          , “
          <article-title>On the Impact Significance of Metamodel Evolution in MDE,”</article-title>
          <source>Journal of Object Technology</source>
          , vol.
          <volume>11</volume>
          , no.
          <issue>3</issue>
          , pp.
          <volume>3</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>33</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>J.</given-names>
            <surname>Gray</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-P.</given-names>
            <surname>Tolvanen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kelly</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gokhale</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Neema</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Sprinkle</surname>
          </string-name>
          ,
          <string-name>
            <surname>Domain-Specific</surname>
            <given-names>Modeling</given-names>
          </string-name>
          ,
          <year>2007</year>
          , ch. 7, pp.
          <fpage>1</fpage>
          -
          <lpage>20</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>M.</given-names>
            <surname>Herrmannsdo</surname>
          </string-name>
          <article-title>¨ rfer, “COPE A Workbench for the Coupled Evolution of Metamodels and Models,” in Software Language Engineering, ser</article-title>
          .
          <source>LNCS</source>
          ,
          <year>2011</year>
          , vol.
          <volume>6563</volume>
          , pp.
          <fpage>286</fpage>
          -
          <lpage>295</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>K.</given-names>
            <surname>Deb</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Agrawal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Pratap</surname>
          </string-name>
          , and T. Meyarivan, “
          <article-title>A Fast Elitist Nondominated Sorting Genetic Algorithm for Multi-objective Optimization: NSGA-II,” ser</article-title>
          .
          <source>Lecture Notes in Computer Science</source>
          ,
          <year>2000</year>
          , vol.
          <year>1917</year>
          , pp.
          <fpage>849</fpage>
          -
          <lpage>858</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Harman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. A.</given-names>
            <surname>Mansouri</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zhang</surname>
          </string-name>
          , “
          <article-title>Search-based software engineering: Trends, techniques and applications</article-title>
          ,
          <source>” ACM Comput. Surv.</source>
          , vol.
          <volume>45</volume>
          , no.
          <issue>1</issue>
          , pp.
          <volume>11</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>11</lpage>
          :
          <fpage>61</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>A.</given-names>
            <surname>Ouni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kessentini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Sahraoui</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Boukadoum</surname>
          </string-name>
          , “
          <article-title>Maintainability defects detection and correction: a multi-objective approach</article-title>
          ,
          <source>” Journal of Automated Software Engineering</source>
          , vol.
          <volume>20</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>47</fpage>
          -
          <lpage>79</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>K.</given-names>
            <surname>Deb</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Gupta</surname>
          </string-name>
          , “
          <article-title>Understanding knee points in bicriteria problems and their implications as preferred solution principles,” Engineering Optimization</article-title>
          , vol.
          <volume>43</volume>
          , no.
          <issue>11</issue>
          , pp.
          <fpage>1175</fpage>
          -
          <lpage>1204</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kusel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Schoenboeck</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Retschitzegger</surname>
          </string-name>
          , and W. Schwinger, “
          <article-title>On using inplace transformations for model coevolution</article-title>
          ,” in MtATL Workshop,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13] http://www.omg.org, Object Management Group, Inc.,
          <source>OMG Unified Modeling Language Specification v1.4 and v2.0.</source>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>A.</given-names>
            <surname>Arcuri</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>Briand</surname>
          </string-name>
          , “
          <article-title>A practical guide for using statistical tests to assess randomized algorithms in software engineering</article-title>
          ,
          <source>” in 33rd International Conference on Software Engineering</source>
          ,
          <year>2011</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>L.</given-names>
            <surname>Rose</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Herrmannsdoerfer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mazanek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Van Gorp</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Buchwald</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Horn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Kalnina</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Koch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Lano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Schtz</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          , “
          <article-title>Graph and model transformation tools for model migration</article-title>
          ,
          <source>” Software and Systems Modeling</source>
          , vol.
          <volume>13</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>323</fpage>
          -
          <lpage>359</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>L. M.</given-names>
            <surname>Rose</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. F.</given-names>
            <surname>Paige</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Kolovos</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F. A. C.</given-names>
            <surname>Polack</surname>
          </string-name>
          , “
          <article-title>An Analysis of Approaches to Model Migration,”</article-title>
          <source>in Proc. Models</source>
          and
          <string-name>
            <surname>Evolution (MoDSE-MCCM</surname>
          </string-name>
          )
          <article-title>Workshop</article-title>
          , 12th ACM/IEEE International Conference on Model Driven Engineering,
          <source>Languages and Systems</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>A.</given-names>
            <surname>Narayanan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Levendovszky</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Balasubramanian</surname>
          </string-name>
          , and G. Karsai, “
          <article-title>Automatic domain model migration to manage metamodel evolution,” in Model Driven Engineering Languages and Systems, ser</article-title>
          .
          <source>LNCS</source>
          ,
          <year>2009</year>
          , vol.
          <volume>5795</volume>
          , pp.
          <fpage>706</fpage>
          -
          <lpage>711</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>L. M.</given-names>
            <surname>Rose</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Kolovos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. F.</given-names>
            <surname>Paige</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F. A. C.</given-names>
            <surname>Polack</surname>
          </string-name>
          , “
          <article-title>Model migration with Epsilon Flock</article-title>
          ,” in International Conference on Model Transformation, volume
          <volume>6142</volume>
          <source>of LNCS</source>
          ,
          <year>2010</year>
          , pp.
          <fpage>184</fpage>
          -
          <lpage>198</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>B.</given-names>
            <surname>Meyers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cicchetti</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Sprinkle</surname>
          </string-name>
          , “
          <article-title>A generic inplace transformation-based approach to structured model co-evolution,”</article-title>
          <source>in 4th Int. Workshop on Multi-Paradigm Modeling @ MoDELS'10</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>K.</given-names>
            <surname>Garce´s</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Jouault</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Cointe</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.</surname>
          </string-name>
          <article-title>Be´zivin, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Emninria</surname>
          </string-name>
          , “
          <article-title>Managing model adaptation by precise detection of metamodel changes,”</article-title>
          <source>in ECMDA-FA09: European Conference on Model Driven ArchitectureFoundations and Applications</source>
          ,
          <year>2009</year>
          , pp.
          <fpage>34</fpage>
          -
          <lpage>49</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>A.</given-names>
            <surname>Cicchetti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. D.</given-names>
            <surname>Ruscio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Eramo</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Pierantonio</surname>
          </string-name>
          , “
          <article-title>Automating co-evolution in model-driven engineering,” in 12th International Enterprise Distributed Object Computing Conference (EDOC)</article-title>
          ,
          <source>IEEE Computer Society</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>M.</given-names>
            <surname>Herrmannsdoerfer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Benz</surname>
          </string-name>
          , and E. Juergens, “
          <article-title>Cope - automating coupled evolution of metamodels and models,” in ECOOP 2009 ObjectOriented Programming</article-title>
          ,
          <year>2009</year>
          , vol.
          <volume>5653</volume>
          , pp.
          <fpage>52</fpage>
          -
          <lpage>76</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>G.</given-names>
            <surname>Wachsmuth</surname>
          </string-name>
          , “
          <article-title>Metamodel adaptation and model co-adaptation,” in ECOOP07</article-title>
          . Volume
          <volume>4609</volume>
          of LNCS., Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Herrmannsd o¨rfer and</article-title>
          G. Wachsmuth, “
          <article-title>Coupled evolution of software metamodels and models</article-title>
          ,”
          <source>in Evolving Software Systems</source>
          ,
          <year>2014</year>
          , pp.
          <fpage>33</fpage>
          -
          <lpage>63</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>J. R.</given-names>
            <surname>Williams</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. F.</given-names>
            <surname>Paige</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F. A. C.</given-names>
            <surname>Polack</surname>
          </string-name>
          , “
          <article-title>Searching for model migration strategies</article-title>
          ,”
          <source>in Proceedings of the 6th International Workshop on Models and Evolution</source>
          ,
          <year>2012</year>
          , pp.
          <fpage>39</fpage>
          -
          <lpage>44</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>