<!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>Delta-driven collaborative modeling</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Maik Appeldorn</string-name>
          <email>maik.appeldorn@uni-oldenburg.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dilshod Kuryazov</string-name>
          <email>kuryazov@se.uni-oldenburg.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andreas Winter</string-name>
          <email>winter@se.uni-oldenburg.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Oldenburg 26129 Oldenburg</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Model-Driven Engineering has already become a significant means in software development activities, which is well-suited to design and develop large-scale software systems. Developing and maintaining large-scale model-driven software systems entails a need for collaborative modeling by a large number of software designers and developers. As the first-class entities of the model-driven engineering paradigm, software models are constantly changed during development and maintenance. Collaborative modeling support for frequently synchronizing model changes between collaborators is required. Thereby, a solid change representation support for model changes plays an essential role for collaborative modeling systems. This paper applies a meta-model generic, operation-based and textual diference language to existing domain-specific modeling tool UML Designer and demonstrates a collaborative modeling application - CoMo. It is validated for UML activity diagrams.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>MOTIVATION</title>
      <p>Model-Driven Engineering (MDE) has become a popular means for
software development which supports appropriate abstraction
concepts to software development activities. It aims at improving the
productivity of software development, maintenance activities, and
communication among various teams and stakeholders. In MDE,
software models are the first-class artifacts of software development
rather than the source code implementing the systems. This leads
to the several main benefits of MDE: the productivity boost, models
become a single point of truth and are automatically kept up-to-date
with the code they specify [24, pp. 9f].</p>
      <p>
        Software models (e.g. in UML – Unified Modeling Language [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ])
are the key artifacts in MDE activities. In order to cope with the
constantly growing amount of software artifacts and their
complexity, software systems to be developed or maintained are usually
shifted to abstract forms using the modeling concepts. Software
models focus on the most relevant aspects of the problem domain
to be designed and developed. Simultaneously, software models
are the documentation and implementation of the software systems
being developed and maintained [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ].
      </p>
      <p>Like the source code of software systems, software models are
constantly evolved and maintained in order to cope with various
user changes such as improvements, extensions, and optimization.
All development and maintenance activities contribute to the
evolution of software models. These activities may include creating new
artifacts, removing existing ones, or/and changing the attributes
of existing artifacts. Any type of the aforementioned changes that
may occur during development and evolution of software models
are referred to as model changes.</p>
      <p>
        Development and maintenance of software models requires a
need for collaborative modeling of several collaborators like
managers, designers, developers, testers, and maintainers in order to
accomplish successful results [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. Several collaborators involved
in software modeling apply changes to the shared software models.
Collaborative modeling approaches have to provide support for
communication among collaborators by: change representation for
storing the histories of the changed model elements,
synchronization of the represented model changes, and management of software
models and their revisions stored in the repositories. These core
features that collaborative modeling approaches have to provide
are also addressed in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] as the result of a solid and sophisticated
literature study.
      </p>
      <p>
        Depending on the nature of interaction, collaborative
