<!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>Co-evolution of Metamodels and Models through Consistent Change Propagation</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Andreas Demuth</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Roberto E. Lopez-Herrejon</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alexander Egyed</string-name>
          <email>alexander.egyedg@jku.at</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Institute for Systems Engineering and Automation Johannes Kepler University (JKU)</institution>
          <addr-line>Linz</addr-line>
          ,
          <country country="AT">Austria</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In Model-Driven Engineering (MDE), metamodels and domain-speci c languages are key artifacts as they are used to de ne syntax and semantics of domain models. However, metamodels are evolving over time, requiring existing domain models to be co-evolved. Though approaches have been proposed for performing such co-evolution automatically, those approaches typically support only speci c metamodel changes. In this paper, we present a vision of co-evolution between metamodels and models through consistent change propagation. The approach addressed co-evolution issues without being limited to speci c metamodels or evolution scenarios. It relies on incremental management of metamodel-based constraints that are used to detect co-evolution failures (i.e., inconsistencies between metamodel and model). After failure detection, the approach automatically generates suggestions for correction (i.e., repairs for inconsistencies). Preliminary validation results are promising as they indicate that the approach computes correct suggestions for model adaptations, and that it scales and can be applied live without interrupting tool users.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        In Model-Driven Development (MDD) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], metamodels are key artifacts that
