=Paper= {{Paper |id=Vol-1354/paper11 |storemode=property |title=Towards a Taxonomy for Bidirectional Transformation |pdfUrl=https://ceur-ws.org/Vol-1354/paper-11.pdf |volume=Vol-1354 |dblpUrl=https://dblp.org/rec/conf/sattose/EramoMP14 }} ==Towards a Taxonomy for Bidirectional Transformation== https://ceur-ws.org/Vol-1354/paper-11.pdf
 Towards a Taxonomy for Bidirectional Transformation

              Romina Eramo, Romeo Marinelli, and Alfonso Pierantonio

       Dipartimento di Ingegneria e Scienze dell’Informazione e Matematica (DISIM),
                          Università degli Studi dell’Aquila, Italy
                             name.surname@univaq.it




       Abstract. In Model Driven Engineering, bidirectional transformations are con-
       sidered a core ingredient for managing both the consistency and synchronization
       of two or more related models. However, current languages still lack of a com-
       mon understanding of their semantic implications hampering their applicability
       in practice. This paper illustrates a set of relevant properties pertaining to bidirec-
       tional 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.



1   Introduction

Bidirectionality is an important feature of model transformations: often it is assumed
that during development only the source model of a transformation undergoes modifi-
cations, 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 [31, 37].
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.
    Many typical situations, that arise when both models are modified by humans, de-
mand bidirectional transformations; for instance, a conceptual model is transformed
into a platform specific model; a subview of selected data is modified and contextu-
ally 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) [31]. 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.
    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 Lan-
guage Engineering for Model-Driven Software Development [6, 20] and the existing
taxonomies for model transformations (e.g., [23, 7]).
    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 re-
lated work and Section 6 draws some conclusion and future work.


2      Background

Despite its relevance, bidirectionality has rarely produced anticipated benefits as demon-
strated 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 [32].
     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 character-
istics 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 infea-
sible with another. Understanding these characteristics is useful for distinguishing be-
tween 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.
     Several works have been proposed for defining characterization and classification
schemes of model transformation, others illustrate the state-of-the-art. Many of the pro-
posed aspects characterizing model transformations are considered in this study, many
other aspects need to be explored to shift the focus on intrinsic characteristics of bidi-
rectional model transformations. Taking inspiration from [23], we consider some fun-
damental 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.
     These issues demand for the definition of pertaining concepts, terms and base char-
acteristics 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      Taxonomy

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 Func-
tional Requirements (NFR). They are described in detail in the following.
 1
     http://www.eclipse.org/atl/
3.1   General Requirements (GR)

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 heavy-
duty (e.g., compilers and code generators) [23]. The large difference among them re-
quires 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.
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 man-
ual 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 [23].
Visualization. It refers to the way in which models, metamodels and model transforma-
tions 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., [28]), others require
transformations are written entirely in textual way (e.g., [3]).
Level of industry application. Some existing tools are used in both academic and
industrial world (e.g., [28]), others are used exclusively in academic setting (e.g., [5]),
in which the usefulness is due to particular issues related to the bidirectionality.
Maturity level. The main existing approaches for bidirectional transformations are im-
plemented by means a tool (practical approaches), often available on internet (e.g., [28,
26]). However, other approaches, despite the theoretical development (e.g., [9, 10]) have
not been yet implemented by meas of a tool (theoretical approaches).


3.2   Functional Requirements (FR)

