<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>A Diagrammatic Approach to Model Completion</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Lars Michael Kristensen</string-name>
          <email>Lars.Michael.Kristensen@hib.no</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Bergen University College</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Fazle Rabbi Bergen University College University of Oslo</institution>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Ingrid Chieh Yu University of Oslo</institution>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Yngve Lamo Bergen University College</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>Metamodelling plays an important role in model-driven engineering as it can be used to define domain-specific modelling languages. During the modelling phase, software designers encode domain knowledge into models which may include both structural and behavioural aspects of a system. In this paper we propose a diagrammatic approach to aid the software designer to complete partial models and thereby reduce modelling e ort. We introduce a declarative approach where we define completion rules that are executed by the use of model transformations. We also study the termination of such model transformation systems and provide su cient conditions for termination by generalizing existing work on termination of model transformation systems.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>Model Driven Engineering (MDE) [Sch06] is considered to be an e cient way of improving the quality of
software and enhance software development productivity by automating repetitive, error-prone, and
timeconsuming tasks. In MDE, models are first–class artefacts of the software development process where models
are incrementally refined starting from requirements and eventually used for code generation. Metamodels serve
as the underlying foundation defining the modelling languages used to capture domain-specific knowledge and
concepts.</p>
      <p>In the process of development, software designers are often confronted with a variety of inconsistencies
and/or incompleteness in the models under construction [MVDS07]. In particular, the modeller will most of
the time be working with a partial model not conforming (i.e., not being typed by and satisfying modelling
constraints) to the metamodel that defines the modelling language being used [SBP07]. As an example, consider
the following example from the healthcare domain. Figure 1(a) shows a metamodel M2 (in this case a class
diagram) and Figure 1(b) shows a partial model (in this case an object diagram) M1 typed by M2. The typing of
the nodes are represented by dotted arcs. In this example, Bryan works at Ward10; Ward10 is controlled by the
Emergency department. The model M1 is a partial model as it is not satisfying the following domain constraint:
“An employee who is involved in a ward must work in the controlling department”. This constraint is defined
in the metamodel M2 by the OCL constraint shown to the upper right at Figure 1. Since Ward10 is controlled
by the Emergency department, Bryan must work at the Emergency department.</p>
      <p>In the above example, the partial model M1 can be transformed into a model conforming to the metamodel
M2 by adding an arc from the Emergency department to Bryan which is missing in M1. Figure 1(c) shows a
model M1 that conforms to the metamodel M2. Clearly, the productivity of the modeller could be improved by
providing editing support that could either automatically add such missing model elements or make suggestions</p>
      <p>Ward w* ards
worksAt *
caregivers * 1..1 department</p>
      <p>Caregiver c*aregivers</p>
      <p>departme1n.t.*s Department</p>
      <sec id="sec-1-1">
        <title>Bryan Ward10 Emergency</title>
      </sec>
      <sec id="sec-1-2">
        <title>Bryan Ward10</title>
        <p>Attached OCL constraint
context Ward
inv rule:
self.caregivers -&gt;
includesAll(self.department.caregivers) (a)
based on completion rules to assist the modeller in completing the model. In many respects, this idea is similar
to code completion features as found in IDEs. More generally, modelling e ort could be reduced by providing
editing support for automated rewriting of models so that they conform to the modelling language used. Such
rewriting may also involve the deletion of model elements.</p>
        <p>The contribution of this paper is a framework for rewriting partial (incomplete) models so that they conform
