<!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>Handling constraints in model versioning</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Alessandro Rossini</string-name>
          <email>alessandro.rossini@pwc.com</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Yngve Lamo</string-name>
          <email>yla@hvl.no</email>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Model-Driven Software Engineering, Model Versioning, Constraints,</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Adrian Rutle</string-name>
          <email>aru@hvl.no</email>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Uwe Wolter</string-name>
          <email>wolter@ii.uib.no</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Category Theory</institution>
          ,
          <addr-line>Graph Transformation</addr-line>
          ,
          <country>Diagram Predicate Framework</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <addr-line>PwC</addr-line>
          <country country="NO">Norway</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>University of Bergen</institution>
          ,
          <country country="NO">Norway</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Western Norway University of Applied Sciences</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>In model-driven software engineering (MDSE), models are rstclass entities of software development and undergo a complex evolution during their life-cycles. As a consequence, there is a growing need for techniques and tools to support model management activities such as versioning. Traditional versioning systems target text-based artefacts and are not suitable for graph-based structures such as software models. To cope with this problem, a few prototype model versioning systems have been developed. However, a uniform formalisation of model merging, con ict detection and con ict resolution in MDSE is still debated in the literature. In this paper, we propose an approach to constraint-aware model versioning; i.e., an approach that handles constraints in model merging, con ict detection and con ict resolution. The proposed approach is based on the Diagram Predicate Framework (DPF), which is founded on category theory and graph transformation.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>INTRODUCTION</title>
      <p>Since the beginning of computer science, raising the abstraction
level of software systems has been a continuous process. One of
the latest steps in this direction has led to the use of modelling
languages in software development processes. Software models are
abstract representations of software systems that are used to tackle
the complexity of present-day software by enabling developers to
reason at a higher level of abstraction.</p>
      <p>In model-driven software engineering (MDSE), models are
rstclass entities of software development and undergo a complex
evolution during their life-cycles. As a consequence, there is a growing
need for techniques and tools to support model management
activities such as versioning.</p>
      <p>In optimistic versioning, each developer has a local (or working)
copy of a software artefact. These local copies are modi ed
independently and in parallel. From time to time, local modi cations
are merged. In the centralised approach to optimistic versioning,
local modi cations from each developer are merged into a central
repository. In the distributed approach, in contrast, local modi
cations from each developer are merged into other developers’ local
copies. In both cases, the merge is performed using a three-way
merging technique [29], which attempts to merge two versions of
a software artefact relying on the common ancestor version from
which both versions originated. This technique facilitates con ict
detection. In general, con icts may arise when the modi cations
are contradictory. They are resolved either manually or—where
applicable—automatically.</p>
      <p>
        Mainstream versioning systems, e.g., Subversion [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and Git [24],
target text-based artefacts. The underlying techniques such as
merging, con ict detection and con ict resolution are based on a
perline textual comparison [25]. Since the underlying structure of
models is graph-based rather than text-based, these techniques are not
suitable for such models [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ].
      </p>
      <p>
        To cope with this problem, a few prototype model versioning
systems have been developed, e.g., [
        <xref ref-type="bibr" rid="ref3 ref8">3, 8</xref>
        ]. However, a uniform
formalisation of model merging, con ict detection and con ict
resolution in MDSE is still debated in the literature. Research has lead
to a number of ndings in this eld [
        <xref ref-type="bibr" rid="ref4 ref7">4, 7</xref>
        ]. The interested reader
may consult [
        <xref ref-type="bibr" rid="ref10 ref11 ref13 ref18 ref20 ref9">9–11, 13, 35, 41, 43</xref>
        ] for di erent approaches to model
merging, con ict detection and con ict resolution. Unfortunately,
these techniques consider only model elements and their
conformance to the corresponding modelling language, e.g.,
well-formedness constraints. However, these techniques should also consider
constraints added to model elements, e.g., multiplicity constraints.
Therefore, an interesting challenge is to extend the current
techniques by enabling versioning of constraints.
      </p>
      <p>In this paper, we describe a formal approach to constraint-aware
model versioning based on the Diagram Predicate Framework
(DPF) [33, 36]; i.e., a formal approach to model versioning that
handles constraints in model merging, con ict detection and
conict resolution. In particular, the proposed approach enables the
detection, and—where applicable—resolution of syntactic and
semantic con icts on constraints. This paper further develops the
formalisation of model versioning published in [35, 37]. Compared
to the previous work, the theoretical foundation and the
underlying techniques are updated to handle constraints. Moreover, new
examples are added to illustrate how model merging, con ict
detection and con ict resolution are adapted to handle constraints.</p>
      <p>The remainder of the paper is structured as follows. Section 2
introduces constraint-aware model versioning through a running
example. Section 3 outlines DPF. Section 4 discusses the proposed
approach to constraint-aware model versioning, with a particular
focus on model merging, con ict detection and con ict resolution
for constraints in DPF. In Section 5, the current research in model
versioning is summarised. Finally, in Section 6, some concluding
remarks and ideas for future work are presented.</p>
    </sec>
    <sec id="sec-2">
      <title>MODEL VERSIONING</title>
      <p>This section introduces constraint-aware model versioning. The
following example illustrates a common scenario of concurrent
development in MDSE. The example is kept simple intentionally,
retaining only the details that are relevant for the discussion.</p>
      <p>Example 2.1 (Model versioning and con ict detection scenario).
Suppose that two developers, Alice and Bob, adopt an optimistic,
centralised versioning system to develop an information system
for the management of students and universities. Fig. 1 illustrates
the interaction between Alice, Bob, and the repository. Fig. 2 shows
the di erent versions of the model being developed.</p>
      <p>s
y
n
c</p>
      <p>V2
t
i
m
m
o
c</p>
      <p>V3
A1</p>
      <p>A1 A2
A2</p>
      <p>Alice creates a local copy A1 of the model V1 in the repository
(see Fig. 2(a)). This is done in a check-out step. She modi es her
local copy by adding the node University together with the arrows
sUnivs and uStuds. These modi cations take place in an evolution
step. Since other developers may have updated the model V1, she
needs to synchronise her local copy with the repository to merge
other developers’ modi cations. This is done in a synchronisation
step. However, no modi cations of the model V1 have been made
in the repository while Alice has been modifying it. Hence, the
synchronisation is completed without changing her local copy A1.
Finally, Alice commits her local copy, which is labelled V2 in the
repository (see Fig. 2(b)). This is done in a commit step.</p>
      <p>Afterwards, Bob checks out a local copy B2 of the model V2
from the same repository. He adds the multiplicity constraint [0..3]
on the arrow sUnivs. Then, he synchronises his local copy with the
repository. This synchronisation is also completed without
changing his local copy B2. Finally, Bob commits his local copy, which
is labelled V3 in the repository (see Fig. 2(c)).</p>
      <p>Alice continues to modify her local copy A2, which is now
outof-date since it is a copy of the model V2, while the head model in
the repository (containing Bob’s modi cations) is V3. She adds the
multiplicity constraint [1..4] on the same arrow sUnivs. Then, she
synchronises her local copy with the repository. The
synchronisation procedure detects con icting modi cations. This is because
Alice has added a multiplicity constraint that contradicts the one
added by Bob.
3</p>
    </sec>
    <sec id="sec-3">
      <title>DIAGRAM PREDICATE FRAMEWORK</title>
      <p>
        DPF is a formal diagrammatic speci cation framework founded on
category theory and graph transformation. The interested reader
may consult [
        <xref ref-type="bibr" rid="ref15">33–36, 38</xref>
        ] for a more detailed presentation of the
framework. DPF is an extension of the Generalized Sketches
Framework originally developed by Diskin et al. in [
        <xref ref-type="bibr" rid="ref14">14–20</xref>
        ]. This section
presents the basic concepts of DPF that are used in the
formalisation of constraint-aware model versioning.
      </p>
      <p>In DPF, a model is represented by a speci cation S. A speci
cation S = (S , CS : Σ) consists of an underlying graph S together
with a set of atomic constraints CS that are speci ed by means of a
predicate signature Σ. A predicate signature Σ = (ΠΣ , α Σ ) consists
of a collection of predicates π ∈ ΠΣ , each having an arity (or shape
graph) α Σ (π ). An atomic constraint (π , δ ) consists of a predicate
π ∈ ΠΣ together with a graph homomorphism δ : α Σ (π ) → S
from the arity of the predicate to the underlying graph of a
speci cation.</p>
      <p>Example 3.1 (Signature and speci cation). Building on Example
2.1, Table 1 shows a signature Σ = (ΠΣ , α Σ ) suitable for
objectoriented structural modelling. The rst column of the table shows
the predicate symbols. The second and the third columns show the
arities of predicates and a proposed visualisation of the
corresponding atomic constraints, respectively. Finally, the fourth column
presents the semantic interpretation of each predicate.</p>
      <p>Proposed vis.</p>
      <p>X</p>
      <p>f
[m..n]</p>
      <p>/ Y
X [sufrj] / Y</p>
      <p>f
X i [inv] ) Y
g</p>
      <p>Semantic
