<!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>A Survey on Incremental Model Transformation Approaches</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Angelika Kusel</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Juergen Etzlstorfer</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Elisabeth Kapsammer</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Philip Langer</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Werner Retschitzegger</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Johannes Schoenboeck</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Wieland Schwinger</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Manuel Wimmer</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Johannes Kepler University Linz</institution>
          ,
          <country country="AT">Austria</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Applied Sciences Upper Austria</institution>
          ,
          <addr-line>Campus Hagenberg</addr-line>
          ,
          <country country="AT">Austria</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Vienna University of Technology</institution>
          ,
          <country country="AT">Austria</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Steadily evolving models are the heart and soul of ModelDriven Engineering. Consequently, all dependent model transformations have to be re-executed to re ect changes in related models, accordingly. In case of frequent, but only marginal changes, the re-execution of complete transformations induces an unnecessary high overhead. To overcome this drawback, incremental model transformation approaches have been proposed in recent years. Since these approaches di er substantially in language coverage, execution, and the imposed overhead, an evaluation and comparison is essential to investigate their strengths and limitations. The contribution of this paper is a dedicated evaluation framework for incremental model transformation approaches and its application to a representative subset of recent approaches. Finally, we report on lessons learned to highlight past achievements and future challenges.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        In Model-Driven Engineering (MDE), models are rst-class artifacts throughout