to the underlying metamodel. Our approach is based on rewriting of models by means of model transformation
rules which supports both addition and deletion of model elements. We refer to them as completion rules.
The proposed framework has been developed as an extension of the Diagram Predicate Framework (DPF)
[LWM+12] which supports multilevel metamodelling. This approach is, however, general and could be used
for other modelling frameworks as well. DPF is a language independent formalism for defining metamodelling
hierarchies which provides an abstract visualization of concrete constraints. In the extended DPF, one can
graphically specify completion rules. Our framework exploits the locality of model transformation rules and
provides a foundation that enables automated tool-support to increase modelling productivity. In order to
guarantee termination of the rewriting, we provide a set of su cient termination criteria. A link to the
prototype implementation of the proposed framework is available at http://dpf.hib.no where one can graphically
design modelling artefacts in a web browser, apply the completion rules and check for termination.</p>
        <p>The rest of this paper is organised as follows. Section 2 provides background knowledge on DPF, section
3 provides an outline of the partial model completion with an example, section 4 formalizes the concept of
diagrammatic rewriting systems, and section 5 presents su cient termination criteria. In section 6, we briefly
discuss some related work. We assume that the reader is familiar with basic category theory and graph
transformation systems[BW95], [EEPT06].
2</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Diagrammatic Modelling with DPF</title>
      <p>In order to work with partial models and completion rules in a formal framework; we extend the Diagram
Predicate Framework (DPF) [Rut10]. DPF provides a formal diagrammatic approach to metamodelling based
on category theory and model transformations. In the DPF approach, models at any level are formalised as
diagrammatic specifications which consist of graphs and diagrammatic constraints. Figure 2 shows an example
of a DPF model (specification) S1 with its metamodel (specification) S0. The graphs represent the structure of
the models; constraints are added into the structure by predicates. The metamodel (specification) S0 provides
the typing for the model (specification) S1. Nodes in model (specification) S1 are either of type Class or
DataType; edges in S1 are either of type Reference or Attribute. Table 1 shows a list of predicates used for
constraining the specification S1. Each predicate has a name (p), a shape graph ( (p)), a visualisation and a
semantic interpretation. The semantic of a predicate is provided by a set of instances. The (atomic) constraining
constructs which are available for the users of the modelling language are provided in the signature i. A
signature consists of a collection of diagrammatic predicates. Table 2 shows how the predicates are constraining
the specification S1 by a graph homomorphism : (p) ! S from the shape graph to the specification.</p>
      <p>In DPF, a modelling language is formalised as a modelling formalism ( i; Si; i 1) where i and i 1 represent
two adjacent modelling levels. The corresponding metamodel of the modelling language is represented by the
specification Si which has its constraints formulated by predicates from the signature i 1. A DPF
metamodelling hierarchy consists of (a possible stack of) metamodels, models, and instances of models. A metamodel
specification determines a modelling language, the specification of a model represents a software system, and
p
For each instance of (g; f ), there exists an instance of
h. Formally, 8x 2 X : S f f (y) j y 2 g(x)g h(x)
the instances of models typically represent possible states of a software system. In this paper, we present a new
type of DPF construct named completion rules based on model transformation rules. The completion rules are
connected to (domain) constraints.</p>
      <p>Typing</p>
      <p>[comp]
Nat
diastolic Patient
dataAccess</p>
      <p>Caregiver
empDeps
[1.. ]8
[inv]
depEmps
[1.. 1]
Department
0
1
(a)
(b)
:systolic
90 :diastolic
0 (p)
f
f
f
g
h
h
f
f
2
2
2
3
3</p>
      <sec id="sec-2-1">
        <title>Caregiver1</title>
        <p>Ward1
Caregiver1</p>
        <p>Ward2
wardEmpsg
wardEmpsg
Caregiver1</p>
        <p>Ward2
Caregiver1
( 0 (p))
empDepsf
wardDepsf
depEmpsf
empDepsg</p>
      </sec>
      <sec id="sec-2-2">
        <title>Department2</title>
        <p>Department2</p>
        <p>Department2
wardDepsf
empDepsh</p>
        <p>Department3
wardPatsf
dataAccessh</p>
        <p>Patient3
[comp]
dataAccess</p>
        <p>Caregiver
:wardEmps</p>
        <p>Bryan
Ward10</p>
        <p>Ward