interpretation
∀x ∈ X : m ≤
|f (x)| ≤ n, with 0 ≤
m ≤ n and n ≥ 1
∀y ∈ Y ∃x ∈ X : y ∈
f (x)
∀x ∈ X , ∀y ∈ Y : y ∈
f (x) if and only if x ∈
g(y)</p>
      <p>Fig. 3(a) shows a speci cation S = (S , CS : Σ) representing an
object-oriented structural model. Fig. 3(b) shows the underlying
graph S of the speci cation S, i.e., the graph of S without any
atomic constraints.</p>
      <p>In S, the nodes Student and University are interpreted as sets
Student and U niversity, while the arrows sUnivs, uStuds are
interpreted as multi-valued functions sU nivs : Student → ℘(U
niversity), etc., where the powerset ℘(U niversity) is the set of all subsets
of U niversity, i.e., ℘(U niversity) = {A | A ⊆ U niversity}.</p>
      <p>The function sU nivs has cardinality between one and four. In S,
this is enforced by the atomic constraint ([mult(1, 4)], δ1) on the
arrow sUnivs. This atomic constraint is formulated by the
predicate [mult(m, n)] from the signature Σ (see Table 1). Moreover, the
function uStuds is surjective. In S, this is enforced by the atomic
constraint ([surjective], δ3) on the arrow uStuds. Furthermore,
the functions sU nivs and uStuds are inverse of each other; i.e.,
∀s ∈ Student and ∀u ∈ U niversity : s ∈ uStuds(u) if and only
if u ∈ sU nivs(s). In S, this is enforced by the atomic constraint
([inverse], δ2) on the arrows sUnivs and uStuds.</p>
      <p>The semantics of predicates of the signature Σ (see Table 1) is
described using the mathematical language of set theory. In an
implementation, the semantics of a predicate is typically given by the
code of a corresponding validator such that the mathematical and
the validator semantics coincide [28].</p>
      <p>
        A semantic interpretation [[..]]Σ of a signature Σ consists of a
mapping that assigns to each predicate symbol π ∈ ΠΣ a set [[π ]]Σ
of graph homomorphisms ι : O → α Σ (π ), called valid instances of
π , where O may vary over all graphs. [[π ]]Σ is assumed to be closed
under isomorphisms. The interested reader may consult [
        <xref ref-type="bibr" rid="ref15">36, 38</xref>
        ] for
a more detailed discussion of the semantics of a speci cation.
      </p>
      <p>Example 3.2 (Instance of a speci cation). Building on Example 3.1,
Fig. 4(a) shows a valid instance of S, while Fig. 4(b) shows an
invalid instance of S that violates the atomic constraints
([surjective], δ3) and ([inverse], δ2) since Adrian is associated
with four universities but none of these universities are associated
with Adrian.</p>
      <p>UnivAQ
:
✈✈✈❥✈❥✈❥✈5 UiB
Alessandro rk</p>
      <p>X ●●❙●❙❙)
●UniMarburg
●●#</p>
      <p>UAM
(a)</p>
      <p>&lt; UiB