Functional requirements refer to the product capabilities and define how a bidirectional
approach behaves to meet user needs. These requirements define important characteris-
tics 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.
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 prop-
erties [23]. In other words, if the target model conforms to the target metamodel speci-
fication 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 [11].
Inconsistency management. It concerns the ability to deal with incomplete or inconsis-
tent artifacts. In fact, in the early phases of the software development life-cycle, require-
ments may not yet be fully understood; this often gives rise to ambiguous, incomplete
or inconsistent specifications, demanding for mechanisms for inconsistency manage-
ment. These mechanisms may be used to detect inconsistencies in the transformation or
in transformed models [23, 22, 24].
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 [29, 4].
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 [29, 4,
8]. To support it, tools need to provide mechanisms to maintain an explicit link between
the source and target models [23, 22, 24].
Change Propagation. Bidirectional approaches have to correctly propagate changes
occurring in models from a direction to another. In order to support change propa-
gation, 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 ex-
ecution, 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 [23,
22, 24]. Whereas, [35] propose a change propagating transformation language that sup-
ports 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.
Incrementality. It refers to the ability to update existing target models on the base on
changes made in the source models, and vice versa [7]. In particular, incremental trans-
formations 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 tak-
ing a source model as input and computes the resulting target model from scratch, and
vice versa [17]. 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).
Uniqueness. It refers to the number of solutions generated by the bidirectional ap-
proach [4]. 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., [5]).
Termination. A model transformation provides termination, if it always terminates and
leads to a result [4].
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 [31]. For instance, [15, 36] are asymmetric trans-
formations since two models that need to be synchronized must be one an abstraction
of the other. On the contrary, the transformation is symmetric.
Type of Artifact. The distinction concerns the kinds of artifacts being transformed [23].
Program transformations involve programs (i.e., source code, bytecode, or machine
code); Model transformations involve software models. According to [23], 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.
Data Model. It refers to the way in which data are represented into the tool. In particu-
lar, data can be represented by means of a graphs or trees.
Endogenous/Exogenous transformations. Models need to be expressed in some mod-
eling 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 be-
tween endogenous and exogenous transformations [23]. Endogenous transformations
are transformations between models expressed in the same language. Exogenous trans-
formations are transformations between models expressed using different languages.
Transformation Mechanisms. The major distinction between transformation mecha-
nisms 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. Op-
erational 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., [1]) are attractive be-
cause particular services such as source model traversal, traceability management and
automatic bidirectionality can be offered by an underlying reasoning engine.
     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 ex-
ecution. As such, declarative transformations tend to be easier to write and understand
by software engineers. Operational (or constructive) approaches (e.g., [30]) may be re-
quired 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 built-
in 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.
     Declarative approaches include, but are not limited to, all of the following ap-
proaches: functional programming, logic programming and graph transformation.
  - Functional programming. Such an approach towards model transformation is ap-
    pealing, since any transformation can be regarded as a function that transforms
    some input (the source model) into some output (the target model). In most func-
    tional languages, functions are first class, implying that transformations can be ma-
    nipulated 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 prop-
    agation (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 [16]. 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.
In-place/Out-of-place transformations. If the number of involved models is only one,
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 [24]. Note that exogenous transformations are
always out-place.


3.3   Non Functional Requirements (NFR)

Non functional requirements may be considered as the quality attributes for a bidirec-
tional transformation.
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 [25].
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 [23].
Scalability. It is the ability to cope with large and complex transformations or transfor-
mations of large and complex software models without sacrificing performance [23].
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 [4].
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 syn-
tactic constructs. It is always a difficult task to find the right balance between these two
conflicting goals [23, 25].
Interoperability. It refers to the ability of a tool to integrate itself with other tools, used
within the (model-driven) software engineering process [25]. 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 [22].
Reference Platform (Standardization). It indicates whether the transform tool is com-
pliant to all the relevant standards (e.g., XML, UML, MOF) [25]. 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 [29]. Most of them are implemented within EMF [5,
12, 13, 21]. Others adopt an algebraic approach [18, 3] and work on files or data strings,
which are not directly integrated with the environment EMF.
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 [23, 4]. Verification of (sets) of model transforma-
tions is needed to assure that they produce well-formed and correct models, and pre-
serve (or improve) desirable properties such as (syntactical or semantical) correctness,
consistency, and so on [22].
    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) [2]. In contrast, [2] and [14] propose an approach to ana-
lyze model transformation by means of a logic environment, able to verify if the trans-
formation satisfy certain properties (correctness, well-formedness, non-determinism,
etc.). Furthermore, existing functional approaches perform model transformation anal-
ysis [18, 27], in order to evaluate the transformation validity (generally, in terms of
correctness) before its execution.


4   Applications

The proposed taxonomy can be applied for assessing characteristics of the existing bidi-
rectional approaches. As already said, each language or tool provides different charac-
teristics, 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.
     The most common paradigms used in the existing approaches are the declarative
and the functional paradigms. Among the existing declarative approaches, we are inter-
ested to consider: (i) TGGs [28], a bidirectional languages based on graph grammars;
(ii) QVT-Relations [26], a declarative bidirectional language part of the QVT standard;
(iii) JTL [5], a constraint-based bidirectional transformation language. Moreover, we
are interested in considering some functional approaches, that are: (i) Lenses [3], an
asymmetric bidirectional programming language between a concrete structure and a
correspondent abstract view, (ii) GRound-Tram [18], a functional language-based mod-
eling framework; (iii) BiFlux [27], an integrated modeling framework for developing
bidirectional model transformations based on graph query language.
     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 .
5      Related Work

This work is essentially based on the existing works which propose taxonomies and
characterizations for model transformation and bidirectionality.
     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 [6, 20]. In general, model transformations can