the software life-cycle [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Transformations of these models are comparable, in
role and importance, to compilers for high-level programming languages, since
they allow, e. g., to bridge the gap between design and implementation [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Like
any other software artifact, models are subject to constant change, i. e., they
evolve, caused by, e. g., changing requirements. Therefore, dependent models,
which have been derived from the original models by means of transformations,
have to be updated appropriately. A straight-forward way is to re-execute the
transformations entirely, i. e., in batch mode. In case of minor changes on large
models consisting of several thousand elements [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], however, re-execution of a
complete transformation is not e cient [
        <xref ref-type="bibr" rid="ref12 ref13 ref18">12, 13, 18</xref>
        ]. Consequently, it is of utmost
importance, to transform those elements that have been changed, only, which is
commonly referred to as incremental transformation [
        <xref ref-type="bibr" rid="ref17 ref8">8, 17</xref>
        ].
      </p>
      <p>
        Several incremental model transformation approaches focusing on di erent
transformation languages have been proposed recently. Although all of them
aim at the e cient propagation of changes, they di er substantially, not only
since basing on di erent transformation languages. However, no dedicated survey
has been brought forward so far, which would be essential to highlight past
achievements as well as future challenges. To alleviate this situation, in this
paper, rst, a dedicated evaluation framework is proposed (cf. Section 2), whose
criteria are not only inspired by the MDE domain (cf., e. g., [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]), but also by
related engineering domains like data engineering, e. g., in terms of incremental
maintenance of materialized views (cf., e. g., [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]), where incremental approaches
are used since decades. Second, this framework is applied to a carefully selected
set of incremental transformation approaches to achieve an in-depth comparison
(cf. Section 3). Third, lessons learned are derived from this comparison and
presented in Section 4 to highlight past achievements and future challenges.
Finally, Section 5 concludes the paper.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Evaluation Framework</title>
      <p>
        In this section, the proposed criteria for the evaluation of incremental model
transformation approaches are presented. The set of criteria for evaluating the
incremental transformation approaches has been derived in a bottom-up manner
by examining dedicated approaches as well as in a top-down manner by
reviewing surveys in related engineering domains (cf., e. g., [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]) { methodologically
adhering to some of our previous surveys, e. g., [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. This process resulted in
an evaluation framework (cf. Fig. 1), comprising the three categories of (i)
language coverage for explicating those parts of a transformation language that are
considered for incremental execution (cf. Section 2.1), (ii) execution phases for
highlighting how incrementality is achieved at run-time (cf. Section 2.2), and (iii)
overhead for pointing out the additional e orts needed to achieve incrementality
(cf. Section 2.3).
      </p>
      <sec id="sec-2-1">
        <title>Incremental Model Transformations</title>
        <p>Language Coverage
 Declarative Parts
• Number of Input Elements
• Number of Output Elements
• Conditions
- Negative Application Conditions
- Positive Application Conditions
• Assignments
• Rule Inheritance
 Imperative Parts
Execution Phases
 Change Detection
• Source Minimality
• Type &amp; Number
- Atomic Changes
- Composite Changes
• Granularity
• Change Log
Optimization
 Impact Analysis
• Required Knowledge of
Transformation Specification
- Black Box
- White Box
• Trace
- Model2Model
- Model2Transformation
• Auxiliary Information
 Change
Propagation
• Time
• Coverage
• Granularity
• Direction
• Strategies</p>
      </sec>
      <sec id="sec-2-2">
        <title>Overhead</title>
        <p>
           Specification
 Run-time
 Memory
The rst set of criteria reveals the language coverage, i. e., which parts of a
trans•CfThoyaprnegmeDaetteicotionn language may be•DTeipmeeexndeecncuy Dteetdectioinncrementally. In•CThiagmneegenPerorpaagla,tionmodel
trans•fGorarnmularaitytions are speci ed by•Gaenesraetetd Inofofrmartiuonles that compri•sCeoveirangeput patterns with
•Change Log Optimization •Trace Minimality? •Granularity
•Source Minimality •Directionality
•Strategies
conditions that match source model elements, and output patterns that
produce elements of the target model. Thereby, source and target models have to
conform to their corresponding metamodels. Furthermore, transformation rules
may be inherited for reuse (cf. [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ] for an overview). Such transformation
speci cations may comprise declarative and imperative transformation parts. Since
current incremental transformation approaches mostly focus on the support of
incremental execution of declarative language parts [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ], this category has been
further broken down into the criteria number of input and output elements,
conditions, assignments, and rule inheritance. Among those, conditions play a special
role in incremental model transformations, since negative application conditions
(NACs) may lead to non-monotonicity, e. g., insertion of elements in the source
model entails a deletion of elements in the target model [
          <xref ref-type="bibr" rid="ref11 ref20">11, 20</xref>
          ], and positive
application conditions (PACs) may cause non-continuity, i. e., a non-uniform
treatment of model elements, e. g., new elements in a container may be
transformed di erently than previously added elements to the same container [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ].
2.2
        </p>
        <sec id="sec-2-2-1">
          <title>Execution Phases</title>
          <p>Any incremental approach may be characterized by three dedicated execution
phases, comprising (i) change detection, i. e., detection of changes in the source
model, (ii) impact analysis, i. e., detection of parts of the transformation that
must be executed to re ect the changes, and (iii) change propagation, i. e., the
actual execution of the a ected transformation parts as well as the update of
the target model.</p>
          <p>
            Criteria for Change Detection. For detecting changes, basically two
approaches may be followed, comprising (i) state-based comparison of the changed
source model to its previous version, and (ii) operation-based detection of changes
by directly recording each change [
            <xref ref-type="bibr" rid="ref7">7</xref>
            ]. Although (i) may allow for tool
independence, run-time performance depends on the size of the source model. Thus, with
regard to run-time performance, (ii) is preferable and is referred to as source
minimality [
            <xref ref-type="bibr" rid="ref8">8</xref>
            ], representing the rst criterion. Change detection may be further
characterized by the type of the detected changes, including atomic operations,
i. e., insert and delete, and composite operations, e. g., update and move, which
may be composed by combining atomic operations and may allow for reducing
the number of change propagation operations to be executed, by substituting
insert and delete operations. Another criterion is the granularity of the detected
changed elements, ranging from coarse granularity, i. e., on the level of objects,
only, to ne granularity, i. e., on the level of values and links, which is preferable,
since it allows for a more precise detection. Finally, change detection may be
capable of detecting single or multiple changes at once, whereby the latter utilizes
a change log and may allow to reason on inter-dependencies between changes,
thereby facilitating change log optimization. In this context, for instance, change
operations that cancel others may be detected and optimized, e. g., a rename
operation for an element that is subsequently deleted may be removed.
Criteria for Impact Analysis. For impact analysis, the impact of changes on
target models must be detected by (i) utilizing knowledge from the
transformation speci cation and (ii) employing information that relates the transformations
and the models during execution. Concerning the knowledge of the
transformation, approaches, which require white-box knowledge, i. e., insights into the
internal structure, may allow for a more precise detection of a ected
transformation parts compared to those, where black-box knowledge, i. e., the inputs and
outputs, are considered, only. For (ii), it is of utmost importance to recognize
those transformation parts that must be executed, requiring a
Model2Transformation (M2T) trace. Such a trace may be either created at compile-time by
analyzing the bound metamodel types or at run-time by keeping track of the
execution of the transformation. Additionally, a dynamically created Model2Model
(M2M) trace is obligatory to relate the elements of the source model to those
in the target model. Besides these traces, additional auxiliary information, such
as internal execution states or intermediate results may be utilized, to further
improve incrementality.
          </p>
          <p>
            Criteria for Change Propagation. Finally, changes detected in the rst phase
have to be propagated to the target model utilizing dependency information
exposed in the second phase. Change propagation may di er in (i) time, i. e., when
the changes are propagated, (ii) coverage, i. e., the amount of changes to be
propagated, (iii) granularity, i. e., the degree of transformation code to be
reexecuted, (iv) directionality, i. e., the direction of change propagation between
source and target, and, nally, (v) strategies, i. e., di erent plans to propagate
the changes. Concerning time, eager means that changes in the source model are
propagated synchronously to the target model, whereas lazy induces an
asynchronous propagation. Propagation may cover either the complete set of changes
at once or a part of it, only, e. g., single changes. The propagation of single
changes is useful to allow for change propagation on demand, i. e., only when
the a ected target model elements are accessed. According to the granularity of
the change propagation, either a complete rule or a single binding (or
assignment) has to be re-executed, whereby the latter case results in modifying fewer
elements in the target model. Furthermore, changes may be either propagated
from a dedicated source to a target model, i. e., unidirectional or also vice versa,
i. e., bidirectional. Bidirectionality can be either achieved by utilizing dedicated
bidirectional model transformation languages (e. g., TGGs [
            <xref ref-type="bibr" rid="ref22">22</xref>
            ] or JTL [
            <xref ref-type="bibr" rid="ref6">6</xref>
            ]) or by
connecting source and target model elements via traces and potentially
restricting transformation language expressiveness to enable bidirectional propagation.
Therefore, this criterion is included in the propagation phase. Finally, di erent
strategies for updating the target model may be applied, e. g., executing
multiple updates sequentially or in parallel, that may be selected automatically or
manually.
2.3
          </p>
        </sec>
        <sec id="sec-2-2-2">
          <title>Overhead</title>
          <p>The nal set of criteria aims at pointing out overheads that result from
incrementality. Such overheads may arise with respect to three di erent areas, being
(i) speci cation, i. e., whether the transformation designer must use a dedicated
syntax resulting in a new speci cation, (ii) run-time, i. e., whether additional
run-time is consumed in contrast to batch transformations, and (iii) memory,
i. e., whether additional memory is consumed compared to batch
transformations.
3</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Comparison of Approaches</title>
      <p>
        After having presented the evaluation framework in the previous section, in this
section it is applied to selected approaches. The results of the application are
summarized in Table 1. The selection of approaches for incremental model
transformations comprises approaches that facilitate incremental execution of
userspeci ed transformations. Hence, approaches that e. g., aim at e cient batch
transformations or support incrementality for speci c applications, only, are not
covered in the comparison (e. g., [
        <xref ref-type="bibr" rid="ref19 ref5 ref6">5, 6, 19</xref>
        ]). Eight approaches across di erent
transformation languages that meet these criteria have been identi ed in the
literature and, therefore, participate in the evaluation. Three of them are of
declarative nature, whereby two base on Triple Graph Grammars (TGGs) [
        <xref ref-type="bibr" rid="ref16 ref9">9,16</xref>
        ] and one
on the Tefkat transformation language [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. The remaining ve approaches allow
for hybrid transformation code, i.e., declarative and imperative parts. Among
them, one approach bases on the Atlas Transformation Language (ATL) [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ],
three on the graph-transformation-based Viatra2-framework [
        <xref ref-type="bibr" rid="ref1 ref18 ref2">1, 2, 18</xref>
        ], and one
approach enables incrementality by abstracting from the actual transformation
speci cation and by relating source and target model elements, only [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
3.1
      </p>
      <sec id="sec-3-1">
        <title>Language Coverage</title>
        <p>
          In the context of declarative language parts, six of the eight approaches [
          <xref ref-type="bibr" rid="ref1 ref11 ref16 ref18 ref2 ref9">1, 2, 9,
11, 16, 18</xref>
          ] support an arbitrary number of input and output elements, i. e., M:N
mappings. One approach [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] restricts itself to a single input element, but allows
for an arbitrary number of output elements, i. e., 1:N mappings, and another
approach [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] may handle 1:1 mappings, only. Interestingly, NACs and PACs,
although quite challenging, are supported by all except one approach [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]. While
assignments are naturally supported by all approaches, support for rule
inheritance is not that widespread. Only one approach may handle rule inheritance in
incremental transformations, since the transformation speci cation is regarded
as black-box and, therefore, inherited rules do not impact the approach [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]. The
remaining approaches do either exclude rule inheritance for incremental
transformation [
          <xref ref-type="bibr" rid="ref11 ref16">11, 16</xref>
          ], explicitly refer to the support of rule inheritance as future
work by attening the inheritance hierarchy [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ], do not support rule
inheritance at all [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ], i. e., also not in batch mode, or support rule inheritance for
the pattern matching part in transformation rules, only [
          <xref ref-type="bibr" rid="ref1 ref18 ref2">1, 2, 18</xref>
          ]. In contrast
to the comprehensive support for declarative language parts, imperative parts
are either completely re-executed [
          <xref ref-type="bibr" rid="ref1 ref18 ref2">1, 2, 18</xref>
          ], thereby resigning the advantages of
incrementality, regarded as black box [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ], which may violate correctness, or not
allowed at all [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ].
        </p>
        <p>In summary, one may see that incremental model transformation approaches
su er from restricted language coverage in terms of rule inheritance and
imperative parts, and thus, not all potential for incremental execution is exploited so
far.
3.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Execution Phases</title>
        <p>
          Change Detection. Regarding change detection, all approaches detect changes
operation-based and, therefore, comply with source minimality. Atomic changes
are supported by all approaches. Concerning composite changes, six approaches
support update operations [
          <xref ref-type="bibr" rid="ref1 ref13 ref18 ref2 ref20 ref9">1, 2, 9, 13, 18, 20</xref>
          ]. Move operations are explicitly
supported by two approaches [
          <xref ref-type="bibr" rid="ref2 ref9">2, 9</xref>
          ]. Four approaches are able to detect multiple
change operations [
          <xref ref-type="bibr" rid="ref16 ref18 ref2 ref9">2, 9, 16, 18</xref>
          ]. However, only one of them actually supports an
optimization of the change log [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ]. One approach, although being able to
detect multiple changes, considers the model di erence instead of a change log,
and, therefore, eludes the need for change log optimization [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ], while for
another approach the optimization e ort is usually higher than the actual
propagation e ort, and, therefore, change log optimization is omitted [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. Considering
the granularity of changes, all approaches enable the detection of ne-grained
changes.
        </p>
        <p>Summing up, current approaches mostly lack the detection of multiple,
composite change operations and a change log optimization. Support for those
criteria would favor an optimized change propagation resulting in fewer operations
on the target model.</p>
        <p>
          Impact Analysis. Seven of the eight approaches require white-box
knowledge of the transformation for analyzing rules and generating trace
information [
          <xref ref-type="bibr" rid="ref1 ref11 ref13 ref16 ref18 ref2 ref9">1, 2, 9, 11, 13, 16, 18</xref>
          ], while one approach considers the speci cation of the
batch transformation as a black box [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]. The M2T trace is generated by seven
approaches [
          <xref ref-type="bibr" rid="ref1 ref11 ref13 ref16 ref18 ref2 ref9">1, 2, 9, 11, 13, 16, 18</xref>
          ] at run-time, while two of them generate parts
of this trace at compile-time [
          <xref ref-type="bibr" rid="ref1 ref13">1, 13</xref>
          ]. One approach does not generate any M2T
trace at all [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ], but lacks comprehensive language coverage. All approaches
dynamically generate M2M traces. Concerning auxiliary information, one approach
stores the complete transformation context in terms of an SLDNF-tree (Selective
Linear De nite clause with Negation as Failure) [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ], one generates dedicated
rules for change propagation at compile-time [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ], and in [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] so-called Change
History Models are used as input for the change propagation. One approach [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]
creates database tables for each match pattern in a transformation speci cation
and employs triggers for change detection, while in [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] a so-called Concept Pool
is utilized, which holds similar concepts between source and target models to
enable bidirectional change propagation.
        </p>
        <p>
          In summary, one may see that all approaches require trace information and
most approaches rely on auxiliary information to further leverage incrementality.
Change Propagation. Three approaches propagate changes in an eager
manner [
          <xref ref-type="bibr" rid="ref1 ref11 ref18">1, 11, 18</xref>
          ]. Four approaches allow for lazy propagation by letting the user
decide when to apply the changes on the target model [
          <xref ref-type="bibr" rid="ref13 ref16 ref2 ref9">2, 9, 13, 16</xref>
          ]. Finally,
one approach allows for both, synchronous and asynchronous, change
propagation [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]. The same approach also supports partial propagation. Five of the
eight approaches re-execute a complete rule [
          <xref ref-type="bibr" rid="ref1 ref16 ref18 ref2 ref9">1, 2, 9, 16, 18</xref>
          ], while two approaches
are capable of re-executing a single binding, only [
          <xref ref-type="bibr" rid="ref11 ref13">11, 13</xref>
          ]. Those two rely on
auxiliary information, being the complete execution context [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] or ne-grained
compiler-generated rules [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. One approach does not consider rules or bindings
of the batch transformation speci cation to be re-executed, since the
transformation is regarded as a black-box [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]. Concerning directionality, TGGs support
bidirectionality [
          <xref ref-type="bibr" rid="ref16 ref9">9, 16</xref>
          ], while other approaches allow for unidirectional change
propagation, only [
          <xref ref-type="bibr" rid="ref1 ref11 ref13 ref18 ref2">1, 2, 11, 13, 18</xref>
          ]. One approach aims at deriving a bidirectional
model transformation from a unidirectional transformation speci cation, but is
limited in terms of language coverage [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]. Solely the approaches that build on
the Viatra2-framework o er manual selection of strategies in terms of
sequential or parallel execution of change propagation [
          <xref ref-type="bibr" rid="ref1 ref18 ref2">1, 2, 18</xref>
          ].
        </p>
        <p>Summing up, current incremental model transformation approaches mostly
propagate changes synchronously with a prede ned strategy. Thereby, situations
that may require di erent execution strategies for e cient incremental execution
may not be handled satisfactorily.
3.3</p>
      </sec>
      <sec id="sec-3-3">
        <title>Overhead</title>
        <p>
          Regarding the induced overheads, two of the eight approaches require a new
speci cation by the transformation designer to allow for incremental execution [
          <xref ref-type="bibr" rid="ref18 ref2">2,18</xref>
          ].
Concerning run-time overheads, three approaches state, that even in the worst
case (i. e., the complete source model has been changed) incremental execution is
as fast as batch transformation, i. e., no run-time overhead occurs [
          <xref ref-type="bibr" rid="ref16 ref2 ref9">2, 9, 16</xref>
          ], while
the remaining approaches lack any statement on this fact. Finally, all approaches
accept memory overheads in terms of traces and auxiliary information.
        </p>
        <p>
          In summary, one may see that most approaches introduce incrementality by
changes to the execution engine instead of requiring a new syntax for
transformation speci cations, which is favorable, since then incrementality is transparent
to the transformation designer. All approaches induce memory overheads due
to the generation of traces and auxiliary information, which are, nevertheless,
essential for incremental execution [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ].
4
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Lessons Learned</title>
      <p>In this section, lessons learned gained from the evaluation and comparison of
approaches are discussed along the di erent evaluation categories.</p>
      <sec id="sec-4-1">
        <title>Insu cient Support for Imperative Parts. While all examined approaches</title>
        <p>
          support declarative language parts, they lack su cient support for imperative
parts, which are either disregarded at all or treated as black box, i. e., executed
completely, instead of breaking them down into ne-grained parts. Consequently,
extensive support for imperative parts, e. g., by exploiting incremental evaluation
of conditions and bindings [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], may further leverage incrementality.
8 Varr graph trafo  ? ? ?      ? ? ?  -
F7oRcazuaQsVT-OoMn Basic Change Ope r-a-ti-ons. Ato m-i-c change operations are
supspu8ocTrihsti2eAQdaTVLTs- buyp*daallteapapnrdoamc-hoevse., Hisonwoetvet-rh,-ast-uwppidoerstprfoeardc,obmuptowsioteuldchaalnlogwe ofopreraatmioonrse,
e cienRaenll,attio change propagation by utilizing according change propagation
operationsm.edini
9 SongQVT 
10 VogeTGG, runtime monitoring?
TrJaohce Information is Mandatory. All approaches rely on trace information.
Fuarntn hIBeMrmore, the more trace information is generated to relate elements of source
200 Rationa
a1n14d tlaRorsgeet models as well as model elements and the transformation speci cation,
12 Cicc hyobrridemulti-cvicewumroadetlelinngess in change propagation may be achieved. Of course, this
the m a
13 Emofuture work
is the general trade-o between space and time in computing.
        </p>
        <p>Lack of Appropriate Propagation Strategies. Current incremental model
trapnrospfaogartiomngaratnuiloarinty: +afipltepr, +riompaecrahtiveesteiledo not provide di erent propagation strategies
acwie unterscheiden sich ansätze?
corwdasinkögnnetnosie NaICHgT?iv(sieehne ouctlhooak unngdceoncsluistioun vaotnivoersnch.. In case of many changes, re-execution of a
paper)
batecinhschrtänrkaunngesnfdoerramnsäatzetiinotanbellmeauafnyehmoeuntperform the run-time performance of incremental
execution in certain cases. An automatic selection of an appropriate
propagation strategy could be achieved by analyzing the changes, the transformation
speci cation, and the traces.</p>
        <p>
          Lack of Proof of Correctness. Apart from one approach [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ], correctness
of the incremental model transformation approaches is not proven. Thus,
formal proofs for correctness would be highly bene cial for the con dence of the
incremental transformations.
        </p>
        <p>Gie
se2
3 009 TGG, Fuj </p>
        <p> ?
 1 1 1   
  
 - -   - - 
-
- - - - - sld blocks to class diagra</p>
        <p>se
l ig
iiftrssvgaTeendoooRM iifftttrrcxSEaeeeeunnoD lilifttsceCunnoooR iiftrrsLvaaTennoom iiittrrsceendmexample used for evalua
e t
- - -
- - -  - class2relational
- - -  - class2relational
-  -  ~
- - -  
- - -</p>
        <p>java2wsdl axis trafo
- -
- -
</p>
        <p>incr. graph tr
books2libr efficient batc
class2relat lazy transfor
spec. incr. en
based on Gie
framework fo
hybrid
multi</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>In this paper, we presented a survey on incremental model transformation
approaches. Therefore, criteria for evaluating and comparing incremental model
transformation approaches have been proposed. Eight recent approaches have
been compared according to the criteria and lessons learned have been presented.</p>
      <p>Summing up, although several approaches for incremental model
transformations exist, there is still space for improvements including (i) better support
for imperative language parts, (ii) more e cient change propagation with
dedicated change operators, (iii) provision and automatic selection of appropriate
propagation strategies, and (iv) proving correctness of incremental model
transformations.</p>
    </sec>
    <sec id="sec-6">
      <title>Acknowledgements</title>
      <p>We would like to thank Stephan Hildebrandt, Marius Lauder, Anthony Anjorin,
Ali Razavi, Istvan Rath, Gabor Bergmann, Salvador Mart nez Perez, and
Massimo Tisi for their helpful comments on the paper.</p>
      <p>This work has been funded by the Austrian Federal Ministry for Transport,
Innovation and Technology (bmvit) under grant ffg bridge 832160 and ffg
fit-it 825070 and 829598, ffg Basisprogramm 838181, and by oad under grant
AR18/2013 and UA07/2013.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Bergmann</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horvath</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horvath</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Applying Incremental Graph Transformation to Existing Models in Relational Databases</article-title>
          .
          <source>In: 6th Int. Conf. on Graph Transformations</source>
          . Springer (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Bergmann</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rath</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Varro</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Varro</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Change-driven model transformations</article-title>
          .
          <source>SoSym</source>
          <volume>11</volume>
          (
          <issue>3</issue>
          ) (
          <year>Jul 2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Bezivin</surname>
          </string-name>
          , J.:
          <source>On the Uni cation Power of Models. SoSym</source>
          <volume>4</volume>
          (
          <issue>2</issue>
          ) (May
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Cabot</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Teniente</surname>
          </string-name>
          , E.:
          <article-title>Incremental Evaluation of OCL Constraints</article-title>
          .
          <source>In: 18th Int. Conf. on Advanced Information Systems Engineering</source>
          . Springer (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Cicchetti</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ciccozzi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leveque</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Supporting Incremental Synchronization in Hybrid Multi-view Modelling</article-title>
          .
          <source>In: Int. Conf. on Models in SE</source>
          . Springer (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Cicchetti</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Di Ruscio</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eramo</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pierantonio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>JTL: A Bidirectional and Change Propagating Transformation Language</article-title>
          .
          <source>In: Int. Conf. on Software Language Engineering</source>
          . Springer (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Conradi</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Westfechtel</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Version Models for Software Con guration Management</article-title>
          .
          <source>ACM Comp. Surv</source>
          .
          <volume>30</volume>
          (
          <issue>2</issue>
          ) (
          <year>Jun 1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Czarnecki</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Helsen</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Feature-Based Survey of Model Transformation Approaches</article-title>
          .
          <source>IBM Systems Journal</source>
          <volume>45</volume>
          (
          <issue>3</issue>
          ) (
          <year>Jul 2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Giese</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hildebrandt</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Neumann</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          : Model Synchronization at Work:
          <article-title>Keeping SysML and AUTOSAR Models Consistent</article-title>
          . In:
          <article-title>Graph Transformations and ModelDriven Engineering</article-title>
          . LNCS, vol.
          <volume>5765</volume>
          . Springer (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Gupta</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mumick</surname>
            ,
            <given-names>I.S.:</given-names>
          </string-name>
          <article-title>Maintenance of Materialized Views: Problems, Techniques, and Applications</article-title>
          .
          <source>IEEE Data Eng. Bull</source>
          .
          <volume>18</volume>
          (
          <issue>2</issue>
          ) (
          <year>1995</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Hearnden</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lawley</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Raymond</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Incremental Model Transformation for the Evolution of Model-Driven Systems</article-title>
          .
          <source>In: 9th Int. Conf. on Model Driven Engineering Languages and Systems</source>
          . Springer (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Johann</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Egyed</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Instant and Incremental Transformation of Models</article-title>
          .
          <source>In: 19th Int. Conf. on Automated Software Engineering. IEEE</source>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Jouault</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tisi</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Towards Incremental Execution of ATL Transformations</article-title>
          .
          <source>In: 3rd Int. Conf. on Theory and Practice of Model Transformations</source>
          . Springer (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Kappel</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Langer</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Retschitzegger</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schwinger</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Model Transformation By-Example</surname>
          </string-name>
          :
          <article-title>A Survey of the First Wave</article-title>
          .
          <source>In: Conceptual Modelling and Its Theoretical Foundations</source>
          . Springer (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Kolovos</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paige</surname>
            ,
            <given-names>R.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Polack</surname>
            ,
            <given-names>F.A.</given-names>
          </string-name>
          :
          <article-title>The Grand Challenge of Scalability for Model Driven Engineering</article-title>
          . In: Models in SE. Springer (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Lauder</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Anjorin</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Varro</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <article-title>Schurr, A.: E cient Model Synchronization with Precedence Triple Graph Grammars</article-title>
          .
          <source>In: 6th Int. Conf. on Graph Transformations</source>
          . Springer (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Mens</surname>
          </string-name>
          , T.,
          <string-name>
            <surname>Van Gorp</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>A Taxonomy of Model Transformation</article-title>
          .
          <source>ENTCS 152 (Mar</source>
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Rath</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bergmann</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <article-title>Okros, A</article-title>
          .,
          <string-name>
            <surname>Varro</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Live Model Transformations Driven by Incremental Pattern Matching</article-title>
          .
          <source>In: 1st Int. Conf. on Theory and Practice of Model Transformations</source>
          . Springer (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Razavi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kontogiannis</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Partial Evaluation of Model Transformations</article-title>
          .
          <source>In: Proc. of the 2012 Int. Conf. on Software Engineering</source>
          . IEEE Press (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Razavi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kontogiannis</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brealey</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nigul</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Incremental Model Synchronization in Model Driven Development Environments</article-title>
          . In: Conf.
          <article-title>of the Center f</article-title>
          .
          <source>Adv. Studies on Collab. Research</source>
          . IBM (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Scheidgen</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zubow</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fischer</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kolbe</surname>
          </string-name>
          , T.H.:
          <article-title>Automated and Transparent Model Fragmentation for Persisting Large Models</article-title>
          .
          <source>In: 15th Int. Conf. on Model Driven Engineering Languages and Systems</source>
          . Springer (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22. Schurr, A.:
          <article-title>Speci cation of Graph Translators with Triple Graph Grammars</article-title>
          . In: Graph-Theoretic Concepts in
          <source>Computer Science</source>
          . Springer Berlin Heidelberg (
          <year>1995</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kappel</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kusel</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Retschitzegger</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          , Schonbock, J.,
          <string-name>
            <surname>Schwinger</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kolovos</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paige</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lauder</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , Schurr,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Wagelaar</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          :
          <article-title>Surveying Rule Inheritance in Model-to-Model Transformation Languages</article-title>
          .
          <source>Journal of Obj. Techn</source>
          .
          <volume>11</volume>
          (
          <issue>2</issue>
          ) (
          <year>Aug 2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schauerhuber</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kappel</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Retschitzegger</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schwinger</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kapsammer</surname>
          </string-name>
          , E.:
          <article-title>A Survey on UML-Based Aspect-Oriented Design Modeling</article-title>
          . ACM Comp. Surv.
          <volume>43</volume>
          (
          <issue>4</issue>
          ) (Oct
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>