<!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>Lenses for View Synchronization in Metamodel-Based Multi-View Modeling</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Arif Wider</string-name>
          <email>wider@informatik.hu-berlin.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Humboldt-Universitat zu Berlin Unter den Linden 6</institution>
          ,
          <addr-line>D-10099 Berlin</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>When using multiple views to describe a system, the underlying models of these views have to be kept consistent, which is called model synchronization. Manually implemented model synchronizations that are not simple bijections are hard to maintain and to reason about. Special languages for expressing bidirectional transformations can help in this respect, but existing languages applicable in model-driven engineering are often restricted to bijections or complex to use. I adapt lenses, a promising term-rewriting-based approach to bidirectional transformations, to model synchronization. This allows for exible view synchronization that can be integrated with existing metamodel-based technologies.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>Modeling a system using multiple views is a common means nowadays to break
down the complexity of the system description. A prominent example for that
is the architecture of the UML, providing multiple diagram types which serve
as aspect-speci c views on a system. Using multiple views to describe a system
imposes the problem of inter-view consistency.</p>
      <p>
        In model-driven engineering (MDE) di erent views on a system can be
implemented as di erent domain-speci c languages (DSLs). This way, the system
description consists of an ensemble of models described using these languages.
This is called multi-view modeling or domain-speci c multimodeling [
        <xref ref-type="bibr" rid="ref10 ref11">11, 10</xref>
        ]. In
multimodeling inter-view consistency is achieved by synchronizing these models.
      </p>
      <p>Naively implemented model synchronizations, i.e., pairs of forward and
backward transformations described in a general-purpose language, can be hard to
maintain and to reason about because consistency of forward and backward
transformations has to be ensured and transformations can be arbitrarily
complex. Special languages for describing bidirectional transformations provide
notations to describe consistency relations between models. From this notation a
forward and a backward transformation can be automatically inferred so that
the consistency of these transformations is ensured by construction. This is easy
if the relation is a bijection but gets hard if it is neither surjective nor
injective. Unfortunately, as the idea of a view is to hide information which is not
aspect-speci c, bijections hardly occur in a multi-view setting.</p>
      <p>
        Bidirectional transformations are researched for a long time, e.g, in the graph
transformation community using Triple Graph Grammars (TGGs) [
        <xref ref-type="bibr" rid="ref18 ref6">18, 6</xref>
        ]. With