be characterized by different orthogonal concerns (see [7] for a detailed classification).
Czarnecki and Helsen in [7] present a survey of model transformation techniques with a
particular emphasis on rule-based approaches such as those based on graph transforma-
tions. They mention directionality, but do not focus on it. In [23] 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 [24], the taxonomy is applied to graph transformations, in
particular AGG [33] and Fujaba2 . In [22] the same taxonomy is presented again, but
emphasizing the importance of other concepts such as composition, interoperability and
bidirectionality. [25] proposes a taxonomy based only on non-functional features, refer-
ring to languages and artifacts. [29] puts emphasis on standardization and languages for
model transformation. [4] considers existing taxonomies and proposes a set of most
important features. Finally, [34] performs a comparison among existing taxonomies.
     The above mentioned works consider general model transformation. A specific tax-
onomy 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 [32] the QVT-R bidirectional transformation language
is illustrated and semantic issues and open questions about bidirectionality are dis-
cussed. [31] explores the landscape of bidirectional model transformations until the
2007. [19] proposes a survey on TGGs tools.


6      Conclusion

In Model Driven Engineering, bidirectional transformations are considered a core in-
gredient for managing both the consistency and synchronization of two or more related
models. However, current languages still lack of a common understanding of its se-
mantic 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 devel-
opers 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.

 2
     http://www.fujaba.de/
References

 1. D. H. Akehurst and S. Kent. A Relational Approach to Defining Transformations in a Meta-
    model. In Procs of the 5th Int. Conf. on The UML, pages 243–258. Springer-Verlag, 2002.
 2. K. Anastasakis, B. Bordbar, and J. M. Küster. Analysis of model transformations via Alloy.
    In ModeVVa’07, pages 47–56, 2007.
 3. A. Bohannon, J. N. Foster, B. C. Pierce, A. Pilkiewicz, and A. Schmitt. Boomerang: Re-
    sourceful lenses for string data. In Proc. of the 35th Annual ACM SIGPLAN-SIGACT
    Symposium on Principles of Programming Languages, POPL 2008, pages 407–419, 2008.
    http://www.seas.upenn.edu/ harmony/.
 4. D. Cetinkaya and A. Verbraeck. Metamodeling and Model Transformations in Modeling and
    Simulation. In Proceedings of the Winter Simulation Conference, WSC ’11, pages 3048–
    3058, 2011.
 5. A. Cicchetti, D. Di Ruscio, R. Eramo, and A. Pierantonio. JTL: A Bidirectional and Change
    Propagating Transformation Language. In 3rd Int. Conf. on Software Lang. Engineering
    (SLE), SLE 2010. http://jtl.di.univaq.it.
 6. K. Czarnecki, J. N. Foster, Z. Hu, R. Lämmel, A. Schürr, and J. F. Terwilliger. Bidirectional
    Transformations: A Cross-Discipline Perspective–GRACE meeting. In ICMT2009, volume
    5563 of LNCS, pages 260–283. Springer, 2009.
 7. K. Czarnecki and S. Helsen. Feature-based Survey of Model Transformation Approaches.
    IBM Systems J., 45(3), 2006.
 8. M. Dehayni, K. Barbar, A. Awada, and M. Smaili. Some model transformation approaches:
    a qualitative critical review. Journal of Applied Sciences Research, 5(11):1957–1965, 2009.
 9. Z. Diskin, Y. Xiong, and K. Czarnecki. From state-based to delta-based bidirectional model
    transformation. In 3rd Int. Conf. on Model Transformation. Springer, 2010.
10. Z. Diskin, Y. Xiong, and K. Czarnecki. From state- to delta-based bidirectional model trans-
    formations: the asymmetric case. In Journal of Object Technology, volume 10, 2011.
11. H. Ehrig and C. Ermel. Semantical correctness and completeness of model transformations
    using graph and rule transformation. In ICGT, pages 194–210, 2008.
12. EMoflon. http://www.moflon.org/.
13. EMorF. http://www.emorf.org.
14. R. Eramo, R. Marinelli, A. Pierantonio, and G. Rosa. Towards analysing non-determinism
    in bidirectional transformations. In Procs. of AMT 2014, 2014.
15. J. Foster, M. Greenwald, J. Moore, B. Pierce, and A. Schmitt. Combinators for bidirec-
    tional tree transformations: A linguistic approach to the view-update problem. ACM Trans.
    Program. Lang. Syst., 29(3), 2007.
16. A. Gerber, M. Lawley, K. Raymond, J. Steel, and A.Wood. Transformation: The Missing
    Link of MDA. In 1st Int. Conf. on Graph Transformation, pages 90–105, 2002.