②②②6HVL
Adrian②②❧❧❧
❉❉◗❉◗(
❉UniMarburg
❉
❉</p>
      <p>A!UC
(b)</p>
      <p>This section introduces the underlying techniques of the
proposed approach to constraint-aware model versioning, with a
particular focus on model merging, con ict detection and con ict
resolution for atomic constraints. The interested reader may consult
[33, 35] for a more detailed discussion of model versioning in DPF.
In this paper, the di erence between two versions of a speci
cation is represented by a di erence speci cation; i.e., a speci cation
that contains all common, added, deleted and renamed elements.
The motivation behind adopting di erence speci cations is that—
as will be clear later—gathering all these elements in one speci
cation facilitates the application of transformation rules to detect
and resolve con icts.</p>
      <p>Due to the diagrammatic nature of speci cations, the
representation of di erences such as added, deleted and renamed is expressed
by a diagrammatic language. The diagrammatic language for the
representation of di erences is given by a label signature Δ, which
has the same structure of a signature but no semantic counterpart
(see Table 2). A label signature Δ = (ΘΔ , α Δ ) consists of a set of
labels θ ∈ ΘΔ , each having an arity α Δ (θ ). Hence, a di erence
speci cation D = (D , CD : Σ, AD : Δ) consists of a speci cation D
together with a set of annotations AD that are speci ed by means
of the label signature Δ (see, e.g., UD and D in Fig. 5).</p>
      <p>
        The underlying graph and the set of atomic constraints of a
difference speci cation are obtained by the pushout construction [
        <xref ref-type="bibr" rid="ref6">6,
23, 33</xref>
        ], which can be regarded as a generalisation of union. In this
paper, we do not provide details of the pushout construction, but
we o er an explanation of its usage by means of the running
example.
      </p>
      <p>Example 4.1 (Di erence speci cation). Building on Example 2.1,
recall that two (or more) developers may modify the same speci
cations concurrently. Starting from the base speci cation V2 (see
Fig. 2(b)), Bob makes and commits his modi cations so that the
head speci cation is now V3 (see Fig. 2(c)). Concurrently, Alice
makes (but does not commit) her modi cations so that her local
copy is now A2 (see Fig. 2(d)). Next, Alice synchronises her local
copy with the head speci cation.</p>
      <p>The speci cation UD (see Fig. 5(g)) represents the di erence
between Alice’s local copy and the base speci cation. It is
calculated using the pushout construction by merging A2 and V2
modulo their commonality speci cation, which contains the
unmodied elements from V2 to A2.</p>
      <p>
        Similarly, the speci cation D (see Fig. 5(d)) represents the di
erence between the head speci cation and the base speci cation. It
is calculated using the same pushout construction by merging V3
and V2 modulo their commonality speci cation, which contains
the unmodi ed elements from V2 to V3.
Student
The merge of di erences MD is a speci cation that represents the
concurrent modi cations of two (or more) developers and that is
processed to detect con icts. Con icts are speci ed by con ict
detection rules, which are based on constraint-aware transformation
rules [
        <xref ref-type="bibr" rid="ref15">33, 36, 38</xref>
        ].
      </p>
      <p>A transformation rule t = L o l K  r / R consists of three
speci cations L, K and R. L and R are the left-hand side and
righthand side of the transformation rule, respectively, while K is their
interface. L \ l (K) describes the part of a speci cation that is to
be deleted, R \ K describes the part to be added, and K describes
the part that has to exist to apply the rule, in which only renaming
modi cations are possible. Note that the speci cation morphism l :
K → L is injective—not an inclusion—to allow for renaming [33].</p>
      <p>An application of transformation rule consists of nding a match
for the left-hand side L in a source speci cation S and replacing
L with R, leading to a target speci cation S′.</p>
      <p>A con ict detection rule consists of a non-deleting
transformation rule, where the left-hand side L represents the con ict and the
right-hand side R is a speci cation where the con icting elements
are annotated. The interface K is equal to L since non-deleting
transformation rules do not delete any elements.</p>
      <p>Detecting a con ict consists of applying a con ict detection rule
by nding a match for the left-hand side L in the merge of di
erences MD, leading to a target merge of di erences MD′′ where
the con icting elements are annotated.1 Hence, MD is processed
by applying all applicable con ict detection rules.</p>
      <p>Applying these rules provides a classi cation of the con icts
into two kinds, namely traditional con ict and custom con ict. A
traditional con ict occurs when concurrent modi cations compete
over the same elements of a speci cation; e.g., a part of the
underlying graph is deleted while an atomic constraint having the same
part as the target is added (dangling atomic constraints). Table 3
(rule g) shows a traditional con ict detection rule for dangling
multiplicity constraints. In contrast, a custom con ict occurs when
concurrent modi cations lead to contradicting constraints; e.g., two
(di erent) multiplicity constraints are added to the same arrow.
Table 3 (rule l) shows a custom con ict detection rule for
inconsistent multiplicity constraints. Note that these kinds of con icts may
include domain-speci c con icts. The proposed approach enables
the speci cation of custom con ict detection rules on demand.</p>
      <p>The following example illustrates the application of custom
conict detection rules.</p>
      <p>Example 4.2 (Merge of di erences and custom con ict detection).
Building on Example 2.1, Fig. 5(h) shows the merge of di erences
MD. It is calculated using the pushout construction on UD, D and
their commonality speci cation. Fig. 5(i) shows the merge of
differences MD′′ after the application of con ict detection rules.</p>
      <p>
        In MD the atomic constraints ([mult(0, 3)], δ1) and
([mult(1, 4)], δ1) are annotated with &lt;add&gt;[mult(m,n)], which is
visualised by a ++ and green colouring. In MD′′ these atomic
constraints are additionally annotated with &lt;conflict&gt;[mult(m,n)],
which is visualised by a dotted box, according to rule l (see Table 3).
1The choice of the notation MD′′ rather than MD′ will be clear in Section 4.4
(a)V2
Depending on the structure and semantics of the modi cations,
some con icts may be automatically resolved. Several resolution
strategies [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] may be possible for a given con ict. These strategies
are speci ed by con ict resolution patterns, which are based on
transformation rules. A con ict resolution pattern consists of a
transformation rule, where the left-hand side L represents the
conict, the right-hand side R is a speci cation where the resolution
is applied, and K is their interface.
      </p>
      <p>In the merge of di erences MD, we could annotate modi
cations from di erent developers with di erent labels so that a
conict resolution with priorities could take this information into
account. However, in this paper, we abstract from these details and
consider resolution patterns without priorities.</p>
      <p>Resolving a con ict consists of applying a con ict resolution
pattern by nding a match for the left-hand side L in the merge of
di erences MD′′ , leading to a target merge of di erences MD′′′ .
Hence, in addition to con ict detection rules, the merge of di
erences MD is processed by applying all applicable con ict
resolution patterns.</p>
      <p>To resolve con icts of inconsistent multiplicity constraints, two
con ict resolution patterns are de ned. The rst “liberal” pattern
bL is to remove the con icting multiplicity constraints and add a
constraint that is the union of the two. The second “conservative”
pattern bC is to remove the con icting multiplicity constraints and
add a constraint that is the intersection of the two. Table 3 shows
these con ict resolution patterns.</p>
      <p>In bL , according to the semantic interpretation [[[mult(m, n)]]]Σ
of the signature Σ (see Table 1), the set of valid instances of the
atomic constraint ([mult(min(m1, m2), max (n1, n2))], δ1) ∈ CR is
equal to the union of the set of valid instances of the atomic
constraints ([mult(m1, n1)], δ1), ([mult(m2, n2)], δ2) ∈ CL . This is
justi ed as follows:</p>
      <p>([mult(m1, n1)], δ ) ∧ ([mult(m2, n2)], δ ) ≡
 ([mult(m2, n2)], δ )

≡  ([mult(m1, n1)], δ )
 ([mult(m2, n1)], δ )
 ([mult(m1, n2)], δ )

if
if
if
if
m1 ≤ m2 ≤ n2 ≤ n1
m2 ≤ m1 ≤ n1 ≤ n2
m1 ≤ m2 ≤ n1 ≤ n2
m2 ≤ m1 ≤ n2 ≤ n1
✤❴ ❴ ❴ ❴ ❴++[❴m1.❴.n1]❴ ++❴[m❴2..n❴2] ❴ ❴ ❴✤
✤❴ X❴ ❴ ❴ ❴ ❴ ❴ f ❴ ❴ ❴ ❴ ❴ / ❴Y ❴✤
✤❴ ❴ ❴ ❴ ❴++[❴m1.❴.n1]❴ ++❴[m❴2..n❴2] ❴ ❴ ❴✤
✤❴ X❴ ❴ ❴ ❴ ❴ ❴ f ❴ ❴ ❴ ❴ ❴ / ❴Y ❴✤
X
X</p>
      <p>K
f
f
/ Y
/ Y</p>
      <p>X
X</p>
      <p>R
f
✤❴ ❴ ❴ ❴ ❴ ❴ +❴+[m❴..n]❴ ❴ ❴✤
✤❴ X❴ ❴ ❴ ❴ -❴-f ❴ ❴ ❴ / ❴Y ❴✤
✤❴ ❴ ❴ ❴ ❴++[❴m1.❴.n1]❴ ++❴[m❴2..n❴2] ❴ ❴ ❴✤
✤❴ X❴ ❴ ❴ ❴ ❴ ❴ f ❴ ❴ ❴ ❴ ❴ / ❴Y ❴✤
++[min(m1,m2)..max(n1,n2)]</p>
      <p>f
++[max(m1,m2)..min(n1,n2)]
/ Y
/ Y</p>
      <p>Similarly, in bC , the set of valid instances of the atomic
constraint ([mult(max (m1, m2), min(n1, n2))], δ1) ∈ CR is equal to
the intersection of the set of valid instances of the atomic
constraints ([mult(m1, n1)], δ1), ([mult(m2, n2)], δ2) ∈ CL . This is
justi ed as follows:</p>
      <p>([mult(m1, n1)], δ ) ∨ ([mult(m2, n2)], δ ) ≡
 ([mult(m1, n1)], δ ) if m1 ≤ m2 ≤ n2 ≤ n1
≡  ([mult(m2, n2)], δ ) if m2 ≤ m1 ≤ n1 ≤ n2
 ([mult(m1, n2)], δ ) if m1 ≤ m2 ≤ n1 ≤ n2
 ([mult(m2, n1)], δ ) if m2 ≤ m1 ≤ n2 ≤ n1
</p>
      <p>Note that the con ict resolution patterns bL and bC can be
applied only under the condition that the range of the multiplicity
constraints overlap, i.e., if n1 ≥ m2 or m1 ≤ n2. This could be
formulated as a positive application condition [21].</p>
      <p>The following example illustrates the application of con ict
resolution patterns.</p>
      <p>Example 4.3 (Con ict resolution). Building on Example 2.1, Fig. 6(i)
shows the merge of di erences MD′′ , while Fig.s 6(j) and 6(k)
show the merge of di erences MD′′′ after the application of the
liberal and conservative con ict resolution patterns, respectively.</p>
      <p>In MD′′ the atomic constraints ([mult(0, 3)], δ1) and
([mult(1, 4)], δ1) are annotated with &lt;add&gt;[mult(m,n)] and
&lt;conflict&gt;[mult(m,n)]. In MD′′′ these atomic constraints are
replaced with a new atomic constraint ([mult(0, 4)], δ1), according
to pattern bL , or ([mult(1, 3)], δ1), according to pattern bC (see
Table 3).
In general, the merge of di erences MD is a valid speci cation by
construction, but it may not be in normal form; i.e., single atomic
constraints of the speci cation may not express syntactically the
constraints that the conjunction of all the atomic constraints
implies semantically. Performing con ict detection on a merge of
differences that is not in normal form may lead to a speci cation
containing false negatives [29]; i.e., containing actual con icts that are
not annotated with conflict. Moreover, performing con ict
resolution on the merge of di erences that is not in normal form may
lead to a speci cation that is also not in normal form.</p>
      <p>Intuitively, the normal form is a speci cation N where there
exist speci cation morphisms ϕ : N → {MD′′ } to all other
possible ways of applying resolution patterns to MD. This speci
cation may not always be unique. Therefore, we consider the
scenario where we obtain a reasonable normal form, which contains
the minimal set of constraints that give the same semantics. The
interested reader may refer to [33] for a formal de nition of the
normal form.</p>
      <p>The following example illustrates an alternative scenario of
concurrent development in MDSE, which leads to a merge of di
erences MD that is not in normal form.</p>
      <p>Example 4.4 (Alternative custom con ict detection). Let us
consider a variant of the scenario in Example 2.1. Fig. 7 shows the
di erent versions of the speci cation being developed.</p>
      <p>In addition to the atomic constraint ([mult(1, 4)], δ1) on the
arrow sUnivs, Alice adds the atomic constraints ([surjective], δ3)
on the arrows uStuds and ([inverse], δ2) on the arrows sUnivs
and uStuds.</p>
      <p>Fig. 7(h) shows the merge of di erences MD, Fig. 7(j) shows the
merge of di erences MD′′ after the application of con ict
detection rules, while Fig.s 7(k) and 7(l) show the merge of di erences
MD′′′ after the application of the liberal and conservative con ict
resolution patterns, respectively.
α([inverse])</p>
      <p>a
1</p>
      <p>2
b
α([mult(0, n)])
1 a 2</p>
      <p>In this paper, the properties of conjunctively connected sets of
atomic constraints are described by means of speci cation
entailments. A speci cation entailment has the structure Le f t ⊢ Right ,
where both premise (Le f t ) and conclusion (Right ) are speci
cations with the same underlying graph. From a speci cation
entailment, one may induce a transformation rule that can be applied to
existing speci cations. The interested reader may consult [33, 36]
for a more detailed discussion of speci cation entailments.</p>
      <p>The following example illustrates the usage of speci cation
entailments.</p>
      <p>Example 4.5 (Speci cation entailment). Fig. 8 shows a speci
cation entailment e = L ⊢ R that expresses the relation between
multiplicity and surjectivity constraints.</p>
      <p>Table 4 shows the transformation rule t = L o l K  r / R
induced by the corresponding speci cation entailment e. Fig. 9(b)
shows the speci cation S′ = (S ′, CS′ : Σ) after the application of
the transformation rule t .</p>
      <p>Performing con ict detection on a merge of di erences MD that
is not in normal form may lead to a merge of di erences MD′′
containing false negatives or false positives [29]. To ensure that
con ict detection and con ict resolution behave as expected, they
are performed on a merge of di erences MD in normal form.</p>
      <p>In this paper, normalisation consists of a sequence of
applications of transformation rules induced by speci cation entailments.
More precisely, given a speci cation S = (S , CS : Σ) and a set of
transformation rules induced by speci cation entailments, a
normalisation consists of a speci cation transformation S ∗ +3 S′ ,
leading to a normal form S′. Note that the normalisation is
assumed to be terminating and con uent; i.e., each speci cation can
be transformed to a unique normal form by speci cation
transformation. The identi cation of the conditions under which a set of
speci cation entailments guarantees termination and con uence
of the normalisation is outside the scope of this work (see
Section 6).</p>
      <p>The following example illustrates the application of
normalisation.</p>
      <p>Example 4.6 (Normalisation, con ict detection and con ict
resolution). Building on Example 4.4, Fig. 10(i) shows the merge of di
erences MD′ after the normalisation, Fig. 10(j) shows the merge of
di erences MD′′ after the application of con ict detection rules,
while Fig.s 10(k) and 10(l) show the merge of di erences MD′′′
after the application of the liberal and conservative con ict
resolution patterns, respectively.</p>
      <p>The normalisation replaces the atomic constraint ([mult(0, 3)],
δ1) in MD with ([mult(1, 3)], δ1) in MD′ . As a consequence, the
application of the con ict resolution pattern bL (see Table 3) leads
to a merge of di erences MD′′′ that is in normal form.</p>
    </sec>
    <sec id="sec-4">
      <title>RELATED WORK</title>
      <p>
        Model versioning has been greatly discussed in the literature. The
interested reader may consult [
        <xref ref-type="bibr" rid="ref4 ref7">4, 7</xref>
        ] for a survey and an
introduction.
      </p>
      <p>
        A strand of research within model versioning focuses on the
problem of model merging. Di erent approaches can be found in
the literature:
• In [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], the authors propose a search-based automated model
merge approach where rule-based design space exploration
is used to search the space of solution candidates that
represent con ict-free merged models. Similar to our approach,
this work takes into consideration certain structural and
numeric constraints.
• The work in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] uses a repair generator to address
inconsistencies that are produced while merging architectural
models. The work in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] examines the same issues more
thoroughly and uses search-based techniques.
• In [31], the authors propose to use an arti cial intelligence
technique of automated planning for resolving
inconsistencies—be it due to model merging or due to model editions—
through the generation of one or more resolution plans. They
also implement the tool Badger in Prolog, which is a
regression planner generating such plans.
• The work in [
        <xref ref-type="bibr" rid="ref20">43</xref>
        ] presents a formal approach to the