[1.. 1]</p>
        <p>Department
Emergency
1
I
(a)
(b)
By performing a pullback of 0 ([composite]) !1 S I, we extract the fragment of the graph that is a ected by
the [composite] constraint. The graph homomorphism (see Figure 4) is not a valid instance of the [composite]
as the semantics of the [composite] predicate is not satisfied. In this example, Bryan works at Ward10; Ward10
is controlled by the Emergency department. Since Ward10 is controlled by the Emergency department, Bryan
must work at the Emergency department. Also, the caregivers are supposed to work for at least one department
which is missing in : I ! S of S1. Figure 5 shows a screenshot of the editor that highlights which part of the
model instance violates the constraints.</p>
        <p>In the next section, we extend DPF with model transformation rules which allows us to incorporate model
completion rules. We augment the above mentioned example with completion rules at the meta-model level
that can be used as a basis for automatically removing the inconsistencies of the partial model (I; ). Table 3
shows some completion rules linked to predicates. Completion rules for a predicate ensures that the predicate
becomes satisfied. The semantics of completion rules are defined by coupled transformation rules [SLK11]
[Bec08] with negative application conditions as in Table 3. Negative application conditions are typically used
g
1</p>
        <p>3
h
*</p>
        <p>f
in graph transformations to prohibit an infinite number of rule applications. We use a special type of coupled
transformations where the metamodels remain unchanged [RMWL12]. Notice that the matching patterns and
negative application conditions are represented in the same diagram in Table 3 to make it more readable.
Negative application conditions on model elements are represented by a strike through the corresponding
model elements in the diagram to represent that they must not exist while matching.</p>
        <p>By applying the completion rules from Table 3 on (I; ), the partial model is updated to become a model, (I ; )