17. H. Giese and R. Wagner. From model transformation to incremental bidirectional model
    synchronization. Software and Systems Modeling, 8(1):21–43–43, 2009.
18. S. Hidaka, Z. Hu, K. Inaba, H. Kato, and K. Nakano. Groundtram: An integrated frame-
    work for developing well-behaved bidirectional model transformations. In ASE 2011, 2011.
    http://www.biglab.org/.
19. S. Hildebrandt, L. Lambers, H. Giese, J. Rieke, J. Greenyer, W. Schäfer, M. Lauder, A. An-
    jorin, and A. Schürr. A survey of triple graph grammar tools. In BX 2013, volume 57, pages
    1–18. EC-EASST, 2013.
20. Z. Hu, A. Schürr, P. Stevens, and J. F. Terwilliger. Bidirectional transformation ”bx”
    (dagstuhl seminar 11031). Dagstuhl Reports, 1(1):42–67, 2011.
21. MediniQVT. http://projects.ikv.de/qvt/.
22. T. Mens. Model transformation: A survey of the state-of-the-art. In S. Gerard, J.-P. Babau,
    and J. Champeau, editors, Model Driven Engineering for Distributed Real-Time Embedded
    Systems. Wiley - ISTE, 2010.
23. T. Mens, K. Czarnecki, and P. V. Gorp. A Taxonomy of Model Transformations. In Language
    Engineering for Model-Driven Software Development, volume 04101 of Dagstuhl Seminar
    Proceedings, 2004.
24. T. Mens, P. V. Gorp, D. Varro, and G. Karsai. Applying a model transformation taxon-
    omy to graph transformation technology. Electronic Notes in Theoretical Computer Science,
    152:143–159, 2006.
25. S. Nalchigar, R. Salay, and M. Chechik. Towards a Catalog of Non-Functional Requirements
    in Model Transformation Languages. In AMT @ MoDELS, 2013.
26. Object Management Group (OMG). MOF QVT Final Adopted Specification, 2005. OMG
    Adopted Specification ptc/05-11-01.
27. H. Pacheco and Z. Hu.               Biflux: A Bidirectional Functional Update Lan-
    guage for XML.          In BIRS workshop: Bidirectional transformations (BX), 2013.
    http://www.prg.nii.ac.jp/projects/BiFluX/.
28. A. Schürr. Specification of Graph Translators with Triple Graph Grammars. In in Proc.
    of the 20th Int. Workshop on Graph-Theoretic Concepts in Computer Science (WG ‘94),
    Herrsching (D. Springer, 1995.
29. S. Sendall and W. Kozaczynski. Model Transformation: The Heart and Soul of Model-Driven
    Software Development. IEEE Softw., 20(5):42–45, 2003.
30. J. Sprinkle, A. Agrawal, T. Levendovszky, F. Shi, and G. Karsai. Domain Model Translation
    Using Graph Transformations. In 10th IEEE Int. Conf. and Workshop on the Engineering of
    Computer-Based Systems, pages 159–168. IEEE Computer Society, 2003.
31. P. Stevens. A Landscape of Bidirectional Model Transformations. In R. Lämmel, J. Visser,
    and J. Saraiva, editors, GTTSE 2007, Braga, Portugal, volume 5235 of Lecture Notes in
    Computer Science, pages 408–424. Springer, 2008.
32. P. Stevens. Bidirectional Model Transformations in QVT: semantic issues and open ques-
    tions. Software and Systems Modeling, 8, 2009.
33. G. Taentzer. AGG: A Graph Transformation Environment for Modeling and Validation of
    Software. In Int. Workshop on Applications of Graph Transformations with Industrial Rele-
    vance, AGTIVE 2003, volume 3062 of LNCS, pages 446–453. Springer-Verlag, 2004.
34. G. Tamura and A. Cleve. A Comparison of Taxonomies for Model Transformation Lan-
    guages. Paradigma, 4(1):1–14, 2010.
35. L. Tratt. A Change Propagating Model Transformation Language. Technical report, Depart-
    ment of Computer Science, King’s College London, TR-06-07, 2006.
36. A. Wider. Towards Combinators for Bidirectional Model Transformations in Scala. In
    Proc. of the 4th Int. Conf. on Software Language Engineering, SLE 2011, pages 367–377.
    Springer-Verlag, 2012.
37. Y. Xiong, D. Liu, Z. Hu, H. Zhao, M. Takeichi, and H. Mei. Towards Automatic Model
    Synchronization from Model Transformations. In ASE 2007, pages 164–173, 2007.