modeling can be divided into two main forms, namely concurrent and
sequential collaborative modeling [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]:
• Concurrent Collaboration. The essential and widely used
scenario of collaborative modeling is the development of software
models in real-time by several collaborators in parallel. The
concurrent collaborative modeling is usually dedicated to creating,
modifying and maintaining the huge, shared and centralized
software models. These changes are synchronized in real-time.
The real-time collaborative editing approaches are extensively
investigated in textual document writing, e.g., Google Docs [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ],
Etherpad [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], Firepad [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], and many more. Unlike textual
document editing, the increased performance of change
synchronization matters in collaborative modeling because of the graph-like
complex structures of software models. Thus, model changes
have to be identified continually, represented and synchronized
using very simple notations. Typically, these changes are
constantly detected by listening for users actions on a particular
model instance and produced in form of the small set of changes
contained in Modeling Deltas [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. Thus, modeling deltas are
rather small in real-time collaboration and they are usually not
stored, yet synchronized between the parallel working copies
of software models. The real-time synchronization of modeling
deltas is enabled by micro-versioning [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ].
• Sequential Collaboration. Another significant scenario of
collaborative modeling is sequential collaboration which is also referred
to as model management in some literature [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. Sequential
collaboration intends to identify the model diferences between the
subsequent revisions of modeling artifacts, store and reuse them
when needed. There are several classical source code version
control (sequential collaboration) approaches such as Subversion
[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], Git [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ], etc. These systems for the source code of software
systems are the best aid in handling development and
evolution of large-scale, complex and continually evolving software
systems. The same support is needed for software models. For
instance, while designing software models in concurrent
collaboration, collaborators intend to store the correct and complete
revision of their model and open it after a while to continue
development and maintenance. These model management
activities are facilitated by macro-versioning [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]. In macro-versioning,
the diferences between subsequent model revisions are
represented in Modeling Deltas, as well. Modeling deltas consist of the
larger set of model changes in macro-versioning, whereas they
represent the small set of model changes in micro-versioning.
      </p>
      <p>In both micro- and macro-versioning scenarios, modeling deltas
are the first-class entities and play an essential role in synchronizing
the small model changes between the parallel instances of models,
storing/representing model changes in eficient ways, and
managing models and their revisions. The both collaborative modeling
scenarios might rely on the same underlying change
representation approach to deal with modeling deltas. Therefore, the eficient
representation of modeling deltas is crucial for both scenarios.</p>
      <p>
        A meta-model generic, operation-based and textual change
representation approach entitled Diference Language (DL) for
representing modeling deltas in both micro- and macro-versioning was
introduced in [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. A DL-based collaborative modeling
infrastructure was developed and applied to UML class diagrams in [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]. The
proposed DL is meta-model generic, operation-based, modeling
tool generic, reusable, applicable, and extensible. Moreover, the
associated technical support further provides a catalog of
supplementary services which allow for producing and reusing modeling
deltas represented by DL. As long as there already are several
advanced model designing tools, this paper applies the DL approach
to Sirius-based [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] domain-specific modeling tool UML Designer
[
        <xref ref-type="bibr" rid="ref31">31</xref>
        ] which results in the Collaborative Modeling (CoMo) application.
UML activity diagrams [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ] are considered as the domain language
throughout this paper.
      </p>
      <p>The remainder of this paper is structured as follows: Section 2
investigates existing related approaches in the research domain.
Several characteristics of DL and its collaborative modeling
application are defined in Section 3. The core concepts behind the
DL-based collaborative modeling are depicted in Section 4 and the
same section explains the subset of services provided by DL.
Section 5 explains the CoMo collaborative modeling application of DL.
Section 6 discusses adaptability and extendability of the DL-based
collaborative modeling application. This paper ends up in Section 7
by drawing some conclusions.
2</p>
    </sec>
    <sec id="sec-2">
      <title>RELATED APPROACHES</title>
      <p>The problem of collaborative modeling and its change
representation is the actively discussed and extensively addressed topic
among the research community of software engineering. There
is a large number of research papers addressing to collaborative
modeling (Section 2.1) and model diference/change representation
(Section 2.2).
2.1</p>
    </sec>
    <sec id="sec-3">
      <title>Collaborative Systems</title>
      <p>This section briefly reviews some collaborative development,
document editing and modeling approaches in order to derive some
general concepts and principals.</p>
      <p>
        Concurrent collaboration systems record and synchronize change
notifications during collaborative development. Collaborative
document writing systems like Google Docs [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] and Etherpad [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] are
widely used systems in concurrent document creation and editing.
There are also several Web-based modeling tools e.g. GenMyModel
[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and Creately [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], which exchange changes over WebSockets.
Their core ideas and underlying change representation techniques
are not explicitly documented. Their modeling concepts and other
services are not accessible, making them dificult to study and
extend. The collaborative modeling approaches emfCollab [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and
Dawn [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] (the sub-component of CDO - Connected Data Objects
[
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]) provide collaborative development features for EMF models.
However, they use custom serialization of changes for
synchronization in concurrent modeling. Dawn utilizes standard relational
databases to persist models under development.
      </p>
      <p>
        Sequential collaboration systems such as Git [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ], Mercurial [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ],
Subversion [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] are used for sequential revision control in source
code-driven software development. There are also sequential
collaborative modeling systems, e.g., EMF Store [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], SMoVer [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], AMOR
[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and Taentzer et. al. [
        <xref ref-type="bibr" rid="ref36">36</xref>
        ] that are discussed in Section 2.2.
      </p>
      <p>
        For diferentiating revisions and calculating diferences, most
of the collaborative systems for source code-driven software
development use the Myer’s LCS [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ] algorithm, which is based on
recursively finding the longest sequence of common lines in the
list of lines of compared revisions. Software models can also be
represented in textual formats using XMI exchange formats, but it
is commonly agreed that the collaborative approaches for source
code cannot suficiently fit to MDE because of the paradigm shift
between source code- and model-driven concepts [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ].
Diferentiating the textual lines of the XMI-based software models can not
provide suficient information about the changes in associated and
composite data structures of software models, as well as does not
reflect the semantics of changes. As there are already outstanding
collaborative systems for textual documents and the source code
of software systems, MDE also requires support for generic, solid,
configurable and extensible collaborative modeling applications for
their development, maintenance, and evolution.
2.2
      </p>
    </sec>
    <sec id="sec-4">
      <title>Delta Representation Approaches</title>
      <p>As long as modeling delta representation is a decisively significant
issue in developing collaborative environments, this section briefly
reviews and classifies some delta representation approaches. The
existing collaborative modeling approaches employ various
techniques for model change representation in modeling deltas. Below,
the existing approaches are classified and discussed according to
their diference/change representation techniques.</p>
      <p>The most approaches identify themselves as the operation-based
diference representation. They usually use basic edit operations
such as create, delete and change (or similar and more), which is
a general concept being relevant to many diference
representation approaches. Regardless of their diference representation
techniques, they employ these basic operations only for recognizing
the types of model changes, but information about model changes
is generally stored in various forms as discussed below.</p>
      <p>
        Model-based approaches represent modeling deltas using models.
Cicchetti et al. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] introduced a meta-model independent approach
that uses software models for representing model diferences
conforming to a diference meta-model. Cicchetti et al. also provides
a service (incl. conflict resolution) to apply diference models to
diferentiated models in order to transform them from one revision
to another. A fundamental approach to sequential model version
control based on graph modifications introduced by Taentzer et.
al. [
        <xref ref-type="bibr" rid="ref36">36</xref>
        ] is also used to represent model diferences using models.
The approach is validated in Adaptable Model Versioning System
(AMOR) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] for EMF models [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ]. The major focus of the approach
is diferentiation and merging of software models that serve as the
main foundations for sequential model version control.
      </p>
      <p>
        Graph-based approaches represent model changes using internal
graph-like structures. It is usually similar to model-based
representation, but relying on the low-level graph-like structures. A generic
approach to model diference calculation and representation using
edit scripts is introduced in the SiDif approach [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. SiDif consists
of a chain of model diferencing processes, including
correspondence matching, diference derivation, and semantic lifting [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ].
SiDif does not rely on a specific modeling language. The SiDif’s
diference calculator algorithm is also utilized by the approach
in this paper to realized its delta calculator service (explained in
Section 4.3).
      </p>
      <p>
        Relational Database-based approaches represent model changes
in classical relational databases. Likely, SMOVER [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and Dawn
[
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] take advantage of relational databases to store model changes
and to persist their models under development and evolution.
      </p>
      <p>
        Text-based approaches represent model changes in modeling
deltas by a sequence of edit operations in the textual forms
embedding change-related diference information. An early text-based
representation approach is introduced by Alanen and Porres [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
EMF Store [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] is a model and data repository for EMF-based
software models. The framework enables collaborative work of several
modelers directly via peer-to-peer connection providing semantic
version control of models. Dawn [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] and emfCollab [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] use their
custom serialization of model changes for synchronizing them
between collaborators. DeltaEcore [
        <xref ref-type="bibr" rid="ref33">33</xref>
        ] is a delta language generation
framework and addresses the problem of generating delta modeling
languages for software product lines and software ecosystems.
      </p>
      <p>This section discusses the existing related approaches based on
the criteria if representation by these approaches can provide small
modeling deltas for both sequential and concurrent collaborative
modeling. Besides, there are several approaches focusing only on
some aspects of these collaborative modeling, and are not discussed
in this paper.</p>
      <p>The graph- and model-based representations of modeling deltas
are more efective in case of the sequential collaboration and
distributed concurrent collaboration. The modeling deltas represented
by models or graphs usually consist of additional conceptual
information for representing its modeling or graph concepts alongside
actual change information. Thus, the model- and graph-based
modeling deltas might not be as small (micro) as text-based modeling
deltas. Modeling deltas have to be as small as possible to achieve
higher performance (by rapid synchronization of modeling deltas)
in concurrent collaborative modeling in real-time. During the
evolutionary life-cycle, if all diference information is stored in a database,
the database might become complex and large with an associated
data set. Thus, the database-based representation approaches may
require more implementation efort in identification and reuse of
modeling deltas.</p>
      <p>Modeling deltas represented in textual forms are the most likely
to be small, especially well-suited to concurrent collaboration
scenario. The textual modeling deltas are (1) directly executable
descriptions of model changes; (2) easy to implement; (3)
expressive, yet unambiguous providing necessary knowledge; (4) easy
to synchronize with high performance; (5) easy serialization and
deserialization by textual parser.</p>
      <p>Literature review shows that research on modeling delta
representation for collaborative modeling is still in its infancy.
Considering the aforementioned discussions, this paper requests a textual
diference language (DL) to represent modeling deltas in sequential
and concurrent collaborative modeling.
3</p>
    </sec>
    <sec id="sec-5">
      <title>CHARACTERISTICS</title>
      <p>
        A meta-model generic, operation-based and textual Diference
Language (DL) for representing modeling deltas in both micro- and
macro-versioning was introduced in [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. A collaborative modeling
infrastructure based on DL was developed and applied to UML
class diagram in [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ], which resulted in a tool entitled Kotelett. DL
further provides a catalog of supplementary services which allow
to produce and reuse DL-based modeling deltas. The subset of these
services delta calculator (change listener feature), delta applier, model
manager and delta synchronizer are used in developing collaborative
modeling application in this paper.
      </p>
      <p>
        Several requirements operation-based, meta-model generic, tool
independent, delta-based, completeness, reusability for DL and its
services are described and fulfilled in [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]. Further requirements
(awareness of content and layout, genericness, supportiveness) for the
overall DL-collaborative modeling infrastructure are defined and
satisfied in [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ].
      </p>
      <p>
        Since there are already several advanced domain-specific model
designing tools, this paper applies the DL-based collaborative
modeling infrastructure to Sirius-based [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] domain-specific modeling
tool UML Designer [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ]. The UML activity diagram [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ] is
considered as domain language throughout this paper. Before explaining
the core application ideas, this section lists several further
characteristics addressing the adaptability aspect of the approach.
      </p>
      <p>Meta-model. DL is conceptually a family of domain-specific
languages and generic with respect to the meta-models of modeling
languages. As long as the modeling concepts of any modeling
language can be recognized by looking at the meta-models of these
languages, specific DLs for particular modeling languages are
generated by importing their meta-models. Therefore, DL requires the
meta-model of a modeling language, in this particular case, the
meta-model of UML activity diagrams. DL supports the
following characteristics to apply the DL-based collaborative modeling
infrastructure to the modeling language:
• DL Generation. In order to apply the DL-based collaborative
modeling infrastructure to a particular domain-specific language
which is defined by its appropriate meta-model, the DL generator
service (Section 4.3) generates a specific DL from the meta-model
of a potential modeling language, UML activity diagram. Then,
the modeling deltas can be represented in terms of DL on the
instance models conforming to that modeling language.
• Service Adaptation. DL supports several potential
supplementary services (Section 4.3) for extending the application areas
of DL. These services are capable of operating on the DL-based
modeling deltas, e.g., calculating, applying, synchronizing, and
managing modeling deltas. For applying the DL-based
collaborative modeling infrastructure to domain-specific tool UML
designer, delta calculator and delta applier services have to be
adapted. The other services remain unchanged.</p>
      <p>These characteristic are addressed in Section 4 to apply the
DLbased collaborative modeling infrastructure to design UML activity
diagrams in the UML Designer tool.
4</p>
    </sec>
    <sec id="sec-6">
      <title>APPROACH</title>
      <p>The DL-based collaborative modeling infrastructure considers model
changes as the first-class entities for supporting concurrent
collaboration by micro-versioning and sequential collaboration by
macroversioning. Thus, first of all, DL aims at representing model changes
in modeling deltas in eficient ways.</p>
      <p>DL is conceptually a family of domain-specific languages for
representing model changes. A specific DL is derived from the
metamodel of a modeling language. Since this paper applies the DL-based
collaborative modeling infrastructure to designing UML activity
diagrams in UML Designer, the approach requests the meta-model
of activity diagram as initial prerequisite to generate a specific
DL. Thereafter, the relevant DL services have to be adapted to be
capable of handling new modeling languages in the new model
designing tool.</p>
      <p>Section 4.1 depicts the substructure of the UML activity diagram
meta-model. Section 4.2 exemplifies a simplified running
example for the DL-based change representation. Section 4.3 explains
a subset of supplementary DL services required for applying
collaborative modeling and how they are adapted to be handy in this
particular case.
4.1</p>
    </sec>
    <sec id="sec-7">
      <title>Meta-Model</title>
      <p>The modeling concepts of any modeling language can be recognized
by inspecting the meta-model of that language. Thus, a specific
DL for UML activity diagram is generated by the DL generator
service (explained in Section 4.3) importing the UML activity diagram
meta-model. Then, the model changes in modeling deltas can be
represented in terms of DL on the instance activity diagrams.
However, the DL generator is generic with respect to the meta-models
of modeling languages.</p>
      <p>
        Figure 1 depicts the substructure of the UML activity diagram
meta-model that is used throughout this section as a running
example. The meta-model is separated into two parts by a dashed line.
Below the line, it depicts the content part (i.e., abstract syntax) which
is adapted from the standard UML activity diagram meta-model for
EMF (Eclipse Modeling Framework) [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ]. In graphical modeling,
each modeling object has design information such as color, size,
and position, also called layout information. Above the dashed line,
Figure 1 portrays the layout part (i.e., concrete syntax). The layout
part of the meta-model depicts the substructure of Graphical
Modeling Framework (GMF) notation [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] which supports notation for
developing visual modeling editors based on EMF. The ActivityNode
and ActivityEdge of the content part are connected to the Node and
Edge of the layout part through the DNode and DEdge artifacts of
the Sirius odesign notation.
      </p>
      <p>This way of designing meta-models allows for using the same
collaborative modeling environment for diferent modeling contents.
The complete meta-model is used for creating overall collaborative
modeling application explained in Section 5.
4.2</p>
    </sec>
    <sec id="sec-8">
      <title>Motivating Example</title>
      <p>In order to express how DL is applied to change representation
for activity diagrams, this section presents a simplified example
for the DL-based change representation in modeling deltas. A very
simple UML activity diagram is chosen as a running example to
apply the DL approach. Figure 2 depicts three subsequent revisions
namely Rev_1, Rev_2 and Rev_3 of the same UML activity diagram
describing an "Ordering System" example. All model revisions
conform to the same meta-model shown in Figure 1. Figure 2 further
depicts two concurrent copies of the latest revision, in this case,
Rev_3. Two designers, namely Designer_1 and Designer_2 are
working on these parallel copies.</p>
      <p>Globally Unique Identifiers. According to the NamedElement
class of the meta-model in Figure 1, each modeling artifact has
an attribute named id. In order to identify modeling artifacts and
to represent referenced changes in modeling deltas, this identifier
attribute is used in modeling delta operations. Assigning
modeling artifacts to globally unique identifiers allows to identify and
keep track of the modeling artifacts of evolving software models
over time. With unique identifiers, inter-delta (i.e., predecessor and
successor) and delta-model references can easily be detected. The
inter-delta references allow for tracing any particular modeling
artifact by detecting the predecessor and successor artifacts of an
initial modeling artifact. The delta-model references are used to
refer to modeling artifacts from modeling deltas in applying
modeling deltas to software models by the DL applier service (explained
in Section 4.3).</p>
      <p>Model Changes. In the first revision, the model consists of one
Opaque Action named "Receive" as well as Initial Node and Final
Node. All modeling artifacts are connected by Control Flows. While
evolving from the first revision to the second, the following changes
are made on the model: Fork Node, Join Node, two Opaque Actions
named "Fill Order" and "Send Invoice" are created, the target
end of the control flow g5 is reconnected to the Fork Node, the name
of the Opaque Action g2 is changed, and several control flows are
created connecting these nodes. The model again evolves into the
third revision Rev_3 after making the following changes: the target
end of the control flow g5 is reconnected to the Opaque Action g7,
the target end of the control flow g12 is reconnected to the Activity
Final Node. The nodes Fork Node, Join Node, Opaque Action "g8"
and the control flows g10, g11, g13, g14 are deleted.</p>
      <p>In the third, last revision, the model is then being further
developed by two designers concurrently. Designer_1 changes the
names of the Opaque Actions g2 and g7 from "Receive Order" and
"Fill Order" to "Receive Orders" and "Fill Orders",
respectively. These changes are then sent to the other instance in form
of the DL-based modeling delta (Figure 6). On the other instance,
Designer_2 creates a new Opaque Action named "Close Order".
The same designer creates one Control Flow g16 and reconnects
the target end of the control flow g12 from the Activity Final Node
g3 to the newly created node g15. These changes are then sent
to the other instance, Designer_1 is working on, as the DL-based
modeling delta (Figure 7).</p>
      <p>
        Modeling Deltas in Sequential Collaboration. In sequential
collaboration (cf. Subversion [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], Git [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ]), the diferences between
subsequent revisions are usually identified and represented in
reverse order, i.e., they represent changes in the backward deltas
[
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. Because these systems intend to store diferences as directly
executable forms that is more practical in retrieving the earlier
revisions of software systems. Since the latest revision is the most
frequently accessed revision, they store the most recent revision of
software systems and several diferences deltas for tracing back to
the earlier revisions. DL-based diference representation also
follows the similar art of delta representation in its macro-versioning
scenario.
      </p>
      <p>
        The example depicted in Figure 2 describes the two backward
deltas between three subsequent revisions (Rev_1, Rev_2 and
Rev_3). These backward deltas (Figure 3) are directed in reverse
order, i.e., application of the backward deltas to models transforms
models into the earlier revisions. For instance, application of the
backward delta in Figure 3 to Rev_3 results in Rev_2.
1 g6= createForkNode ( ) ;
2 g8= createOpaqueAction ( " Send I n v o i c e " ) ;
3 g9= createJoinNode ( ) ;
4 g10 = createControlFlow ( g6 , g7 ) ;
5 g11 = createControlFlow ( g6 , g8 ) ;
6 g13 = createControlFlow ( g8 , g9 ) ;
7 g14 = createControlFlow ( g9 , g3 ) ;
8 g5 . changeTarget ( g6 ) ;
9 g12 . changeTarget ( g9 ) ;
According to the DL syntax, each delta operation contains a
Operator Part (cf. g6=createForkNode();) which describes the type of
change by means of operations (one of create, change, delete) [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]
and an Modeling Artifact (cf. g6=createForkNode();) (with attributes
if required) which refers to model element. To refer to model
elements from the DL operations in modeling deltas, globally unique
identifiers of model elements are used as references (дx ).
g2 Receive Order
      </p>
      <p>g5
Rev_2</p>
      <p>Likewise, Figure 4 illustrates the backward modeling delta
consisting of the diferences between the second and first revisions.
1 g2 . changeName ( " R e c e i v e " ) ;
2 g5 . changeTarget ( g3 ) ;
3 g10 . delete ( ) ;
4 g11 . delete ( ) ;
5 g12 . delete ( ) ;
6 g13 . delete ( ) ;
7 g14 . delete ( ) ;
8 g6 . delete ( ) ;
9 g7 . delete ( ) ;
10 g8 . delete ( ) ;
11 g9 . delete ( ) ;
The modeling deltas in these figures are directly executable
descriptions of the model diferences. Each of these diference deltas
allows for reverting the base model to the earlier revision from the
latter. The modeling delta in Figure 3 reverts the model to the
second revision from the third, whereas the modeling delta in Figure 4
reverts the same model to the first revision from the second. In
the DL-based modeling deltas, the unchanged modeling artifacts
are implicitly excluded simply not describing DL operations for
them. Furthermore, the modeling deltas depicted in these figures
consist of further DL operations for representing changes on layout
information, as well. For the sake of simplicity, these change
operations are not depicted in the backward modeling deltas. However,
the forward delta depicted in Figure 7 consist of DL-based change
operations for layout information.</p>
      <p>Active Delta. The source code-driven sequential collaborative
systems usually store the working copy of software project and
several (backward) deltas representing the diferences between
software revisions in their software repositories. DL introduces
a new term active delta to store the working copies of software
models in form of the modeling deltas, as well. Active deltas are
the DL-based descriptions of the base revision (working copy) of a
complete model. Active deltas consist of only creation operations.
Execution of an active delta creates a complete model out of empty
model.</p>
      <p>The third revision of the model depicted in Figure 2 is represented
by the active delta in Figure 5 which consists of only creation
operations. When this active delta is executed on an empty model, the
third, base revision of the model depicted in Figure 2 is created.
1 g1= createInitialNode ( ) ;
2 g2= createOpaqueAction ( " R e c e i v e Order " ) ;
3 g7= createOpaqueAction ( " F i l l Order " ) ;
4 g3= createActivityFinalNode ( ) ;
5 g4= createControlFlow ( g1 , g2 ) ;
6 g5= createControlFlow ( g2 , g7 ) ;
7 g12 = createControlFlow ( g7 , g3 ) ;</p>
      <p>Modeling Deltas in Concurrent Collaboration. In case of
the micro-versioning scenario depicted in Figure 2, the modeling
deltas are described in the forward forms where application of the
modeling deltas to a model results in the newer revisions of the
same model. There, the changes made on two parallel instances
by Designer_1 and Designer_2 are represented in the forward
modeling deltas. These deltas are synchronized with other parallel
model instances in order to update these instances into the new
states by the change descriptions in the forward deltas. For instance,
Figure 6 depicts the forward delta consisting of the changes made
by Designer_1.</p>
      <p>In this delta, Designer_1 changes the name of both Opaque
Actions from "Receive Order" and "Fill Order" to "Receive
Orders" and "Fill Orders", respectively. This example represents
the model revisions where their changes are not yet synchronized
with other parallel instance of the model.</p>
      <p>In the same vein, Figure 7 depicts the forward delta representing
the changes made by Designer_2. Unlike the previous modeling
deltas, this forward delta depicts DL operations for layout
information starting from line 4. There, the new nodes Location (with the
attribute values of x, y) and Size (with the attribute values of width,
height) are created for the newly created Opaque Action g15. On
the last line, the RelativeBendpoints (with the values of the point list
sourceX, sourceY, targetX, targetY ) of Control Flow g12 is changed.</p>
      <p>In the concurrent collaborative modeling enabled by
microversioning, modeling deltas are represented by the DL operations in
the forward forms. These forward deltas have the forward efect in
the models, i.e., the models are updated with the change descriptions
defined in the forward deltas. Because, the recent changes made
by other parallel mates have to be propagated on this particular
instance in order to keep them up-to-date and vice verse. The forward
deltas are rather small than backward deltas and are not stored in
the repository. The collaborative modeling approach distinguishes
between forward and backward deltas because of their convenience
for micro-versioning and macro-versioning, respectively. The
forward propagation of the change operations in modeling deltas is
more practical in case of micro-versioning, whereas the backward
afect of modeling deltas to models is more convenient in
macroversioning.</p>
      <p>These modeling deltas are represented by the specific DL for
UML activity diagrams generated from the meta-model depicted in
Figure 1.
4.3</p>
    </sec>
    <sec id="sec-9">
      <title>DL Services</title>
      <p>
        DL intends to extend its application areas by introducing several
supplementary services, i.e., DL generator for generating specific
DLs for the given modeling languages, delta calculator for
calculating modeling deltas, delta applier for applying modeling deltas
to models, model manager for managing models and their
revisions, etc. As all DL services are explained in [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] in detail, this
section briefly revisits the services which are involved in applying
the DL-based infrastructure to design UML activity diagrams in
UML Designer. These potential services are explained how they are
adapted to be reusable in this section.
      </p>
      <p>DL Generator. The DL generator generates specific DLs for
modeling languages by importing their meta-models. While
generating the specific DL, it inspects all concrete (i.e., non-abstract)
meta-classes of given meta-models and the attributes of these
metaclasses.</p>
      <p>A specific DL is always generated in form of the Model API
including Java Interfaces and Implementations (incl. constructors)
to recognize modeling objects, as well as Model Utility to operate
on instance models. The interfaces of Model API are parameterized
with the elements of a given meta-model and the change
operations like create, delete, change. While generating specific DLs, the
creation and deletion operations are generated for each meta-class.
It implies that model elements conforming to these meta-classes
can be created or deleted on instance models. The change
operations are generated for only meta-attributes, i.e., the attributes of
each modeling artifact can only be changed on instance models.
Meta-relations are associated with the attributes of meta-classes.
The DL generator considers three atomic operations create, delete
and change as the suficient set of operations for representing all
model changes.</p>
      <p>The DL generator does not generate methods to modify an
attribute that is fixed as an unique identifier. Modification of the
values of the identifier attribute (e.g., id) on the instance level is
not permitted as it specifies the identity of modeling artifacts. Thus,
their values should not be changed as the part of model changes.
For instance, all identifiers дx in the example in Section 4.2 are
stored using the attribute id of the class NamedElement in Figure 1.</p>
      <p>
        Collaborative Modeling Architecture. After generating a
specific DL for the given meta-model, namely the UML activity diagram
meta-model (incl. Content and Layout parts) in this case, the
DLbased collaborative modeling infrastructure can be used to handle
collaboration activities. It is built by the specific amalgamation of
the several DL services as depicted in Figure 8. It shows the
reference architecture for collaborative modeling including server and
client sides. The same underlying reference architecture was also
utilized in [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] to develop the Kotelett collaborative modeling
application for UML class diagrams.
      </p>
      <p>Server</p>
      <p>Model Manager
(macro-versioning)
Synchronizer
(micro-versioning)
{Models}
{Forward
Deltas}</p>
      <p>Collaborator
Listener
Applier</p>
      <p>Client
designs</p>
      <p>UML
Designer
detects
changes from
applies changes to</p>
      <p>Repository
(Backward Deltas)</p>
      <p>The server side consists of the synchronizer service to support
micro-versioning and model manager service for macro-versioning
which uses the DL-based modeling delta repository. On the client
side, the changes made by collaborators are constantly detected by
the change listener service while they are made using the model
editor, in this case, UML Designer. These micro-versions are
represented using forward modeling deltas and constantly sent to other
parallel clients through the synchronizer service on the server. Once
these deltas arrive at other clients, they are applied to models by
the applier service. As long as the synchronization of modeling
deltas among clients carried out by the synchronizer on the server,
the communication between collaborators is provided based on
star-topology.</p>
      <p>During collaboration, designers may store the particular state of
their models whenever they are complete and correct. Collaborators
are able to load models and their revisions that are saved earlier.
The macro-versioning feature is provided by the model manager
on the server.</p>
      <p>
        Listener. The change listener service is the part of the DL delta
calculator service. Calculation of modeling deltas depends on the
scenario of collaboration whether it is macro-versioning or
microversioning. In micro-versioning, the modeling deltas are produced
by listening for changes in models by the change listener. Because
changes have to be synchronized in real-time providing suficiently
high performance. In macro-versioning, modeling deltas between
subsequent model revisions are calculated using the state-based
comparison of subsequent revisions [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. The state-based
comparison and change listener are the two diferent features of the DL
delta calculator service.
      </p>
      <p>In case of the EMF-hosted UML Designer, the listener listens
for Notifications (org.eclipse.emf.common.notify.Notification) which
consists of information about the changed model elements and the
change types. The change types in these notifications are mapped to
the DL change types. The change types ADD, ADD_MANY are mapped
to the create operation, REMOVE, REMOVE_MANY are mapped to
delete, SET, UNSET are mapped to change, and MOVE is handled
by the combination of the create and delete operations. The DL
change listener is realized using the Resource Set Listener which
listens for the Transactional Editing Domain of Sirius sessions. The use
of transactional editing domain provides to perform the redo/undo
operations without extra implementation efort.</p>
      <p>
        Applier. In collaborative modeling, modeling deltas are applied
to the base models in order to transform them from one revision
to another. Application of modeling deltas to the base models is
provided by the DL delta applier service [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. In macro-versioning,
the model manager utilizes the DL delta applier service to revert the
older revisions of models by applying backward deltas. In case of
the loss or damage of information on the working copies of models,
designers may revert the earlier revisions or undo recent changes
they made. The applier is also employed in micro-versioning in
order to propagate model changes on the concurrent instances
of shared models by applying forward deltas. The delta applier is
further used by the model manager to load the working copies
of models by applying active deltas to empty models. Like the
listener, the DL delta applier is adapted to be useful in the EMF
technical space. It converts the DL operations in modeling deltas
to executable commands in the Recording Command. Then, these
operations are executed in the Transactional Command Stack of
Transactional Editing Domain of EMF.
      </p>
      <p>
        Synchronizer. The server side of Figure 8 depicts the DL
synchronizer service which allows for synchronization of micro-deltas
between collaborators. Its primary task is to send modeling deltas
to all connected clients except the sender. The synchronizer service
is realized using the KryoNet API [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
      </p>
      <p>Model Manager. The repository on the server stores several
backward deltas and one active delta for each software model under
collaboration. The server provides model manager feature to operate
on that repository. For instance, new models can be created in
the repository, existing ones can be opened by collaborators to
join collaboration, existing models can be deleted, revisions can be
stored and loaded, etc.
5</p>
    </sec>
    <sec id="sec-10">
      <title>APPLICATION</title>
      <p>The collaborative modeling applications are developed by the
specific orchestrations of the DL services explained in Section 4.3 and
on the top of the DL-based delta representation. This section
explains the collaborative modeling application CoMo (Collaborative
Modeling) of DL.</p>
      <p>The collaborative modeling application entitled CoMo is
developed as an extension for Sirius-based domain-specific modeling
tool UML Designer. CoMo takes advantage of the DL-based modeling
deltas for synchronizing modeling deltas among the collaborators
of the shared models. Figure 9 depicts a screenshot of CoMo. It
displays two diferent tool instances working on the same model
concurrently. These tool instances describe the exemplary
microversioning scenario depicted in Figure 2 after the changes are
synchronized. Each CoMo tool instance consists of several windows as
explained below.</p>
      <p>
        Figure 9 actually depicts the modeling user interface of UML
Designer. As long as the DL-based collaborative modeling approach
is applied to UML Designer which is an EMF- and Sirius-based
domain-specific modeling tool [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ], CoMo is completely realized
using the EMF technical space.
      </p>
      <p>After installing the CoMo support, two buttons appear in the tool
as shown on the left instance under the indicator CoMo. When the
ifrst button ( Kol) is clicked, the list of models currently available in
the repository is displayed asking the user which model to join as
collaborator. From the displayed dialog window, users can either
select an existing model from the list or create a new model in the
repository. If they select to join an existing model as a collaborator,
that model is opened in the editor (D) and they can continue further
developing that model. The users can open multiple models at once
during collaboration.</p>
      <p>In micro-versioning, the forward modeling deltas are not stored
in the repository. However, reversion of changes in micro-versioning
happens on the client side of the editor and provided by the
Redo/Undo features of Transactional Command Stack. CoMo can save
the model when the save button is clicked whenever the model is
complete and correct. When the tool is asked to save the model
by clicking the second button under the indicator CoMo, it
calculates the diferences (backward deltas) between the last and base
revisions. Furthermore, new active deltas are also generated when
the new revisions of models are stored. As the result of each click,
one backward delta (representing diferences between base and
previous revisions) and one active delta (representing base working
copy) are stored in the repository. This feature of the CoMo tool is
currently under development.</p>
      <p>The model tree (A) shows the list of models and diagrams (incl.
the elements of these diagrams) the users are currently working
on. The both instances display the modeling concepts of the UML
activity diagram (B). These concepts conform to the meta-model
depicted in Figure 1. The logger window (C) constantly displays
D1</p>
      <p>B</p>
      <p>D2
C</p>
      <p>E
B
C
the modeling deltas that are exchanged among collaborators once
changes are made in any instance. Creating one modeling artifact
on the graphical modeling editor may result in one or many change
operations that are contained in one modeling delta that is
synchronized between collaborators. The model editor (D1 and D2)
areas on the both instances show the exemplary activity diagrams
that Designer_1 and Designer_2 are developing as depicted in
Figure 2. In this case, these both instances are displayed after their
changes are synchronized. The letter E indicates three changes
made by two designers. These changes are: the name changes from
"Receive Order" and "Fill Order" to "Receive Orders" and
"Fill Orders" respectively (highlighted on the left logger), as
well as the creation of new Opaque Action named "Close Order"
(highlighted on the right logger).</p>
      <p>Modeling deltas on the logger windows (C) are represented by the
specific DL generated from the combined meta-model in Figure 1
including the standard UML profiles (content part, i.e., abstract
syntax) and GMF notation (layout part, i.e., concrete syntax). The
DL change listener and applier services are extended using EMF
technical space features such as the command stack and resource set
listener extensions for the editing domains. All other underlying
technologies such as the DL synchronizer and model manager
remain unchanged.</p>
      <p>
        During experiments, the both DL applications Kotelett [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] and
CoMo have shown suficiently high performance by synchronization
of small DL-based modeling deltas. So far, they have not faced any
change conflicts in micro-versioning. This probably is attributed
to the rapid synchronization of small modeling deltas. Thus,
concurrent collaborative modeling enabled by the micro-versioning
currently does not focus on the issue of conflict resolution. In the
current implementations of concurrent collaborative modeling
applications, the most recent changes are propagated on all parallel
instances of models.
      </p>
      <p>
        For merging various model revisions in macro-versioning, the
Kotelett tool employs the existing merge technique provided by
the JGraLab technical space [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. The merge technique of JGraLab
ofers the semi-automated conflict resolution feature. The CoMo
application aims at utilizing the existing EMF Dif/Merge approach
[
        <xref ref-type="bibr" rid="ref30">30</xref>
        ] for model merging and conflict resolution in macro-versioning.
However, the latter is still under development.
6
      </p>
    </sec>
    <sec id="sec-11">
      <title>ADAPTABILITY</title>
      <p>The DL-based collaborative modeling infrastructure can be
adaptable by generating specific DLs and extending the relevant DL
services.
• Diference Language. The approach provides the DL generator
service for generating specific DLs. It is generic with respect to
the meta-models of modeling languages, i.e., it is not language
or tool specific. As depicted in Figure 1, the layout notation part
(above the dashed line) of the meta-models enables adaptability
of the approach for further modeling languages with the same
layout notation. The modeling concept part (below the dashed
line) of the meta-model should be replaced by the meta-model of
the appropriate modeling language. Eventually, the same layout
information can be reused for further modeling languages.
• DL Services. The DL services are developed by following the
service-oriented development principles. This allows to extend
and adapt each independent service without afecting the rest of
the underlying concepts and technologies of collaborative
modeling. This enables tool developers to develop further services or
adapt the existing ones as they want, and reuse the collaborative
modeling environment without any further development efort.
The DL services can also be replaced by other implementations
and extended with additional features. The only prerequisite
for these services is to recognize the syntax of DL. Eventually,
these services can again be involved in service orchestrations
for establishing the collaborative modeling applications.
• DL Applications. The DL applications, former Kotelett and
current CoMo, are developed based on the same underlying reference
architecture depicted in Figure 8. The DL services are
orchestrated according to this reference architecture to develop the
aforementioned DL applications. The same underlying reference
architecture can be adapted and serve as a common blueprint
for developing collaborative modeling environments for any
(EMF-based) open source tools with lesser development efort.
7</p>
    </sec>
    <sec id="sec-12">
      <title>CONCLUSION</title>
      <p>
        A meta-model generic DL introduced in [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] is applied to UML class
diagrams in [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ], which resulted in the Kotelett tool. To demonstrate
applicability of the DL-based collaborative modeling infrastructure,
it is applied to UML Designer which resulted in the CoMo tool in this
paper. DL is aware of both content (i.e., abstract syntax) and layout
(i.e., concrete syntax) of modeling languages and provides
sequential and concurrent collaborative modeling support, simultaneously.
The proposed DL serves as a common change representation and
exchange format for storing and synchronizing model changes
between the subsequent and concurrent revisions of evolving
models. The both sequential and concurrent collaborative modeling
rely on the same base diference representation language (DL) for
representing modeling deltas.
      </p>
      <p>There are several EMF-based domain-specific modeling editors
that can be used as a model designing tool for various modeling
languages. However, they either lack collaborative modeling features
or provide commercial solutions. They usually require open-source
and operational collaborative modeling features with model
repositories as a single point of truth. Thereby, the DL-based collaborative
modeling infrastructure with its diference representation, services
and reference architecture can be adapted and utilized for
collaborative MDE.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          et al.
          <source>2011. visited on 22.07</source>
          .
          <year>2018</year>
          .
          <article-title>emfCollab: Collaborative Editing for EMF models</article-title>
          . http://qgears.com/products/emfcollab/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M.</given-names>
            <surname>Alanen</surname>
          </string-name>
          and
          <string-name>
            <given-names>I.</given-names>
            <surname>Porres</surname>
          </string-name>
          .
          <year>2003</year>
          .
          <article-title>Diference and Union of Models</article-title>
          . In P.Stevens,
          <string-name>
            <given-names>J.</given-names>
            <surname>Whittle</surname>
          </string-name>
          , and G. Booch, editors,
          <source>Proc. 6th Int. Conf. on the UML</source>
          ,
          <string-name>
            <surname>Springer</surname>
            <given-names>LNCS</given-names>
          </string-name>
          2863 (
          <year>2003</year>
          ),
          <fpage>2</fpage>
          -
          <lpage>17</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>K.</given-names>
            <surname>Altmanninger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Bergmayr</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Schwinger</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Kotsis</surname>
          </string-name>
          .
          <year>2007</year>
          .
          <article-title>Semantically enhanced conflict detection between model versions in SMoVer by example</article-title>
          .
          <source>In Procs of the Int. Workshop on Semantic-Based Software Development at OOPSLA.</source>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>AppJet</given-names>
            <surname>Inc</surname>
          </string-name>
          .
          <source>visited on 22.02</source>
          .
          <year>2018</year>
          . Etherpad. Project Web Site: http://www.etherpad.com.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>P.</given-names>
            <surname>Brosch</surname>
          </string-name>
          , G. Kappel,
          <string-name>
            <given-names>M.</given-names>
            <surname>Seidl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Wieland</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Kargl</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Langer</surname>
          </string-name>
          .
          <year>2010</year>
          .
          <article-title>Adaptable Model Versioning in Action</article-title>
          .
          <source>in: Proc. Modellierung</source>
          <year>2010</year>
          , Klagenfurt,
          <source>Austria LNI 161 (March</source>
          <volume>24</volume>
          -26
          <year>2010</year>
          ),
          <fpage>221</fpage>
          -
          <lpage>236</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A.</given-names>
            <surname>Cicchetti</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          <article-title>Di Ruscio, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Pierantonio</surname>
          </string-name>
          .
          <year>2007</year>
          .
          <article-title>A Metamodel independent approach to diference representation</article-title>
          .
          <source>journal of Object Technology 6:9 (October</source>
          <year>2007</year>
          ),
          <fpage>165</fpage>
          -
          <lpage>185</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Cinergix</given-names>
            <surname>Pty</surname>
          </string-name>
          .
          <source>visited on 22.07</source>
          .
          <year>2018</year>
          . CreateLy. http://www.creately.com.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>B.</given-names>
            <surname>Collins-Sussman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Fitzpatrick</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Pilato</surname>
          </string-name>
          .
          <year>2004</year>
          .
          <article-title>Version Control with Subversion.</article-title>
          <string-name>
            <surname>O'Reilly Media</surname>
          </string-name>
          (
          <year>June 2004</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Dirix</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Muller</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Aranega</surname>
          </string-name>
          .
          <year>2013</year>
          .
          <article-title>GenMyModel: UML case tool</article-title>
          . In ECOOP.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>J.</given-names>
            <surname>Ebert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Riediger</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Winter</surname>
          </string-name>
          .
          <year>2008</year>
          .
          <article-title>Graph technology in reverse engineering. The TGraph approach</article-title>
          .
          <source>In Proc. 10th Workshop Software Reengineering. GI Lecture Notes in Informatics. Citeseer</source>
          ,
          <volume>23</volume>
          -
          <fpage>24</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>Eclipse</given-names>
            <surname>Foundation</surname>
          </string-name>
          .
          <source>visited on 22.07</source>
          .
          <year>2018</year>
          . Sirius. Project website: https://www.eclipse.org/sirius/.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Eclipse</surname>
            <given-names>Foundation</given-names>
          </string-name>
          ,
          <article-title>Project Web site</article-title>
          .
          <source>visited on 22.07</source>
          .
          <year>2018</year>
          .
          <article-title>Graphical Modeling Project (GMP)</article-title>
          . http://www.eclipse.org/modeling/gmp/.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          <source>[13] Eclipse Project Website. visited on 22.07</source>
          .
          <year>2018</year>
          .
          <article-title>EMF-based Model Repository: Corrected Data Objects (CDO)</article-title>
          . http://eclipse.org/cdo.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>C.</given-names>
            <surname>Ellis</surname>
          </string-name>
          , G. Simon, and
          <string-name>
            <given-names>R.</given-names>
            <surname>Gail</surname>
          </string-name>
          .
          <year>1991</year>
          .
          <article-title>Groupware: Some Issues and Experiences</article-title>
          .
          <source>ACM 34</source>
          ,
          <issue>1</issue>
          (
          <year>1991</year>
          ),
          <fpage>39</fpage>
          -
          <lpage>58</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>Esoteric</given-names>
            <surname>Software</surname>
          </string-name>
          .
          <source>visited on 22.07</source>
          .
          <year>2018</year>
          . KryoNet. https://github.com/EsotericSoftware/kryonet.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>Firebase</given-names>
            <surname>Inc</surname>
          </string-name>
          .
          <source>visited on 07.07</source>
          .
          <year>2018</year>
          . Firepad. https://firepad.io.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>M.</given-names>
            <surname>Fluegge</surname>
          </string-name>
          .
          <year>2009</year>
          .
          <article-title>Entwicklung einer kollaborativen Erweiterung fuer GMFEditoren auf Basis modellgetriebener und webbasierter Technologien</article-title>
          .
          <source>Master's thesis</source>
          , University of Applied Sciences Berlin (
          <year>2009</year>
          ). http://wiki.eclipse.org/Dawn
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>M.</given-names>
            <surname>Franzago</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. D.</given-names>
            <surname>Ruscio</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Malavolta</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Muccini</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>Collaborative Model-Driven Software Engineering: a Classification Framework and a Research Map</article-title>
          .
          <source>IEEE Transactions on Software Engineering (September</source>
          <year>2017</year>
          ). https://doi. org/10.1109/TSE.
          <year>2017</year>
          .2755039
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>Google</given-names>
            <surname>Inc</surname>
          </string-name>
          .
          <source>visited on 07.07</source>
          .
          <year>2018</year>
          . Google Docs. http://docs.google.com.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>J.</given-names>
            <surname>Helming</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Koegel</surname>
          </string-name>
          .
          <source>last accessed on 22.07</source>
          .
          <year>2018</year>
          .
          <article-title>EMFStore. Project web site</article-title>
          . http://eclipse.org/emfstore.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>J.</given-names>
            <surname>Herbsleb</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Moitra</surname>
          </string-name>
          .
          <year>2001</year>
          .
          <article-title>Global software development</article-title>
          .
          <source>IEEE software 18</source>
          ,
          <issue>2</issue>
          (
          <year>2001</year>
          ),
          <fpage>16</fpage>
          -
          <lpage>20</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>T.</given-names>
            <surname>Kehrer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Kelter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ohrndorf</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Sollbach</surname>
          </string-name>
          .
          <year>2012</year>
          .
          <article-title>Understanding model evolution through semantically lifting model diferences with SiLift</article-title>
          .
          <source>In Software Maintenance (ICSM)</source>
          ,
          <year>2012</year>
          28th IEEE International Conference on. IEEE,
          <fpage>638</fpage>
          -
          <lpage>641</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>T.</given-names>
            <surname>Kehrer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Rindt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Pietsch</surname>
          </string-name>
          , and
          <string-name>
            <given-names>U.</given-names>
            <surname>Kelter</surname>
          </string-name>
          .
          <year>2013</year>
          .
          <article-title>Generating Edit Operations for Profiled UML Models</article-title>
          . In MoDELS.
          <fpage>30</fpage>
          -
          <lpage>39</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>A.</given-names>
            <surname>Kleppe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Warmer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W.</given-names>
            <surname>Bast</surname>
          </string-name>
          .
          <year>2003</year>
          .
          <article-title>MDA Explained: The Model Driven Architecture: Practice and Promise</article-title>
          .
          <string-name>
            <surname>Addison-Wesley Longman</surname>
          </string-name>
          Publishing Co., Inc., Boston, MA, USA.
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>D.</given-names>
            <surname>Kuryazov</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Winter</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>Representing Model Diferences by Delta Operations</article-title>
          .
          <source>In 18th International Enterprise Distributed Object Oriented Computing Conference, Worshops and Demonstrations (EDOCW)</source>
          , IEEE Computer Society Press,
          <year>2014</year>
          , ISBN 978-1-
          <fpage>4799</fpage>
          -5467-4,
          <string-name>
            <given-names>Manfred</given-names>
            <surname>Reichert</surname>
          </string-name>
          , Stefanie Rinderle-Ma, and Georg Grossmann (Eds.). Ulm, Germany,
          <fpage>211</fpage>
          -
          <lpage>220</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>D.</given-names>
            <surname>Kuryazov</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Winter</surname>
          </string-name>
          .
          <year>2015</year>
          .
          <article-title>Collaborative Modeling Empowered By Modeling Deltas</article-title>
          .
          <source>In Proceedings of the 3rd International Workshop on (Document)</source>
          <article-title>Changes: modeling, detection, storage and visualization</article-title>
          .
          <source>ACM</source>
          , 1-
          <fpage>6</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>D.</given-names>
            <surname>Kuryazov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Winter</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Reussner</surname>
          </string-name>
          .
          <year>2018</year>
          .
          <article-title>Collaborative Modeling Enabled by Version Control</article-title>
          .
          <source>In Modellierung</source>
          <year>2018</year>
          ,
          <string-name>
            <given-names>Ina</given-names>
            <surname>Schaefer</surname>
          </string-name>
          ,
          <source>Dimitris Karagiannis, and Andreas Vogelsang (Eds.)</source>
          , Vol. P-
          <volume>280</volume>
          .
          <article-title>Gesellschaft für Informatik (GI)</article-title>
          ,
          <year>Bonn</year>
          ,
          <fpage>183</fpage>
          -
          <lpage>198</lpage>
          . ISBN:
          <fpage>978</fpage>
          -3-
          <fpage>88579</fpage>
          -674-9.
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>M.</given-names>
            <surname>Mackall</surname>
          </string-name>
          .
          <year>2010</year>
          .
          <article-title>The Mercurial SCM</article-title>
          . Internet Website,
          <source>last accessed 05.07</source>
          .
          <year>2018</year>
          (
          <year>2010</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>E. W.</given-names>
            <surname>Myers</surname>
          </string-name>
          .
          <year>1986</year>
          .
          <article-title>An O (ND) diference algorithm and its variations</article-title>
          .
          <source>Algorithmica</source>
          <volume>1</volume>
          ,
          <issue>1</issue>
          (
          <year>1986</year>
          ),
          <fpage>251</fpage>
          -
          <lpage>266</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>O.</given-names>
            <surname>Constant</surname>
          </string-name>
          .
          <source>visited on 22.07</source>
          .
          <year>2018</year>
          . EMF Dif/Merge, Project Website. http://eclipse.org/difmerge/.
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>Obeo</given-names>
            <surname>Network</surname>
          </string-name>
          .
          <source>visited on 22.07</source>
          .
          <year>2018</year>
          . UML Designer. Project website: http://www.umldesigner.org.
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>J.</given-names>
            <surname>Raumbaugh</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Jacobson</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Booch</surname>
          </string-name>
          .
          <year>2004</year>
          .
          <article-title>Unified Modeling Language Reference Manual</article-title>
          . Pearson Higher Education.
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>C.</given-names>
            <surname>Seidl</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Schaefer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>U.</given-names>
            <surname>Aßmann</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>DeltaEcore-A Model-Based Delta Language Generation Framework</article-title>
          .
          <source>In Modellierung</source>
          <year>2014</year>
          .
          <fpage>81</fpage>
          -
          <lpage>96</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>D.</given-names>
            <surname>Steinberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Budinsky</surname>
          </string-name>
          , E. Merks, and
          <string-name>
            <given-names>M.</given-names>
            <surname>Paternostro</surname>
          </string-name>
          .
          <year>2008</year>
          .
          <article-title>EMF: Eclipse Modeling Framework</article-title>
          .
          <string-name>
            <surname>Addison-Wesley Longman</surname>
          </string-name>
          Publishing Co., Inc.
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>T.</given-names>
            <surname>Swicegood</surname>
          </string-name>
          .
          <year>2008</year>
          .
          <article-title>Pragmatic version control using Git</article-title>
          . Pragmatic Bookshelf.
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>G.</given-names>
            <surname>Taentzer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ermel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Langer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          .
          <year>2012</year>
          .
          <article-title>A fundamental approach to model versioning based on graph modifications: from theory to implementation</article-title>
          .
          <source>journal: Software and Systems Modeling (April 25</source>
          <year>2012</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>