which conforms to its metamodel. Once we apply the completion rules for [inv comi[inv] and [comp comi[comp]
on (I; ), we obtain the instance of specification S1 shown in Figure 6. Bold arcs (also shown with a green color)
in Figure 6 represent the additional edges derived from the application of completion rules. We do not have
deleting rules in this example, but in general it is possible to have deletion rules to repair e.g., multiplicity
constraints [TMAL13].
4</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Diagrammatic Model Completion</title>
      <p>Our diagrammatic rewriting system is based on completion rules. Completion rules are typed coupled
transformation rules where type graphs are not changed by the transformation. The rules are linked to predicates
and they are applied to a partial model to correct inconsistencies. We use the standard double-pushout (DPO)
approach [EEPT06] for defining completion rules. In this section we give a formal definition of completion rules
(Cp)
(K !
g [comp] f
and formalize its application and matching.</p>
      <p>Definition 1 (Completion scheme of a predicate and completion rules) Let = (P ; ) be a signature. A
completion scheme Cp for a predicate p 2 P , is given by a symbol cp, and a set of completion rules (Cp) where the
meta-models remain unchanged. A rule r 2 (Cp) of a completion scheme of a predicate Cp has a matching pattern (L), a
gluing condition (K), a replacement pattern (R), and an optional negative application condition, NAC (n : L ! N) where
L; N; K; R are all typed by the arity (p) of the predicate p.</p>
      <p>A completion rule as defined in Definition 1 is illustrated in the following figure. The matching pattern and
replacement pattern are also known as left-hand side and right-hand side of a rule, respectively. In the figure,
k and l are injective morphisms. A completion rule is nondeleting if K = L. In this case we have an injective
morphism L ,! R.</p>
      <p>Since the rules are not directly linked to a model, they can be reused by constraining a model with appropriate
predicates.</p>
      <p>Definition 2 (Match of a completion rule). Let Cp be a completion scheme of a predicate with a set of completion rules
(Cp). A match ( ; m) of a rule r 2 (Cp) is given by an atomic constraint : (p) ! Si 1 and a match m : L ! Si such
that constraint and match m together with typing morphisms L : L ! (p) and Si : Si ! Si 1 constitute a commuting
square: L; = m; Si as in the diagram below.</p>
      <p>(p)
L</p>
      <p>L
=
m</p>
      <p>Si 1
Si</p>
      <p>Si</p>
      <p>Now we consider the satisfaction of a negative application condition of a completion rule. A rule is applied
as long as it satisfies its negative application condition which is typically expressed by a graph structure in a
graph transformation system.</p>
    </sec>
    <sec id="sec-4">
      <title>Definition 3 (Satisfaction of a NAC of a completion rule) A match ( ; m) of a rule r 2 (Cp) satisfies a NAC (n :</title>
      <p>L ! N) if there does not exist an injective graph morphism q : N ! Si with n; q = m such that the typing morphisms
N : N ! (p) and Si : Si ! Si 1 constitute a commuting square: N; = q; Si as shown in the diagram below. This is
written ( ; m) j= NAC.</p>
      <p>(p)</p>
      <p>N
N
q
id</p>
      <p>Si
n ,
Si</p>
      <p>(p)
N</p>
      <p>N
id
n
(p)
id0
L
(p)</p>
      <p>L
L
,
q
id
S0i
m
Si</p>
      <p>Si
(p)
id0
K
Definition 4 (Application of a completion rule) Let Cp be a completion scheme of a predicate with a set of completion
rules (Cp). A rule r = ((N ! (p)) (L ! (p)) (K ! (p)) ! (R ! (p))) 2 (Cp) transforms a partial
model (Si; Si ) to (Si ; Si ) if there exists a match ( ; m) where ( ; m) j= NAC. The transformation consist of two commuting
cubes and two pushout diagrams (PO1 and PO2) as shown below:
id</p>
      <p>Si
Si</p>
      <p>(p)
m</p>
      <p>R
m
(PO1)
(PO2)</p>
      <p>Note that (Si ; Si ) could be a partial model and in that situation, further application of completion rules are
required to obtain a a model that satisfies all the constraints. Our framework supports the execution of rules
in two di erent ways: one can interactively apply the rules where the user guides the execution order; or
automatically considering all possible orderings of rule execution. In the latter case, it is important to perform
an analysis to ensure that the execution of the transformation rules will eventually terminate.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Termination Criteria</title>
      <p>In this paper we propose a termination analysis based on the principles adapted from layered graph grammars
[EEPT06]. In a layered typed graph grammar, transformation rules are distributed across di erent layers. The
transformation rules of a layer are applied as long as possible before going to the next layer. Ehrig et al [EEPT06]
distinguished between deletion and nondeletion layers where all transformation rules in deletion layers delete
at least one element and all transformation rules in nondeletion layers do not delete any elements. A set of
layer conditions was specified in [EEPT06] that need to be satisfied by each layer k to guarantee termination.
Transformation rules in nondeletion layers must have negative application conditions. The layer conditions
do not permit a rule r to use an element x of a given type t for the match if any element of type t has been
created in a layer k0 k. The layer conditions also imply that the creation layer of an element of type t must
precede its deletion layer. This restriction prevents the repetitive application of a particular rule. This layered
typed graph grammar approach is suitable for situations where repetitive application of rules are not required.
Unfortunately, there are many situations where repetitive application of rules are desirable such as to compute
transitive closure operations [LPE07].</p>
      <p>We generalize the layer conditions from [EEPT06] allowing deleting and non-deleting rules to reside in the
same layer as long as the rules are loop-free. Furthermore, this generalization permits a rule to use newly
created edges allowing us to perform transitive closure operations. To achieve this, we rely on a loop detection
algorithm that overestimates the existence of a loop from a set of rules. The loop detection algorithm is based
on the following su cient conditions for loop freeness. Let Rk be the set of rules of a layer k.</p>
      <p>If a rule ri 2 Rk creates an element x of type t, then ri must have an element of type t in its NAC,
If a rule ri 2 Rk deletes an element of type t, then there is no rule in rj 2 Rk that creates an element of type t
Note that we are assuming, that there is a finite number of rules in each layer and that the rules are applied
on a finite input graph. The algorithm guarantees termination if all the rules for each layer satisfies the above
mentioned conditions. A complete specification of the algorithm and a formal proof of correctness is available
as technical report on http://dpf.hib.no/publications.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Related and Future Work</title>
      <p>Partial models have been used in MDE for various purposes. It has been used for modelling with uncertainty
by Salay et al. in [SFC12]. They proposed four types of partiality that can be defined in a modelling language–
independent way. Their definition of metamodel consists of a First Order Logic theory that includes a set of
sentences representing the well–formedness constraints. Modelling with uncertainty is essential in situations
such as: i) the requirements are not clearly specified, ii) alternative resolution to inconsistency is present, and
iii) stakeholders opinions di er. In this article, we focus on precise modelling of systems with metamodelling
assuming the requirement is clearly specified.</p>
      <p>An approach similar to our work was presented in [SBP07] where the authors presented a methodology to