QVT Relational 1, there is even a standard by the OMG for describing
bidirectional transformations of metamodel-based models. Nevertheless, languages for
describing bidirectional model transformations are still not widely used in MDE.
Concerning QVT, Stevens points out semantic issues that could be one reason
for this limited acceptance [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. Another practical issue could be the weak
situation regarding tool support for QVT Relations: Although QVT speci cation
was completed in 2008, there are only few implementations and even those are
not maintained regularly.
      </p>
      <p>
        Lenses [
        <xref ref-type="bibr" rid="ref7 ref8">8, 7</xref>
        ] is a combinator-based approach to bidirectional transformations:
Foster et al. provide small, well-unterstood bidirectional transformations (called
lenses) and a set of combinators that allow more complex transformations to
be composed from those smaller ones. This greatly improves extensibility and
comprehensibility. Furthermore, a type system guarantees that composed lenses
preserve certain properties of their sub-lenses. This combinator-based approach
is possible because lenses are restricted to the asymmetric case where one of the
two models to be synchronized is an abstraction of the other, i.e., the relation
is at least surjective. This way, the problem of model synchronization resembles
the view update problem that has been studied in the database community for
decades [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        In contrast to less restricted symmetric approaches like TGGs and QVT that
were designed for transformations of graphs and models, respectively, lenses were
designed for synchronization of tree-like data and were mainly implemented for
string transformations [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], e.g., synchronization of XML-data. This poses some
conceptual challenges, when attempting to use lenses for model synchronization
in a metamodel-based setting.
      </p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        There are several approaches using bidirectional transformations in the
context of MDE, but most of them use symmetric bidirectional transformations
and therefore lack the combinator-based nature that can be achieved using an
asymmetric approach (e.g., the AToM3 Framework [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]). Among them are also
some, that integrate with existing metamodel-based technologies, e.g., the Tefkat
transformation engine [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] that is closely connected with QVT and integrates
with the Eclipse Modeling Framework (EMF)2. Recently, Hettel et al. presented
an asymmetric approach for using the SQL-like Tefkat language for round-trip
engineering [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>
        An approach quite similar to lenses which is also used for view
synchronization is the work of Hu et al. [
        <xref ref-type="bibr" rid="ref14 ref17">14, 17</xref>
        ]. Somehow similar to my approach, Garcia
proposed to use their work in a metamodel-based context [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. However, in their
approach, changes in a model have to be explicitly marked to be synchronized.
This prevents agnostic integration with existing metamodel-based technologies.
      </p>
      <sec id="sec-2-1">
        <title>1 http://www.omg.org/spec/QVT/1.0/ 2 http://www.eclipse.org/modeling/emf/</title>
        <p>
          Furthermore, there are some approaches to bidirectional transformations that
are heavily inspired by lenses or extend lenses, but are not used for view
synchronization: Hidaka combines lenses with a query language but not in a
metamodelbased context [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ].
        </p>
        <p>
          Probably closest to my work is the work of Xiong [
          <xref ref-type="bibr" rid="ref21 ref22 ref5">22, 21, 5</xref>
          ], who integrated
concepts of lenses into his work on bidirectional transformations of
metamodelbased models, but he proposes an update-based approach in contrast to the
state-based approach of lenses and his work does not focus on integration with
existing metamodel-based technologies.
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Approach</title>
      <p>My approach is to use lenses for view synchronization in metamodel-based
multiview modeling environments. In order to achieve this, I want to show that
1. the advantages of lenses, especially their composability, can be leveraged
when describing bidirectional transformations of metamodel-based models,
2. that in conjunction with a synchronization architecture that incorporates a
common model, lenses can be bene cially used for view synchronization and
3. that this approach allows for straightforward integration with existing
metamodel-based technologies.</p>
      <p>
        Lenses for Bidirectional Model Transformations In order to use lenses
for model synchronization, the concepts of lenses have to be bridged from the
grammarware technological space that lenses originate from to the modelware
technological space [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. For this, the following challenges are to be solved:
{ Typing: In the original lens framework typing is mainly used for ensuring
that certain lens properties are preserved when composing lenses. In MDE,
transformations usually transform models conforming to one metamodel so
that they conform to another metamodel. Therefore, typing of input and
output data of lenses is highly desirable for model transformations.
{ Ordered data: Originally, lenses work either on unordered tree-like data
or certain keys have to be de ned to be able to synchronize changes
regarding order. With metamodel-based models, i.e., in an object-oriented setting,
there is the object identity as an implicit key. This can be used to propagate
changes in order and other complicated changes back to the original model.
{ References: Models in general are graphs because they can contain
references, whereas lenses were designed for synchronizing tree-like data. A
pragmatic solution could be to make use of the containment hierarchy that
is provided by many metamodeling frameworks anyway.
      </p>
      <p>
        A Lens-Based Model Synchronization Architecture While the
restriction to asymmetric synchronization does not seem to be exible enough for the
general MDE setting, it ts well to view synchronization: Lenses can be used to
asymmetrically synchronize view-models with a common model. This common
model can be a shared abstraction, i.e., it only contains those information that
is represented in more than one view. In the database community, this approach
to view synchronization was already proposed by Atzeni &amp; Torlone in 1996 [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
Another approach is to synchronize views with a shared complete model of the
system containing the information of all models to be synchronized. In both cases
the changes made in one view-model are propagated to the other view-models
through the common model.
      </p>
      <p>
        Technological Integration As stated before, it is my goal to provide a
solution that can be integrated with existing metamodel-based technologies, in
particular, with the Eclipse Modeling Framework (EMF). As EMF is a
Javabased framework, I decided to implement lenses for model transformations as an
internal DSL in the Scala3 programming language. Scala code compiles to JVM
bytecode and Scala provides great interoperability with Java-based frameworks.
Moreover, Scala combines functional and object-oriented concepts, which ts to
the task of adapting lenses that come from a functional background to be used in
a metamodel-based, i.e., object-oriented setting. Finally, Scala has static typing
and it is my goal to achieve compile-time type checking for transformations in
as many situations as possible. Therefore, I make use of heterogeneously typed
lists [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], that were originally developed for the Haskell programming language.
My solution will be deliverable as a Scala library. As a consequence, no further
tools than the Scala compiler and a Scala IDE plug-in should be needed to
integrate the solution into existing projects and tool chains. Hopefully, this results
in higher user acceptance compared to solutions like QVT that always depend
on up-to-date tool support.
      </p>
    </sec>
    <sec id="sec-4">
      <title>Evaluation and Expected Contributions</title>
      <p>The evaluation of my approach is tightly coupled with the ongoing development
of a domain-speci c workbench for the development of optical nanostructures,
which is subject of a cooperation with a group of physicists. This workbench
provides di erent DSLs for describing di erent aspects of experiments in
nanostructure development and is being implemented with EMF-based technologies.
This project serves as a comprehensive case study for my solution. In particular,
it has to be evaluated if a reasonably sized set of basic lenses and lens
combinators can be provided that enable to accomplish common view synchronization
tasks in a concise way.</p>
      <p>As a result of my work, the following contributions can be expected:
{ An extended formal lens framework, adapted for an object-oriented setting.
{ A language for bidirectional model transformations implemented as an
internal DSL in Scala, deliverable as a Scala library.
{ A lens-based view synchronization architecture that integrates with
EMFbased technologies and can be used in multi-view modeling environments.</p>
      <sec id="sec-4-1">
        <title>3 http://www.scala-lang.org</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. Francisco Perez Andres, Juan de Lara, and
          <string-name>
            <given-names>Esther</given-names>
            <surname>Guerra</surname>
          </string-name>
          .
          <article-title>Domain speci c languages with graphical and textual views</article-title>
          . In Andy Schurr, Manfred Nagl, and Albert Zundorf, editors,
          <source>AGTIVE</source>
          , volume
          <volume>5088</volume>
          of Lecture Notes in Computer Science, pages
          <volume>82</volume>
          {
          <fpage>97</fpage>
          . Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Paolo</given-names>
            <surname>Atzeni</surname>
          </string-name>
          and
          <string-name>
            <given-names>Riccardo</given-names>
            <surname>Torlone</surname>
          </string-name>
          .
          <article-title>Management of multiple models in an extensible database design tool</article-title>
          .
          <source>In Advances in Database Technology - EDBT'96, 5th International Conference on Extending Database Technology, Avignon, France, March 25-29</source>
          ,
          <year>1996</year>
          , Proceedings, volume
          <volume>1057</volume>
          of Lecture Notes in Computer Science, pages
          <volume>79</volume>
          {
          <fpage>95</fpage>
          . Springer,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Aaron</given-names>
            <surname>Bohannon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. Nathan</given-names>
            <surname>Foster</surname>
          </string-name>
          , Benjamin C. Pierce, Alexandre Pilkiewicz, and
          <string-name>
            <given-names>Alan</given-names>
            <surname>Schmitt</surname>
          </string-name>
          . Boomerang:
          <article-title>Resourceful lenses for string data</article-title>
          .
          <source>In ACM SIGPLAN{ SIGACT Symposium on Principles of Programming Languages (POPL)</source>
          , San Francisco, CA, pages
          <volume>407</volume>
          {
          <fpage>419</fpage>
          ,
          <year>January 2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>U.</given-names>
            <surname>Dayal</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.A.</given-names>
            <surname>Bernstein</surname>
          </string-name>
          .
          <article-title>On the correct translation of update operations on relational views</article-title>
          .
          <source>ACM Transactions on Database Systems (TODS)</source>
          ,
          <volume>7</volume>
          (
          <issue>3</issue>
          ):
          <volume>381</volume>
          {
          <fpage>416</fpage>
          ,
          <year>1982</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Zinovy</given-names>
            <surname>Diskin</surname>
          </string-name>
          , Yingfei Xiong, and
          <string-name>
            <given-names>Krzysztof</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          .
          <article-title>From state- to delta-based bidirectional model transformations</article-title>
          .
          <source>In Theory and Practice of Model Transformations</source>
          , Third International Conference, ICMT 2010, Malaga, Spain, June 28-July 2,
          <year>2010</year>
          . Proceedings, volume
          <volume>6142</volume>
          of Lecture Notes in Computer Science, pages
          <volume>61</volume>
          {
          <fpage>76</fpage>
          . Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>H.</given-names>
            <surname>Ehrig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Ehrig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ermel</surname>
          </string-name>
          , F. Hermann, and
          <string-name>
            <given-names>G.</given-names>
            <surname>Taentzer</surname>
          </string-name>
          .
          <article-title>Information preserving bidirectional model transformations</article-title>
          . In Fundamental Approaches to Software Engineering, 10th International Conference,
          <string-name>
            <surname>FASE</surname>
          </string-name>
          <year>2007</year>
          , volume
          <volume>4422</volume>
          , page 72. Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>J.N.</given-names>
            <surname>Foster</surname>
          </string-name>
          .
          <article-title>Bidirectional Programming Languages</article-title>
          .
          <source>PhD thesis</source>
          , University of Pennsylvania,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>J.N.</given-names>
            <surname>Foster</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.B.</given-names>
            <surname>Greenwald</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.T.</given-names>
            <surname>Moore</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.C.</given-names>
            <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 Transactions on Programming Languages and Systems (TOPLAS)</source>
          ,
          <volume>29</volume>
          (
          <issue>3</issue>
          ):
          <fpage>17</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Miguel</given-names>
            <surname>Garcia</surname>
          </string-name>
          .
          <article-title>Bidirectional synchronization of multiple views of software models</article-title>
          . In Dirk Fahland, Daniel A. Sadilek, Markus Scheidgen, and Stephan Wei leder, editors,
          <source>Proceedings of the Workshop on Domain-Speci c Modeling Languages (DSML-2008)</source>
          , volume
          <volume>324</volume>
          <source>of CEUR-WS</source>
          , pages
          <volume>7</volume>
          {
          <fpage>19</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Anders</surname>
            <given-names>Hessellund</given-names>
          </string-name>
          , Krzysztof Czarnecki, and
          <string-name>
            <given-names>Andrzej</given-names>
            <surname>Wasowski</surname>
          </string-name>
          .
          <article-title>Guided development with multiple domain-speci c languages</article-title>
          .
          <source>In MoDELS</source>
          , pages
          <volume>46</volume>
          {
          <fpage>60</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>Anders</given-names>
            <surname>Hesselund</surname>
          </string-name>
          .
          <article-title>Domain-speci c Multimodeling</article-title>
          .
          <source>PhD thesis</source>
          , IT University of Copenhagen,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. T. Hettel,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lawley</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Raymond</surname>
          </string-name>
          .
          <article-title>Towards model round-trip engineering: an abductive approach</article-title>
          .
          <source>Theory and Practice of Model Transformations</source>
          , pages
          <volume>100</volume>
          {
          <fpage>115</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Soichiro</surname>
            <given-names>Hidaka</given-names>
          </string-name>
          , Zhenjiang Hu, Hiroyuki Kato, and
          <string-name>
            <given-names>Keisuke</given-names>
            <surname>Nakano</surname>
          </string-name>
          .
          <article-title>A compositional approach to bidirectional model transformation</article-title>
          .
          <source>In ICSE Companion</source>
          , pages
          <volume>235</volume>
          {
          <fpage>238</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>Z.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.C.</given-names>
            <surname>Mu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Takeichi</surname>
          </string-name>
          .
          <article-title>A programmable editor for developing structured documents based on bidirectional transformations</article-title>
          .
          <source>Higher-Order and Symbolic Computation</source>
          ,
          <volume>21</volume>
          (
          <issue>1</issue>
          ):
          <volume>89</volume>
          {
          <fpage>118</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Oleg</surname>
            <given-names>Kiselyov</given-names>
          </string-name>
          , Ralf Lammel, and Keean Schupke.
          <article-title>Strongly typed heterogeneous collections</article-title>
          .
          <source>In Haskell '04: Proceedings of the ACM SIGPLAN workshop on Haskell</source>
          , pages
          <volume>96</volume>
          {
          <fpage>107</fpage>
          . ACM Press,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>M.</given-names>
            <surname>Lawley</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Steel</surname>
          </string-name>
          .
          <article-title>Practical declarative model transformation with Tefkat</article-title>
          .
          <source>In Satellite Events at the MoDELS 2005 Conference</source>
          , pages
          <volume>139</volume>
          {
          <fpage>150</fpage>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>K.</given-names>
            <surname>Matsuda</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Nakano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Hamana</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Takeichi</surname>
          </string-name>
          .
          <article-title>Bidirectionalization transformation based on automatic derivation of view complement functions</article-title>
          .
          <source>In Proceedings of the 12th ACM SIGPLAN international conference on Functional programming, page 58. ACM</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Andy</surname>
          </string-name>
          <article-title>Schurr and Felix Klar. 15 years of triple graph grammars</article-title>
          .
          <source>In ICGT</source>
          , pages
          <volume>411</volume>
          {
          <fpage>425</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <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>In Proc. of the 10 Int. Conf. on Model Driven Engineering Languages and Systems, Lecture Notes in Computer Science</source>
          , pages
          <fpage>1</fpage>
          <lpage>{</lpage>
          14. Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          and
          <string-name>
            <given-names>G.</given-names>
            <surname>Kramler</surname>
          </string-name>
          .
          <article-title>Bridging grammarware and modelware</article-title>
          .
          <source>In Satellite Events at the MoDELS 2005 Conference</source>
          , volume
          <volume>3844</volume>
          of Lecture Notes in Computer Science, pages
          <volume>159</volume>
          {
          <fpage>168</fpage>
          . Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <given-names>Yingfei</given-names>
            <surname>Xiong</surname>
          </string-name>
          .
          <article-title>A Language-based Approach to Model Synchronization in Software Engineering</article-title>
          .
          <source>PhD thesis</source>
          , Department of Mathematical Informatics, University of Tokyo,
          <year>September 2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Yingfei</surname>
            <given-names>Xiong</given-names>
          </string-name>
          , Dongxi Liu, Zhenjiang Hu,
          <string-name>
            <given-names>Haiyan</given-names>
            <surname>Zhao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Masato</given-names>
            <surname>Takeichi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Hong</given-names>
            <surname>Mei</surname>
          </string-name>
          .
          <article-title>Towards automatic model synchronization from model transformations</article-title>
          .
          <source>In ASE</source>
          , pages
          <volume>164</volume>
          {
          <fpage>173</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>