<?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">Consistency Recovery in Interactive Modeling</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Juri</forename><surname>Di</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">DISIM</orgName>
								<orgName type="institution">University of l&apos;Aquila</orgName>
								<address>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Davide</forename><forename type="middle">Di</forename><surname>Ruscio</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">DISIM</orgName>
								<orgName type="institution">University of l&apos;Aquila</orgName>
								<address>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Marcel</forename><surname>Heinz</surname></persName>
							<affiliation key="aff1">
								<orgName type="department">Faculty of Computer Science</orgName>
								<orgName type="institution">University of Koblenz-Landau</orgName>
								<address>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Ludovico</forename><surname>Iovino</surname></persName>
							<affiliation key="aff2">
								<orgName type="institution">Gran Sasso Science Institute</orgName>
								<address>
									<settlement>L&apos;Aquila</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Ralf</forename><surname>Lämmel</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">DISIM</orgName>
								<orgName type="institution">University of l&apos;Aquila</orgName>
								<address>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
							<affiliation key="aff1">
								<orgName type="department">Faculty of Computer Science</orgName>
								<orgName type="institution">University of Koblenz-Landau</orgName>
								<address>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Alfonso</forename><surname>Pierantonio</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">DISIM</orgName>
								<orgName type="institution">University of l&apos;Aquila</orgName>
								<address>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Consistency Recovery in Interactive Modeling</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">9F0634F511BE4CEACB4E8A76F32D00DA</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T01:16+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 management</term>
					<term>Model repository</term>
					<term>Consistency recovery</term>
					<term>Megamodeling</term>
					<term>Modeling platforms conformsTo : EmfModel × EmfMetaModel compare : EmfModel × EmfModel → EmfCompareModel patch : EmfModel × EmfCompareModel → EmfModel</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>MDE projects contain different kinds of artifacts such as models, metamodels, model transformations, and deltas. These artifacts are related in terms of relationships such as transformation or conformance. In this paper, we capture the types of artifacts and the relevant relationships in a megamodelingbased manner for the purpose of monitoring and recovering a MDE project's consistency in response to changes that users may apply to the project within an interactive modeling platform. The approach supports users in experimenting with MDE projects and receiving feedback upon changes on the grounds of a specific execution semantics for megamodels. The approach is validated within the web-based modeling platform MDEFORGE.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>I. INTRODUCTION</head><p>Research context: This research is concerned with model management <ref type="bibr" target="#b0">[1]</ref>, <ref type="bibr" target="#b1">[2]</ref> on top of model repositories <ref type="bibr" target="#b2">[3]</ref>, <ref type="bibr" target="#b3">[4]</ref> which users can access through a modeling platform <ref type="bibr" target="#b4">[5]</ref>, <ref type="bibr" target="#b5">[6]</ref>. Model repositories are a promising form of aggregating reusable MDE artifacts such as models, metamodels, and model transformations. Model management is the model-based (model-driven) approach to the automated management of collections of MDE artifacts instead of using ad-hoc tools or lacking good automation. Modeling platforms such as Eclipse, MDEFORGE, or MMINT are essential tools for users of model repositories-users may either explore MDE artifacts in a repository or they may be developers in some scope of the repository.</p><p>Research objective: We want to exercise an effective, declarative (model-based), and transparent (understandable) approach to organizing the artifacts in an MDE project (in a model repository or not) and the relationships between the artifacts. That is, a model-managed project has an associated megamodel so that a user (a developer within the project) can understand the structure of the project in megamodeling terms. Further, the project's consistency with the megamodel is continuously monitored in the background of the interactive modeling platform so that any changes can be mapped to corrective, automated actions to be proposed to and confirmed by the user.</p><p>Research contribution: We address the research objective by an emerging language design, definition, implementation, and integration into a modeling platform. The language and its implementation are referred to as MegaL/Forge because the language is inspired by our previous work on linguistic architecture, as a form of megamodeling, as realized by the MegaL family of languages <ref type="bibr" target="#b6">[7]</ref>, <ref type="bibr" target="#b7">[8]</ref>, <ref type="bibr" target="#b8">[9]</ref>, <ref type="bibr" target="#b9">[10]</ref> and the integration targets the web-based modeling platform MDEFORGE <ref type="bibr" target="#b4">[5]</ref>. An original aspect of MegaL/Forge is that its semantic model addresses consistency recovery; the approach is inspired by our previous work on relationship maintenance in software language repositories <ref type="bibr" target="#b10">[11]</ref>. In this paper, we focus on defining the consistency-recovering response to a repository change while taking interaction with the user of a modeling platform into account.</p><p>Roadmap of the paper: Sec. II develops the running example of the paper. Sec. III defines syntax and semantics of the required megamodeling language. Sec. IV provides a semiformal account on consistency recovery. Sec. V discusses the integration of the approach into the web-based modeling platform MDEFORGE. Sec. VI discusses related work. Sec. VII concludes the paper.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>II. THE RUNNING EXAMPLE</head><p>For brevity and focus on the key idea, we commit to a very basic running example here: there are two models m1 and m2 that conform to the same metamodel mm with the difference being referred to as delta and model management operations in place to express conformance of m1 and m2 to mm, comparison so that delta represents the difference between m1 and m2, and patching so that m2 is the result of patching m1 according to delta. This simple example involves enough semantical issues so that it suffices for an initial language design discussion. In our ongoing research, we also model more involved scenarios.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A. An EMF-related Prelude</head><p>The running example operates within the EMF technological space. We need these types of artifacts; we use the concrete syntax of MegaL/Forge for expressing the type definitions:</p><p>That is, we have access to conformance checking (conform-sTo-a relation), model comparison (compare-a function), and delta application (patch-another function).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B. An MDE Project's Megamodel</head><p>The following megamodel declares artifact ids for models m1 and m2, the shared metamodel mm to which both models are assumed to conform to, and the delta (difference) between the models. Conformance, comparison, and patch application are expressed by appropriate applications of relation conform-sTo and functions compare and path. Thus: m1, m2 : EmfModel mm : EmfMetaModel conformsTo(m1, mm) conformsTo(m2, mm) delta : EmfCompareModel compare(m1, m2) → delta patch(m1, delta) → m2</p><p>Let us apply the MegaL/Forge megamodel to an actual project. That is, artifact identifiers in the megamodel are linked to actual filenames in the underlying model repository (in fact, a project). We may assume links as follows: m1 = "Family1.xmi" m2 = "Family2.xmi" mm = "FamilyMM.ecore" delta = "Delta.xmi" These links assume relative file names (relative to a base URI for the project). We are concerned with two versions of a model for describing 'families' (family members, i.e., persons with names and some relationships or attributes), subject to a suitable metamodel, and a delta (a difference) between the two models at hand.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>C. Change scenarios</head><p>The modeling artefacts are subject to evolution <ref type="bibr" target="#b11">[12]</ref>: models are modified and updated during the engineering process and the metamodels evolve over time to address changes to the requirements. Let us just imagine changes to artifacts of the project at hand. We should also explain how we expect to respond to these changes, thereby characterizing change scenarios. The key idea is that function applications in the megamodel may need to be used to recover consistency.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>1) Modify delta:</head><p>We propagate this change by applying the patch function, thereby deriving a new version of m2 that is 'in sync' with m1 and delta. Thus, the following function application facilitates consistency recovery:</p><formula xml:id="formula_0">patch(m1, delta) → m2</formula><p>We should note that we do not want to apply the compare function (beforehand or afterwards) because we consider changed artifacts (such as delta here) as 'authoritative' <ref type="bibr" target="#b12">[13]</ref> which we do not want to overwrite along consistency recovery.</p><p>2) Modify m1: There are two options: 3) Modify m2: We could consider applying the patch function, thereby deriving a new version of m2 that is 'in sync' with m1 and delta. This is clearly not a useful strategy, as it would overwrite the changes just made to m2. Instead, we need to compare m1 and m2 to compute a new delta. Thus, the following function application facilitates consistency recovery:</p><formula xml:id="formula_1">compare(m1, m2) → delta</formula><p>In fact, now that we changed delta, we may want to check that an application of the patch function would derive a model that is equal to the existing model m2. In that case, we would have recovered consistency in the project. Of course, this is exactly the semantics of comparison: it provides a delta for two models so that the second model can be derived from the first one by applying the delta as a patch.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>III. LANGUAGE DEFINITION</head><p>We provide a language definition of MegaL/Forge. In particular, we define the concrete syntax by means of a grammar and the abstract syntax by means of a metamodel. We also briefly discuss the static semantics for well-formed megamodels. Finally, we define what may account for a dynamic semantics by means of a consistency notion-an MDE project (its artifacts) to be consistent with a megamodel.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A. Concrete Syntax</head><p>The following grammar (in ANTLR notation) defines the concrete syntax of the MegaL/Forge constructs exercised in the present paper (Sec. II). The type and subtype forms of declaration facilitate the definition of a nominal classification hierarchy for artifacts. Actual artifacts are introduced by their name (an id); see declaration form artifact. The declaration forms relation and function facilitate signatures including names for arguments and results (the latter for functions only). There is a declaration form relatesTo for expressing relationships on artifacts. There is a declaration form mapsTo for expressing the specific relationship of function application. Finally, there is a special declaration form link for binding artifact symbols to files. Making the links part of the megamodel rather than designating a separate model for links can be compared to the use of annotations in OO programming rather than using XMLbased configuration.</p><p>MegaL/Forge is a very simple member in the MegaL language family <ref type="bibr" target="#b6">[7]</ref>, <ref type="bibr" target="#b7">[8]</ref>, <ref type="bibr" target="#b8">[9]</ref>. In particular, there is only one kind of types-as opposed to languages versus artifacts versus concepts in other MegaL languages.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B. Abstract Syntax</head><p>The metamodel defining the abstract syntax of the language is shown in </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>C. Static Semantics = Well-formedness</head><p>A static semantics for well-formedness of MegaL/Forgelike megamodels was defined as a definite clause program in previous work <ref type="bibr" target="#b7">[8]</ref>. We summarize the relevant constraints informally to make this text more self-contained. a) Types, artifacts, relations, and function are declared before they are used. b) Each name can be declared once only ('no overloading' here of any kind). c) The arguments of relationships and function applications and results of function applications must be of the types as prescribed by the signatures of the corresponding relations and functions. d) Each artifact symbol is linked to some filename. (We do not consider incompletely bound megamodels here.)</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>D. Dynamic Semantics = Consistency</head><p>Megamodels may have various dynamic semantics <ref type="bibr" target="#b7">[8]</ref>, <ref type="bibr" target="#b10">[11]</ref>; we are interested here specifically in a semantics that captures consistency of an MDE project with regard to a megamodel. We provide a simple semantics of this kind from the ground up here.</p><p>We take consistency to mean that all relationships on artifacts in the project, as expressed by the megamodel, i.e., applications of relations and functions, must hold, subject to suitable interpretations of the applied relations or functions. Details follow below.</p><p>1) Environments for Interpretation: In an effort to set up interpretations of symbols used in megamodels systematically, we assume an environment E which is, in fact, a triple E A , E R , E F as follows:</p><p>• E A maps artifact symbols, as they are used in the megamodel, to actual artifact representations in the sense of text, JSON, etc. In the MegaL/Forge notation (see Section II-B), we assume a mapping from artifact symbols to files. In the semi-formal model at hand, we assume a universe U for representations of artifacts. We use the type U in setting up interpretations for relation and function symbols; see below. • E R maps relation symbols to their interpretations; these are predicates of type U + → Boolean. We use here U + for each predicate's argument because, in this manner, a simple generic type suffices for all possible relations. The idea is, of course, that a suitable interpretation enforces a certain length (a certain number of parameters) and appropriate representation types (subtypes of U ) for the different parameters. • E F maps function symbols to their interpretations; these are functions of type U + → U . As an environment effectively represents what we think of as a 'project', we may also speak of consistency of a megamodel with an environment.</p><p>2) Consistency = Relational + Functional Consistency: We speak of relational consistency when the interpretation of all relation applications ('relationships) in a given megamodel m for a given environment E returns true. We speak of functional consistency when the interpretation of all function applications in the megamodel m with the environment E returns true. Details of the assumed notion of interpretation follow.</p><p>A relation application r(a 1 , . . . , a n ) with the relation symbol r and artifact symbols a 1 , . . . , a n as arguments is interpreted by applying the interpretation of r to the interpretations of a 1 , . . . , a n , as defined by the environment. Thus:</p><formula xml:id="formula_2">E R (r)( E A (a 1 ), . . . , E A (a n ) )</formula><p>A function application f (a 1 , . . . , a n ) → a n+1 with the function symbol f , artifact symbols a 1 , . . . , a n as arguments, and an artifact symbol a n+1 for the result is interpreted by applying the interpretation of f to the interpretations of a 1 , . . . , a n , as defined by the environment, and comparing the result with the interpretation of a n−1 for equality. Thus:</p><formula xml:id="formula_3">E F (f )( E A (a 1 ), . . . , E A (a n ) ) = E A (a n+1 )</formula><p>For consistency to hold, the formulae as described above should evaluate to true for all relation and function applications. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>IV. CONSISTENCY RECOVERY</head><p>In response to a change in a project, we perform a recovery analysis on the megamodel to determine the function applications (a recovery sequence) for recovering consistency, when applied to the artifacts in the project.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A. Recovery Sequence</head><p>When consistency does not hold, then we may try to 'overwrite' artifacts according to function applications so that consistency is recovered. The major assumption is here that function applications, as they are part of the megamodel at hand, suffice for consistency recovery and a suitable order can be determined. In more detail, given a sequence of function applications fa 1 , . . . , fa n from a given megamodel m, we call it a recovery sequence for a given environment E, if</p><p>• E is not consistent with m.</p><p>• Apply fa 1 , . . . , fa n in the given order to overwrite the artifact symbols for the results in the environment E. • The updated environment E is now consistent with m.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B. Recovery Analysis</head><p>It remains to define an analysis for megamodels to map changes to recovery sequences. For simplicity, we start from the assumption that changes are atomic in the sense that single artifacts are changed on a discrete timeline and consistency is to be recovered after each change. Thus, the analysis is essentially a mapping from a megamodel m and an artifact symbol a c identifying the actual change to a sequence of function applications.</p><p>Let us discuss expected properties of the analysis. We do not want to map a change to a sequence that would change an artifact that was changed previously, as such 'overwriting' may be semantically debatable and it may also lead to divergence. As a special case, we do not want to apply any function application twice. For instance, this could happen, in the running example, if we were responding to model changes with comparison and patching in a cyclic manner.</p><p>We also need to address 'nondeterminism' in the context of consistency recovery. That is, there may exist megamodels and changes for which different recovery sequences are possible; see the two scenarios for changing m1 in Sec. II-C2. We may either delegate such nondeterminism to the interactive component or enhance megamodels and the analysis thereof to resolve nondeterminism automatically.</p><p>Let us now sketch a first attempt at the desired analysis; we defer proper treatment of nondeterminism to future work. We need helper functions as follows:</p><p>• in(m, a) returns all the function applications in the megamodel m with the artifact symbol a as an argument. • out(fa) returns the artifact symbol for the result of the function application fa. The main function for recovery analysis, ra, takes as arguments the megamodel m, an artifact symbol a c indicating the change, a sequence S of function applications, and it returns a sequence of function applications that may be a recovery sequence. We begin with an empty S and extend it into the result sequence, step by step.</p><formula xml:id="formula_4">ra(m, a c , S) =               </formula><p>ra(m, a c , S+ + fa ), with fa drawn from m such that − fa ∈ S, and − fa ∈ in(m, a c ) ∪ fa ∈S in(m, out(fa )), and − out(fa) = a c , and − out(fa) = out(fa ) for all fa ∈ S. S, otherwise (if there is no such fa) ('+ +' is list append.) The conditions control that we select function applications that can be applied to a c and results of previous applications without though any overwriting. The formulation is nondeterministic, as different function applications could be picked in a step.</p><p>For instance, for the megamodel of Sec. II and a c = m1, starting from S = ∅, the analysis returns a sequence starting with a comparison, followed by a patch as follows: compare(m1, m2) → delta patch(m1, delta) → m2</p><p>Here we assume that the analysis respects the megamodeldefined order of function applications. (Also, '∪' operates on sequences rather than sets.) Proper treatment of nondeterminism is deferred to future work.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>V. INTEGRATION INTO MDEFORGE</head><p>This section presents the implementation of the presented consistency recovery approach, which has been integrated in the MDEFORGE platform <ref type="bibr" target="#b4">[5]</ref>. MDEFORGE was proposed as an extensible platform enabling the adoption of model management tools as SaaS (software as a service). By resembling facilities of desktop IDEs, like Eclipse, MDEFORGE users have the possibility to create modeling artifacts and organize them in projects that are, in turn, contained in workspaces.</p><p>The consistency recovery mechanism presented in the previous section has been integrated in MDEFORGE by essentially extending the existing project management facilities. In particular, the Java packages ProjectMonitoring and Consis-tencyManagement shown in Fig. <ref type="figure" target="#fig_3">2</ref>  The ConsistencyManagement package implements the presented consistency recovery concepts. For each symbolic function or relation name a corresponding IOperationApplier implementation is available. For instance, the functions compare and patch discussed in Sec. II-B have the corresponding implementation consisting of the ComparisonApplier and PatchApplier classes, respectively. Such classes implement the method apply that executes the real behaviour of the corresponding function. For instance, the execution of the apply method of the class ComparisonApplier executes the comparison mechanism already available in MDEFORGE (that in turn is based on EMFCompare 1 ) as shown in the following listing showing a fragment of the apply method of the class ComparisonApplier: In requirements engineering, the consistency between requirement artifacts needs to be maintained. In <ref type="bibr" target="#b17">[18]</ref> authors propose to use the Snapmind Framework and a UML-based specification environment for user stories and domain models. The relation between elements in a mind map-based user story and domain models are checked. In <ref type="bibr" target="#b18">[19]</ref> authors explicitly define correspondence relationships in architecture descriptions for all kinds of digital artifacts. Kowal et al. <ref type="bibr" target="#b19">[20]</ref> explicitly aim at delta-aware consistency checking for models that are part of difference perspectives by using rules that describe a consistent UML-based architecture description. In <ref type="bibr" target="#b20">[21]</ref> a systematic literature review is presented on consistency checking of business process models that pose further related approaches in the domain.</p><p>In <ref type="bibr" target="#b21">[22]</ref> authors approach consistency checking for evolving models and consistency recovery using state space exploration based on postulates defining consistent states. Sunye <ref type="bibr" target="#b22">[23]</ref> addresses collaborative modelling processes, where multiple editors write on the same model. An addressed challenge lies in reproducing the same order of operations for every accessing node. In <ref type="bibr" target="#b23">[24]</ref> authors describe a system using SAT solvers to propagate all possible changes for source models such that the transformation to view models remains traceable.</p><p>Bidirectional transformations pose a need for consistency checking and change propagation. Demuth et al. <ref type="bibr" target="#b24">[25]</ref> discuss failure detecting for co-evolving metamodels and domain models. When a consistency check fails, repair measure suggestions are automatically generated. Kusel et al. <ref type="bibr" target="#b25">[26]</ref> explicitly state the properties that need to be verified after a coupled model transformation. Diskin et al. <ref type="bibr" target="#b26">[27]</ref> classify the various kinds of model synchronizations that may have to be considered. Other kinds of bidirectional transformations and their specific needs are discussed in <ref type="bibr" target="#b27">[28]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>VII. CONCLUDING REMARKS</head><p>In this paper, we have described an approach towards consistency recovery in MDE projects such that megamodels are facilitated for expressing consistency and providing guidance for recovery thereof in an interactive setup. We are working on the following improvements. Firstly, we look at more complex scenarios with richer dependencies between the involved artifacts so that the issue of nondeterminism (Sec. IV-B) is (needs to be) properly addressed. For instance, we study examples of co-evolution <ref type="bibr" target="#b28">[29]</ref>. Secondly, we look at making megamodels and the underlying MDE projects explicitly version-aware so that consistency recovery can be modeled atop versioning. Thirdly, we look at techniques for automatically creating (at least initial fragments of) megamodels out of existing MDE projects. Finally, we look at the incorporation of 'algebraic reasoning', possibly also subject to capturing more domain knowledge in the megamodel, for the benefit of omitting unnecessary recovery steps (e.g., patch after commit in the running example) or addressing nondeterminism.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head></head><label></label><figDesc>2.a) First compare, then patch: We apply the compare function to the (changed) model m1 and the (unchanged) model m2 to compute a new version of delta to be applied by means of the patch function, thereby deriving a new version of m2 that is 'in sync' with m1 and delta. (Adding domain knowledge ('algebraic reasoning'), we know that the new version of m2 equals the original one.) Thus, the following list of function applications facilitates consistency recovery: compare(m1, m2) → delta patch(m1, delta) → m2 2.b) First patch, then compare: Thus: patch(m1, delta) → m2 compare(m1, m2) → delta An interactive user may disfavor this option on the grounds of domain knowledge such that (the older version of) delta readily captures aspects of m1 (and m2) and thus, it may not work well for a new version of m1.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 1 .</head><label>1</label><figDesc>In particular, a megamodel specification consists of a set of Artifacts of different Types. Each function (relation) is defined by means of a Function (Relation) declaration and the corresponding MapsTo (RelatesTo) definition. Artifacts are arguments of Functions and Relations as shown by the constructors of the MapsTo and RelatesTo elements. The former consists of input and output elements, whereas the latter consists of the set of artifacts for which the specified relation holds. All the elements in the figure specialize a NamedElement class (not shown in the figure for brevity) consisting of the name attribute of type String.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. The MegaL/Forge metamodel.</figDesc><graphic coords="4,126.08,50.54,359.85,149.26" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. Event based architecture of MDEForge.</figDesc><graphic coords="6,100.37,50.54,411.26,487.06" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Fig. 3 .</head><label>3</label><figDesc>Fig. 3. Pop-up asking the user regarding overwriting.</figDesc><graphic coords="7,55.24,50.54,238.49,135.92" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head></head><label></label><figDesc>contain the new classes and interfaces that have been added in the MDEFORGE implementation. The existing package CoreService has been extended to work with such new packages.The ProjectMonitoring package implements listeners that execute the consistency recovery manager when artifacts or projects are changed. In such cases, ApplicationEvents are created as shown in the listing below and used by Arti-factChangedListener and ProjectChangedListener to interact with the ConsistencyRecoveryManager.</figDesc><table><row><cell>public void update(T artifact) {</cell></row><row><cell>...</cell></row><row><cell>eventPublisher.publishEvent(new ArtifactChangedEvent(artifact, "</cell></row><row><cell>UPDATE"));</cell></row><row><cell>artifactRepository.save(artifact);</cell></row><row><cell>}</cell></row></table></figure>
		</body>
		<back>
			<div type="annex">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>public Object apply(Object[] inputs) { if (inputs.length != 2) throw new Exception(); Artifact left = inputs[0]; Artifact right = inputs <ref type="bibr" target="#b0">[1]</ref>; ModelsServiceImpl modelService=new ModelService(); return modelService.compare(left, right); }</p><p>The links between symbolic operation names and the corresponding appliers are specified in the operationMapper HashMap of the ConsistencyRecoveryManager class. The consistency check between a project and the corresponding The method consistencyRecovery implements the recovery mechanism by exploiting the getFunctionsToRecoverConsistency method shown in the listing below. It is responsible of identifying the functions to be applied and their execution order for recovering the consistency between the changed project and the corresponding megamodel. Consistency recovery can generate new artifacts that might overwrite existing ones. In such cases, the user will be notified and will be asked for confirmation, as illustrated with the popup in Fig. <ref type="figure">3</ref>. The user will also be notified when consistency recovery fails. We are also working on presenting options to the user.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>VI. RELATED WORK</head><p>In general, a few model management platforms exist, such as MMINT <ref type="bibr" target="#b5">[6]</ref> and Mondo <ref type="bibr" target="#b13">[14]</ref> that try to support any kind of operation needed in model driven engineering with a focus on models. The problem of well-formed metamodelling is directly addressed by the model management platform 'Modelverse' <ref type="bibr" target="#b14">[15]</ref>. It is a platform emphasizing a consistently specified form of metamodelling based on the work by Kühne et al. <ref type="bibr" target="#b15">[16]</ref>. Tools may not properly check conformance to metamodels as the static semantics is left unattended <ref type="bibr" target="#b16">[17]</ref>. SERGe generates all possible metamodel consistency preserving transformations to be reused by other tools.</p></div>			</div>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Model Driven Management of Complex Systems: Implementing the Macroscope&apos;s Vision</title>
		<author>
			<persName><forename type="first">M</forename><surname>Barbero</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Jouault</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Bézivin</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. ECBS 2008. IEEE</title>
				<meeting>ECBS 2008. IEEE</meeting>
		<imprint>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="277" to="286" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Mo-Script: A DSL for Querying and Manipulating Model Repositories</title>
		<author>
			<persName><forename type="first">W</forename><surname>Kling</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Jouault</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Wagelaar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Brambilla</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Cabot</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. SLE 2011, ser. LNCS</title>
				<meeting>SLE 2011, ser. LNCS</meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2012">2012</date>
			<biblScope unit="volume">6940</biblScope>
			<biblScope unit="page" from="180" to="200" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Model Repositories: Will They Become Reality?</title>
		<author>
			<persName><forename type="first">F</forename><surname>Basciani</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">D</forename><surname>Rocco</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">D</forename><surname>Ruscio</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Iovino</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Pierantonio</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. Cloud-MDE@MoDELS 2015, ser. CEUR Workshop Procs</title>
				<meeting>Cloud-MDE@MoDELS 2015, ser. CEUR Workshop s</meeting>
		<imprint>
			<date type="published" when="2016">2016</date>
			<biblScope unit="volume">1563</biblScope>
			<biblScope unit="page" from="37" to="42" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Collaborative Repositories in Model-Driven Engineering</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">D</forename><surname>Rocco</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">D</forename><surname>Ruscio</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Iovino</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Pierantonio</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Software</title>
		<imprint>
			<biblScope unit="volume">32</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="28" to="34" />
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">MDEForge: an Extensible Web-Based Modeling Platform</title>
		<author>
			<persName><forename type="first">F</forename><surname>Basciani</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">D</forename><surname>Rocco</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">D</forename><surname>Ruscio</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">D</forename><surname>Salle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Iovino</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Pierantonio</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. CloudMDE@MoDELS 2014</title>
				<meeting>CloudMDE@MoDELS 2014</meeting>
		<imprint>
			<date type="published" when="2014">2014</date>
			<biblScope unit="volume">1242</biblScope>
			<biblScope unit="page" from="66" to="75" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">MMINT: A Graphical Tool for Interactive Model Management</title>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">D</forename><surname>Sandro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Salay</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Famelis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Kokaly</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Chechik</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. MoDELS 2015 Demo and Poster Session, ser. CEUR Workshop Procs</title>
				<meeting>MoDELS 2015 Demo and Poster Session, ser. CEUR Workshop s</meeting>
		<imprint>
			<date type="published" when="2016">2016</date>
			<biblScope unit="volume">1554</biblScope>
			<biblScope unit="page" from="16" to="19" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Modeling the Linguistic Architecture of Software Products</title>
		<author>
			<persName><forename type="first">J</forename><surname>Favre</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Lämmel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Varanovich</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. MODELS 2012, ser. LNCS</title>
				<meeting>MODELS 2012, ser. LNCS</meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2012">2012</date>
			<biblScope unit="volume">7590</biblScope>
			<biblScope unit="page" from="151" to="167" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Interpretation of Linguistic Architecture</title>
		<author>
			<persName><forename type="first">R</forename><surname>Lämmel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Varanovich</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. ECMFA 2014, ser. LNCS</title>
				<meeting>ECMFA 2014, ser. LNCS</meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2014">2014</date>
			<biblScope unit="volume">8569</biblScope>
			<biblScope unit="page" from="67" to="82" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Interconnected Linguistic Architecture</title>
		<author>
			<persName><forename type="first">J</forename><surname>Härtel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Härtel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Heinz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Lämmel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Varanovich</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">The Art, Science, and Engineering of Programming Journal</title>
		<imprint>
			<biblScope unit="volume">1</biblScope>
			<biblScope unit="page">27</biblScope>
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Axioms of linguistic architecture</title>
		<author>
			<persName><forename type="first">M</forename><surname>Heinz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Lämmel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Varanovich</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. MODELSWARD 2017</title>
				<meeting>MODELSWARD 2017</meeting>
		<imprint>
			<publisher>SCITEPRESS</publisher>
			<date type="published" when="2017">2017</date>
			<biblScope unit="page" from="478" to="486" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Relationship maintenance in software language repositories</title>
		<author>
			<persName><forename type="first">R</forename><surname>Lämmel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">The Art, Science, and Engineering of Programming Journal</title>
		<imprint>
			<biblScope unit="volume">1</biblScope>
			<biblScope unit="page">27</biblScope>
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Evolving models in modeldriven engineering: State-of-the-art and future challenges</title>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">F</forename><surname>Paige</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Matragkas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">M</forename><surname>Rose</surname></persName>
		</author>
		<ptr target="http://www.sciencedirect.com/science/article/pii/S0164121215001909" />
	</analytic>
	<monogr>
		<title level="j">Journal of Systems and Software</title>
		<imprint>
			<biblScope unit="volume">111</biblScope>
			<biblScope unit="page" from="272" to="280" />
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Bidirectional Transformations in the Large</title>
		<author>
			<persName><forename type="first">P</forename><surname>Stevens</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">MoDELS. ACM</title>
				<imprint>
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
	<note>to appear</note>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">MONDO: scalable modelling and model management on the cloud</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">S</forename><surname>Kolovos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>García-Domínguez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">F</forename><surname>Paige</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Guerra</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">S</forename><surname>Cuadrado</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Lara</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Ráth</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Varró</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Sunyé</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Tisi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">STAF</title>
		<imprint>
			<biblScope unit="page" from="55" to="64" />
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Multi-level modelling in the modelverse</title>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">V</forename><surname>Mierlo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Barroca</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Vangheluwe</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Syriani</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Kühne</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">MoDELS</title>
				<imprint>
			<date type="published" when="2014">2014</date>
			<biblScope unit="page" from="83" to="92" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Matters of (meta-)modeling</title>
		<author>
			<persName><forename type="first">T</forename><surname>Kühne</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Software and System Modeling</title>
		<imprint>
			<biblScope unit="volume">5</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="369" to="385" />
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Automatic generation of consistency-preserving edit operations for MDE tools</title>
		<author>
			<persName><forename type="first">M</forename><surname>Rindt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Kehrer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">U</forename><surname>Kelter</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">MoDELS</title>
				<imprint>
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">Snapmind: A framework to support consistency and validation of model-based requirements in agile development</title>
		<author>
			<persName><forename type="first">F</forename><surname>Wanderley</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Silva</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Araújo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">S</forename><surname>Da Silveira</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">MoDRE</title>
		<imprint>
			<biblScope unit="page" from="47" to="56" />
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">Use of architecture description to maintain consistency in agile processes</title>
		<author>
			<persName><forename type="first">A</forename><surname>Chichignoud</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Noyrit</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Maillet-Contoz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Terrier</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">MODELSWARD</title>
		<imprint>
			<biblScope unit="page" from="459" to="466" />
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">Incremental consistency checking in deltaoriented uml-models for automation systems</title>
		<author>
			<persName><forename type="first">M</forename><surname>Kowal</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Schaefer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Procs. 7th Intl. FM-SPLE@ETAPS Workshop 2016</title>
				<meeting>s. 7th Intl. FM-SPLE@ETAPS Workshop 2016</meeting>
		<imprint>
			<date type="published" when="2016">2016</date>
			<biblScope unit="page" from="32" to="45" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">A systematic literature review of consistency among business process models</title>
		<author>
			<persName><forename type="first">A</forename><surname>Awadid</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Nurcan</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">CAiSE</title>
				<imprint>
			<date type="published" when="2016">2016</date>
			<biblScope unit="page" from="175" to="195" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<analytic>
		<title level="a" type="main">Towards rational and minimal change propagation in model evolution</title>
		<author>
			<persName><forename type="first">H</forename><forename type="middle">K</forename><surname>Dam</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Ghose</surname></persName>
		</author>
		<idno>. abs/1402</idno>
	</analytic>
	<monogr>
		<title level="j">CoRR</title>
		<imprint>
			<biblScope unit="page">6046</biblScope>
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b22">
	<analytic>
		<title level="a" type="main">Model consistency for distributed collaborative modeling</title>
		<author>
			<persName><forename type="first">G</forename><surname>Sunyé</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of ECMFA</title>
				<meeting>of ECMFA</meeting>
		<imprint>
			<date type="published" when="2017">2017</date>
			<biblScope unit="page" from="197" to="212" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b23">
	<analytic>
		<title level="a" type="main">Incremental backward change propagation of view models by logic solvers</title>
		<author>
			<persName><forename type="first">O</forename><surname>Semeráth</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Debreceni</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Á</forename><surname>Horváth</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Varró</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">MoDELS</title>
				<imprint>
			<date type="published" when="2016">2016</date>
			<biblScope unit="page" from="306" to="316" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b24">
	<analytic>
		<title level="a" type="main">Co-evolution of metamodels and models through consistent change propagation</title>
		<author>
			<persName><forename type="first">A</forename><surname>Demuth</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Riedl-Ehrenleitner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">E</forename><surname>Lopez-Herrejon</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Egyed</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">JSS Journal</title>
		<imprint>
			<biblScope unit="volume">111</biblScope>
			<biblScope unit="page" from="281" to="297" />
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b25">
	<analytic>
		<title level="a" type="main">Consistent co-evolution of models and transformations</title>
		<author>
			<persName><forename type="first">A</forename><surname>Kusel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Etzlstorfer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Kapsammer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Retschitzegger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Schwinger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Schönböck</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">MoDELS</title>
				<imprint>
			<date type="published" when="2015">2015</date>
			<biblScope unit="page" from="116" to="125" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b26">
	<analytic>
		<title level="a" type="main">A threedimensional taxonomy for bidirectional model synchronization</title>
		<author>
			<persName><forename type="first">Z</forename><surname>Diskin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Gholizadeh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Wider</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Czarnecki</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">JSS Journal</title>
		<imprint>
			<biblScope unit="volume">111</biblScope>
			<biblScope unit="page" from="298" to="322" />
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b27">
	<analytic>
		<title level="a" type="main">Bidirectional transformations: A cross-discipline perspective</title>
		<author>
			<persName><forename type="first">K</forename><surname>Czarnecki</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">N</forename><surname>Foster</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Z</forename><surname>Hu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Lämmel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Schürr</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">F</forename><surname>Terwilliger</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of ICMT</title>
				<meeting>of ICMT</meeting>
		<imprint>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="260" to="283" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b28">
	<analytic>
		<title level="a" type="main">Coupled evolution in model-driven engineering</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">D</forename><surname>Ruscio</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Iovino</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Pierantonio</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Software</title>
		<imprint>
			<biblScope unit="volume">29</biblScope>
			<biblScope unit="issue">6</biblScope>
			<biblScope unit="page" from="78" to="84" />
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
</biblStruct>

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