automatically solve partial model completion problems. They transformed a partial model, its metamodel, and
additional constraints to a constraint logic program (CLP). The metamodel specifies the domain of possible
assignments for each and every property. This information is being used by the CLP to complete a partial
model object. They provided an algorithm to generate code that assigns a domain of values to the attributes and
relationships. When the CLP is queried, a solver selects values from the domain of each property such that the
conjunction of all the constraints is satisfied. In our approach, we use multilevel metamodelling for specifying
domain models. We use diagrammatic approach to define completion rules and use model transformations to
derive a complete model instance that satisfies the predicate constraints.</p>
      <p>An automated approach for detecting and tracking inconsistencies in real time was presented in [Egy11].
The author listed 24 consistency rules that cover the most significant concerns of keeping sequence diagrams
consistent with class and statechart diagrams and evaluated the rules on UML design models. While their
approach is based on the syntactical constraints of UML diagrams, ours is based on domain specific diagrammatic
constraints. In our approach, the completion rules are graphically formulated, customizable, and vary from one
domain to another.</p>
      <p>The eMoflon tool [ALPS11] is built on the Eclipse Modelling Framework (EMF), using Ecore for
metamodelling that supports rule-based unidirectional and bidirectional model transformation. eMoflon is featured with
MOF 2.0 compliant code generation and concentrates on bidirectional model transformations with triple graph
grammars and their mapping to unidirectional transformations. In contrast, we proposed metamodelling with
partial model completion based on coupled model transformation and provided termination analysis for such
model transformation.</p>
      <p>In [BPP10], Bottoni et al. proposed an approach to the identification of a su cient criterion for termination
of graph transformations with negative application conditions. Their approach is based on labelled transition
systems and they use a double pushout approach to graph transformation. Their approach is focused on the
termination of a single non-deleting rule. A graph transformation system typically have multiple rules and
termination becomes a complex issue with multiple rules. Ehrig et al. presented a layered graph transformation
systems where rules are grouped into di erent layers [EEPT06]. Mixing deleting and non-deleting rules in a
layer is not possible. In this paper, we generalize the layer conditions from [EEPT06] allowing that deleting and
non-deleting rules remains in the same layer as long as the rules are loop-free. Furthermore, we permit a rule
to use newly created edges allowing us to perform transitive closure operation.</p>
      <p>Termination criterion for double pushout transformation that covers transitive closure was addressed in
[LPE07] by Levendovszky et al. where the authors proposed a transformation based on E-concurrent
production which is an amalgamation technique for concurrent execution of rules. This approach is based on the
construction of concurrent rules from di erent combination of productions. A disadvantage of their approach
is that it is hard to find all the possible sequences of graph productions, and prove that the corresponding series
of cumulative ‘left-hand side’ exceeds all limits which is required to show termination.</p>
      <p>An application of partial model completion is in the evolving software engineering process. In many cases,
