<!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>Towards a Taxonomy for Bidirectional Transformation</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Romina Eramo</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Romeo Marinelli</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alfonso Pierantonio</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dipartimento di Ingegneria e Scienze dell'Informazione e Matematica (DISIM), Universita` degli Studi dell'Aquila</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In Model Driven Engineering, bidirectional transformations are considered a core ingredient for managing both the consistency and synchronization of two or more related models. However, current languages still lack of a common understanding of their semantic implications hampering their applicability in practice. This paper illustrates a set of relevant properties pertaining to bidirectional model transformations. It is a first step towards a taxonomy that can help developers to decide which bidirectional language or tool is best suited to their task at hand. This study is based on the existing literature and characteristics of existing approaches.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Bidirectionality is an important feature of model transformations: often it is assumed
that during development only the source model of a transformation undergoes
modifications, however in practice it is necessary for developers to modify both the source and
the target models of a transformation and propagate changes in both directions [
        <xref ref-type="bibr" rid="ref31 ref37">31, 37</xref>
        ].
In this context, bidirectional model transformations have arrived as a key mechanism,
in fact they describe not only a forward transformation from a source model to a target
model, but also a backward transformation that reflects the changes on the target model
to the source model so that consistency between two models is maintained.
      </p>
      <p>
        Many typical situations, that arise when both models are modified by humans,
demand bidirectional transformations; for instance, a conceptual model is transformed
into a platform specific model; a subview of selected data is modified and
contextually the entire database is updated; many kinds of integration between systems or parts
of systems, which are modeled separately, must be consistent (e.g., a database schema
must be kept consistent with the application that uses it) [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ]. Hence, bidirectional
transformations have many potential applications in software development, including
model synchronization, round-trip engineering, software evolution by keeping different
models coherent to each other, multiple-view software development.
      </p>
      <p>
        In this paper we propose a taxonomy for bidirectional model transformations. It
represent a first step towards a complete set of objective criteria, that designers may
consider in order to select the approach that is more suitable for their needs. The study
is based on the discussions of the working group of the Dagstuhl seminars on
Language Engineering for Model-Driven Software Development [
        <xref ref-type="bibr" rid="ref20 ref6">6, 20</xref>
        ] and the existing
taxonomies for model transformations (e.g., [
        <xref ref-type="bibr" rid="ref23 ref7">23, 7</xref>
        ]).
      </p>
      <p>The paper is organized as follows. Section 2 introduces the background. Section 3
proposes a taxonomy of bidirectional model transformations. Section 4 discusses how
this taxonomy can be applied on existing approaches. Finally, Section 5 describes
related work and Section 6 draws some conclusion and future work.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Background</title>
      <p>
        Despite its relevance, bidirectionality has rarely produced anticipated benefits as
demonstrated by the lack of a language comparable to what ATL1 represents for unidirectional
transformations. However, a number of languages and tools have been proposed due to
the intrinsic complexity of bidirectionality; each one is characterized by a set of specific
properties pertaining to a particular applicative domain [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ].
      </p>
      <p>The attempt to advocate a language rather than another can not neglect the important
differences in circumstances. In fact, each language or tool presents specific
characteristics that make it more suitable for a certain circumstance; as a consequence, a solution
which seems good with one set of assumptions made about the situation can be
infeasible with another. Understanding these characteristics is useful for distinguishing
between existing approaches; in particular, in order to choose the most suitable approach,
designers need to know how factors, that may influence their choice, affect bidirectional
approaches.</p>
      <p>
        Several works have been proposed for defining characterization and classification
schemes of model transformation, others illustrate the state-of-the-art. Many of the
proposed aspects characterizing model transformations are considered in this study, many
other aspects need to be explored to shift the focus on intrinsic characteristics of
bidirectional model transformations. Taking inspiration from [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ], we consider some
fundamental issues as following:
- What needs to be transformed into what;
- Which mechanisms can be used for bidirectional transformation;
- What are the application domains;
- What are the characteristics of a bidirectional transformation;
- What are the quality requirements for a bidirectional language or tool;
- What are the success criteria for a bidirectional language or tool.
      </p>
      <p>These issues demand for the definition of pertaining concepts, terms and base
characteristics for bidirectional transformation. To this end, in the next section a taxonomy
for bidirectional transformation is proposed to provide specific and intrinsic features
and requirements.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Taxonomy</title>
      <p>The proposed taxonomy is based on a set of features that are divided into three main
categories: General Requirements (GR), Functional Requirements (FR) and Non
Functional Requirements (NFR). They are described in detail in the following.</p>
      <sec id="sec-3-1">
        <title>1 http://www.eclipse.org/atl/</title>
        <p>3.1</p>
        <sec id="sec-3-1-1">
          <title>General Requirements (GR)</title>
          <p>
            This section defines general requirements that concerns generic and important aspects