threeway merging of Ecore [
        <xref ref-type="bibr" rid="ref17">40</xref>
        ] models based on set theory and
predicate logic. It is based on formally de ned merge rules
that can handle additions, deletions and renames of model
elements as well as moves of contained model elements.
Furthermore, it detects and resolves con icting modi cations
of the same element and of di erent interdependent elements.
Finally, the approach guarantees that the resulting merged
model is well-formed.
• The work in [
        <xref ref-type="bibr" rid="ref18">41</xref>
        ] proposes a formal approach to the
merging of typed attributed graphs based on graph
transformations and category theory. In this approach, two kinds of
con icts are de ned based on the notion of graph
modications: operation-based and state-based con icts. On the
one hand, operation-based con icts are detected by rst
extracting minimal rules from modi cations and thereafter, if
possible, selecting pre-de ned operation rules. Con ict
detection is then based on the parallel dependence of graph
transformations and extraction of critical pairs. On the other
hand, state-based con icts are detected by checking the
merged graphs against graph constraints.
• In [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], the authors propose a technique for obtaining
automatically generated repair plans for a given inconsistent
model. Repair plans are sequences of concrete modi cations
to be performed on a given model that x existing
inconsistencies without introducing new ones. The technique is
based on Praxis, which is a model inconsistency detection
approach. In Praxis, the model is represented as the sequence
of actions executed by the user in order to build it.
• The work in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] introduces a domain-speci c modelling
language for the de nition of weaving models that represent
patterns of con icting modi cations. Resolution criteria for
these patterns can be speci ed through OCL expressions.
      </p>
      <p>
        With the exception of [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], the approaches mentioned above do