represent real-world domains. Therefore, they de ne the language of models; that is,
the di erent elements available for modeling along with their interdependencies.
Metamodels thus impose structural and semantical constraints on models [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
Although metamodels are often perceived as static artifacts that do not change,
it has been shown that the opposite is the case: metamodels do evolve over time
for various reasons. For instance, there is a trend for exible design tools with
adaptable metamodels that can be tailored to di erent domains (e.g., [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]).
Another common source for metamodel evolution are refactorings that focus on
improving a metamodel's structure and usability.
      </p>
      <p>
        Co-evolution of models denotes the process of adapting models as a
consequence of metamodel evolution [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ]. This is a non trivial process, and
incorrect co-evolution may cause models to no longer comply with their
metamodels. Several incremental approaches have been proposed to support this
process (e.g., [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]). Unfortunately, proposed solutions are typically limited to speci c
(a) Metamodel.
(b) Model.
metamodels or do not fully support all kinds of possible changes (e.g., restriction
of metaproperty) [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. In particular, existing generic approaches do not take into
account domain-speci c model constraints. Therefore, co-evolution of
metamodels and models remains an open issue.
      </p>
      <p>In this paper, we outline a generic approach that does not try to automate
coevolution in general, but that detects co-evolution failures and suggests model
adaptations to co-evolve a model correctly. In particular, the approach relies
on incremental constraint management that allows for e cient detection of
coevolution failures (including the absence of co-evolution). If such failures are
detected, the resulting inconsistencies between metamodel and model { along
with other design constraints imposed on the model { are used for nding suitable
model adaptations (repairs) that establish compliance of the model with the
updated metamodel and thus lead to correct co-evolution.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Motivating Example</title>
      <p>To illustrate our work, we use a simple metamodel for component-oriented
systems with high availability requirements, as shown in Fig. 1(a). Note that, for
now, we only consider elements drawn solid { dotted elements indicate
evolution which we will discuss later. The metamodel de nes three classes: Component,
Domain, and Communication. Components can have an arbitrary number of
subcomponents and must belong to a Domain. Domains include components that are
responsible for ful lling a common task in the system. Communications occur
between a sender and a receiver (rec) component. To increase the chance of
a successful communication, di erent components can be speci ed as primary
(prim) and as alternative (alt) target of a communication. All possible targets of
a communication are aggregated by the derived reference possibleReceivers.
Note that the de ned reference cardinalities (e.g., 1 for prim) implicitly de ne
model constraints. For example, an instance of Communication must reference
exactly one Component via prim. However, to ensure that only intended models
can be built, the metamodel has been extended with the following three explicit
constraints:
R1 All possible receivers of a Communication must be located within a single</p>
      <p>Domain (i.e., a set of components with a common purpose).</p>
      <p>R2 A communication may only occur between components of di erent
component domains.</p>
      <p>R3 It is not permitted that a single component is used as primary and
alternative target.</p>
      <p>Note that we omit other possible domain-speci c constraints as well as implicit
syntactical constraints for simplicity reasons.</p>
      <p>In Fig. 1(b), a model that complies with the metamodel is depicted. Again,
ignore dotted elements for now as they indicate possible evolution which we will
discuss later. The derived reference possibleReceivers is omitted for
readability reasons. The model contains three domains: X, Y , and Z. Domain X consists
of only two components (X1 and X2), Y consists of four components in total
(Y 1 { Y 4), and Z consists of two components (Z1 and Z2). The model also
contains two communications (C1 and C2), drawn as circles.</p>
      <p>Let us now consider a simple metamodel evolution. To increase the
availability of systems and reduce the chance of communication failures, a second
alternative communication target (called alt2) is added to the metamodel, as
indicated by the dotted arrow in Fig. 1(a). Intuitively, this metamodel evolution
requires the model in Fig 1(b) to be co-evolved as a new mandatory reference
was added to the class Communication that is instantiated twice in the model.
While existing approaches can typically nd model adaptations that produce a
syntactically correct model { for example, by adding a new reference alt2, which
points to an arbitrary Component, to every Communication { such adaptations
may easily lead to a semantically incorrect model. In the next section, we will
show how our approach handles this scenario and automatically provides user
guidance that helps designers to easily nd valid adaptions.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Co-evolution through Consistent Change Propagation</title>
      <p>To address the issues discussed above, we propose to perform co-evolution through
consistent change propagation. The approach consists of two phases:
1. Detect co-evolution failures.
2. Derive options for correction of failures.</p>
      <p>In Phase 1, the approach detects locations where co-evolution is not performed
correctly. This, of course, includes the situation of plainly missing co-evolution.
In Phase 2, options for a correct propagation of the metamodel change to the
a ected model are derived. We will now discuss those phases in more detail and
also show how the approach is applied to the evolution scenario presented above.
3.1</p>
      <sec id="sec-3-1">
        <title>Phase 1: Co-evolution Failure Detection</title>
        <p>Although metamodel evolution is likely to require model adaptations, this is
not a necessity { a metamodel may also change in ways that do not a ect the
validity of existing models. For example, when an optional reference is added.
Additionally, models may be changed manually by designers or automatically
by tools after a metamodel evolution occurred, trying to co-evolve the model.
Therefore, it is necessary after a metamodel change { and subsequent model
adaptations { to determine whether an a ected model is consistent with the
updated metamodel. If it is, co-evolution was performed correctly and no further
intervention is required. If, however, the model is inconsistent with the updated
metamodel, co-evolution failed and additional model adaptations are necessary.
Constraint Management As we have shown in the running example,
constraints can be used for ensuring both syntax and semantics. Therefore, when
the metamodel evolves, constraints of both kinds may be a ected. By using
an incremental constraint management approach, it is possible to update
constraints after metamodel changes { ensuring that models are always validated
with constraints that are up-to-date.</p>
        <p>
          In our example, the addition of alt2 in Fig. 1(a) requires a new syntactical
constraint to be enforced on models:
R4 Each Communication must reference a Component via alt2.
Consistency Checking After updating the set of constraints imposed by the
metamodel, standard consistency checkings mechanisms (e.g., [
          <xref ref-type="bibr" rid="ref8 ref9">8, 9</xref>
          ]) can be used
to detect inconsistencies. While the typical scenario is that an unchanged model
becomes inconsistent after metamodel evolution, it is also possible that a
previously inconsistent model becomes consistent without any adaptations.
Additionally, model adaptations that are performed for the purpose of co-evolution
may be incorrect and actually introduce new inconsistencies. If a consistency
checker that uses an up-to-date set of constraints detects inconsistencies after a
metamodel evolution, model adaptations are required and co-evolution was not
done correctly.
        </p>
        <p>After adding the new syntactical constraint de ned above, any standard
consistency checker will nd that the model in Fig. 1(b) contains two
inconsistencies: neither C1 nor C2 provide a second alternative target. Thus, our
intuitive assumption that additional model adaptations are necessary for correct
co-evolution has been con rmed.
3.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Phase 2: Co-evolution Correction</title>
        <p>Once co-evolution failures have been detected, our approach reaches Phase 2 in
which those failures are corrected.</p>
        <p>
          Repair Options To correct co-evolution failures and propagate the metamodel
change correctly, it is necessary to nd model adaptations (i.e., repair options)
that transform the inconsistent model into a consistent one. Unfortunately,
nding suitable adaptations is non trivial as every change to a model may not only
eliminate the violation of a constraint, but it may also cause other constraints
to be violated. However, single changes can of course also remove several
inconsistencies at once. Due to those side e ects, nding suitable corrections is a
complex task that should not be performed in an ad-hoc manner. Our approach
employs a reasoning mechanism that takes into consideration all design
constraints present in a model to nd suitable adaptations [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. Note that using not
only those constraints that are actually based on the metamodel but all design
constraints, repairs can be computed with higher precision as more information
is available for the reasoning engine and side e ects can be computed.
        </p>
        <p>Let us come back to our example. During Phase 1, two inconsistencies caused
by the elements C1 and C2 were detected in the model. First, we consider the
inconsistency involving C1. To correct the syntax and remove the violation of
constraint R4, a reference alt2 to any component is su cient. Moreover, in each
domain a new component could be created and used as second alternative target
for C1. Of course, it would also be possible to create a new component in an
entirely new domain. Therefore, there are 12 options available in total: one for
each of the eight existing (i.e., solid drawn) components in Fig. 1(b), one for
each of the three domains, and one for a new domain with a new component.
However, by also taking into account the domain-speci c constraints R1 { R3
from Section 2, our approach computes side e ects for each of those options. Due
to constraint R2, adding either X1 or X2 as second alternative target to C1 is not
a valid adaptation as this would violate R2. Additionally, the existing references
prim and alt from C1 to components of domain Y disallow the use of any
components that belong to a domain other than Y , according to constraint R1.
This rules out any remaining options that involve a second alternative receiver in
domain Z or in a newly created domain. Finally, constraint R3 disallows Y 1 and
Y 2 as options because they are already possible receivers. Note that this means a
reduction from 12 options { from which 9 are actually semantically incorrect { to
only 3 options that co-evolve C1 correctly. Those are drawn dotted in Fig. 1(b).</p>
        <p>For the communication C2, the constraints R1 { R4 can only be satis ed
by adding a new component to domain X that is used as second alternative
receiver, as indicated by the dotted drawn component X3 in Fig. 1(b).
Change Execution Although each derived repair option xes a model, some
of them may seem more intuitive and more logical to stakeholders than others.
Therefore, stakeholders should choose manually which of the available repair
options should be executed. However, repair options could of course be selected
and executed automatically if model characteristics such as readability are of
low importance.</p>
        <p>In our example, the co-evolution of C2 can be done automatically as there is
only one repair option. To repair the inconsistency of C1, a user has to decide
between only three options that propagate the metamodel change correctly to
the model.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Discussion</title>
      <p>Let us now brie y discuss the planned implementation of our approach and
preliminary validation results.
4.1</p>
      <sec id="sec-4-1">
        <title>Prototype Implementation</title>
        <p>
          The individual parts of the approach have been implemented in previous work.
For the constraint management part, we have implemented a template-based
transformation engine that generates and updates metamodel-based model
constraints [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. For the consistency checking, we rely on the Model/Analyzer
consistency checking framework [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] that allows for e cient incremental addition
and removal of models constraints. Finally, for the repair option generation, we
have implemented a generic inconsistency repair mechanism that builds upon
the Model/Analyzer framework [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ].
4.2
        </p>
      </sec>
      <sec id="sec-4-2">
        <title>Preliminary Performance Results</title>
        <p>
          We have demonstrated in [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] that constraint management through
transformation is e cient and that constraints are updated within milliseconds after a
metamodel change. In [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] and [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ], we have shown that the Model/Analyzer is
capable of validating constraints instantly, even for large industrial models of over
100,000 model elements. Moreover, it was demonstrated that adding constraints
(or removing them) is handled e ciently. For repairing detected inconsistencies,
we have observed that for typical UML models less than 10 suggestions were
derived, also within milliseconds [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. Moreover, we have previously found that by
considering side-e ects between di erent constraints, the number of suggestions
can be reduced even further [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ].
4.3
        </p>
      </sec>
      <sec id="sec-4-3">
        <title>Applicability</title>
        <p>We have illustrated how our approach updates constraints and derives options for
correcting co-evolution failures. Although we have used the proposed solution in
isolation to keep the example simple and focused, it is compatible with existing
automatic co-evolution techniques. When used in isolation, our approach detects
the absence of necessary model adaptations as co-evolution failures. When
combined with other approaches, it also detects co-evolution failures that are based
on incorrect model adaptations. Therefore, our solution is not a substitute but
a complement to existing technologies.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Related</title>
    </sec>
    <sec id="sec-6">
      <title>Work</title>
      <p>
        Let us now discuss how the presented approach relates to other work that has
been done in the eld of co-evolving metamodels and models. The necessity
of support for e cient and automatic co-evolution of metamodel and models
was identi ed as a major challenge in software evolution by Mens et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ],
and various approaches have been published to address it. Instead of seeing a
metamodel evolution step as a single, complex, and manually performed change
that is performed in an ad-hoc manner, Wachsmuth [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] describes metamodel
evolution as a series of transformational adaptations performed stepwise.
Metamodel changes are traced and quali ed based on properties such as
semanticsor instance-preservation. Co-transformations for models can be generated based
on transformation patterns that are instantiated with the performed metamodel
transformations. Cicchetti et al. [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] similarly classify metamodel and model
changes. They identi ed dependencies between di erent kinds of modi cations
and propose an automated approach that leverages these dependencies for
performing co-evolution automatically. Herrmannsdoerfer et al. [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] investigated to
which degree di erent metamodel adaptations can be handled automatically.
Note that those approaches focus on decomposing metamodel adaptations into
atomic steps that are used for nding suitable co-adaptations of models. While
our approach also relies on atomic metamodel modi cations, we use those
modi cations for updating the conditions that must hold in a valid model. Our
approach in general does not try to automate co-evolution of metamodels and
models. Instead, the fully automated co-evolution of metamodels and constraints
allows our reasoning engine to provide tool users with speci c guidance on how
co-evolution can be performed. Note, however, that in some cases models may
also be adapted automatically (e.g., if only a single repair option exists).
      </p>
      <p>
        Wimmer et al. [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] merge di erent metamodel versions to a uni ed
metamodel and then apply co-evolution rules to models. New metaclasses are
instantiated and existing model elements that are no longer required are removed. Due
to issues regarding typecasts and instantiation, their co-evolution rules had to
be adapted. The components used in our prototype implementation are capable
of handling arbitrary metamodel adaptations, including type changes.
6
      </p>
    </sec>
    <sec id="sec-7">
      <title>Conclusion and Future Work</title>
      <p>In this vision paper, we have presented the outline of a novel approach for
supporting the co-evolution of metamodels and models. Our approach is generic and
relies on the detection of inconsistencies that occur after metamodel evolution.
Those inconsistencies serve as input for a reasoning mechanism that provides as
output a set of possible model adaptations for repairing { that is, co-evolving {
an a ected model.</p>
      <p>The preliminary validation results are promising and suggest that the
presented approach is feasible and that it can be implemented e ciently. However,
these were observed in tests that were performed with prototype
implementations for the individual components involved in the approach. For a complete
validation, we have yet to conduct case studies with industrial models and a
complete implementation that fully integrates the prototypes of individual
components.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>D. C.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          , \
          <article-title>Guest editor's introduction: Model-driven engineering,"</article-title>
          <source>IEEE Computer</source>
          , vol.
          <volume>39</volume>
          , no.
          <issue>2</issue>
          , pp.
          <volume>25</volume>
          {
          <issue>31</issue>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. R. B. France and
          <string-name>
            <given-names>B.</given-names>
            <surname>Rumpe</surname>
          </string-name>
          , \
          <article-title>Model-driven development of complex software: A research roadmap,"</article-title>
          <source>in FOSE</source>
          , pp.
          <volume>37</volume>
          {
          <issue>54</issue>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. E.
          <string-name>
            <surname>-J. Manders</surname>
            , G. Biswas,
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Mahadevan</surname>
          </string-name>
          , and G. Karsai, \
          <article-title>Component-oriented modeling of hybrid dynamic systems using the generic modeling environment,"</article-title>
          <source>in MBD/MOMPES</source>
          , pp.
          <volume>159</volume>
          {
          <issue>168</issue>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>T.</given-names>
            <surname>Mens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wermelinger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ducasse</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Demeyer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Hirschfeld</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Jazayeri</surname>
          </string-name>
          , \
          <article-title>Challenges in software evolution,"</article-title>
          <source>in IWPSE</source>
          , pp.
          <volume>13</volume>
          {
          <issue>22</issue>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <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>Enhanced automation for managing model and metamodel inconsistency,"</article-title>
          <source>in ASE</source>
          , pp.
          <volume>545</volume>
          {
          <issue>549</issue>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <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
          <string-name>
            <given-names>E.</given-names>
            <surname>Ju</surname>
          </string-name>
          <article-title>rgens, \COPE - automating coupled evolution of metamodels and models,"</article-title>
          <source>in ECOOP</source>
          , pp.
          <volume>52</volume>
          {
          <issue>76</issue>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>A.</given-names>
            <surname>Cicchetti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. Di</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 coevolution in model-driven engineering,"</article-title>
          <source>in EDOC</source>
          , pp.
          <volume>222</volume>
          {
          <issue>231</issue>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>C.</given-names>
            <surname>Nentwich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Capra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Emmerich</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Finkelstein</surname>
          </string-name>
          , \
          <article-title>xlinkit: a consistency checking and smart link generation service,"</article-title>
          <source>ACM Trans. Internet Techn.</source>
          , vol.
          <volume>2</volume>
          , no.
          <issue>2</issue>
          , pp.
          <volume>151</volume>
          {
          <issue>185</issue>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>I.</given-names>
            <surname>Groher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Reder</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Egyed</surname>
          </string-name>
          , \
          <article-title>Incremental consistency checking of dynamic constraints,"</article-title>
          <source>in FASE</source>
          , pp.
          <volume>203</volume>
          {
          <issue>217</issue>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>A.</given-names>
            <surname>Reder</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Egyed</surname>
          </string-name>
          , \
          <article-title>Computing repair trees for resolving inconsistencies in design models,"</article-title>
          <source>in ASE</source>
          , pp.
          <volume>220</volume>
          {
          <issue>229</issue>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>A.</given-names>
            <surname>Demuth</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. E.</given-names>
            <surname>Lopez-Herrejon</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Egyed</surname>
          </string-name>
          , \
          <article-title>Supporting the co-evolution of metamodels and constraints through incremental constraint management,"</article-title>
          <source>in MoDELS</source>
          ,
          <year>2013</year>
          .
          <article-title>Accepted for publication</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>A.</given-names>
            <surname>Reder</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Egyed</surname>
          </string-name>
          , \
          <article-title>Model/analyzer: a tool for detecting, visualizing and xing design errors in UML,"</article-title>
          <source>in ASE</source>
          , pp.
          <volume>347</volume>
          {
          <issue>348</issue>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>A.</given-names>
            <surname>Demuth</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. E.</given-names>
            <surname>Lopez-Herrejon</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Egyed</surname>
          </string-name>
          , \
          <article-title>Constraint-driven modeling through transformation,"</article-title>
          <source>Software and System Modeling</source>
          ,
          <year>2013</year>
          . DOI:
          <volume>10</volume>
          .1007/s10270-013-0363-3.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>A. N</surname>
          </string-name>
          <article-title>ohrer, A. Reder, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Egyed</surname>
          </string-name>
          , \
          <article-title>Positive e ects of utilizing relationships between inconsistencies for more e ective inconsistency resolution: NIER track,"</article-title>
          <source>in ICSE</source>
          , pp.
          <volume>864</volume>
          {
          <issue>867</issue>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. G. Wachsmuth, \
          <article-title>Metamodel adaptation and model co-adaptation,"</article-title>
          <source>in ECOOP</source>
          , pp.
          <volume>600</volume>
          {
          <issue>624</issue>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <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>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Pierantonio</surname>
          </string-name>
          , \
          <article-title>Managing dependent changes in coupled evolution,"</article-title>
          <source>in ICMT</source>
          , pp.
          <volume>35</volume>
          {
          <issue>51</issue>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>M. Herrmannsdoerfer</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Benz</surname>
          </string-name>
          , and E. Jurgens, \
          <article-title>Automatability of coupled evolution of metamodels and models in practice,"</article-title>
          <source>in MoDELS</source>
          , pp.
          <volume>645</volume>
          {
          <issue>659</issue>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>M. Wimmer</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Kusel</surname>
            , J. Schonbock,
            <given-names>W.</given-names>
            Retschitzegger, W.
          </string-name>
          <string-name>
            <surname>Schwinger</surname>
          </string-name>
          , and G. Kappel, \
          <article-title>On using inplace transformations for model co-evolution," in MtATL, INRIA</article-title>
          &amp; Ecole des Mines de Nantes,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>