for bidirectional model transformations. These requirements are useful to understand
what are some important characteristics of a bidirectional approach or tool.
Complexity. Transformations can be considered as small (e.g., refactoring), or
heavyduty (e.g., compilers and code generators) [
            <xref ref-type="bibr" rid="ref23">23</xref>
            ]. The large difference among them
requires an entirely different set of tools and techniques. Considering the complexity of
transformations is out of our scope; it demands for more effort and can be treated, for
instance, by using metrics.
          </p>
          <p>
            Level of automation. A bidirectional transformation can be performed in a completely
automatic way (fully-automated), otherwise it may need to a certain amount of
manual intervention (human-in-the-loop). In particular, manual intervention is needed to
address and resolve ambiguity, incompleteness and inconsistency in the requirements,
that may be partially expressed in natural language [
            <xref ref-type="bibr" rid="ref23">23</xref>
            ].
          </p>
          <p>
            Visualization. It refers to the way in which models, metamodels and model
transformations are presented to the user; it can be graphical or textual. Some existing tools allow
developers to create artifacts in a completely graphical way (e.g., [
            <xref ref-type="bibr" rid="ref28">28</xref>
            ]), others require
transformations are written entirely in textual way (e.g., [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ]).
          </p>
          <p>
            Level of industry application. Some existing tools are used in both academic and
industrial world (e.g., [
            <xref ref-type="bibr" rid="ref28">28</xref>
            ]), others are used exclusively in academic setting (e.g., [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ]),
in which the usefulness is due to particular issues related to the bidirectionality.
Maturity level. The main existing approaches for bidirectional transformations are
implemented by means a tool (practical approaches), often available on internet (e.g., [
            <xref ref-type="bibr" rid="ref26 ref28">28,
26</xref>
            ]). However, other approaches, despite the theoretical development (e.g., [
            <xref ref-type="bibr" rid="ref10 ref9">9, 10</xref>
            ]) have
not been yet implemented by meas of a tool (theoretical approaches).
3.2
          </p>
        </sec>
        <sec id="sec-3-1-2">
          <title>Functional Requirements (FR)</title>
          <p>Functional requirements refer to the product capabilities and define how a bidirectional
approach behaves to meet user needs. These requirements define important
characteristics of a bidirectional approach that contribute to the success of such a language or tool.
Furthermore, part of these requirements concerns the source and target artifacts of the
transformations and the mechanisms that can be used.</p>
          <p>
            Correctness. The simplest notion of correctness is the syntactic correctness: given a
well-formed source model, it must guarantee that the target model produced by the
transformation is wellformed. A significantly more complex notion is the semantic
correctness: does the produced target model must have the expected semantic
properties [
            <xref ref-type="bibr" rid="ref23">23</xref>
            ]. In other words, if the target model conforms to the target metamodel
specification and wellformednes rules, then the model transformation is syntactically correct;
whereas if the model transformation preserves the behavior of the source model, then it
is semantically correct [
            <xref ref-type="bibr" rid="ref11">11</xref>
            ].
          </p>
          <p>
            Inconsistency management. It concerns the ability to deal with incomplete or
inconsistent artifacts. In fact, in the early phases of the software development life-cycle,
requirements may not yet be fully understood; this often gives rise to ambiguous, incomplete
or inconsistent specifications, demanding for mechanisms for inconsistency
management. These mechanisms may be used to detect inconsistencies in the transformation or
in transformed models [
            <xref ref-type="bibr" rid="ref22 ref23 ref24">23, 22, 24</xref>
            ].
          </p>
          <p>
            Modularity. It is the ability to compose existing transformations into new composite
ones. Decomposing a complex transformation into small steps may require mechanisms
to specify how these smaller transformations are combined [
            <xref ref-type="bibr" rid="ref29 ref4">29, 4</xref>
            ].
          </p>
          <p>
            Traceability. It is the property of having a record of links between the source and
target elements of a transformation as well as the various stages of the transformation
process. Traceability links can be stored either in the target model or separately [
            <xref ref-type="bibr" rid="ref29 ref4 ref8">29, 4,
8</xref>
            ]. To support it, tools need to provide mechanisms to maintain an explicit link between
the source and target models [
            <xref ref-type="bibr" rid="ref22 ref23 ref24">23, 22, 24</xref>
            ].
          </p>
          <p>
            Change Propagation. Bidirectional approaches have to correctly propagate changes