not take constraints on model elements into account. However, the
approaches in [
        <xref ref-type="bibr" rid="ref10 ref18 ref20">10, 41, 43</xref>
        ] include checking the well-formedness of
the result of merging. In future work, we may also explore this
important dimension in our approach to model versioning.
      </p>
      <p>
        Research has also lead to a number of prototype tools that
support model versioning:
• EMFStore [27] provides a dedicated framework for version
control of EMF models. It is an operation- and graph-based
approach that supports the detection of composite modi
cations.
• Adaptable Model Versioning (AMOR) [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] is a versioning
system that can deal with arbitrary modelling languages based
on Ecore. AMOR is built around Subversion to provide a
centralised approach to optimistic versioning, but reuses an
extended version of EMF Compare [22] for di erence
calculation. AMOR provides con ict detection features that may
be enhanced with user-de ned operations. Moreover, it
provides collaborative con ict resolution features, which allow
the implementation of con ict resolution policies. If the
resolution is performed manually, it is analysed to derive
resolution recommendations for similar situations that occur in
future scenarios. In contrast to our approach, this tool does
not provide a formal treatment of con ict detection and
resolution.
• Semantically enhanced Model Version Control System
(SMoVer) [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] facilitates the speci cation of modelling
language semantics, which is needed for accurate con ict
detection. The authors exemplify how semantics can improve
the accuracy of con ict detection and how these con icts
can be presented to modellers. On the one hand, certain
models that are in con ict syntactically may be merged
without con icts based on their semantics. On the other hand,
certain models that are not in con ict syntactically may not
be merged without con icts based on their semantics.
Similar to our approach, this tool enables the de nition of rules
for con ict detection and resolution based on both syntax
and semantics.
• Epsilon Comparison Language (ECL) and Epsilon Merging
Language (EML) [30] provide a rule-based language for
comparing and merging homogeneous or heterogeneous
models, respectively. Rules speci ed in ECL and EML could be
employed for con ict detection and resolution.
      </p>
      <p>An Eclipse-based modelling environment for DPF is described
in [28], while a web-based modelling environment for DPF is
presented in [32]. In future work, we may implement prototype support
for our approach to model versioning and perform case studies to
compare the existing tools with our tool.</p>
      <p>
        An initial attempt in this direction—based on Resource
Description Format (RDF)—is described in [
        <xref ref-type="bibr" rid="ref16">39</xref>
        ]. Moreover, the DPF
modelling environment utilises Alloy [26] for consistency checking [
        <xref ref-type="bibr" rid="ref19">42</xref>
        ].
Alloy could be used to check the satis ability of the merge of di
erences, which in turn could be used in the process of normalisation
and con ict detection.
6
      </p>
    </sec>
    <sec id="sec-5">
      <title>CONCLUSION AND FUTURE WORK</title>
      <p>In this paper, we described a formal approach to model versioning
