<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Handling constraints in model versioning</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Alessandro</forename><surname>Rossini</surname></persName>
							<email>alessandro.rossini@pwc.com</email>
							<affiliation key="aff0">
								<orgName type="institution">PwC</orgName>
								<address>
									<country key="NO">Norway</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Adrian</forename><surname>Rutle</surname></persName>
							<affiliation key="aff1">
								<orgName type="institution" key="instit1">Western</orgName>
								<orgName type="institution" key="instit2">Norway University of Applied Sciences</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Yngve</forename><surname>Lamo</surname></persName>
							<affiliation key="aff2">
								<orgName type="institution" key="instit1">Western</orgName>
								<orgName type="institution" key="instit2">Norway University of Applied Sciences</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Uwe</forename><surname>Wolter</surname></persName>
							<email>wolter@ii.uib.no</email>
							<affiliation key="aff3">
								<orgName type="institution">University of Bergen</orgName>
								<address>
									<country key="NO">Norway</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Handling constraints in model versioning</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">444F3BD789E6C59C8ED23F7B67A515C6</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T15:17+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Model-Driven Software Engineering</term>
					<term>Model Versioning</term>
					<term>Constraints</term>
					<term>Category Theory</term>
					<term>Graph Transformation</term>
					<term>Diagram Predicate Framework</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><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></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">INTRODUCTION</head><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 <ref type="bibr" target="#b27">[29]</ref>, 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 <ref type="bibr" target="#b4">[5]</ref> and Git <ref type="bibr">[24]</ref>, target text-based artefacts. The underlying techniques such as merging, con ict detection and con ict resolution are based on a perline textual comparison <ref type="bibr" target="#b23">[25]</ref>. Since the underlying structure of models is graph-based rather than text-based, these techniques are not suitable for such models <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b1">2]</ref>.</p><p>To cope with this problem, a few prototype model versioning systems have been developed, e.g., <ref type="bibr" target="#b2">[3,</ref><ref type="bibr" target="#b7">8]</ref>. 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 <ref type="bibr" target="#b3">[4,</ref><ref type="bibr" target="#b6">7]</ref>. The interested reader may consult <ref type="bibr">[9-11, 13, 35, 41, 43]</ref> 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) <ref type="bibr" target="#b31">[33,</ref><ref type="bibr" target="#b34">36]</ref>; 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 <ref type="bibr" target="#b33">[35,</ref><ref type="bibr" target="#b35">37]</ref>. 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. 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. <ref type="figure">1</ref> illustrates the interaction between Alice, Bob, and the repository. Fig. <ref type="figure">2</ref> shows the di erent versions of the model being developed.</p><formula xml:id="formula_0">B 3 B 2 B 2 Bob A 2 A 2 A 1 A 1 Alice commit sync check-out V 3 V 2 V 1 Repository Figure 1:</formula><p>The timeline of the scenario Alice creates a local copy A 1 of the model V 1 in the repository (see Fig. <ref type="figure">2(a)</ref>). 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 V 1 , 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 V 1 have been made in the repository while Alice has been modifying it. Hence, the synchronisation is completed without changing her local copy A 1 . Finally, Alice commits her local copy, which is labelled V 2 in the repository (see Fig. <ref type="figure">2(b)</ref>). This is done in a commit step.  </p><formula xml:id="formula_1">2: The models V 1 , V 2 , V 3 and A 2</formula><p>Afterwards, Bob checks out a local copy B 2 of the model V 2 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 B 2 . Finally, Bob commits his local copy, which is labelled V 3 in the repository (see Fig. <ref type="figure">2(c)</ref>).</p><p>Alice continues to modify her local copy A 2 , which is now outof-date since it is a copy of the model V 2 , while the head model in the repository (containing Bob's modi cations) is V 3 . She adds the multiplicity constraint <ref type="bibr">[1..4</ref>] 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">DIAGRAM PREDICATE FRAMEWORK</head><p>DPF is a formal diagrammatic speci cation framework founded on category theory and graph transformation. The interested reader may consult <ref type="bibr" target="#b31">[33]</ref><ref type="bibr" target="#b32">[34]</ref><ref type="bibr" target="#b33">[35]</ref><ref type="bibr" target="#b34">[36]</ref><ref type="bibr" target="#b36">38]</ref> for a more detailed presentation of the framework. DPF is an extension of the Generalized Sketches Framework originally developed by Diskin et al. in <ref type="bibr" target="#b13">[14]</ref><ref type="bibr" target="#b14">[15]</ref><ref type="bibr" target="#b15">[16]</ref><ref type="bibr" target="#b16">[17]</ref><ref type="bibr" target="#b17">[18]</ref><ref type="bibr" target="#b18">[19]</ref><ref type="bibr" target="#b19">[20]</ref>. 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, C S : Σ) consists of an underlying graph S together with a set of atomic constraints C S 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 <ref type="table">1</ref> 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.  In S, the nodes Student and University are interpreted as sets Student and U ni ersit , while the arrows sUnivs, uStuds are interpreted as multi-valued functions sU ni s : Student → ℘(U ni ersit ), etc., where the powerset ℘(U ni ersit ) is the set of all subsets of U ni ersit , i.e., ℘(U ni ersit</p><formula xml:id="formula_2">Table 1: The signature Σ π ∈ Π Σ α Σ (π ) Proposed vis. Semantic interpreta- tion [mult(m, n)] 1 a G G 2 X f [m..n] G G Y ∀x ∈ X : m ≤ |f (x ) | ≤ n, with 0 ≤ m ≤ n and n ≥ 1 [surjective] 1 a G G 2 X f [surj] G G Y ∀ ∈ Y ∃x ∈ X : ∈ f (x ) [inverse] 1 a 8 8 2 b f f X f A A Y g i i [inv] ∀x ∈ X , ∀ ∈ Y : ∈ f (x ) if and only if x ∈ ( )</formula><formula xml:id="formula_3">) = {A | A ⊆ U ni ersit }.</formula><p>The function sU ni s has cardinality between one and four. In S, this is enforced by the atomic constraint ([mult <ref type="bibr" target="#b0">(1,</ref><ref type="bibr" target="#b3">4)</ref>], δ 1 ) on the arrow sUnivs. This atomic constraint is formulated by the predicate [mult(m, n)] from the signature Σ (see Table <ref type="table">1</ref>). 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 ni s and uStuds are inverse of each other; i.e., ∀s ∈ Student and ∀u ∈ U ni ersit : s ∈ uStuds(u) if and only if u ∈ sU ni s(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 <ref type="table">1</ref>) 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 <ref type="bibr" target="#b26">[28]</ref>.</p><p>A semantic interpretation</p><formula xml:id="formula_4">[[..]] Σ of a signature Σ consists of a mapping that assigns to each predicate symbol π ∈ Π Σ a set [[π ]] Σ of graph homomorphisms ι : O → α Σ (π ), called valid instances of π ,</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>where O may vary over all graphs. [[π ]]</head><p>Σ is assumed to be closed under isomorphisms. The interested reader may consult <ref type="bibr" target="#b34">[36,</ref><ref type="bibr" target="#b36">38]</ref> for a more detailed discussion of the semantics of a speci cation.  </p><formula xml:id="formula_5">UnivAQ Õ Õ UiB r r Alessandro S S • • • X X ✈ ✈ ✈ ✈ ✈ ✈ A A ❙ ❙ ❙ 5 5 • • • • • • UniMarburg k k UAM (a) UiB HVL Adrian T T • • • 2 ② ② ② ② @ @ ◗ ◗ 3 3 ❉ ❉ ❉ ❉ ❉ ❉ UniMarburg AUC (b)</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">CONSTRAINT-AWARE MODEL VERSIONING</head><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 <ref type="bibr" target="#b31">[33,</ref><ref type="bibr" target="#b33">35]</ref> for a more detailed discussion of model versioning in DPF.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1">Representation of di erences</head><p>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 thatas 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 <ref type="table">2</ref>). A label signature ∆ = (Θ ∆ , α ∆ ) consists of a set of labels θ ∈ Θ ∆ , each having an arity α ∆ (θ ). Hence, a di erence speci cation D = (D, C D : Σ, A D : ∆) consists of a speci cation D together with a set of annotations A D that are speci ed by means of the label signature ∆ (see, e.g., UD and D in Fig. <ref type="figure" target="#fig_6">5</ref>).</p><p>Table <ref type="table">2</ref>: A subset of the signature ∆ for the annotation of atomic constraints</p><formula xml:id="formula_6">θ ∈ Θ Σ α ∆ (θ ) Proposed visual. &lt;add&gt; [mult(m, n)] 1 a G G 2 X f ++[m..n] G G Y &lt;delete&gt; [mult(m, n)] 1 a G G 2 X f --[m..n] G G Y &lt;conflict&gt; [mult(m, n)] 1 a G G 2 X f [m..n] G G Y ❴ ❴ ❴ ❴ ❴ ❴ ✤ ✤ ✤ ✤ ❴ ❴ ❴ ❴ ❴ ❴</formula><p>The underlying graph and the set of atomic constraints of a difference speci cation are obtained by the pushout construction <ref type="bibr" target="#b5">[6,</ref><ref type="bibr" target="#b22">23,</ref><ref type="bibr" target="#b31">33]</ref>, 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 specications concurrently. Starting from the base speci cation V 2 (see Fig. <ref type="figure">2(b)</ref>), Bob makes and commits his modi cations so that the head speci cation is now V 3 (see Fig. <ref type="figure">2(c)</ref>). Concurrently, Alice makes (but does not commit) her modi cations so that her local copy is now A 2 (see Fig. <ref type="figure">2(d)</ref>). Next, Alice synchronises her local copy with the head speci cation.</p><p>The speci cation UD (see Fig. <ref type="figure" target="#fig_6">5</ref>(g)) represents the di erence between Alice's local copy and the base speci cation. It is calculated using the pushout construction by merging A 2 and V 2 modulo their commonality speci cation, which contains the unmodied elements from V 2 to A 2 .</p><p>Similarly, the speci cation D (see Fig. <ref type="figure" target="#fig_6">5(d)</ref>) represents the di erence between the head speci cation and the base speci cation. It is calculated using the same pushout construction by merging V 3 and V 2 modulo their commonality speci cation, which contains the unmodi ed elements from V 2 to V 3 .</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2">Con ict detection</head><p>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 <ref type="bibr" target="#b31">[33,</ref><ref type="bibr" target="#b34">36,</ref><ref type="bibr" target="#b36">38]</ref>.</p><formula xml:id="formula_7">A transformation rule t = L K l o o r G G R consists of three</formula><p>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 <ref type="bibr" target="#b31">[33]</ref>.</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 <ref type="table">3</ref> (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 <ref type="table">3</ref> (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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Example 4.2 (Merge of di erences and custom con ict detection).</head><p>Building on Example 2.1, Fig. <ref type="figure" target="#fig_6">5(h)</ref> shows the merge of di erences MD. It is calculated using the pushout construction on UD, D and their commonality speci cation. Fig. <ref type="figure" target="#fig_6">5</ref>(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 <ref type="bibr" target="#b0">(1,</ref><ref type="bibr" target="#b3">4)</ref>], δ 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 <ref type="table">3</ref>). 1 The choice of the notation MD ′′ rather than MD ′ will be clear in Section 4.4 </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.3">Con ict resolution</head><p>Depending on the structure and semantics of the modi cations, some con icts may be automatically resolved. Several resolution strategies <ref type="bibr" target="#b8">[9]</ref> 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 b L is to remove the con icting multiplicity constraints and add a constraint that is the union of the two. The second "conservative" pattern b C is to remove the con icting multiplicity constraints and add a constraint that is the intersection of the two. Table <ref type="table">3</ref> shows these con ict resolution patterns.</p><p>In b L , according to the semantic interpretation [[[mult(m, n)]]] Σ of the signature Σ (see Table <ref type="table">1</ref>), the set of valid instances of the atomic constraint ([mult(min(m 1 , m 2 ), max(n 1 , n 2 ))], δ 1 ) ∈ C R is equal to the union of the set of valid instances of the atomic constraints ([mult(m 1 , n 1 )], δ 1 ), ([mult(m 2 , n 2 )], δ 2 ) ∈ C L . This is justi ed as follows:</p><formula xml:id="formula_8">([mult(m 1 , n 1 )], δ ) ∧ ([mult(m 2 , n 2 )], δ ) ≡ ≡            ([mult(m 2 , n 2 )], δ ) if m 1 ≤ m 2 ≤ n 2 ≤ n 1 ([mult(m 1 , n 1 )], δ ) if m 2 ≤ m 1 ≤ n 1 ≤ n 2 ([mult(m 2 , n 1 )], δ ) if m 1 ≤ m 2 ≤ n 1 ≤ n 2 ([mult(m 1 , n 2 )], δ ) if m 2 ≤ m 1 ≤ n 2 ≤ n 1</formula><p>Table <ref type="table">3</ref>: The con ict detection rules and resolution patterns for inconsistent multiplicity constraints</p><formula xml:id="formula_9">Rule L K R X --f ++[m..n] G G Y X --f ++[m..n] G G Y ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ✤ ✤ ✤ ✤ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ l X f ++[m 1 ..n 1 ] ++[m 2 ..n 2 ] G G Y X f ++[m 1 ..n 1 ] ++[m 2 ..n 2 ] G G Y ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ✤ ✤ ✤ ✤ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ b L X f ++[m 1 ..n 1 ] ++[m 2 ..n 2 ] G G Y ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ✤ ✤ ✤ ✤ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ X f G G Y X f ++[min(m 1 ,m 2 )..max(n 1 ,n 2 )] G G Y b C X f ++[m 1 ..n 1 ] ++[m 2 ..n 2 ] G G Y ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ✤ ✤ ✤ ✤ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ ❴ X f G G Y X f ++[max(m 1 ,m 2 )..min(n 1 ,n 2 )] G G Y</formula><p>Similarly, in b C , the set of valid instances of the atomic constraint ([mult(max(m 1 , m 2 ), min(n 1 , n 2 ))], δ 1 ) ∈ C R is equal to the intersection of the set of valid instances of the atomic constraints ([mult(m 1 , n 1 )], δ 1 ), ([mult(m 2 , n 2 )], δ 2 ) ∈ C L . This is justi ed as follows:</p><formula xml:id="formula_10">([mult(m 1 , n 1 )], δ ) ∨ ([mult(m 2 , n 2 )], δ ) ≡ ≡            ([mult(m 1 , n 1 )], δ ) if m 1 ≤ m 2 ≤ n 2 ≤ n 1 ([mult(m 2 , n 2 )], δ ) if m 2 ≤ m 1 ≤ n 1 ≤ n 2 ([mult(m 1 , n 2 )], δ ) if m 1 ≤ m 2 ≤ n 1 ≤ n 2 ([mult(m 2 , n 1 )], δ ) if m 2 ≤ m 1 ≤ n 2 ≤ n 1</formula><p>Note that the con ict resolution patterns b L and b C can be applied only under the condition that the range of the multiplicity constraints overlap, i.e., if n 1 ≥ m 2 or m 1 ≤ n 2 . This could be formulated as a positive application condition <ref type="bibr" target="#b20">[21]</ref>.</p><p>The following example illustrates the application of con ict resolution patterns. 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 b L , or ([mult(1, 3)], δ 1 ), according to pattern b C (see Table <ref type="table">3</ref>).  </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.4">Normalisation, con ict detection and con ict resolution</head><p>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 <ref type="bibr" target="#b27">[29]</ref>; 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. 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 <ref type="bibr" target="#b31">[33]</ref> 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. <ref type="figure" target="#fig_10">7</ref> shows the di erent versions of the speci cation being developed.</p><p>In addition to the atomic constraint ([mult <ref type="bibr" target="#b0">(1,</ref><ref type="bibr" target="#b3">4)</ref>], δ 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.  The application of the con ict resolution pattern b L for inconsistent multiplicity constraints (see Table <ref type="table">3</ref>) leads to a merge of di erences MD ′′′ that is not in normal form. In fact, the single atomic constraint ([mult(0, 4)], δ 1 ) on the arrow sUnivs expresses syntactically that the function sU ni s has cardinality between zero and four (see Fig. <ref type="figure" target="#fig_11">7(k)</ref>), but the conjunction of all the atomic constraints ([mult(0, 4)], δ 1 ), ([inverse], δ 2 ) and ([surjective], δ 3 ) implies semantically that the function sU ni s has cardinality between one and four. This is justi ed as follows:</p><formula xml:id="formula_11">uStuds surjective ⇒ ∀s ∈ Student ∃u ∈ U ni ersit where x ∈ uStuds( ) sU ni s, uStuds inverse ⇒ ∀s ∈ Student ∃u ∈ U ni ersit where ∈ sU ni s(x) sU ni s total ⇒ ∀s ∈ Student : |sU ni s(x)| ≥ 1</formula><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 ⊢ Ri ht, where both premise (Le f t) and conclusion (Ri ht) 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 <ref type="bibr" target="#b31">[33,</ref><ref type="bibr" target="#b34">36]</ref> 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. <ref type="figure">8</ref> shows a speci cation entailment e = L ⊢ R that expresses the relation between multiplicity and surjectivity constraints.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Table 4 shows the transformation rule</head><formula xml:id="formula_12">t = L K l o o r G G R in-</formula><p>duced by the corresponding speci cation entailment e. Fig. <ref type="figure">9(b)</ref> shows the speci cation S ′ = (S ′ , C S ′ : Σ) 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 <ref type="bibr" target="#b27">[29]</ref>. To ensure that</p><formula xml:id="formula_13">L = R 1 ε 2 ε 3 ε 3 δ 2 δ 1 δ α ([mult(1, n)]) α ([inverse]) α ([surjective]) ⊢ α ([surjective]) α ([inverse]) α ([mult(0, n)]) R ⊢ L X f Y g 1 a 2 1 a 2 b 2 1 a 2 1 a 1 a 2 b 1 a 2 Figure 8: A speci cation entailment e = L ⊢ R S' (b) S (a) University uStuds [surj] [inv] Student sUnivs [1..4] University uStuds [surj] [inv] Student sUnivs [0..4]</formula><p>Figure <ref type="figure">9</ref>: The application of the transformation rule t con ict detection and con ict resolution behave as expected, they are performed on a merge of di erences MD in normal form. 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, C S : Σ) and a set of transformation rules induced by speci cation entailments, a normalisation consists of a speci cation transformation S * C Q 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. 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 b L (see Table <ref type="table">3</ref>) leads to a merge of di erences MD ′′′ that is in normal form.  The merge of di erences MD, the merge of di erences MD ′ after the normalisation, the merge of di erences MD ′′ after the application of con ict detection rules and the merge of di erences MD ′′′ after the application of the conict resolution patterns</p><formula xml:id="formula_14">L K R t X f [0..n] A A Y g [surj] i i [inv] X f A A Y g [surj] i i [inv] X f [1..n] A A Y g [surj] i i [inv] MD''' (l) MD''' (k) MD'' (j) MD' (i) MD (h) D (d) UD (g)</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">RELATED WORK</head><p>Model versioning has been greatly discussed in the literature. The interested reader may consult <ref type="bibr" target="#b3">[4,</ref><ref type="bibr" target="#b6">7]</ref> 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:</p><p>• In <ref type="bibr" target="#b12">[13]</ref>, 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 <ref type="bibr" target="#b11">[12]</ref> uses a repair generator to address inconsistencies that are produced while merging architectural models. The work in <ref type="bibr" target="#b10">[11]</ref> examines the same issues more thoroughly and uses search-based techniques.</p><p>• In <ref type="bibr" target="#b29">[31]</ref>, 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 editionsthrough the generation of one or more resolution plans. They also implement the tool Badger in Prolog, which is a regression planner generating such plans.</p><p>• The work in <ref type="bibr" target="#b41">[43]</ref> presents a formal approach to the threeway merging of Ecore <ref type="bibr" target="#b38">[40]</ref> 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 <ref type="bibr" target="#b39">[41]</ref> 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.</p><p>• In <ref type="bibr" target="#b9">[10]</ref>, 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 <ref type="bibr" target="#b8">[9]</ref> 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 <ref type="bibr" target="#b12">[13]</ref>, the approaches mentioned above do not take constraints on model elements into account. However, the approaches in <ref type="bibr" target="#b9">[10,</ref><ref type="bibr" target="#b39">41,</ref><ref type="bibr" target="#b41">43]</ref> 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:</p><p>• EMFStore <ref type="bibr" target="#b25">[27]</ref> 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) <ref type="bibr" target="#b7">[8]</ref> 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 <ref type="bibr" target="#b21">[22]</ref> 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) <ref type="bibr" target="#b2">[3]</ref> 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>• Epsilon Comparison Language (ECL) and Epsilon Merging</head><p>Language (EML) <ref type="bibr" target="#b28">[30]</ref> 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 <ref type="bibr" target="#b26">[28]</ref>, while a web-based modelling environment for DPF is presented in <ref type="bibr" target="#b30">[32]</ref>. 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 <ref type="bibr" target="#b37">[39]</ref>. Moreover, the DPF modelling environment utilises Alloy <ref type="bibr" target="#b24">[26]</ref> for consistency checking <ref type="bibr" target="#b40">[42]</ref>. 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">CONCLUSION AND FUTURE WORK</head><p>In this paper, we described a formal approach to model versioning based on DPF. First, we de ned the representation of di erencesi.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.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure</head><label></label><figDesc>Figure 2: The models V 1 , V 2 , V 3 and A 2</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 3 (</head><label>3</label><figDesc>Fig. 3(a) shows a speci cation S = (S, C S : Σ) 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.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Figure 3 :</head><label>3</label><figDesc>Figure 3: A speci cation S = (S, C S : Σ) and its underlying graph S</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Example 3 . 2 (</head><label>32</label><figDesc>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.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Figure 4 :</head><label>4</label><figDesc>Figure 4: (a) A valid instance of S; (b) An invalid instance of S violating ([surjective], δ 3 ) and ([inverse], δ 2 )</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head>Figure 5 :</head><label>5</label><figDesc>Figure 5: The merge of di erences MD and the merge of di erences MD ′′ after the application of con ict detection rules</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_7"><head>Example 4 . 3 (</head><label>43</label><figDesc>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.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_9"><head>Figure 6 :</head><label>6</label><figDesc>Figure 6: The merge of di erences MD ′′ and the merge of di erences MD ′′′ after the application of the con ict resolution patterns</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_10"><head>Fig. 7 (</head><label>7</label><figDesc>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.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_11"><head>Figure 7 :</head><label>7</label><figDesc>Figure7: The merge of di erences MD, the merge of di erences MD ′′ after the application of con ict detection rules and the merge of di erences MD ′′′ after the application of the con ict resolution patterns</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_12"><head>Example 4 . 6 (</head><label>46</label><figDesc>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.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_13"><head></head><label></label><figDesc>Figure10: The merge of di erences MD, the merge of di erences MD ′ after the normalisation, the merge of di erences MD ′′ after the application of con ict detection rules and the merge of di erences MD ′′′ after the application of the conict resolution patterns</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 4 :</head><label>4</label><figDesc>The transformation rule t = L ← K ֒→ R induced by the corresponding speci cation entailment e</figDesc><table><row><cell>Rule</cell></row></table></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Issues and challenges in model versioning</title>
		<author>
			<persName><forename type="first">Kerstin</forename><surname>Altmanninger</surname></persName>
		</author>
		<idno type="DOI">10.1145/1806338.1806344</idno>
		<ptr target="https://doi.org/10.1145/1806338.1806344" />
	</analytic>
	<monogr>
		<title level="m">iiWAS 2009: 11th International Conference on Information Integration and Web-based Applications and Services</title>
				<editor>
			<persName><forename type="first">Gabriele</forename><surname>Kotsis</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">David</forename><surname>Taniar</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Eric</forename><surname>Pardede</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Ismail</forename><surname>Khalil</surname></persName>
		</editor>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="volume">8</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Why Model Versioning Research is Needed!? An Experience Report</title>
		<author>
			<persName><forename type="first">Kerstin</forename><surname>Altmanninger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Petra</forename><surname>Brosch</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Philip</forename><surname>Langer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Martina</forename><surname>Seidl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Konrad</forename><surname>Wiel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Manuel</forename><surname>Wimmer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Models and Evolution: Joint MoDSE-MCCM 2010 Workshop on Model-Driven Software Evolution and Model Co-Evolution and Consistency Management</title>
				<imprint>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="1" to="12" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Semantics for Accurate Con ict Detection in SMoVer: Speci cation, Detection and Presentation by Example</title>
		<author>
			<persName><forename type="first">Kerstin</forename><surname>Altmanninger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Wieland</forename><surname>Schwinger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Gabriele</forename><surname>Kotsis</surname></persName>
		</author>
		<idno type="DOI">10.4018/jeis.2010120206</idno>
		<ptr target="https://doi.org/10.4018/jeis.2010120206" />
	</analytic>
	<monogr>
		<title level="j">International Journal of Enterprise Information Systems</title>
		<imprint>
			<biblScope unit="volume">6</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="68" to="84" />
			<date type="published" when="2010">2010. 2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">A Survey on Model Versioning Approaches</title>
		<author>
			<persName><forename type="first">Kerstin</forename><surname>Altmanninger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Martina</forename><surname>Seidl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Manuel</forename><surname>Wimmer</surname></persName>
		</author>
		<idno type="DOI">10.1108/17440080910983556</idno>
		<ptr target="https://doi.org/10.1108/17440080910983556" />
	</analytic>
	<monogr>
		<title level="j">International Journal of Web Information Systems</title>
		<imprint>
			<biblScope unit="volume">5</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="271" to="304" />
			<date type="published" when="2009">2009. 2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<title level="m" type="main">Apache Subversion</title>
		<ptr target="https://subversion.apache.org/" />
		<imprint>
			<date type="published" when="2018-08-20">2018-08-20</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<author>
			<persName><forename type="first">Michael</forename><surname>Barr</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Charles</forename><surname>Wells</surname></persName>
		</author>
		<title level="m">Category Theory for Computing Science</title>
				<imprint>
			<publisher>Prentice Hall</publisher>
			<date type="published" when="1995">1995</date>
		</imprint>
	</monogr>
	<note>2 nd Edition</note>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">An Introduction to Model Versioning</title>
		<author>
			<persName><forename type="first">Petra</forename><surname>Brosch</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Gerti</forename><surname>Kappel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Philip</forename><surname>Langer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Martina</forename><surname>Seidl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Konrad</forename><surname>Wieland</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Manuel</forename><surname>Wimmer</surname></persName>
		</author>
		<idno type="DOI">10.1007/978-3-642-30982-3_10</idno>
		<ptr target="https://doi.org/10.1007/978-3-642-30982-3_10" />
	</analytic>
	<monogr>
		<title level="m">SFM 2012: Formal Methods for Model-Driven Engineering-12th International School on Formal Methods for the Design of Computer, Communication, and Software Systems (Lecture Notes in Computer Science)</title>
				<editor>
			<persName><forename type="first">Marco</forename><surname>Bernardo</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Vittorio</forename><surname>Cortellessa</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Alfonso</forename><surname>Pierantonio</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2012">2012</date>
			<biblScope unit="volume">7320</biblScope>
			<biblScope unit="page" from="336" to="398" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Adaptable Model Versioning in Action</title>
		<author>
			<persName><forename type="first">Petra</forename><surname>Brosch</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Gerti</forename><surname>Kappel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Martina</forename><surname>Seidl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Konrad</forename><surname>Wieland</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Manuel</forename><surname>Wimmer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Horst</forename><surname>Kargl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Philip</forename><surname>Langer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Modellierung 2010</title>
		<title level="s">Lecture Notes in Informatics</title>
		<editor>
			<persName><forename type="first">Gregor</forename><surname>Engels</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Dimitris</forename><surname>Karagiannis</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Heinrich</forename><forename type="middle">C</forename><surname>Mayr</surname></persName>
		</editor>
		<imprint>
			<date type="published" when="2010">2010</date>
			<biblScope unit="volume">161</biblScope>
			<biblScope unit="page" from="221" to="236" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Managing Model Con icts in Distributed Development</title>
		<author>
			<persName><forename type="first">Antonio</forename><surname>Cicchetti</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Davide</forename><surname>Di Ruscio</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Alfonso</forename><surname>Pierantonio</surname></persName>
		</author>
		<idno type="DOI">10.1007/978-3-540-87875-9_23</idno>
		<ptr target="https://doi.org/10.1007/978-3-540-87875-9_23" />
	</analytic>
	<monogr>
		<title level="m">MoDELS 2008: 11th International Conference on Model Driven Engineering Languages and Systems (Lecture Notes in Computer Science</title>
				<editor>
			<persName><forename type="first">Krzysztof</forename><surname>Czarnecki</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Ileana</forename><surname>Ober</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Jean-Michel</forename><surname>Bruel</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Axel</forename><surname>Uhl</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Markus</forename><surname>Völter</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="volume">5301</biblScope>
			<biblScope unit="page" from="311" to="325" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Towards Automated Inconsistency Handling in Design Models</title>
		<author>
			<persName><forename type="first">Marcos</forename><surname>Aurélio Almeida Da Silva</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Alix</forename><surname>Mougenot</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Xavier</forename><surname>Blanc</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Reda</forename><surname>Bendraou</surname></persName>
		</author>
		<idno type="DOI">10.1007/978-3-642-13094-6_28</idno>
		<ptr target="https://doi.org/10.1007/978-3-642-13094-6_28" />
	</analytic>
	<monogr>
		<title level="m">CAiSE 2010: 22nd International Conference on Advanced Information Systems Engineering (Lecture Notes in Computer Science)</title>
				<editor>
			<persName><forename type="first">Barbara</forename><surname>Pernici</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2010">2010</date>
			<biblScope unit="volume">6051</biblScope>
			<biblScope unit="page" from="348" to="362" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Consistent merging of model versions</title>
		<author>
			<persName><forename type="first">Hoa</forename><surname>Khanh Dam</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Alexander</forename><surname>Egyed</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Michael</forename><surname>Winiko</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Alexander</forename><surname>Reder</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Roberto</forename><forename type="middle">E</forename><surname>Lopez-Herrejon</surname></persName>
		</author>
		<idno type="DOI">10.1016/j.jss.2015.06.044</idno>
		<ptr target="https://doi.org/10.1016/j.jss.2015.06.044" />
	</analytic>
	<monogr>
		<title level="j">Journal of Systems and Software</title>
		<imprint>
			<biblScope unit="volume">112</biblScope>
			<biblScope unit="page" from="137" to="155" />
			<date type="published" when="2016">2016. 2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Inconsistency Resolution in Merging Versions of Architectural Models</title>
		<author>
			<persName><forename type="first">Hoa</forename><surname>Khanh Dam</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Alexander</forename><surname>Reder</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Alexander</forename><surname>Egyed</surname></persName>
		</author>
		<idno type="DOI">10.1109/WICSA.2014.31</idno>
		<ptr target="https://doi.org/10.1109/WICSA.2014.31" />
	</analytic>
	<monogr>
		<title level="m">WICSA 2014: 2014 IEEE/IFIP Conference on Software Architecture. IEEE Computer Society</title>
				<imprint>
			<date type="published" when="2014">2014</date>
			<biblScope unit="page" from="153" to="162" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Automated Model Merge by Design Space Exploration</title>
		<author>
			<persName><forename type="first">Csaba</forename><surname>Debreceni</surname></persName>
		</author>
		<author>
			<persName><forename type="first">István</forename><surname>Ráth</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Dániel</forename><surname>Varró</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Xabier</forename><surname>De Carlos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Xabier</forename><surname>Mendialdua</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Salvador</forename><surname>Trujillo</surname></persName>
		</author>
		<idno type="DOI">10.1007/978-3-662-49665-7_7</idno>
		<ptr target="https://doi.org/10.1007/978-3-662-49665-7_7" />
	</analytic>
	<monogr>
		<title level="m">FASE 2016: 19th International Conference (Lecture Notes in Computer Science</title>
				<editor>
			<persName><forename type="first">)</forename></persName>
		</editor>
		<editor>
			<persName><forename type="first">Perdita</forename><surname>Stevens</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Andrzej</forename><surname>Wasowski</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2016">2016</date>
			<biblScope unit="volume">9633</biblScope>
			<biblScope unit="page" from="104" to="121" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Visualization vs. Speci cation in Diagrammatic Notations: A Case Study with the UML</title>
		<author>
			<persName><forename type="first">Zinovy</forename><surname>Diskin</surname></persName>
		</author>
		<idno type="DOI">10.1007/3-540-46037-3_15</idno>
		<ptr target="https://doi.org/10.1007/3-540-46037-3_15" />
	</analytic>
	<monogr>
		<title level="m">Diagrams 2002: 2nd International Conference on Diagrammatic Representation and Inference</title>
		<title level="s">Lecture Notes in Computer Sci</title>
		<editor>
			<persName><forename type="first">)</forename><surname>Ence</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Mary</forename><surname>Hegarty</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Bertrand</forename><surname>Meyer</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">N</forename><surname>Hari Narayanan</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2002">2002</date>
			<biblScope unit="volume">2317</biblScope>
			<biblScope unit="page" from="112" to="115" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Practical foundations of business system speci cations</title>
		<author>
			<persName><forename type="first">Zinovy</forename><surname>Diskin</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Springer, Chapter Mathematics of UML: Making the Odysseys of UML less dramatic</title>
				<imprint>
			<date type="published" when="2003">2003</date>
			<biblScope unit="page" from="145" to="178" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Encyclopedia of Database Technologies and Applications</title>
		<author>
			<persName><forename type="first">Zinovy</forename><surname>Diskin</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Information Science Reference, Chapter Mathematics of Generic Speci cations for Model Management I and II</title>
		<imprint>
			<biblScope unit="page" from="351" to="366" />
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Variable set semantics for keyed generalized sketches: formal semantics for object identity and abstract syntax for conceptual modeling</title>
		<author>
			<persName><forename type="first">Zinovy</forename><surname>Diskin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Boris</forename><surname>Kadish</surname></persName>
		</author>
		<idno type="DOI">10.1016/S0169-023X(03)00047-8</idno>
		<ptr target="https://doi.org/10.1016/S0169-023X(03)00047-8" />
	</analytic>
	<monogr>
		<title level="j">Data &amp; Knowledge Engineering</title>
		<imprint>
			<biblScope unit="volume">47</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="1" to="59" />
			<date type="published" when="2003">2003. 2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">Encyclopedia of Database Technologies and Applications</title>
		<author>
			<persName><forename type="first">Zinovy</forename><surname>Diskin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Boris</forename><surname>Kadish</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Information Science Reference, Chapter Generic Model Management</title>
		<imprint>
			<biblScope unit="page" from="258" to="265" />
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">Universal Arrow Foundations for Visual Modeling</title>
		<author>
			<persName><forename type="first">Zinovy</forename><surname>Diskin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Boris</forename><surname>Kadish</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Frank</forename><surname>Piessens</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Michael</forename><surname>Johnson</surname></persName>
		</author>
		<idno type="DOI">10.1007/3-540-44590-0_30</idno>
		<ptr target="https://doi.org/10.1007/3-540-44590-0_30" />
	</analytic>
	<monogr>
		<title level="m">Diagrams 2000: 1st International Conference on Diagrammatic Representation and Inference (Lecture Notes in Computer Science</title>
				<editor>
			<persName><forename type="first">Michael</forename><surname>Anderson</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Peter</forename><surname>Cheng</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Volker</forename><surname>Haarslev</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2000">2000</date>
			<biblScope unit="volume">1889</biblScope>
			<biblScope unit="page" from="345" to="360" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">A Diagrammatic Logic for Object-Oriented Visual Modeling</title>
		<author>
			<persName><forename type="first">Zinovy</forename><surname>Diskin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Uwe</forename><surname>Wolter</surname></persName>
		</author>
		<idno type="DOI">10.1016/j.entcs.2008.10.041</idno>
		<ptr target="https://doi.org/10.1016/j.entcs.2008.10.041" />
	</analytic>
	<monogr>
		<title level="m">ACCAT 2007: 2nd Workshop on Applied and Computational Category Theory</title>
		<title level="s">Electronic Notes in Theoretical Computer Science</title>
		<imprint>
			<publisher>Elsevier</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="volume">203</biblScope>
			<biblScope unit="page" from="19" to="41" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<monogr>
		<author>
			<persName><forename type="first">Hartmut</forename><surname>Ehrig</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Karsten</forename><surname>Ehrig</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Ulrike</forename><surname>Prange</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Gabriele</forename><surname>Taentzer</surname></persName>
		</author>
		<idno type="DOI">10.1007/3-540-31188-2</idno>
		<ptr target="https://doi.org/10.1007/3-540-31188-2" />
		<title level="m">Fundamentals of Algebraic Graph Transformation</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<monogr>
		<title level="m" type="main">EMF Compare</title>
		<ptr target="https://www.eclipse.org/emf/compare/" />
		<imprint>
			<date type="published" when="2018-08-20">2018-08-20</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b22">
	<monogr>
		<author>
			<persName><forename type="first">José</forename><surname>Luiz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Fiadeiro</forename></persName>
		</author>
		<title level="m">Categories for Software Engineering</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b23">
	<monogr>
		<title level="m" type="main">An Algorithm for Di erential File Comparison</title>
		<author>
			<persName><forename type="first">James</forename><forename type="middle">W</forename><surname>Hunt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">D</forename><surname>Mcilroy</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1976">1976</date>
		</imprint>
		<respStmt>
			<orgName>Bell Laboratories</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Technical Report 41</note>
</biblStruct>

<biblStruct xml:id="b24">
	<monogr>
		<title level="m" type="main">Software abstractions: logic, language, and analysis</title>
		<author>
			<persName><forename type="first">Daniel</forename><surname>Jackson</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2012">2012</date>
			<publisher>MIT Press</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b25">
	<analytic>
		<title level="a" type="main">EMFStore: a model repository for EMF models</title>
		<author>
			<persName><forename type="first">Maximilian</forename><surname>Koegel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Jonas</forename><surname>Helming</surname></persName>
		</author>
		<idno type="DOI">10.1145/1810295.1810364</idno>
		<ptr target="https://doi.org/10.1145/1810295.1810364" />
	</analytic>
	<monogr>
		<title level="m">ICSE 2010: 32nd ACM/IEEE International Conference on Software Engineering</title>
				<editor>
			<persName><forename type="first">Je</forename><surname>Kramer</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Judith</forename><surname>Bishop</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">T</forename><surname>Premkumar</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Sebastián</forename><surname>Devanbu</surname></persName>
		</editor>
		<editor>
			<persName><surname>Uchitel</surname></persName>
		</editor>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2010">2010</date>
			<biblScope unit="page" from="307" to="308" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b26">
	<analytic>
		<title level="a" type="main">DPF Workbench: A Diagrammatic Multi-Layer Domain Speci c (Meta-)Modelling Environment</title>
		<author>
			<persName><forename type="first">Yngve</forename><surname>Lamo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Xiaoliang</forename><surname>Wang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Florian</forename><surname>Mantz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Wendy</forename><surname>Maccaull</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Adrian</forename><surname>Rutle</surname></persName>
		</author>
		<idno type="DOI">10.1007/978-3-642-30454-5_3</idno>
		<ptr target="https://doi.org/10.1007/978-3-642-30454-5_3" />
	</analytic>
	<monogr>
		<title level="s">Computer and Information Science</title>
		<editor>, Roger Lee</editor>
		<imprint>
			<biblScope unit="volume">429</biblScope>
			<biblScope unit="page" from="37" to="52" />
			<date type="published" when="2012">2012</date>
			<publisher>Springer</publisher>
		</imprint>
	</monogr>
	<note>Studies in Computer Intelligence</note>
</biblStruct>

<biblStruct xml:id="b27">
	<analytic>
		<title level="a" type="main">A State-of-the-Art Survey on Software Merging</title>
		<author>
			<persName><forename type="first">Tom</forename><surname>Mens</surname></persName>
		</author>
		<idno type="DOI">10.1109/TSE.2002.1000449</idno>
		<ptr target="https://doi.org/10.1109/TSE.2002.1000449" />
	</analytic>
	<monogr>
		<title level="j">IEEE Transactions on Software Engineering</title>
		<imprint>
			<biblScope unit="volume">28</biblScope>
			<biblScope unit="issue">5</biblScope>
			<biblScope unit="page" from="449" to="462" />
			<date type="published" when="2002">2002. 2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b28">
	<analytic>
		<title level="a" type="main">The Design of a Conceptual Framework and Technical Infrastructure for Model Management Language Engineering</title>
		<author>
			<persName><forename type="first">Richard</forename><forename type="middle">F</forename><surname>Paige</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Dimitrios</forename><forename type="middle">S</forename><surname>Kolovos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Louis</forename><forename type="middle">M</forename><surname>Rose</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Nikolaos</forename><surname>Drivalos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Fiona</forename><forename type="middle">A C</forename><surname>Polack</surname></persName>
		</author>
		<idno type="DOI">10.1109/ICECCS.2009.14</idno>
		<ptr target="https://doi.org/10.1109/ICECCS.2009.14" />
	</analytic>
	<monogr>
		<title level="m">ICECCS 2009: 14th IEEE International Conference on Engineering of Complex Computer Systems</title>
				<imprint>
			<publisher>IEEE Computer Society</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="162" to="171" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b29">
	<analytic>
		<title level="a" type="main">Resolving model inconsistencies using automated regression planning</title>
		<author>
			<persName><forename type="first">Jorge</forename><surname>Pinna Puissant</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Ragnhild</forename><surname>Van Der Straeten</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Tom</forename><surname>Mens</surname></persName>
		</author>
		<idno type="DOI">10.1007/s10270-013-0317-9</idno>
		<ptr target="https://doi.org/10.1007/s10270-013-0317-9" />
	</analytic>
	<monogr>
		<title level="j">Software and System Modeling</title>
		<imprint>
			<biblScope unit="volume">14</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="461" to="481" />
			<date type="published" when="2015">2015. 2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b30">
	<analytic>
		<title level="a" type="main">WebDPF: A Web-based Metamodelling and Model Transformation Environment</title>
		<author>
			<persName><forename type="first">Fazle</forename><surname>Rabbi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Yngve</forename><surname>Lamo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Ingrid</forename><forename type="middle">Chieh</forename><surname>Yu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Lars</forename><surname>Michael Kristensen</surname></persName>
		</author>
		<idno type="DOI">10.5220/0005686900870098</idno>
		<ptr target="https://doi.org/10.5220/0005686900870098" />
	</analytic>
	<monogr>
		<title level="m">MODELSWARD 2016: 4th International Conference on Model-Driven Engineering and Software Development</title>
				<editor>
			<persName><forename type="first">Slimane</forename><surname>Hammoudi</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Luís</forename><surname>Ferreira Pires</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Bran</forename><surname>Selic</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Philippe</forename><surname>Desfray</surname></persName>
		</editor>
		<imprint>
			<publisher>SciTePress</publisher>
			<date type="published" when="2016">2016</date>
			<biblScope unit="page" from="87" to="98" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b31">
	<monogr>
		<title level="m" type="main">Diagram Predicate Framework meets Model Versioning and Deep Metamodelling</title>
		<author>
			<persName><forename type="first">Alessandro</forename><surname>Rossini</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2011">2011</date>
		</imprint>
		<respStmt>
			<orgName>Department of Informatics, University of Bergen, Norway</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Ph.D. Dissertation</note>
</biblStruct>

<biblStruct xml:id="b32">
	<analytic>
		<title level="a" type="main">A formalisation of deep metamodelling</title>
		<author>
			<persName><forename type="first">Alessandro</forename><surname>Rossini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Juan</forename><surname>De Lara</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Esther</forename><surname>Guerra</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Adrian</forename><surname>Rutle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Uwe</forename><surname>Wolter</surname></persName>
		</author>
		<idno type="DOI">10.1007/s00165-014-0307-x</idno>
		<ptr target="https://doi.org/10.1007/s00165-014-0307-x" />
	</analytic>
	<monogr>
		<title level="j">Formal Aspects of Computing</title>
		<imprint>
			<biblScope unit="volume">26</biblScope>
			<biblScope unit="issue">6</biblScope>
			<biblScope unit="page" from="1115" to="1152" />
			<date type="published" when="2014">2014. 2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b33">
	<analytic>
		<title level="a" type="main">A formalisation of the copy-modify-merge approach to version control in MDE</title>
		<author>
			<persName><forename type="first">Alessandro</forename><surname>Rossini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Adrian</forename><surname>Rutle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Yngve</forename><surname>Lamo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Uwe</forename><surname>Wolter</surname></persName>
		</author>
		<idno type="DOI">10.1016/j.jlap.2009.10.003</idno>
		<ptr target="https://doi.org/10.1016/j.jlap.2009.10.003" />
	</analytic>
	<monogr>
		<title level="j">Journal of Logic and Algebraic Programming</title>
		<imprint>
			<biblScope unit="volume">79</biblScope>
			<biblScope unit="issue">7</biblScope>
			<biblScope unit="page" from="636" to="658" />
			<date type="published" when="2010">2010. 2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b34">
	<monogr>
		<title level="m" type="main">Diagram Predicate Framework: A Formal Approach to MDE</title>
		<author>
			<persName><forename type="first">Adrian</forename><surname>Rutle</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2010">2010</date>
		</imprint>
		<respStmt>
			<orgName>Department of Informatics, University of Bergen, Norway</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Ph.D. Dissertation</note>
</biblStruct>

<biblStruct xml:id="b35">
	<analytic>
		<title level="a" type="main">A Category-Theoretical Approach to the Formalisation of Version Control in MDE</title>
		<author>
			<persName><forename type="first">Adrian</forename><surname>Rutle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Alessandro</forename><surname>Rossini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Yngve</forename><surname>Lamo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Uwe</forename><surname>Wolter</surname></persName>
		</author>
		<idno type="DOI">10.1007/978-3-642-00593-0_5</idno>
		<ptr target="https://doi.org/10.1007/978-3-642-00593-0_5" />
	</analytic>
	<monogr>
		<title level="m">FASE 2009: 12th International Conference on Fundamental Approaches to Software Engineering (Lecture Notes in Computer Science</title>
				<editor>
			<persName><forename type="first">Marsha</forename><surname>Chechik</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Martin</forename><surname>Wirsing</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="volume">5503</biblScope>
			<biblScope unit="page" from="64" to="78" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b36">
	<analytic>
		<title level="a" type="main">A formal approach to the speci cation and transformation of constraints in MDE</title>
		<author>
			<persName><forename type="first">Adrian</forename><surname>Rutle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Alessandro</forename><surname>Rossini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Yngve</forename><surname>Lamo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Uwe</forename><surname>Wolter</surname></persName>
		</author>
		<idno type="DOI">10.1016/j.jlap.2012.03.006</idno>
		<ptr target="https://doi.org/10.1016/j.jlap.2012.03.006" />
	</analytic>
	<monogr>
		<title level="j">Journal of Logic and Algebraic Programming</title>
		<imprint>
			<biblScope unit="volume">81</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="422" to="457" />
			<date type="published" when="2012">2012. 2012</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b37">
	<analytic>
		<title level="a" type="main">to appear. Model-Driven Software Engineering in the Resource Description Framework: a way to version control</title>
		<author>
			<persName><forename type="first">Georg</forename><surname>Hans</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Adrian</forename><surname>Schaathun</surname></persName>
		</author>
		<author>
			<persName><surname>Rutle</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">NIK 2018: 31st Norsk Informatikkonferanse</title>
				<imprint>
			<publisher>BIBSYS Open Journal System</publisher>
			<date type="published" when="2018">2018</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b38">
	<monogr>
		<author>
			<persName><forename type="first">Dave</forename><surname>Steinberg</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Frank</forename><surname>Budinsky</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Marcelo</forename><surname>Paternostro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Ed</forename><surname>Merks</surname></persName>
		</author>
		<title level="m">EMF: Eclipse Modeling Framework 2.0</title>
				<imprint>
			<publisher>Addison-Wesley Professional</publisher>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
	<note>2nd Edition</note>
</biblStruct>

<biblStruct xml:id="b39">
	<analytic>
		<title level="a" type="main">Con ict Detection for Model Versioning Based on Graph Modications</title>
		<author>
			<persName><forename type="first">Gabriele</forename><surname>Taentzer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Claudia</forename><surname>Ermel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Philip</forename><surname>Langer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Manuel</forename><surname>Wimmer</surname></persName>
		</author>
		<idno type="DOI">10.1007/978-3-642-15928-2_12</idno>
		<ptr target="https://doi.org/10.1007/978-3-642-15928-2_12" />
	</analytic>
	<monogr>
		<title level="m">ICGT 2010: 5th International Conference on Graph Transformations (Lecture Notes in Computer Science</title>
				<editor>
			<persName><forename type="first">)</forename></persName>
		</editor>
		<editor>
			<persName><forename type="first">Hartmut</forename><surname>Ehrig</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Arend</forename><surname>Rensink</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Grzegorz</forename><surname>Rozenberg</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Andy</forename><surname>Schürr</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2010">2010</date>
			<biblScope unit="volume">6372</biblScope>
			<biblScope unit="page" from="171" to="186" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b40">
	<analytic>
		<title level="a" type="main">Towards User-Friendly and E cient Analysis with Alloy</title>
		<author>
			<persName><forename type="first">Xiaoliang</forename><surname>Wang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Adrian</forename><surname>Rutle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Yngve</forename><surname>Lamo</surname></persName>
		</author>
		<ptr target="http://ceur-ws.org/Vol-1514" />
	</analytic>
	<monogr>
		<title level="m">MoDeVVa@MoDELS 2015: 12th Workshop on Model-Driven Engineering, Veri cation and Validation (CEUR Workshop Proceedings</title>
				<editor>
			<persName><forename type="first">Michalis</forename><surname>Famelis</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Daniel</forename><surname>Ratiu</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Martina</forename><surname>Seidl</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">M</forename><forename type="middle">K</forename><surname>Gehan</surname></persName>
		</editor>
		<editor>
			<persName><surname>Selim</surname></persName>
		</editor>
		<imprint>
			<date type="published" when="2015">2015</date>
			<biblScope unit="volume">1514</biblScope>
			<biblScope unit="page" from="28" to="37" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b41">
	<analytic>
		<title level="a" type="main">A Formal Approach to Three-Way Merging of EMF Models</title>
		<author>
			<persName><forename type="first">Bernhard</forename><surname>Westfechtel</surname></persName>
		</author>
		<idno type="DOI">10.1145/1826147.1826155</idno>
		<ptr target="https://doi.org/10.1145/1826147.1826155" />
	</analytic>
	<monogr>
		<title level="m">IWMCP 2010: 1st International Workshop on Model Comparison in Practice. ACM</title>
				<imprint>
			<date type="published" when="2010">2010</date>
			<biblScope unit="page" from="31" to="41" />
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