occurring in models from a direction to another. In order to support change
propagation, bidirectional approaches may provide mechanism for an incremental updates
or consistency management. Unfortunately, some approaches require to translate the
source model into some standardized format (e.g., XML) before the transformation
execution, and to translate again to obtain the target model. A clear disadvantage of such
an approach concerns the difficult to synchronize models when changes are made [
            <xref ref-type="bibr" rid="ref22 ref23 ref24">23,
22, 24</xref>
            ]. Whereas, [
            <xref ref-type="bibr" rid="ref35">35</xref>
            ] propose a change propagating transformation language that
supports the preservation of target changes by back propagating them toward the source.
On the one hand, conflicts may arise each time the generated target should be merged
with the existing one; on the other hand, the back propagation poses some problems
related to the invertibility of transformations.
          </p>
          <p>
            Incrementality. It refers to the ability to update existing target models on the base on
changes made in the source models, and vice versa [
            <xref ref-type="bibr" rid="ref7">7</xref>
            ]. In particular, incremental
transformations synchronize two models by propagating modifications such that information
not covered by the transformation can be preserved and the computational effort can be
minimized. In contrast, a classical batch transformation synchronizes two models
taking a source model as input and computes the resulting target model from scratch, and
vice versa [
            <xref ref-type="bibr" rid="ref17">17</xref>
            ]. This property can be achieved, for example, by using traceability links.
When any of the source models are modified and the transformation is executed again,
the necessary changes to the target are determined and applied. At the same time, the
target elements may be preserved. In general, incremental transformations are able to
avoid loss of information (e.g., elements discarded by the mapping).
          </p>
          <p>
            Uniqueness. It refers to the number of solutions generated by the bidirectional
approach [
            <xref ref-type="bibr" rid="ref4">4</xref>
            ]. If the transformation is non-deterministic, it may exist more than one way
to keep models in a consistent way. Most of the existing tools generate a single solution.
Some recent approaches are able to generate all the possible solutions according to a
non-deterministic specification (e.g., [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ]).
          </p>
          <p>
            Termination. A model transformation provides termination, if it always terminates and
leads to a result [
            <xref ref-type="bibr" rid="ref4">4</xref>
            ].
          </p>
          <p>
            Symmetric/Asymmetric behavior. Transformations are asymmetric when they work
between a concrete set of models and a strict abstraction of this, and the abstract set of
models contains strict less information [
            <xref ref-type="bibr" rid="ref31">31</xref>
            ]. For instance, [
            <xref ref-type="bibr" rid="ref15 ref36">15, 36</xref>
            ] are asymmetric
transformations since two models that need to be synchronized must be one an abstraction
of the other. On the contrary, the transformation is symmetric.
          </p>
          <p>
            Type of Artifact. The distinction concerns the kinds of artifacts being transformed [
            <xref ref-type="bibr" rid="ref23">23</xref>
            ].
Program transformations involve programs (i.e., source code, bytecode, or machine
code); Model transformations involve software models. According to [
            <xref ref-type="bibr" rid="ref23">23</xref>
            ], the latter
term encompasses the former since a model can range from abstract analysis models,
over more concrete design models, to very concrete models of source code. Hence,
model transformations also include transformations from a more abstract to a more
concrete model (e.g., from design to code) and vice versa (e.g., in a reverse engineering
context). Model transformations are obviously needed in common tools such as code
generators and parsers.
          </p>
          <p>Data Model. It refers to the way in which data are represented into the tool. In
particular, data can be represented by means of a graphs or trees.</p>
          <p>
            Endogenous/Exogenous transformations. Models need to be expressed in some
modeling language (e.g., UML for design models, or programming languages for source
code models). The syntax and semantics of the modeling language itself is expressed
by a metamodel (e.g., the UML metamodel). Based on the language in which the source
and target models of a transformation are expressed, a distinction can be made
between endogenous and exogenous transformations [
            <xref ref-type="bibr" rid="ref23">23</xref>
            ]. Endogenous transformations
are transformations between models expressed in the same language. Exogenous
transformations are transformations between models expressed using different languages.
Transformation Mechanisms. The major distinction between transformation
mechanisms is whether they rely on a declarative or an operational (or imperative) approach.
Declarative approaches focus on the what aspect, i.e., they focus on what needs to be
transformed into what by defining a relation between the source and target models.
Operational approaches focus on the how aspect, i.e., they focus on how the transformation
itself needs to be performed by specifying the steps that are required to derive the target
models from the source models. Declarative approaches (e.g., [
            <xref ref-type="bibr" rid="ref1">1</xref>
            ]) are attractive
because particular services such as source model traversal, traceability management and
automatic bidirectionality can be offered by an underlying reasoning engine.
          </p>
          <p>
            There are several aspects that can be made implicit in a transformation language:
(i) navigation of a source model, (ii) creation of target model and (iii) order of rule
execution. As such, declarative transformations tend to be easier to write and understand
by software engineers. Operational (or constructive) approaches (e.g., [
            <xref ref-type="bibr" rid="ref30">30</xref>
            ]) may be
