<!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 Hybrid Model Persistence</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Alfa Yohannis</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Horacio Hoyos Rodriguez</string-name>
          <email>rodriguez@ieee.org</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Fiona Polack</string-name>
          <email>f.a.c.polack@keele.ac.uk</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dimitris Kolovos</string-name>
          <email>dimitris.kolovosg@york.ac.uk</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computer Science, Institut Teknologi dan Bisnis Kalbis</institution>
          ,
          <country country="ID">Indonesia</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Department of Computer Science, University of York</institution>
          ,
          <country country="UK">United Kingdom</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>School of Computing and Maths, Keele University</institution>
          ,
          <country country="UK">United Kingdom</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Change-based persistence has the potential to support faster and more accurate model comparison, merging, as well as a range of analytics activities. However, reconstructing the state of a model by replaying its editing history every time the model needs to be queried or modi ed can get increasingly expensive as the model grows in size. In this work, we integrate change-based and state-based persistence mechanisms in a hybrid model persistence approach that delivers the best of both worlds. In this paper, we present the design of our hybrid model persistence approach and report on its impact on time and memory footprint for model loading, saving, and storage space usage.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Change-based persistence (CBP) of models [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] conforming to metamodelling
architectures such as MOF/EMF [
        <xref ref-type="bibr" rid="ref2 ref3">2,3</xref>
        ] comes with notable advantages over