based on DPF. First, we de ned the representation of di erences—
i.e., the information added, deleted and renamed—as a set of
annotations that are speci ed by means of a label signature. Second,
we introduced a synchronisation procedure that includes
normalisation, con ict detection and con ict resolution. Transformation
rules are used to represent con icts and—where applicable—their
resolution patterns. The con ict detection and resolution are then
formalised as the application of these transformation rules.
Moreover, speci cation entailments are adopted to describe properties
of conjunctively connected sets of atomic constraints. The
normalisation of a speci cation is then formalised as the embedding of
these speci cation entailments to obtain the normal form of a
speci cation.</p>
      <p>Note that the proposed approach handles constraints in all the
steps of the synchronisation, including normalisation, con ict
detection and con ict resolution. To the best of our knowledge, this
work constitutes the rst attempt to formalise constraint-awareness
in model versioning.</p>
      <p>Speci cation transformations constitute the basis for
normalisation, con ict detection and con ict resolution. In future work, we
will analyse termination and con uence in DPF. This will facilitate
the identi cation of the conditions under which a set of con ict
resolution patterns guarantees that no new con icts are introduced.
[15] Zinovy Diskin. 2003. Practical foundations of business system speci cations.</p>
      <p>Springer, Chapter Mathematics of UML: Making the Odysseys of UML less
dramatic, 145–178.
[16] Zinovy Diskin. 2005. Encyclopedia of Database Technologies and Applications.</p>
      <p>Information Science Reference, Chapter Mathematics of Generic Speci cations
for Model Management I and II, 351–366.
[17] Zinovy Diskin and Boris Kadish. 2003. Variable set semantics for keyed
generalized sketches: formal semantics for object identity and abstract syntax
for conceptual modeling. Data &amp; Knowledge Engineering 47, 1 (2003), 1–59.
https://doi.org/10.1016/S0169-023X(03)00047-8
[18] Zinovy Diskin and Boris Kadish. 2005. Encyclopedia of Database Technologies
and Applications. Information Science Reference, Chapter Generic Model
Management, 258–265.
[19] Zinovy Diskin, Boris Kadish, Frank Piessens, and Michael Johnson. 2000.
Universal Arrow Foundations for Visual Modeling. In Diagrams 2000: 1st
International Conference on Diagrammatic Representation and Inference (Lecture Notes in
Computer Science), Michael Anderson, Peter Cheng, and Volker Haarslev (Eds.),
Vol. 1889. Springer, 345–360. https://doi.org/10.1007/3-540-44590-0_30
[20] Zinovy Diskin and Uwe Wolter. 2008. A Diagrammatic Logic for
ObjectOriented Visual Modeling. In ACCAT 2007: 2nd Workshop on Applied and
Computational Category Theory (Electronic Notes in Theoretical Computer Science),
Vol. 203/6. Elsevier, 19–41. https://doi.org/10.1016/j.entcs.2008.10.041
[21] Hartmut Ehrig, Karsten Ehrig, Ulrike Prange, and Gabriele Taentzer.
2006. Fundamentals of Algebraic Graph Transformation. Springer.
https://doi.org/10.1007/3-540-31188-2
[22] EMF Compare. Accessed 2018-08-20. https://www.eclipse.org/emf/compare/
[23] José Luiz Fiadeiro. 2004. Categories for Software Engineering. Springer.
[24] Git. Accessed 2018-08-20. https://git-scm.com
[25] James W. Hunt and M. D. McIlroy. 1976. An Algorithm for Di erential File
Comparison. Technical Report 41. Bell Laboratories.
[26] Daniel Jackson. 2012. Software abstractions: logic, language, and analysis. MIT</p>
      <p>Press.
[27] Maximilian Koegel and Jonas Helming. 2010. EMFStore: a model repository for
EMF models. In ICSE 2010: 32nd ACM/IEEE International Conference on Software
Engineering, Je Kramer, Judith Bishop, Premkumar T. Devanbu, and Sebastián
Uchitel (Eds.). ACM, 307–308. https://doi.org/10.1145/1810295.1810364
[28] Yngve Lamo, Xiaoliang Wang, Florian Mantz, Wendy MacCaull, and Adrian
Rutle. 2012. DPF Workbench: A Diagrammatic Multi-Layer Domain
Speci c (Meta-)Modelling Environment. In Computer and Information Science,
Roger Lee (Ed.). Studies in Computer Intelligence, Vol. 429. Springer, 37–52.
https://doi.org/10.1007/978-3-642-30454-5_3
[29] Tom Mens. 2002. A State-of-the-Art Survey on Software
Merging. IEEE Transactions on Software Engineering 28, 5 (2002), 449–462.
https://doi.org/10.1109/TSE.2002.1000449
[30] Richard F. Paige, Dimitrios S. Kolovos, Louis M. Rose, Nikolaos Drivalos, and
Fiona A. C. Polack. 2009. The Design of a Conceptual Framework and Technical
Infrastructure for Model Management Language Engineering. In ICECCS 2009:
14th IEEE International Conference on Engineering of Complex Computer Systems.</p>
      <p>IEEE Computer Society, 162–171. https://doi.org/10.1109/ICECCS.2009.14
[31] Jorge Pinna Puissant, Ragnhild Van Der Straeten, and Tom Mens.
2015. Resolving model inconsistencies using automated
regression planning. Software and System Modeling 14, 1 (2015), 461–481.
https://doi.org/10.1007/s10270-013-0317-9
[32] Fazle Rabbi, Yngve Lamo, Ingrid Chieh Yu, and Lars Michael Kristensen.
2016. WebDPF: A Web-based Metamodelling and Model
Transformation Environment. In MODELSWARD 2016: 4th International Conference on
Model-Driven Engineering and Software Development, Slimane Hammoudi,
Luís Ferreira Pires, Bran Selic, and Philippe Desfray (Eds.). SciTePress, 87–98.
https://doi.org/10.5220/0005686900870098
[33] Alessandro Rossini. 2011. Diagram Predicate Framework meets Model Versioning
and Deep Metamodelling. Ph.D. Dissertation. Department of Informatics,
University of Bergen, Norway.
[34] Alessandro Rossini, Juan de Lara, Esther Guerra, Adrian Rutle, and Uwe Wolter.
2014. A formalisation of deep metamodelling. Formal Aspects of Computing 26,
6 (2014), 1115–1152. https://doi.org/10.1007/s00165-014-0307-x
[35] Alessandro Rossini, Adrian Rutle, Yngve Lamo, and Uwe Wolter. 2010. A
formalisation of the copy-modify-merge approach to version control in
MDE. Journal of Logic and Algebraic Programming 79, 7 (2010), 636–658.
https://doi.org/10.1016/j.jlap.2009.10.003
[36] Adrian Rutle. 2010. Diagram Predicate Framework: A Formal Approach to MDE.</p>
      <p>Ph.D. Dissertation. Department of Informatics, University of Bergen, Norway.
[37] Adrian Rutle, Alessandro Rossini, Yngve Lamo, and Uwe Wolter. 2009.</p>
      <p>A Category-Theoretical Approach to the Formalisation of Version