required to implement transformations for which declarative approaches fail to guarantee
their services. Especially when the application order of a set of transformations needs to
be controlled explicitly, an imperative approach is more appropriate thanks to its
builtin notions of sequence, selection and iteration. Such explicit control may be required to
implement transformations that reconcile source and target models after they were both
heavily manipulated outside that transformation tool.
          </p>
          <p>
            Declarative approaches include, but are not limited to, all of the following
approaches: functional programming, logic programming and graph transformation.
- Functional programming. Such an approach towards model transformation is
appealing, since any transformation can be regarded as a function that transforms
some input (the source model) into some output (the target model). In most
functional languages, functions are first class, implying that transformations can be
manipulated as models too. An important disadvantage of the functional approach is
that it becomes awkward to maintain state during transformation.
- Logic programming. A logic language (e.g., Prolog or Mercury) has many features
that are of direct interest for model transformation: backtracking, constraint
propagation (in the case of constraint logic programming languages), and unification.
Additionally, logic languages always offer a query mechanism, which means that
no separate query language needs to be provided.
- Graph transformation. It is a set of techniques and associated formalisms that are
directly applicable to model transformation [
            <xref ref-type="bibr" rid="ref16">16</xref>
            ]. It has many advantages. It is a
visual notation: the source, target and the transformation itself can be expressed in
a visual way. It offers mechanism to compose smaller transformations into more
complex ones.
          </p>
        </sec>
        <sec id="sec-3-1-3">
          <title>In-place/Out-of-place transformations. If the number of involved models is only one,</title>
          <p>
            the source and target model are the same and all changes are made in-place. Other
endogenous transformations create model elements in one model based on properties of
another model (regardless of the fact that both models conform to the same metamodel).
Such transformations are called out-place [
            <xref ref-type="bibr" rid="ref24">24</xref>
            ]. Note that exogenous transformations are
always out-place.
3.3
          </p>
        </sec>
        <sec id="sec-3-1-4">
          <title>Non Functional Requirements (NFR)</title>
          <p>Non functional requirements may be considered as the quality attributes for a
bidirectional transformation.</p>
          <p>
            Extensibility and Modifiability. The extensibility of a tool refers to the ease in which
it can be extended with new features. The modifiability of an artifact refers the ability
of a bidirectional transformation to be modified and adapted to provide different or
additional features [
            <xref ref-type="bibr" rid="ref25">25</xref>
            ].
          </p>
          <p>
            Usability and Utility. The language or tool should be useful, which means that it has
to serve to a practical purpose. On the other hand, it has to be usable too, which means
that it should be intuitive and efficient to use [
            <xref ref-type="bibr" rid="ref23">23</xref>
            ].
          </p>
          <p>
            Scalability. It is the ability to cope with large and complex transformations or
transformations of large and complex software models without sacrificing performance [
            <xref ref-type="bibr" rid="ref23">23</xref>
            ].
Robustness. It is the ability to manage invalid models. If unexpected errors are handled
and invalid source models are managed, then the approach provides robustness [
            <xref ref-type="bibr" rid="ref4">4</xref>
            ].
Verbosity and Conciseness. Conciseness means that the transformation language should
have as few syntactic constructs as possible. From a practical point of view, however,
this often requires more work to specify complex transformations. Hence, the language
should be more verbose by introducing extra syntactic sugar for frequently used
syntactic constructs. It is always a difficult task to find the right balance between these two
conflicting goals [
            <xref ref-type="bibr" rid="ref23 ref25">23, 25</xref>
            ].
          </p>
          <p>
            Interoperability. It refers to the ability of a tool to integrate itself with other tools, used
within the (model-driven) software engineering process [
            <xref ref-type="bibr" rid="ref25">25</xref>
            ]. Sometimes designers wish
to use and interchange models among different modeling tools and modeling languages.
A typical example is the translation of some tool-specific representation of UML models
into XMI (and vice versa), OMG’s XML-based standard for model interchange. This
facilitates exchanging UML models between different UML modeling tools [
            <xref ref-type="bibr" rid="ref22">22</xref>
            ].
Reference Platform (Standardization). It indicates whether the transform tool is
compliant to all the relevant standards (e.g., XML, UML, MOF) [
            <xref ref-type="bibr" rid="ref25">25</xref>
            ]. Many tools can export
and import models in a standard form, typically XML; an external tool can then take the
exported model and transform it [
            <xref ref-type="bibr" rid="ref29">29</xref>
            ]. Most of them are implemented within EMF [
            <xref ref-type="bibr" rid="ref12 ref13 ref21 ref5">5,
12, 13, 21</xref>
            ]. Others adopt an algebraic approach [
            <xref ref-type="bibr" rid="ref18 ref3">18, 3</xref>
            ] and work on files or data strings,