statebased persistence (SBP): it provides support for fast comparison and di erencing
of versions of the same model [
        <xref ref-type="bibr" rid="ref4 ref5 ref6 ref7">4,5,6,7</xref>
        ] { which can also substantially speed up
incremental model management activities, and enables novel model analytics
activities (e.g. pattern detection in the editing history to understand how
modellers use modelling languages and tools) [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. However, CBP comes at the cost
of ever-growing model les [
        <xref ref-type="bibr" rid="ref6 ref8">6,8</xref>
        ] since all changes (even deleting model elements)
are recorded in an editing log, which naturally leads to longer loading times [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
In this work, we address the latter challenge by introducing the concept of hybrid
persistence of models. In hybrid model persistence the change-based
representation is augmented with a state-based representation (which may be derived from
the change-based representation) of the latest state of the model which is used
to speed up model loading and querying.
      </p>
      <p>The paper is structured as follows. Section 2 introduces the concept of
changebased model persistence and recent work on state-based model persistence.
Sections 3 and 4 present our approach to hybrid model persistence and its
implementation. Section 5 presents experimental results and evaluation. Section 7
provides an overview of related work, and Section 8 concludes with a discussion
on directions for future work.</p>
    </sec>
    <sec id="sec-2">
      <title>Change and State-based Model Persistence</title>
      <p>To explain the di erences, bene ts and drawbacks of CBP and SBP, consider
a modelling activity on a UML model as presented Fig. 1. The sub- gures 1a
to 1f depict the evolution of a UML model at di erent time stamps. Classes
are created and added/removed from Package X. In SBP, for each session,
only the nal state of the model is persisted (the state of previous session are
overridden by the state of the latest session). Thus, to represent the nal state of
the UML model, only the information about Package X and Class C needs
to be persisted, as presented in Listing 1 (XMI format). In CBP, all the changes
in the model are persisted. Thus, a list of all the events generated by the model
editor is needed to represent the nal state of the model.</p>
      <p>(a) Time stamp 1
(b) Time stamp 2
(c) Time stamp 3
(d) Time stamp 4
(e) Time stamp 5
(f) Time stamp 6</p>
      <p>
        A session depicts a set of changes made between save events, i.e. a session
comprises all the changes that happened since the last time that the model was
persisted. The CBP representation is shown in Listing 21. Lines 1-7 represent
the initial state (Fig. 1a), followed by lines 8 (Fig. 1b), 9 (Fig. 1c), 11 (Fig. 1d),
12 (Fig. 1e), and 13 (Fig. 1f).
1 We use a natural language pseudo-code for CBP, introduced in [
        <xref ref-type="bibr" rid="ref1 ref10">1,10</xref>
        ]
To store an SBP model, all the elements that exist in the nal state must be
persisted. To save a CBP, only the change events in the last session need to be
persisted. Storing times of SBP models are proportional to the size of the model.
Storing times of CBP models are proportional to the number of events in a
session. As a result, storing times of CBP models can be considerably shorter than
for SBP models [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Comparing and nding the di erences between two versions
of a state-based model is expensive [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] (O(N 2) in the general case) which a ects
the e ciency of change visualisation and comprehension, and has a substantial
impact on downstream activities such as incremental model transformation [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]
and validation.
      </p>
      <p>&lt;uml:Package xmi:id="1" name="X"&gt;
&lt;packagedElement xsi:type="uml:Class"</p>
      <p>
        xmi:id="3" name="C"/&gt;
&lt;/uml:Package&gt;
Listing 1: The UML2 model of the example Listing 2: The textual CBP for
model in Fig. 1. producing state-based model in
1 List. 1. Its visual illustration is
2 in Fig. 1.
By contrast, in CBP, changes are rst-class entities in the persisted model le and
as such, model comparison and di erencing is relatively inexpensive. The main
downsides of CBP are it's model le sizes [
        <xref ref-type="bibr" rid="ref6 ref8">8,6</xref>
        ] and ever-increasing loading times
[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Loading times can be reduced by around 50% by processing the changelog,
detecting, memorising and subsequently ignoring change events that have no
impact to the nal state of the model. The loading times are still substantially
longer { more than 6.4 times slower and even longer as the persisted changes
increase { than loading times for state-based approaches [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Hybrid Model Persistence</title>
      <p>To achieve the best of both worlds we introduce a hybrid model persistence
approach which combines change-based and state-based model persistence, to work
together side-by-side. An overview of the proposed approach is illustrated in Fig.
2. In the proposed approach a hybrid model is stored in two representations at
the same time: a change-based (e.g. using CBP) and a state-based
representation (e.g. using XMI or a database-backed approach such as NeoEMF). The
change-based representation is perceived as the main representation of a model,
while the state-based representation can be fully derived from the change-based
representation.</p>
      <p>Loading a hybrid model. Models are loaded into in-memory object graphs
that clients (e.g. editors, transformations) can then interact with2. In the
proposed hybrid approach, if the state-based counterpart already exists, the
inmemory object graph is populated from it; otherwise, it is populated by replaying
the complete editing history recorded in the change-based representation.
Changing a hybrid model. When an element in a loaded model is created,
modi ed or deleted, the change is applied to the in-memory object graph and
is also recorded in an in-memory list of changes (Editing session changes in Fig
2). We use the term editing session for the period between loading a model and
saving back to disk.</p>
      <p>Saving a hybrid model. The current version of the in-memory object graph is
stored in the preferred state-based representation. The list of changes recorded
in the current editing session (with optional processing, as described above) is
appended to the change-based representation.</p>
      <p>Versioning a hybrid model. Since the state-based representation is fully
derived from the change-based representation, if a model needs to be versioned (e.g.
in a Git repository), only the change-based representation needs to be stored.
The rst time it is loaded after being checked out/cloned, the state-based
representation is computed and persisted locally and is used in subsequent model
loading steps.</p>
      <p>Comparing hybrid models. To compare two hybrid models3, their
changebased representations are used: this is much more e cient than state-based
comparison.
2 Depending on the state persistence mechanism, the object graph may be loaded in
its entirety at startup (e.g. XMI) or loaded progressively, in a lazy manner (e.g.</p>
      <p>NeoEMF/CDO)
3 The work of the hybrid model comparison is still in the preliminary stage and out
of the scope of this paper.</p>
    </sec>
    <sec id="sec-4">
      <title>Implementation</title>
      <p>
        We have implemented the proposed hybrid model persistence approach in a
prototype4 on top of the Eclipse Modeling Framework (EMF) [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. The prototype
makes use of an existing implementation of change-based model persistence, the
Epsilon CBP [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], augmented with two state-based persistence implementations:
NeoEMF [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] and XMI [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
      </p>
      <p>XMI has been selected as a standard state-based model persistence format
(natively supported by EMF), and NeoEMF as a best-of-breed representative of
database-backed state-based model persistence frameworks. The core
components of the prototype are presented in Fig. 3.</p>
      <p>
        The Epsilon CBP provides a ChangeEventAdapter class [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] that extends from
Ecore's EContentAdapter adapter class. This class collects changes made to the
in-memory object graph of an EMF model in the form of a list of events
changeEvents. Based on this class, we derived an adapter class,
HybridChangeEventAdapter, for the hybrid model persistence implementation. It is an abstract
class so that it can be further derived to create di erent implementations of
adapter classes for di erent types of state-based persistence. The
HybridNeoEMFChangeEventAdapater is the adapter class for NeoEMF, and the
HybridXMIChangeEventAdapater for XMI. These classes override notifyChanged(Noti cation)
in the ChangeEventAdapter class, to handle events that are speci c to NeoEMF
and XMI, respectively.
      </p>
      <p>We also created a resource class for hybrid persistence, HybridResource (a
resource class is a class dedicated to interacting with a persistence, e.g. save, load,
get contents), derived from the Ecore's ResourceImpl. The class is again abstract
so that it can be realised in di erent resource implementation classes for di
erent state-based persistence. The HybridResource class contains the
stateBasedResource eld which is used to refer to a state-based persistence that is being
4 The prototype is available under https://github.com/epsilonlabs/
emf-cbp.
used, and the cbpOutputStream eld that refers to an OutputStream (e.g. le,
inmemory) as the representation of the CBP for saving changes. HybridResource has
an association with HybridChangeEventAdapater, so that the former can access
the events collected by the latter, and the latter can also use facilities provided
by the former (e.g. getting the identity of an element in the resource; saving
changes to a change-based model representation).</p>
      <p>The resource implementation classes for NeoEMF and XMI are
HybridNeoEMFResourceImpl and HybridXMIResourceImpl respectively.
HybridNeoEMFResourceImpl also implements the NeoEMF's PersistenceResource interface so that speci c
NeoEMF's methods can be used (e.g. close(), to close a connection with a
backend database).
5</p>
    </sec>
    <sec id="sec-5">
      <title>Evaluation</title>
      <p>
        In this section, we compare hybrid model persistence (Epsilon CBP with each of
NeoEMF and XMI) vs state-based persistence (NeoEMF or XMI only) on storage
space usage, loading and saving time and memory footprint, and demonstrate
that hybrid model persistence can still perform fast model loading and saving.
The evaluation was performed on Intel R CoreTM i7-6500U CPU @ 2.50GHz
2.59GHz, 12GB RAM, and the JavaTM SE Runtime Environment (build 1.8.0
162-b12). For the evaluation, we used models reverse-engineered from the Java
source code of the Epsilon [
        <xref ref-type="bibr" rid="ref15 ref16">15,16</xref>
        ] and BPMN2 [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] projects. For state-based
representation of the models, we used the MoDisco tool [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] to generate
XMIbased UML2 [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] models that re ect the classes, elds, and operation signatures
of the source code of the project and then imported the generated models into
NeoEMF. We also derived MoDiscoXML models [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] from the Wikipedia article
on the United States [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. We then used reverse-engineering to generate a CBP
for each project based on the di erences between consecutive versions of the
models.
9.44 188 406 6.55 134 109 1.28 31.8 5.85
MBs MBs MBs MBs MBs MBs MBs MBs GBs
112 2 98 110 2 92 102 2 98
bytes/ KBs/ bytes bytes/ KBs/ bytes bytes/ KBs/ bytes
element element /event element element /event element element /event
m = million events, MB = Megabytes, KB = Kilobytes
For the Epsilon project, we have successfully generated a CBP from version 1
up to version 940 and also CBPs for the BPMN2 project and Wikipedia article
up to version number 192 and 10,187 respectively. The details (element count,
event count, space size, and average space size per element or event) of their
models, when persisted in XMI, NeoEMF, and CBP are shown in Table 2. The
last row of the table derives an average space usage per element (for the SBPs)
or event (for the CBP). We can estimate the storage space usage for a hybrid
model persistence to be the combination of CBP and the appropriate SBP space
usage.
We evaluated the performance of our hybrid persistence prototype against XMI
and NeoEMF regarding time and memory footprint for loading and saving. We
repeated our experiments 22 times for each dimension measured. Since the data
were not normally distributed, we used the nonparametric Mann-Whitney U test
[
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] with a signi cance level of 5%.
      </p>
      <p>As it can be noticed in Table 3, all cases experience a slight slowdown on
loading and saving time (hybrid approach's mean &gt; state-based approach's mean).
However, almost for all NeoEMF cases, the slowdown is not signi cant, which
means that side-e ect of the hybrid approach on loading and saving time is still
acceptable. The hybrid approach also produces more memory footprint
compared to the state-based-only approach. Nevertheless, considering the cost of
main memory, this condition is acceptable in almost all real-world scenarios.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Discussion</title>
      <p>
        The use of state-based persistence in hybrid model persistence enables faster
model loading, as shown by the result of loading time evaluation in Section 5.2,
without having to replay all the changes persisted in its CBP { the main
challenge for the change-based approach [
        <xref ref-type="bibr" rid="ref10 ref9">10,9</xref>
        ]. Hybrid model persistence performs
slightly slower { statistically signi cant for Hybrid XMI but insigni cant for
Hybrid NeoEMF { compared to loading a state-based model. A slight slowdown
also appears on model saving { statistically signi cant for Hybrid XMI but
insigni cant for Hybrid NeoEMF (Section 5.2). The slowdown is because changes
have to be persisted into two representations, state-based and change-based.
The main drawback of hybrid model persistence is that it consumes more
memory when loading and saving and storage space for persisting models compared
to state-based representation only (Sections 5.2 and 5.1). However, considering
the cost of main memory and storage, the trade-o can be acceptable in most
real-world scenarios.
7
      </p>
    </sec>
    <sec id="sec-7">
      <title>Related</title>
    </sec>
    <sec id="sec-8">
      <title>Work</title>
      <p>
        There are several non-XMI approaches to state-based model persistence, using
relational or NoSQL databases. For example, EMF Teneo [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] persists EMF
models in relational databases, while Morsa [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] and NeoEMF [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] persist models
in document and graph databases, respectively. None of these approaches
provides built-in support for versioning and models are eventually stored in binary
les/folders which are known to be a poor t for text-oriented version control
systems like Git and SVN. Connected Data Objects (CDO) [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], which provides
support for database-backed model persistence, also provides collaboration
facilities, but CDO adoption necessitates the use of a separate version control system
(e.g. a Git repository for code and a CDO repository for models), which
introduces fragmentation and administration challenges [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. Similar challenges arise
in relation to other model-speci c version control systems such as EMFStore [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
8
      </p>
    </sec>
    <sec id="sec-9">
      <title>Conclusions and Future Work</title>
      <p>In this paper, we have proposed a hybrid model persistence approach and
evaluated its impact on time and memory footprint for model loading and saving,
and storage space usage. Based on the evaluation results, the hybrid model
persistence provides bene ts on model loading time with an acceptable trade-o on
memory footprint and storage space usage.</p>
      <p>Currently, we are still working on the hybrid model comparison (Section 3 {
Comparing hybrid models). So far, the progress is promising. Based on our
preliminary investigation, it can detect atomic changes of models faster than
state-based model comparison, e.g. detecting elements that have been removed
from older versions. In the future, we plan to evaluate hybrid model persistence
on even larger models and perform experiments where software modellers are
asked to construct change-based models. We also plan to develop a solution for
the e cient merging of change-based and hybrid models.</p>
      <p>Acknowledgements. This work was partly supported by through a scholarship
managed by Lembaga Pengelola Dana Pendidikan Indonesia (Indonesia
Endowment Fund for Education).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Yohannis</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kolovos</surname>
            ,
            <given-names>D.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Polack</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Turning models inside out</article-title>
          .
          <source>In: Proceedings of MODELS</source>
          <year>2017</year>
          <article-title>Satellite Event: Workshops (ModComp, ME</article-title>
          , EXE, COMMitMDE, MRT,
          <string-name>
            <surname>MULTI</surname>
          </string-name>
          , GEMOC, MoDeVVa, MDETools, FlexMDE, MDEbug), Posters, Doctoral Symposium, Educator Symposium, ACM Student Research Competition, and
          <article-title>Tools and Demonstrations co-located with</article-title>
          <source>ACM/IEEE 20th International Conference on Model Driven Engineering Languages and Systems (MODELS</source>
          <year>2017</year>
          ), Austin, TX, USA, September,
          <volume>17</volume>
          ,
          <year>2017</year>
          . (
          <year>2017</year>
          )
          <volume>430</volume>
          {
          <fpage>434</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. OMG: Metaobject Facility. http://www.omg.org/mof Accessed:
          <fpage>2018</fpage>
          -02-21.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Steinberg</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Budinsky</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Merks</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paternostro</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>EMF: Eclipse Modeling Framework</article-title>
          . Eclipse Series. Pearson
          <string-name>
            <surname>Education</surname>
          </string-name>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Lippe</surname>
            , E., van Oosterom,
            <given-names>N.</given-names>
          </string-name>
          :
          <article-title>Operation-based merging</article-title>
          .
          <source>In: SDE 5: 5th ACM SIGSOFT Symposium on Software Development Environments</source>
          , Washington, DC, USA, December 9-
          <issue>11</issue>
          ,
          <year>1992</year>
          . (
          <year>1992</year>
          )
          <volume>78</volume>
          {
          <fpage>87</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Ignat</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Norrie</surname>
            ,
            <given-names>M.C.</given-names>
          </string-name>
          :
          <article-title>Operation-based merging of hierarchical documents</article-title>
          .
          <source>In: The 17th Conference on Advanced Information Systems Engineering (CAiSE '05)</source>
          , Porto, Portugal,
          <fpage>13</fpage>
          -
          <lpage>17</lpage>
          June,
          <year>2005</year>
          ,
          <string-name>
            <given-names>CAiSE</given-names>
            <surname>Forum</surname>
          </string-name>
          , Short Paper Proceedings. (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Koegel</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Herrmannsdoerfer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Helming</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>David</surname>
          </string-name>
          , J.:
          <article-title>Comparing state- and operation-based change tracking on models</article-title>
          .
          <source>In: Proceedings of the 14th IEEE International Enterprise Distributed Object Computing Conference, EDOC</source>
          <year>2010</year>
          , Vitoria, Brazil,
          <fpage>25</fpage>
          -
          <lpage>29</lpage>
          October
          <year>2010</year>
          . (
          <year>2010</year>
          )
          <volume>163</volume>
          {
          <fpage>172</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Koegel</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Helming</surname>
          </string-name>
          , J.:
          <article-title>Emfstore: a model repository for EMF models</article-title>
          .
          <source>In: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume</source>
          <volume>2</volume>
          ,
          <string-name>
            <surname>ICSE</surname>
          </string-name>
          <year>2010</year>
          ,
          <string-name>
            <surname>Cape</surname>
            <given-names>Town</given-names>
          </string-name>
          , South Africa,
          <fpage>1</fpage>
          -8 May
          <year>2010</year>
          . (
          <year>2010</year>
          )
          <volume>307</volume>
          {
          <fpage>308</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Robbes</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lanza</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>A change-based approach to software evolution</article-title>
          .
          <source>Electr. Notes Theor. Comput. Sci</source>
          .
          <volume>166</volume>
          (
          <year>2007</year>
          )
          <volume>93</volume>
          {
          <fpage>109</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Mens</surname>
          </string-name>
          , T.:
          <article-title>A state-of-the-art survey on software merging</article-title>
          .
          <source>IEEE Trans. Software Eng</source>
          .
          <volume>28</volume>
          (
          <issue>5</issue>
          ) (
          <year>2002</year>
          )
          <volume>449</volume>
          {
          <fpage>462</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Yohannis</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rodriguez</surname>
            ,
            <given-names>H.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Polack</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kolovos</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Towards e cient loading of change-based models</article-title>
          .
          <source>In: Modelling Foundations and Applications - 14th European Conference, ECMFA</source>
          <year>2018</year>
          ,
          <article-title>Held as Part of STAF 2018</article-title>
          , Toulouse, France, June 25-29,
          <year>2018</year>
          . Proceedings. (
          <year>2018</year>
          (to be presented http://eventmall.info/ ecmfa2018/program)) Accessed:
          <fpage>2018</fpage>
          -04-19.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Kolovos</surname>
            ,
            <given-names>D.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Di Ruscio</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pierantonio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paige</surname>
            ,
            <given-names>R.F.</given-names>
          </string-name>
          :
          <article-title>Di erent models for model matching: An analysis of approaches to support model di erencing</article-title>
          .
          <source>In: Proceedings of the 2009 ICSE Workshop on Comparison and Versioning of Software Models. CVSM '09</source>
          , Washington, DC, USA, IEEE Computer Society (
          <year>2009</year>
          ) 1{
          <fpage>6</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Ogunyomi</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rose</surname>
            ,
            <given-names>L.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kolovos</surname>
            ,
            <given-names>D.S.:</given-names>
          </string-name>
          <article-title>Property access traces for source incremental model-to-text transformation</article-title>
          .
          <source>In: Modelling Foundations and Applications - 11th European Conference, ECMFA</source>
          <year>2015</year>
          ,
          <article-title>Held as Part of STAF 2015, L'Aquila</article-title>
          , Italy,
          <source>July 20-24</source>
          ,
          <year>2015</year>
          . Proceedings. (
          <year>2015</year>
          )
          <volume>187</volume>
          {
          <fpage>202</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Daniel</surname>
          </string-name>
          , G.,
          <string-name>
            <surname>Suny</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Benelallam</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tisi</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vernageau</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gmez</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cabot</surname>
          </string-name>
          , J.:
          <article-title>Neoemf: A multi-database model persistence framework for very large models</article-title>
          .
          <source>Science of Computer Programming</source>
          <volume>149</volume>
          (
          <year>2017</year>
          )
          <volume>9</volume>
          { 14 Special Issue on MODELS'
          <volume>16</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>OMG</surname>
          </string-name>
          <article-title>: About the XML Metadata Interchange Speci cation Version 2.5.1</article-title>
          . http: //www.omg.org/spec/XMI Accessed:
          <fpage>2018</fpage>
          -02-21.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. Eclipse: Epsilon. https://www.eclipse.org/epsilon/ Accessed:
          <fpage>2018</fpage>
          -02-12.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. Eclipse: Epsilon Git. http://git.eclipse.org/ c/epsilon/org.eclipse.epsilon.git/commit/?id= ebd0991c279a1f0df1acb529367d2ace5254fe87 Accessed:
          <fpage>2018</fpage>
          -02-19.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17. Eclipse: MDT/BPMN2. http://wiki.eclipse.org/MDT/BPMN2 Accessed:
          <fpage>2018</fpage>
          -01-15.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Bruneliere</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cabot</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dupe</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Madiot</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Modisco: A model driven reverse engineering framework</article-title>
          .
          <source>Information &amp; Software Technology</source>
          <volume>56</volume>
          (
          <issue>8</issue>
          ) (
          <year>2014</year>
          )
          <volume>1012</volume>
          {
          <fpage>1032</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19. Eclipse: MDT/UML2. http://wiki.eclipse.org/MDT/UML2 Accessed:
          <fpage>2018</fpage>
          - 01-15.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20. Eclipse: XML Metamodel. http://help.eclipse.org/neon/index. jsp?topic=%
          <source>2Forg.eclipse.modisco.xml.doc%2Fmediawiki%2Fxml_ metamodel%2Fuser.html Accessed: 2018-02-19.</source>
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21. Wikipedia: United States. https://en.wikipedia.org/w/index.php? title=United_States&amp;oldid=45118452 Accessed:
          <fpage>2018</fpage>
          -02-19.
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>McKnight</surname>
            ,
            <given-names>P.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Najab</surname>
            , J. In: MannWhitney
            <given-names>U</given-names>
          </string-name>
          <string-name>
            <surname>Test. American Cancer Society</surname>
          </string-name>
          (
          <year>2010</year>
          ) 1{
          <fpage>1</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23. Eclipse: Teneo. http://wiki.eclipse.org/Teneo Accessed:
          <fpage>2017</fpage>
          -10-15.
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Espinazo-Pagan</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cuadrado</surname>
            ,
            <given-names>J.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Molina</surname>
            ,
            <given-names>J.G.</given-names>
          </string-name>
          :
          <article-title>Morsa: A scalable approach for persisting and accessing large models</article-title>
          .
          <source>In: Model Driven Engineering Languages and Systems</source>
          , 14th International Conference, MODELS 2011, Wellington, New Zealand,
          <source>October 16-21</source>
          ,
          <year>2011</year>
          . Proceedings. (
          <year>2011</year>
          )
          <volume>77</volume>
          {
          <fpage>92</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <article-title>Eclipse: CDO The Model Repository</article-title>
          . https://www.eclipse.org/cdo/ Accessed:
          <fpage>2017</fpage>
          -10-15.
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Barmpis</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kolovos</surname>
            ,
            <given-names>D.S.</given-names>
          </string-name>
          :
          <article-title>Evaluation of contemporary graph databases for e - cient persistence of large-scale models</article-title>
          .
          <source>Journal of Object Technology</source>
          <volume>13</volume>
          (
          <issue>3</issue>
          ) (
          <year>2014</year>
          )
          <article-title>3: 1{26</article-title>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>