Control in MDE. In FASE 2009: 12th International Conference on Fundamental
Approaches to Software Engineering (Lecture Notes in Computer Science),
Marsha Chechik and Martin Wirsing (Eds.), Vol. 5503. Springer, 64–78.
https://doi.org/10.1007/978-3-642-00593-0_5</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Kerstin</given-names>
            <surname>Altmanninger</surname>
          </string-name>
          .
          <year>2009</year>
          .
          <article-title>Issues and challenges in model versioning</article-title>
          .
          <source>In iiWAS 2009: 11th International Conference on Information Integration and Web-based Applications and Services</source>
          , Gabriele Kotsis, David Taniar,
          <string-name>
            <given-names>Eric</given-names>
            <surname>Pardede</surname>
          </string-name>
          , and Ismail Khalil (Eds.). ACM, 8. https://doi.org/10.1145/1806338.1806344
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Kerstin</given-names>
            <surname>Altmanninger</surname>
          </string-name>
          , Petra Brosch, Philip Langer, Martina Seidl, Konrad Wiel, and
          <string-name>
            <given-names>Manuel</given-names>
            <surname>Wimmer</surname>
          </string-name>
          .
          <year>2009</year>
          .
          <article-title>Why Model Versioning Research is Needed!? An Experience Report</article-title>
          .
          <source>In Models and Evolution: Joint MoDSE-MCCM 2010 Workshop on Model-Driven Software Evolution and Model Co-Evolution and Consistency Management</source>
          .
          <fpage>1</fpage>
          -
          <lpage>12</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Kerstin</given-names>
            <surname>Altmanninger</surname>
          </string-name>
          , Wieland Schwinger, and
          <string-name>
            <given-names>Gabriele</given-names>
            <surname>Kotsis</surname>
          </string-name>
          .
          <year>2010</year>
          .
          <article-title>Semantics for Accurate Con ict Detection in SMoVer: Speci cation, Detection and Presentation by Example</article-title>
          .
          <source>International Journal of Enterprise Information Systems 6</source>
          ,
          <issue>1</issue>
          (
          <year>2010</year>
          ),
          <fpage>68</fpage>
          -
          <lpage>84</lpage>
          . https://doi.org/10.4018/jeis.2010120206
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Kerstin</given-names>
            <surname>Altmanninger</surname>
          </string-name>
          , Martina Seidl, and
          <string-name>
            <given-names>Manuel</given-names>
            <surname>Wimmer</surname>
          </string-name>
          .
          <year>2009</year>
          .
          <article-title>A Survey on Model Versioning Approaches</article-title>
          .
          <source>International Journal of Web Information Systems 5</source>
          ,
          <issue>3</issue>
          (
          <year>2009</year>
          ),
          <fpage>271</fpage>
          -
          <lpage>304</lpage>
          . https://doi.org/10.1108/17440080910983556
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Apache</given-names>
            <surname>Subversion</surname>
          </string-name>
          .
          <source>Accessed</source>
          <year>2018</year>
          -
          <volume>08</volume>
          -20. https://subversion.apache.org/
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Michael</given-names>
            <surname>Barr</surname>
          </string-name>
          and
          <string-name>
            <given-names>Charles</given-names>
            <surname>Wells</surname>
          </string-name>
          .
          <year>1995</year>
          .
          <article-title>Category Theory for Computing Science (2nd Edition)</article-title>
          . Prentice Hall.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Petra</given-names>
            <surname>Brosch</surname>
          </string-name>
          , Gerti Kappel, Philip Langer, Martina Seidl, Konrad Wieland, and
          <string-name>
            <given-names>Manuel</given-names>
            <surname>Wimmer</surname>
          </string-name>
          .
          <year>2012</year>
          .
          <article-title>An Introduction to Model Versioning</article-title>
          . In SFM 2012:
          <article-title>Formal Methods for Model-Driven Engineering-</article-title>
          12th
          <source>International School on Formal Methods for the Design of Computer</source>
          , Communication, and
          <source>Software Systems (Lecture Notes in Computer Science)</source>
          ,
          <source>Marco Bernardo, Vittorio Cortellessa, and Alfonso Pierantonio (Eds.)</source>
          , Vol.
          <volume>7320</volume>
          . Springer,
          <fpage>336</fpage>
          -
          <lpage>398</lpage>
          . https://doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -30982-3_
          <fpage>10</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Petra</given-names>
            <surname>Brosch</surname>
          </string-name>
          , Gerti Kappel, Martina Seidl, Konrad Wieland, Manuel Wimmer, Horst Kargl, and
          <string-name>
            <given-names>Philip</given-names>
            <surname>Langer</surname>
          </string-name>
          .
          <year>2010</year>
          .
          <article-title>Adaptable Model Versioning in Action</article-title>
          .
          <source>In Modellierung 2010 (Lecture Notes in Informatics)</source>
          , Gregor Engels, Dimitris Karagiannis, and Heinrich C.
          <source>Mayr (Eds.)</source>
          , Vol.
          <volume>161</volume>
          . GI,
          <fpage>221</fpage>
          -
          <lpage>236</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Antonio</given-names>
            <surname>Cicchetti</surname>
          </string-name>
          , Davide Di Ruscio, and
          <string-name>
            <given-names>Alfonso</given-names>
            <surname>Pierantonio</surname>
          </string-name>
          .
          <year>2008</year>
          .
          <article-title>Managing Model Con icts in Distributed Development</article-title>
          .
          <source>In MoDELS 2008: 11th International Conference on Model Driven Engineering Languages and Systems (Lecture Notes in Computer Science)</source>
          , Krzysztof Czarnecki, Ileana Ober, JeanMichel Bruel,
          <source>Axel Uhl, and Markus Völter (Eds.)</source>
          , Vol.
          <volume>5301</volume>
          . Springer,
          <fpage>311</fpage>
          -
          <lpage>325</lpage>
          . https://doi.org/10.1007/978-3-
          <fpage>540</fpage>
          -87875-9_
          <fpage>23</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>Marcos</given-names>
            <surname>Aurélio Almeida da Silva</surname>
          </string-name>
          , Alix Mougenot, Xavier Blanc, and
          <string-name>
            <given-names>Reda</given-names>
            <surname>Bendraou</surname>
          </string-name>
          .
          <year>2010</year>
          .
          <article-title>Towards Automated Inconsistency Handling in Design Models</article-title>
          .
          <source>In CAiSE 2010: 22nd International Conference on Advanced Information Systems Engineering (Lecture Notes in Computer Science)</source>
          ,
          <source>Barbara Pernici (Ed.)</source>
          , Vol.
          <volume>6051</volume>
          . Springer,
          <fpage>348</fpage>
          -
          <lpage>362</lpage>
          . https://doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -13094-6_
          <fpage>28</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>Hoa</given-names>
            <surname>Khanh</surname>
          </string-name>
          <string-name>
            <surname>Dam</surname>
          </string-name>
          , Alexander Egyed, Michael Winiko , Alexander Reder, and
          <string-name>
            <given-names>Roberto E.</given-names>
            <surname>Lopez-Herrejon</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Consistent merging of model versions</article-title>
          .
          <source>Journal of Systems and Software</source>
          <volume>112</volume>
          (
          <year>2016</year>
          ),
          <fpage>137</fpage>
          -
          <lpage>155</lpage>
          . https://doi.org/10.1016/j.jss.
          <year>2015</year>
          .
          <volume>06</volume>
          .044
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>Hoa</given-names>
            <surname>Khanh</surname>
          </string-name>
          <string-name>
            <surname>Dam</surname>
          </string-name>
          , Alexander Reder, and
          <string-name>
            <given-names>Alexander</given-names>
            <surname>Egyed</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>Inconsistency Resolution in Merging Versions of Architectural Models</article-title>
          .
          <source>In WICSA 2014: 2014 IEEE/IFIP Conference on Software Architecture. IEEE Computer Society</source>
          ,
          <fpage>153</fpage>
          -
          <lpage>162</lpage>
          . https://doi.org/10.1109/WICSA.
          <year>2014</year>
          .31
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Csaba</surname>
            <given-names>Debreceni</given-names>
          </string-name>
          , István Ráth, Dániel Varró, Xabier De Carlos, Xabier Mendialdua, and
          <string-name>
            <given-names>Salvador</given-names>
            <surname>Trujillo</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Automated Model Merge by Design Space Exploration</article-title>
          .
          <source>In FASE 2016: 19th International Conference (Lecture Notes in Computer Science)</source>
          ,
          <source>Perdita Stevens and Andrzej Wasowski (Eds.)</source>
          , Vol.
          <volume>9633</volume>
          . Springer,
          <fpage>104</fpage>
          -
          <lpage>121</lpage>
          . https://doi.org/10.1007/978-3-
          <fpage>662</fpage>
          -49665-
          <issue>7</issue>
          _
          <fpage>7</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>Zinovy</given-names>
            <surname>Diskin</surname>
          </string-name>
          .
          <year>2002</year>
          .
          <article-title>Visualization vs. Speci cation in Diagrammatic Notations: A Case Study with the UML</article-title>
          .
          <source>In Diagrams 2002: 2nd International Conference on Diagrammatic Representation and Inference (Lecture Notes in Computer Science)</source>
          , Mary Hegarty, Bertrand Meyer, and N. Hari
          <source>Narayanan (Eds.)</source>
          , Vol.
          <volume>2317</volume>
          . Springer,
          <fpage>112</fpage>
          -
          <lpage>115</lpage>
          . https://doi.org/10.1007/3-540-46037-3_
          <fpage>15</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [38]
          <string-name>
            <surname>Adrian</surname>
            <given-names>Rutle</given-names>
          </string-name>
          , Alessandro Rossini, Yngve Lamo, and
          <string-name>
            <given-names>Uwe</given-names>
            <surname>Wolter</surname>
          </string-name>
          .
          <year>2012</year>
          .
          <article-title>A formal approach to the speci cation and transformation of constraints in MDE</article-title>
          .
          <source>Journal of Logic and Algebraic Programming</source>
          <volume>81</volume>
          ,
          <issue>4</issue>
          (
          <year>2012</year>
          ),
          <fpage>422</fpage>
          -
          <lpage>457</lpage>
          . https://doi.org/10.1016/j.jlap.
          <year>2012</year>
          .
          <volume>03</volume>
          .006
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [39]
          <string-name>
            <given-names>Hans</given-names>
            <surname>Georg</surname>
          </string-name>
          Schaathun and
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Rutle</surname>
          </string-name>
          .
          <year>2018</year>
          , to appear.
          <article-title>Model-Driven Software Engineering in the Resource Description Framework: a way to version control</article-title>
          .
          <source>In NIK</source>
          <year>2018</year>
          :
          <article-title>31st Norsk Informatikkonferanse</article-title>
          .
          <source>BIBSYS Open Journal System.</source>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [40]
          <string-name>
            <surname>Dave</surname>
            <given-names>Steinberg</given-names>
          </string-name>
          , Frank Budinsky, Marcelo Paternostro, and Ed Merks.
          <year>2008</year>
          .
          <article-title>EMF: Eclipse Modeling Framework 2.0 (2nd Edition)</article-title>
          .
          <source>Addison-Wesley Professional.</source>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [41]
          <string-name>
            <surname>Gabriele</surname>
            <given-names>Taentzer</given-names>
          </string-name>
          , Claudia Ermel, Philip Langer, and
          <string-name>
            <given-names>Manuel</given-names>
            <surname>Wimmer</surname>
          </string-name>
          .
          <year>2010</year>
          .
          <article-title>Con ict Detection for Model Versioning Based on Graph Modications</article-title>
          .
          <source>In ICGT 2010: 5th International Conference on Graph Transformations (Lecture Notes in Computer Science)</source>
          , Hartmut Ehrig, Arend Rensink,
          <source>Grzegorz Rozenberg, and Andy Schürr (Eds.)</source>
          , Vol.
          <volume>6372</volume>
          . Springer,
          <fpage>171</fpage>
          -
          <lpage>186</lpage>
          . https://doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -15928-2_
          <fpage>12</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [42]
          <string-name>
            <surname>Xiaoliang</surname>
            <given-names>Wang</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Adrian Rutle</surname>
            , and
            <given-names>Yngve</given-names>
          </string-name>
          <string-name>
            <surname>Lamo</surname>
          </string-name>
          .
          <year>2015</year>
          .
          <article-title>Towards User-Friendly and E cient Analysis with Alloy</article-title>
          .
          <source>In MoDeVVa@MoDELS</source>
          <year>2015</year>
          : 12th Workshop on Model-Driven Engineering,
          <article-title>Veri cation</article-title>
          and
          <source>Validation (CEUR Workshop Proceedings)</source>
          , Michalis Famelis, Daniel Ratiu, Martina Seidl, and
          <string-name>
            <surname>Gehan M. K. Selim</surname>
          </string-name>
          (Eds.), Vol.
          <volume>1514</volume>
          . CEUR-WS.org,
          <volume>28</volume>
          -
          <fpage>37</fpage>
          . http://ceur-ws.
          <source>org/</source>
          Vol-1514
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [43]
          <string-name>
            <given-names>Bernhard</given-names>
            <surname>Westfechtel</surname>
          </string-name>
          .
          <year>2010</year>
          .
          <article-title>A Formal Approach to Three-Way Merging of EMF Models</article-title>
          .
          <source>In IWMCP 2010: 1st International Workshop on Model Comparison in Practice. ACM</source>
          ,
          <volume>31</volume>
          -
          <fpage>41</fpage>
          . https://doi.org/10.1145/1826147.1826155
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>