which are not directly integrated with the environment EMF.
          </p>
          <p>
            Verifiability and validity. It concerns the ability to test, verify and validate models and
transformations. Since transformations can be considered as a special kind of software
programs, systematic testing and validation techniques can be applied to them to ensure
that they have the desired behavior [
            <xref ref-type="bibr" rid="ref23 ref4">23, 4</xref>
            ]. Verification of (sets) of model
transformations is needed to assure that they produce well-formed and correct models, and
preserve (or improve) desirable properties such as (syntactical or semantical) correctness,
consistency, and so on [
            <xref ref-type="bibr" rid="ref22">22</xref>
            ].
          </p>
          <p>
            Existing approaches and tools involve testing (e.g., test case generation for model
transformations), model checking, or analysis performed only on executing programs
(e.g., run-time monitoring) [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ]. In contrast, [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ] and [
            <xref ref-type="bibr" rid="ref14">14</xref>
            ] propose an approach to
analyze model transformation by means of a logic environment, able to verify if the
transformation satisfy certain properties (correctness, well-formedness, non-determinism,
etc.). Furthermore, existing functional approaches perform model transformation
analysis [
            <xref ref-type="bibr" rid="ref18 ref27">18, 27</xref>
            ], in order to evaluate the transformation validity (generally, in terms of
correctness) before its execution.
4
          </p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Applications</title>
      <p>The proposed taxonomy can be applied for assessing characteristics of the existing
bidirectional approaches. As already said, each language or tool provides different
characteristics, and designers can choose the desired approach by using the set of evaluation
criteria proposed in this taxonomy. The application of this taxonomy on the existing
approaches aims to emphasize strengths and weaknesses.</p>
      <p>
        The most common paradigms used in the existing approaches are the declarative
and the functional paradigms. Among the existing declarative approaches, we are
interested to consider: (i) TGGs [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ], a bidirectional languages based on graph grammars;
(ii) QVT-Relations [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ], a declarative bidirectional language part of the QVT standard;
(iii) JTL [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], a constraint-based bidirectional transformation language. Moreover, we
are interested in considering some functional approaches, that are: (i) Lenses [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], an
asymmetric bidirectional programming language between a concrete structure and a
correspondent abstract view, (ii) GRound-Tram [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], a functional language-based
modeling framework; (iii) BiFlux [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ], an integrated modeling framework for developing
bidirectional model transformations based on graph query language.
      </p>
      <p>The proposed taxonomy represents a a preliminary work; in fact, the real benefit
is represented by the result of the application over the existing work. The application
of the selected features will highlight weaknesses and criticality of the bidirectional
approaches .</p>
    </sec>
    <sec id="sec-5">
      <title>Related Work</title>
      <p>This work is essentially based on the existing works which propose taxonomies and
characterizations for model transformation and bidirectionality.</p>
      <p>
        Important aspects of bidirectional transformations have been discussed during the
working group of the Dagstuhl seminars on Language Engineering for Model-Driven
Software Development in 2005 and 2011 [
        <xref ref-type="bibr" rid="ref20 ref6">6, 20</xref>
        ]. In general, model transformations can
be characterized by different orthogonal concerns (see [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] for a detailed classification).
Czarnecki and Helsen in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] present a survey of model transformation techniques with a
particular emphasis on rule-based approaches such as those based on graph
transformations. They mention directionality, but do not focus on it. In [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] the authors propose a
taxonomy for model transformation, in particular they consider functional requirements
that contribute to the success of the tool or language and non-functional requirements
or quality requirements. In [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], the taxonomy is applied to graph transformations, in
particular AGG [
        <xref ref-type="bibr" rid="ref33">33</xref>
        ] and Fujaba2. In [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] the same taxonomy is presented again, but
emphasizing the importance of other concepts such as composition, interoperability and
bidirectionality. [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] proposes a taxonomy based only on non-functional features,
referring to languages and artifacts. [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ] puts emphasis on standardization and languages for
model transformation. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] considers existing taxonomies and proposes a set of most
important features. Finally, [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ] performs a comparison among existing taxonomies.
      </p>
      <p>
        The above mentioned works consider general model transformation. A specific
taxonomy for bidirectional transformations has not yet been proposed, however there have
been several works analyzing characteristics and semantic issues of bidirectional model
transformations. Among them, in [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ] the QVT-R bidirectional transformation language
is illustrated and semantic issues and open questions about bidirectionality are
discussed. [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ] explores the landscape of bidirectional model transformations until the
2007. [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] proposes a survey on TGGs tools.
6
      </p>
    </sec>
    <sec id="sec-6">
      <title>Conclusion</title>
      <p>In Model Driven Engineering, bidirectional transformations are considered a core