software models need to migrate because of the evolution of software requirements and/or modelling languages
[TMAL13]. The concept of partial models is applicable also in this setting if accompanied by rewriting rules
and would potentially be able to automate the model migration process.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [ALPS11]
          <string-name>
            <given-names>Anthony</given-names>
            <surname>Anjorin</surname>
          </string-name>
          , Marius Lauder, Sven Patzina, and Andy Schu¨ rr.
          <source>eMoflon: Leveraging EMF and Professional CASE Tools. In 3. Workshop Methodische Entwicklung von Modellierungswerkzeugen (MEMWe2011)</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <surname>Ste en Becker</surname>
          </string-name>
          .
          <article-title>Coupled model transformations</article-title>
          .
          <source>In Proceedings of the 7th International Workshop on Software and Performance, WOSP '08</source>
          , pages
          <fpage>103</fpage>
          -
          <lpage>114</lpage>
          , NY,
          <year>2008</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <given-names>Paolo</given-names>
            <surname>Bottoni</surname>
          </string-name>
          and
          <string-name>
            <given-names>Francesco</given-names>
            <surname>Parisi-Presicce</surname>
          </string-name>
          .
          <article-title>A termination criterion for graph transformations with negative application conditions</article-title>
          .
          <source>ECEASST</source>
          ,
          <volume>30</volume>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <given-names>Michael</given-names>
            <surname>Barr</surname>
          </string-name>
          and Charles Wells, editors.
          <source>Category Theory for Computing Science</source>
          , 2nd Ed.
          <article-title>Prentice Hall International (UK) Ltd</article-title>
          .,
          <string-name>
            <surname>Hertfordshire</surname>
          </string-name>
          , UK,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Rutle. Diagram Predicate</surname>
          </string-name>
          <article-title>Framework: A Formal Approach to MDE</article-title>
          .
          <source>PhD thesis</source>
          , Department of Informatics, University of Bergen, Norway,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <given-names>Sagar</given-names>
            <surname>Sen</surname>
          </string-name>
          , Benoit Baudry, and
          <string-name>
            <given-names>Doina</given-names>
            <surname>Precup</surname>
          </string-name>
          .
          <article-title>Partial model completion in model driven engineering using constraint logic programming</article-title>
          .
          <source>In INAP'07</source>
          ,
          <string-name>
            <surname>Germany</surname>
          </string-name>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <given-names>Douglas C.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          .
          <article-title>Guest editor's introduction: Model-driven engineering</article-title>
          .
          <volume>39</volume>
          (
          <issue>2</issue>
          ):
          <fpage>25</fpage>
          -
          <lpage>31</lpage>
          ,
          <year>February 2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <string-name>
            <given-names>Rick</given-names>
            <surname>Salay</surname>
          </string-name>
          , Michalis Famelis, and
          <string-name>
            <given-names>Marsha</given-names>
            <surname>Chechik</surname>
          </string-name>
          .
          <article-title>Language independent refinement using partial modeling</article-title>
          . In Fundamental Approaches to Software Engineering, volume
          <volume>7212</volume>
          <source>of LNCS</source>
          , pages
          <fpage>224</fpage>
          -
          <lpage>239</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <string-name>
            <surname>Springer</surname>
          </string-name>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <string-name>
            <given-names>Christoph</given-names>
            <surname>Schulz</surname>
          </string-name>
          ,
          <article-title>Michael L o¨we, and Harald K o¨nig. A categorical framework for the transformation of object-oriented systems: Models and data</article-title>
          .
          <source>J. Symb. Comput.</source>
          ,
          <volume>46</volume>
          (
          <issue>3</issue>
          ):
          <fpage>316</fpage>
          -
          <lpage>337</lpage>
          ,
          <year>March 2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [TMAL13]
          <string-name>
            <given-names>Gabriele</given-names>
            <surname>Taentzer</surname>
          </string-name>
          , Florian Mantz, Thorsten Arendt, and
          <string-name>
            <given-names>Yngve</given-names>
            <surname>Lamo</surname>
          </string-name>
          .
          <article-title>Customizable model migration schemes for meta-model evolutions with multiplicity changes</article-title>
          .
          <source>In 16th International Conference, MODELS</source>
          <year>2013</year>
          ,
          <article-title>Miami</article-title>
          , Proceedings, volume
          <volume>8107</volume>
          <source>of LNCS</source>
          , pages
          <fpage>254</fpage>
          -
          <lpage>270</lpage>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <string-name>
            <given-names>Software</given-names>
            <surname>Engineering</surname>
          </string-name>
          , IEEE Transactions on,
          <volume>37</volume>
          (
          <issue>2</issue>
          ):
          <fpage>188</fpage>
          -
          <lpage>204</lpage>
          ,
          <year>March 2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          <string-name>
            <given-names>Tihamer</given-names>
            <surname>Levendovszky</surname>
          </string-name>
          , Ulrike Prange, and
          <string-name>
            <given-names>Hartmut</given-names>
            <surname>Ehrig</surname>
          </string-name>
          .
          <article-title>Termination criteria for dpo transformations with injective matches</article-title>
          .
          <source>Electr. Notes Theor. Comput. Sci.</source>
          ,
          <volume>175</volume>
          (
          <issue>4</issue>
          ):
          <fpage>87</fpage>
          -
          <lpage>100</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [LWM+12]
          <string-name>
            <surname>Yngve</surname>
            <given-names>Lamo</given-names>
          </string-name>
          , Xiaoliang Wang, Florian Mantz, Wendy MacCaull, and Adrian Rutle.
          <article-title>Dpf workbench: A diagrammatic multi-layer domain specific (meta-)modelling environment</article-title>
          . In Roger Lee, editor,
          <source>Computer and Information Science</source>
          <year>2012</year>
          , volume
          <volume>429</volume>
          <source>of Studies in Computational Intelligence</source>
          , pages
          <fpage>37</fpage>
          -
          <lpage>52</lpage>
          . Springer,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [MVDS07]
          <string-name>
            <given-names>Tom</given-names>
            <surname>Mens and Ragnhild Van Der Straeten</surname>
          </string-name>
          .
          <article-title>Incremental resolution of model inconsistencies</article-title>
          .
          <source>In Recent Trends in Algebraic Development Techniques</source>
          , volume
          <volume>4409</volume>
          <source>of LNCS</source>
          , pages
          <fpage>111</fpage>
          -
          <lpage>126</lpage>
          . Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [RMWL12]
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Rutle</surname>
          </string-name>
          ,
          <string-name>
            <surname>Wendy</surname>
            <given-names>MacCaull</given-names>
          </string-name>
          , Hao Wang, and
          <string-name>
            <given-names>Yngve</given-names>
            <surname>Lamo</surname>
          </string-name>
          .
          <article-title>A metamodelling approach to behavioural modelling</article-title>
          .
          <source>In Proceedings of the Fourth Workshop on Behaviour Modelling - Foundations and Applications</source>
          , BM-FA '
          <volume>12</volume>
          , pages
          <issue>5</issue>
          :
          <fpage>1</fpage>
          -
          <lpage>5</lpage>
          :
          <fpage>10</fpage>
          , NY, USA,
          <year>2012</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          <source>[Bec08] [BPP10] [BW95] [Egy11] [LPE07] [Rut10] [SBP07] [Sch06] [SFC12] [SLK11] [EEPT06] Hartmut Ehrig</source>
          , Karsten Ehrig, Ulrike Prange, and
          <string-name>
            <given-names>Gabriele</given-names>
            <surname>Taentzer</surname>
          </string-name>
          .
          <source>Fundamentals of Algebraic Graph Transformation. Monographs in Theoretical Computer Science</source>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>