ingredient for managing both the consistency and synchronization of two or more related
models. However, current languages still lack of a common understanding of its
semantic implications hampering their applicability in practice. This paper proposed a
set of relevant properties pertaining bidirectional model transformations. It is based on
the existing literature and the characteristics of existing approaches. This work aims to
represent a first step towards a taxonomy that can be used, among others, to help
developers in deciding which bidirectional transformation language or tool is more suitable
for different types of tasks. In order to do this, as future work, we plan to extend the
taxonomy with other features for bidirectionality and apply it to existing languages and
tools for bidirectionality.</p>
      <sec id="sec-6-1">
        <title>2 http://www.fujaba.de/</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>D. H.</given-names>
            <surname>Akehurst</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Kent</surname>
          </string-name>
          .
          <article-title>A Relational Approach to Defining Transformations in a Metamodel</article-title>
          .
          <source>In Procs of the 5th Int. Conf. on The UML</source>
          , pages
          <fpage>243</fpage>
          -
          <lpage>258</lpage>
          . Springer-Verlag,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>K.</given-names>
            <surname>Anastasakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Bordbar</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Ku</surname>
          </string-name>
          <article-title>¨ster. Analysis of model transformations via Alloy</article-title>
          . In ModeVVa'
          <volume>07</volume>
          , pages
          <fpage>47</fpage>
          -
          <lpage>56</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>A.</given-names>
            <surname>Bohannon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. N.</given-names>
            <surname>Foster</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. C.</given-names>
            <surname>Pierce</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Pilkiewicz</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Schmitt</surname>
          </string-name>
          . Boomerang:
          <article-title>Resourceful lenses for string data</article-title>
          .
          <source>In Proc. of the 35th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2008</source>
          , pages
          <fpage>407</fpage>
          -
          <lpage>419</lpage>
          ,
          <year>2008</year>
          . http://www.seas.upenn.edu/ harmony/.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>D.</given-names>
            <surname>Cetinkaya</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Verbraeck</surname>
          </string-name>
          .
          <article-title>Metamodeling and Model Transformations in Modeling and Simulation</article-title>
          .
          <source>In Proceedings of the Winter Simulation Conference, WSC '11</source>
          , pages
          <fpage>3048</fpage>
          -
          <lpage>3058</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <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>JTL: A Bidirectional and Change Propagating Transformation Language</article-title>
          .
          <source>In 3rd Int. Conf. on Software Lang. Engineering (SLE)</source>
          ,
          <year>SLE 2010</year>
          . http://jtl.di.univaq.it.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. N.</given-names>
            <surname>Foster</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>La</surname>
          </string-name>
          <article-title>¨mmel, A. Schu¨rr, and</article-title>
          <string-name>
            <given-names>J. F.</given-names>
            <surname>Terwilliger</surname>
          </string-name>
          .
          <article-title>Bidirectional Transformations: A Cross-Discipline Perspective-GRACE meeting</article-title>
          .
          <source>In ICMT2009</source>
          , volume
          <volume>5563</volume>
          <source>of LNCS</source>
          , pages
          <fpage>260</fpage>
          -
          <lpage>283</lpage>
          . Springer,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Helsen</surname>
          </string-name>
          .
          <article-title>Feature-based Survey of Model Transformation Approaches</article-title>
          .
          <source>IBM Systems</source>
          J.,
          <volume>45</volume>
          (
          <issue>3</issue>
          ),
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>M.</given-names>
            <surname>Dehayni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Barbar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Awada</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Smaili</surname>
          </string-name>
          .
          <article-title>Some model transformation approaches: a qualitative critical review</article-title>
          .
          <source>Journal of Applied Sciences Research</source>
          ,
          <volume>5</volume>
          (
          <issue>11</issue>
          ):
          <fpage>1957</fpage>
          -
          <lpage>1965</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Z.</given-names>
            <surname>Diskin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Xiong</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          .
          <article-title>From state-based to delta-based bidirectional model transformation</article-title>
          .
          <source>In 3rd Int. Conf. on Model Transformation</source>
          . Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>Z.</given-names>
            <surname>Diskin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Xiong</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnecki. From</surname>
          </string-name>
          state
          <article-title>- to delta-based bidirectional model transformations: the asymmetric case</article-title>
          .
          <source>In Journal of Object Technology</source>
          , volume
          <volume>10</volume>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>H.</given-names>
            <surname>Ehrig</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.</given-names>
            <surname>Ermel</surname>
          </string-name>
          .
          <article-title>Semantical correctness and completeness of model transformations using graph and rule transformation</article-title>
          .
          <source>In ICGT</source>
          , pages
          <fpage>194</fpage>
          -
          <lpage>210</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>12. EMoflon. http://www.moflon.org/.</mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>13. EMorF. http://www.emorf.org.</mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>R.</given-names>
            <surname>Eramo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Marinelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Pierantonio</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Rosa</surname>
          </string-name>
          .
          <article-title>Towards analysing non-determinism in bidirectional transformations</article-title>
          .
          <source>In Procs. of AMT</source>
          <year>2014</year>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>J. Foster</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Greenwald</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Moore</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Pierce</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Schmitt</surname>
          </string-name>
          .
          <article-title>Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem</article-title>
          .
          <source>ACM Trans. Program. Lang. Syst.</source>
          ,
          <volume>29</volume>
          (
          <issue>3</issue>
          ),
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>A.</given-names>
            <surname>Gerber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lawley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Raymond</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Steel</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Wood</surname>
          </string-name>
          .
          <article-title>Transformation: The Missing Link of MDA</article-title>
          .
          <source>In 1st Int. Conf. on Graph Transformation</source>
          , pages
          <fpage>90</fpage>
          -
          <lpage>105</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>H.</given-names>
            <surname>Giese</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Wagner</surname>
          </string-name>
          .
          <article-title>From model transformation to incremental bidirectional model synchronization</article-title>
          .
          <source>Software and Systems Modeling</source>
          ,
          <volume>8</volume>
          (
          <issue>1</issue>
          ):
          <fpage>21</fpage>
          -
          <lpage>43</lpage>
          -43,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>S.</given-names>
            <surname>Hidaka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Inaba</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Kato</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Nakano</surname>
          </string-name>
          .
          <article-title>Groundtram: An integrated framework for developing well-behaved bidirectional model transformations</article-title>
          .
          <source>In ASE</source>
          <year>2011</year>
          ,
          <year>2011</year>
          . http://www.biglab.org/.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>S.</given-names>
            <surname>Hildebrandt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Lambers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Giese</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Rieke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Greenyer</surname>
          </string-name>
          , W. Scha¨fer,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lauder</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Anjorin</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Schu</surname>
          </string-name>
          <article-title>¨rr. A survey of triple graph grammar tools</article-title>
          .
          <source>In BX</source>
          <year>2013</year>
          , volume
          <volume>57</volume>
          , pages
          <fpage>1</fpage>
          -
          <lpage>18</lpage>
          . EC-EASST,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>Z.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Schu¨rr, P. Stevens, and
          <string-name>
            <given-names>J. F.</given-names>
            <surname>Terwilliger</surname>
          </string-name>
          .
          <article-title>Bidirectional transformation ”bx” (dagstuhl seminar 11031)</article-title>
          .
          <source>Dagstuhl Reports</source>
          ,
          <volume>1</volume>
          (
          <issue>1</issue>
          ):
          <fpage>42</fpage>
          -
          <lpage>67</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>21. MediniQVT. http://projects.ikv.de/qvt/.</mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <given-names>T.</given-names>
            <surname>Mens</surname>
          </string-name>
          .
          <article-title>Model transformation: A survey of the state-of-the-art</article-title>
          . In S. Gerard,
          <string-name>
            <given-names>J.-P.</given-names>
            <surname>Babau</surname>
          </string-name>
          , and J. Champeau, editors,
          <article-title>Model Driven Engineering for Distributed Real-Time Embedded Systems</article-title>
          . Wiley - ISTE,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>T.</given-names>
            <surname>Mens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P. V.</given-names>
            <surname>Gorp</surname>
          </string-name>
          .
          <article-title>A Taxonomy of Model Transformations</article-title>
          .
          <source>In Language Engineering for Model-Driven Software Development</source>
          , volume
          <volume>04101</volume>
          of Dagstuhl Seminar Proceedings,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24. T. Mens,
          <string-name>
            <given-names>P. V.</given-names>
            <surname>Gorp</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Varro</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Karsai</surname>
          </string-name>
          .
          <article-title>Applying a model transformation taxonomy to graph transformation technology</article-title>
          .
          <source>Electronic Notes in Theoretical Computer Science</source>
          ,
          <volume>152</volume>
          :
          <fpage>143</fpage>
          -
          <lpage>159</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <given-names>S.</given-names>
            <surname>Nalchigar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Salay</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Chechik</surname>
          </string-name>
          .
          <article-title>Towards a Catalog of Non-Functional Requirements in Model Transformation Languages</article-title>
          .
          <source>In AMT @ MoDELS</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Object Management</surname>
          </string-name>
          <article-title>Group (OMG)</article-title>
          .
          <source>MOF QVT Final Adopted Specification</source>
          ,
          <year>2005</year>
          . OMG Adopted Specification ptc/
          <fpage>05</fpage>
          -11-01.
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <given-names>H.</given-names>
            <surname>Pacheco</surname>
          </string-name>
          and
          <string-name>
            <given-names>Z.</given-names>
            <surname>Hu</surname>
          </string-name>
          .
          <article-title>Biflux: A Bidirectional Functional Update Language for XML</article-title>
          .
          <source>In BIRS workshop: Bidirectional transformations (BX)</source>
          ,
          <year>2013</year>
          . http://www.prg.nii.ac.jp/projects/BiFluX/.
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28. A.
          <string-name>
            <surname>Schu</surname>
          </string-name>
          <article-title>¨rr. Specification of Graph Translators with Triple Graph Grammars</article-title>
          .
          <source>In in Proc. of the 20th Int. Workshop on Graph-Theoretic Concepts in Computer Science (WG '94)</source>
          , Herrsching (D. Springer,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <given-names>S.</given-names>
            <surname>Sendall</surname>
          </string-name>
          and
          <string-name>
            <given-names>W.</given-names>
            <surname>Kozaczynski</surname>
          </string-name>
          . Model Transformation:
          <article-title>The Heart and Soul of Model-Driven Software Development</article-title>
          . IEEE Softw.,
          <volume>20</volume>
          (
          <issue>5</issue>
          ):
          <fpage>42</fpage>
          -
          <lpage>45</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <surname>J. Sprinkle</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Agrawal</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Levendovszky</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Shi</surname>
            , and
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Karsai. Domain Model</surname>
          </string-name>
          <article-title>Translation Using Graph Transformations</article-title>
          .
          <source>In 10th IEEE Int. Conf. and Workshop on the Engineering of Computer-Based Systems</source>
          , pages
          <fpage>159</fpage>
          -
          <lpage>168</lpage>
          . IEEE Computer Society,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <given-names>P.</given-names>
            <surname>Stevens</surname>
          </string-name>
          .
          <article-title>A Landscape of Bidirectional Model Transformations</article-title>
          . In R. La¨mmel, J. Visser, and J. Saraiva, editors,
          <source>GTTSE</source>
          <year>2007</year>
          , Braga, Portugal, volume
          <volume>5235</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>408</fpage>
          -
          <lpage>424</lpage>
          . Springer,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32.
          <string-name>
            <given-names>P.</given-names>
            <surname>Stevens</surname>
          </string-name>
          .
          <article-title>Bidirectional Model Transformations in QVT: semantic issues and open questions</article-title>
          .
          <source>Software and Systems Modeling</source>
          ,
          <volume>8</volume>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33.
          <string-name>
            <given-names>G.</given-names>
            <surname>Taentzer. AGG: A Graph Transformation</surname>
          </string-name>
          <article-title>Environment for Modeling and Validation of Software</article-title>
          .
          <source>In Int. Workshop on Applications of Graph Transformations with Industrial Relevance</source>
          ,
          <string-name>
            <surname>AGTIVE</surname>
          </string-name>
          <year>2003</year>
          , volume
          <volume>3062</volume>
          <source>of LNCS</source>
          , pages
          <fpage>446</fpage>
          -
          <lpage>453</lpage>
          . Springer-Verlag,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34.
          <string-name>
            <given-names>G.</given-names>
            <surname>Tamura</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Cleve</surname>
          </string-name>
          .
          <article-title>A Comparison of Taxonomies for Model Transformation Languages</article-title>
          .
          <source>Paradigma</source>
          ,
          <volume>4</volume>
          (
          <issue>1</issue>
          ):
          <fpage>1</fpage>
          -
          <lpage>14</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35.
          <string-name>
            <given-names>L.</given-names>
            <surname>Tratt. A Change Propagating Model Transformation Language</surname>
          </string-name>
          .
          <source>Technical report</source>
          , Department of Computer Science,
          <source>King's College London, TR-06-07</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          36.
          <string-name>
            <given-names>A.</given-names>
            <surname>Wider</surname>
          </string-name>
          .
          <article-title>Towards Combinators for Bidirectional Model Transformations in Scala</article-title>
          .
          <source>In Proc. of the 4th Int. Conf. on Software Language Engineering</source>
          ,
          <string-name>
            <surname>SLE</surname>
          </string-name>
          <year>2011</year>
          , pages
          <fpage>367</fpage>
          -
          <lpage>377</lpage>
          . Springer-Verlag,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          37.
          <string-name>
            <given-names>Y.</given-names>
            <surname>Xiong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Zhao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Takeichi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Mei</surname>
          </string-name>
          .
          <article-title>Towards Automatic Model Synchronization from Model Transformations</article-title>
          .
          <source>In ASE 2007</source>
          , pages
          <fpage>164</fpage>
          -
          <lpage>173</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>