<!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 Systematic Taxonomy of Metamodel Evolution Impacts on OCL Expressions∗</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Angelika Kusel</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Juergen Etzlstorfer</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Elisabeth Kapsammer</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Werner Retschitzegger</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Johannes Schoenboeck</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Wieland Schwinger</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Manuel Wimmer</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Johannes Kepler University Linz</institution>
          ,
          <country country="AT">Austria</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Applied Sciences Upper Austria</institution>
          ,
          <addr-line>Campus Hagenberg</addr-line>
          ,
          <country country="AT">Austria</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Vienna University of Technology</institution>
          ,
          <country country="AT">Austria</country>
        </aff>
      </contrib-group>
      <fpage>2</fpage>
      <lpage>11</lpage>
      <abstract>
        <p>Metamodel evolution is prevalent in Model-Driven Engineering, necessitating the co-evolution of dependent artifacts like models and transformations. Whereas model co-evolution has been extensively studied, the co-evolution of transformations and especially its substantial ingredient in terms of OCL expressions has received little attention up to now. Thus, the goal of this paper is a systematic analysis of potential impacts of metamodel evolution on OCL expressions in model transformations. For this, a complete and minimal set of atomic metamodel changes has been derived from Ecore, which is analyzed with respect to its effects on structural complexity and information capacity. This analysis builds the basis for investigating the impacts concerning syntactical conformance and scope of affected OCL expressions. Finally, we report on lessons learned gained from establishing the set of changes and examining the impacts thereof.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Model-Driven Engineering (MDE) proposes the use of models to conduct software
development on a higher level of abstraction [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Thereby, model transformations play a
vital role for systematic transformations of models conforming to different metamodels
(MMs). Just like any other software artifact, MMs evolve, necessitating the co-evolution
of dependent artifacts like models and transformations [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>
        While the automated co-evolution of models has been subject to extensive research
in the past (cf., [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] for a survey), the automated co-evolution of transformations has
been less examined so far (cf., e.g., [
        <xref ref-type="bibr" rid="ref13 ref4 ref5 ref6">4–6, 13</xref>
        ]). Especially the co-evolution of Object
Constraint Language (OCL) [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] expressions has not been a major focus up to now,
despite the fact that OCL expressions are used to perform complex queries on the input
models [
        <xref ref-type="bibr" rid="ref2 ref22">2, 22</xref>
        ]. Therefore, they represent a substantial ingredient in rule-based model
transformation languages, such as ATL [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] or QVT [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].
∗ This work has been funded by the Austrian Federal Ministry for Transport, Innovation and
Technology (BMVIT) grant FFG BRIDGE 832160 and FFG FIT-IT 825070 and 829598, FFG
Basisprogramm 838181, and by O¨AD grant AR18/2013 and UA07/2013.
      </p>
      <p>
        To tackle this limitation, this paper focuses on the co-evolution of OCL
expressions in model transformations by first proposing acomplete and minimal set of atomic
changes focusing on structure, which has been systematically derived from the Ecore4
meta-MM, enabling the definition of arbitrary evolutions of Ecore-based MMs. All
changes of this set are subsequently analyzed concerning their effects on the MM with
respect to structural complexity, i.e., the number of instantiable MM elements, and
information capacity, i.e., the potential number of instances of the MM, since these two
criteria are significant for the impacts on OCL expressions which will be revealed in the
remainder of this paper. Second, the potential impacts of these changes on OCL
expressions are investigated by systematically analyzing the impacts of each of these changes
concerning affected OCL expressions, revealing non-breaking and breaking impacts [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]
with respect to syntax and scattering of impacts considering their scope, being local, in
case that OCL expressions use the changed MM element itself, or global, if they use
inherited versions thereof. Thus, this investigation builds the foundation for identifying
resolution actions to co-evolve syntactically broken OCL expressions and serves as
basis for implementing an impact analysis tool, constituting the first and fundamental step
towards the automated co-evolution of OCL expressions in model transformations.
      </p>
      <p>Outline: Section 2 systematically analyzes the impacts of MM evolution on OCL
expressions. While lessons learned are presented in Section 3, related work is surveyed
in Section 4. Finally, Section 5 concludes the paper with an outlook to future work.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Systematic Impact Analysis</title>
      <p>In this section, role and importance of OCL in model transformations are highlighted,
before the complete and minimal set of changes as well as the investigation of impacts
of each change on OCL expressions are presented. Although OCL might also be used in
other contexts, e.g., to specify MM constraints restricting the instantiability of the MM,
we focus on the co-evolution of OCL in model transformations. Nevertheless, this work
might also be applied to other application contexts. A detailed investigation of impacts
on OCL constraints in MMs is, however, left to future work.
2.1</p>
      <sec id="sec-2-1">
        <title>Role and Importance of OCL in Model Transformations</title>
        <p>
          In order to illustrate the role and importance of OCL, Figure 1 shows an excerpt of the
well-known Class2Relational transformation5, serving as a running example
throughout the paper. From the example one might see that OCL expressions are used in two
indispensable roles [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. First, OCL is used in bindings to query elements of the source
model, which are used to produce the target model (cf., e.g., “cl.package+’ ’+cl.id”
calculating the values for the target attribute Table.name). Second, OCL is utilized in
conditions to steer the control flow (cf., e.g., “cl.abstract=false” to transform non-abstract
classes, only). Through these two essential roles, OCL expressions constitute large parts
of transformation definitions [
          <xref ref-type="bibr" rid="ref2 ref22">2, 22</xref>
          ], and thus, it is of utmost importance to consider
OCL in detail in the context of transformation co-evolution.
4 http://eclipse.org/modeling/
5 For a complete example see: http://www.eclipse.org/atl/atlTransformations/
conforms to
        </p>
        <sec id="sec-2-1-1">
          <title>Class Metamodel0</title>
          <p>Element
1 id:String
Metamodel</p>
          <p>Evolution
2[3ouaprnbadaiscqettkturrraeeagdcC]e,tl::aBS*stosroinletgyaApntetr:Sibtruitneg4 3214 CCRDreheenaleaanCttmgeeheeaAAOnttAttgrrtrdeitibbresiuurbettueedte
ΔΔ+</p>
        </sec>
        <sec id="sec-2-1-2">
          <title>Class Metamodel1</title>
          <p>1 naEmleem:Setnritng</p>
          <p>Class
2 package:String
abstract:Boolean
[o3rdaetrterd=fal*se, type:SAtrtintrgibute</p>
          <p>unique] multivalued:Boolean 4
Source Metamodel
impacts</p>
          <p>
            In general, model transformations depend on three distinct MMs, being (i) the
source MM, (ii) the target MM, and (iii) the transformation MM (cf. Fig. 1). Thereby,
OCL expressions depend on the source MM by means of a so-called “domain conforms
to”-relationship [
            <xref ref-type="bibr" rid="ref15">15</xref>
            ] and the OCL MM as part of the transformation MM by means
of a “conforms to”-relationship [
            <xref ref-type="bibr" rid="ref11">11</xref>
            ]. This is, since OCL expressions are used to query
source models and do not refer to concepts of the target MM. Therefore, this paper
focuses on the evolution of the source MM and its impact on OCL expressions. For this, a
systematic set of changes is needed, which will be the focus of the next two subsections.
A systematic set of changes, as a prerequisite for investigating impacts, has to fulfill
two criteria – completeness to allow for any possible change and minimality to avoid the
analysis of redundant changes. To fulfill both, we focus onatomic changes, transferring
the MM from one consistent state, i.e., conforming to Ecore [
            <xref ref-type="bibr" rid="ref20">20</xref>
            ], to another one.
          </p>
          <p>Example. Before proposing the systematic set of atomic changes, four exemplary
atomic changes (cf. Fig. 1) with their effects on structural complexity and information
capacity of the MM are discussed. First, the attribute Element.id has been renamed to
name (cf. 1 in Fig. 1), being updative, i.e., a state change, by nature. Although this
causes neither a change in structure nor a change in information capacity, OCL
expressions are affected. Second, the attribute Class.package has been deleted (cf. 2 in
Fig. 1), being destructive by nature, thus, decreasing structural complexity and
information capacity, which impacts OCL expressions significantly, since the deleted element
ENamedElement Δ Update Name
name:String
-+DCereleatteeEEPPaacckkaaggee Δ Update ePackage
uornEdiTqeyurpeede:b:dboEooloelelmeaanennt ΔPeaUScupkpdaeagrte-e eSu..pE.ePrPaacckkaaggee ePackage ..E.Classifier
lowerBound:int Δ Update Ordered + Create EClass
upperBound:int Δ Update Unique - Delete EClass</p>
          <p>BoΔuUnpdd/UatpepLeorbwoeurn-d +- CDreeleattee EERReerreeffeerreennccee
EStructurΔaUlFpedaatteureeContainingClass eContainingClass
...
must not be accessed anymore. Third, the reference Class.attr has been changed from
ordered to unordered (cf. 3 in Fig. 1), being again updative by nature, leaving
structural complexity and information unaffected, but, however, affecting OCL expressions.
Finally, the attribute Attribute.multivalued of type Boolean has been created (cf. 4 in
Fig. 1), being constructive by nature, therefore increasing both, structural complexity
and information capacity, since this attribute might now be instantiated with true or
false, without, however, affecting OCL expressions.</p>
          <p>Systematic Set of Changes. Going beyond these four exemplary changes, Figure 2
shows the relevant excerpt of Ecore, including all elements for definingstructure, while
disregarding (i) properties for code generation (e.g., volatile), (ii) derived properties
(e.g., required), since they may be led back from other properties (e.g., lowerBound),
and (iii) operations (e.g., EOperation), since the focus is on MMs defining structure and
not behavior. For deriving all constructive and destructive changes, one has to resort to
all concrete meta-classes, e.g., EClass. For receiving all updative changes, i.e., state
changes of features, one has to refer to all meta-features, e.g., EClass.abstract. The
resulting set of atomic changes is shown in Figure 2 as well as in Table 2.</p>
          <p>
            Criteria. Before analyzing the impacts of the changes on OCL expressions, their
effects with respect to (i) structural complexity and (ii) information capacity are analyzed,
being increasing, neutral, or decreasing. Changes affecting structural complexity
indicate impacts in accessing MM elements in OCL expressions and might be evaluated by
counting the number of instantiable MM elements [
            <xref ref-type="bibr" rid="ref19">19</xref>
            ]. In contrast, changes concerning
information capacity indicate impacts on the results of OCL expressions and might be
evaluated by counting the potential number of all valid instances of a MM [
            <xref ref-type="bibr" rid="ref16">16</xref>
            ].
          </p>
          <p>Evaluation. In the following, the set of changes is evaluated (cf. Table 2).</p>
          <p>Constructive/Destructive Changes: All constructive changes have an increasing
effect on both, structural complexity and information capacity, since they increase the
number of instantiable MM elements and by this also the potential number of valid
instances. In contrast, all destructive changes have the exact opposite effect.</p>
          <p>Updative Changes: Whereas all constructive as well as destructive changes behave
equally with respect to our criteria, updative changes do not and might be further
subdivided into four groups according to their behavior.</p>
          <p>Group 1 Renaming Updates: The first group includes updates on
ENamedElement.name and EEnumLiteral.value, i.e., renames, being neutral with respect to both,
structural complexity and information capacity.</p>
          <p>Group 2 Moving Updates: This group regards updates on containment references,
i.e., EPackage.eSuperPackage, EClassifier.ePackage ,
EStructuralFeature.eContainingClass, as well as EEnumLiteral.eEnum, which enable the movement of a feature from
one container to another one. Such updates increase structural capacity in the target
container, but decrease structural complexity in the source container. Since the features
are still available in the MM, yet at another position, the effect on the information
capacity is neutral, i.e., not affecting the number of valid instances.</p>
          <p>Group 3 Restricting/Relaxing Updates: The third group considers updates on
restricting or relaxing the instantiability of MM elements, comprising the features
abstract of EClass, upperBound, lowerBound, and unique of ETypedElement as well as all
features of EAttribute and EReference. Their effect on structural complexity is neutral,
but their effect on information capacity is either increasing or decreasing, depending on
the concrete state change. For instance, in case of an increase of feature lowerBound,
the number of valid instances decreases, since more values are required. In contrast, a
decrease of lowerBound has the opposite effect. Furthermore, type specialization has
decreasing effect on information capacity, since the set of valid instances decreases. In
contrast, type generalization has increasing effect on information capacity. Please note
that feature ETypedElement.ordered has neutral effect on both, structural complexity
and information capacity, but impacts the underlying OCL datatype (cf. Sect. 2.3).</p>
          <p>Group 4 Constructive/Destructive Updates: Finally, this group considers updates
on types, i.e., EClasses themselves, or the datatypes of EStructuralFeatures. This group
may be further subdivided into two categories according to their effects. First, the
addition of eSuperTypes and pulling up of EStructuralFeatures have increasing effect on
information capacity, while their effect on structural complexity is increasing for the
addition of eSuperTypes and both, increasing and decreasing for EStructuralFeatures,
analogously to moving updates. Second, the deletion of eSuperTypes and pushing down
of EStructuralFeatures has decreasing effect on information capacity, while their effect
on structural complexity is decreasing for the removal of eSuperTypes and again both,
increasing and decreasing for EStructuralFeatures.</p>
        </sec>
      </sec>
      <sec id="sec-2-2">
        <title>2.3 Impact Analysis</title>
        <p>In the following, impacts of MM evolution on OCL expressions are exemplified and on
basis of this, dedicated criteria are derived, which are finally evaluated with respect to
the complete and minimal set of changes.</p>
        <p>Example. To reveal impacts of MM evolution on OCL expressions, the running
example is utilized again: first, the renaming of the attributeElement.id (cf. 1 in Fig. 1)
has no effect with respect to structural complexity and information capacity, but
breaking impact on the syntax of all OCL expressions accessing the element either directly or
indirectly via inherited versions thereof, i.e., the impact scatters. Second, the deletion
of the attribute Class.package (cf. 2 in Fig. 1) naturally has breaking impact on all
OCL expressions accessing this element, since the structure has been changed in a
destructive way, and since belonging to a leaf class, the impact does not scatter. Third, the</p>
        <p>Ecore Meta-Feature
lowerBound
upperBound = 1 unique/ordered not applicable</p>
        <p>unique = true and ordered = true
upperBound &gt; 1 unique = true and ordered = false
unique = false and ordered = true
unique = false and ordered = false</p>
        <p>OCL Type
Scalar Collection
Type Bag Sequence Set OrderedSet</p>
        <p>no impact on OCL type
</p>
        <p>

</p>
        <p>
change of the reference Class.attr from ordered to unordered, i.e., ordered=false (cf. 3
in Fig. 1), has breaking impact, although the structural complexity is unaffected, i.e., the
feature is still accessible. However, it causes a change of the internally employed OCL
collection type from OrderedSet to Set and by this, invalidates the usage of now
undefined operations such asfirst() . In this context, Table 1 shows the possible Ecore settings
related to collections and the resulting OCL collection type. Finally, the creation of the
attribute Attribute.multivalued (cf. 4 in Fig. 1) naturally has no impact.</p>
        <p>Criteria. As one might see from the exemplary discussion above, changes may
have potential impact on the syntax of OCL expressions being either non-breaking or
breaking. Moreover, a change exhibits a certain scope, i.e., the scattering of the impact,
being local, i.e., OCL expressions using the MM element itself, or global, i.e., on OCL
expressions using inherited versions thereof.</p>
        <p>Evaluation. In the following, all changes are systematically evaluated with respect
to these criteria. Please note that the evaluation assumes that changed MM elements
have been used by at least one OCL expression and the worst case scenario is
considered, i.e., changes are evaluated as breaking, if there exists at least one case that breaks
the OCL expression. Since the vast majority of changes have local impact regarding the
scope as long as they concern elements in leaf classes, this criterion is discussed for
exceptional cases, only. The detailed results of the evaluation may be found in Table 2.</p>
        <p>Constructive/Destructive Changes: Constructive changes do not have any impact
on OCL expressions, since newly created elements can not have been referred to. In
contrast, destructive changes always have breaking impact on OCL expressions, since
having a destructive effect on the structure.</p>
        <p>Updative Changes: Updative changes are evaluated on basis of the groups
introduced in Section 2.2, in the following.</p>
        <p>Group 1 Renaming Updates: Although renames do neither affect structural
complexity nor information capacity, their impact is nevertheless breaking, since renamed
elements are no longer accessible under their original name.</p>
        <p>Group 2 Moving Updates: Since moves change the structure of instances by
changing the position of elements, the impact on OCL is always breaking.</p>
        <p>Group 3 Restricting/Relaxing Updates: Although these updates leave the structural
complexity unaffected, they impact information capacity, which may also break the
syntax of OCL expressions. This is since different settings of features such as
ETypedElement.ordered result in different OCL datatypes (cf. Table 1). For example, changing
the feature ordered from true to false implies a change from the OCL collection type
OrderedSet to Set, thereby invalidating, e.g., the usage of the operation first() .</p>
        <p>Group 4 Constructive/Destructive Updates: This group is divided into two
categories concerning their effect with respect to information capacity as already mentioned
EPackage
eEClass
itvEAttribute
c
ruEReference
t
snEDataType
o
CEEnum
EEnumLiteral
EPackage
eEClass
ivEAttribute
t
cuEReference
trseEDataType
DEEnum
EEnumLiteral
ENamedElement
(inherited by:
EClass, EPackage,
EAttribute,
EReference,
EDataType, EEnum
EEnumLiteral)
EPackage
EClassifier
(inherited by:
EClass, EDataType,
EEnum)
EClass</p>
        <p>Change on Ecore-based Metamodel
Ecore Meta-Class</p>
        <p>Name of Atomic</p>
        <p>Change</p>
        <p>Meta-Feature</p>
        <p>State Change of</p>
        <p>Meta-Feature
Create EPackage n.a.</p>
        <p>Create EClass n.a.</p>
        <p>Create EAttribute n.a.</p>
        <p>Create EReference n.a.</p>
        <p>Create EDataType n.a.</p>
        <p>Create EEnum n.a.</p>
        <p>Create EEnumLiteral n.a.</p>
        <p>Delete EPackage n.a.</p>
        <p>Delete EClass n.a.</p>
        <p>Delete EAttribute n.a.</p>
        <p>Delete EReference n.a.</p>
        <p>Delete EDataType n.a.</p>
        <p>Delete EEnum n.a.</p>
        <p>Delete EEnumLiteral n.a.</p>
        <p>Update Name name
n.a.
n.a.
n.a.
n.a.
n.a.
n.a.
n.a.
n.a.
n.a.
n.a.
n.a.
n.a.
n.a.
n.a.
oldName → newName
and oldName &lt;&gt;
newName
Update
ESuperPackage
Update EPackage
eSuperPackage oldeSuperPackage →</p>
        <p>neweSuperPackage
ePackage oldePackage →</p>
        <p>newePackage</p>
        <p>Effect on
Structural
InformaComplex- tion</p>
        <p>ity Capacity
p
rouG Ireesacn ltreauN receseaD Irecasen ltreauN reeasceD i-rekabnong irkeangB lcaLo 1 llaobG</p>
        <p>N
Impact on</p>
        <p>OCL</p>
        <p>Syntax Scope
+
+
+
na.. +
+
+
+
no impact
possible
x x
x x
x x
x x
x x
x x
x x
x x
x x
x x</p>
        <p>Abst
Syn
g
n
i
k
a
e
r
b
n
o
N
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
above. First, updates increasing information capacity are comparable to constructive
changes and thus, non-breaking. Second, updates decreasing information capacity are
comparable to destructive changes and are thus, breaking. The scope of these updates
is local, unless eSuperTypes are removed, affecting inheriting elements and therefore,
having global impact.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Lessons Learned</title>
      <p>This section discusses lessons learned gained from (i) establishing the complete and
minimal set of changes as well as from (ii) investigating impacts.</p>
      <sec id="sec-3-1">
        <title>Universal Applicability of Change Set Derivation Procedure. Although we fo</title>
        <p>cused on one specific meta-MM, i.e., Ecore, the approach of deriving constructive and
destructive changes from concrete meta-classes as well as updative changes from all
meta-features is universally applicable since it might be applied to any meta-metamodel.</p>
      </sec>
      <sec id="sec-3-2">
        <title>Atomic Changes Allow for Non-redundant Impact Analysis. Since the employed</title>
        <p>change set is minimal comprising atomic changes, only, it allows for non-redundant
impact analysis. In contrast, a set of composite changes might include overlaps, e.g.,
“Extract Class” and “Extract Superclass” both include the change “Create EClass”.
Composite changes, however, might held more information to be exploited for co-evolution.</p>
      </sec>
      <sec id="sec-3-3">
        <title>State-Changes of Meta-Features are Pivotal. As might be seen in Table 2, all</title>
        <p>changes of meta-features have been broken down into several cases, explicating
different state changes. This has been necessary, since different state changes entail different
effects on structural complexity and information capacity and, consequently, impact
OCL expressions differently, e.g., the state change of upperBound from 1 to &gt; 1 has
breaking impact, whereas the state change from &gt; 1 to another number &gt; 1 has not.</p>
      </sec>
      <sec id="sec-3-4">
        <title>Increase of Structural Complexity Breaks Models, but not OCL. All construc</title>
        <p>tive changes as well as updates with constructive effects (cf. part of group 4 ) that
increase structural complexity never break OCL expressions. This is in contrast to model
co-evolution where the introduction of required elements has breaking impact on
models, since models rely on a different kind of relationship to their MM, i.e., “conforms
to”, while transformations “domain conform to” their source and target MMs.</p>
      </sec>
      <sec id="sec-3-5">
        <title>Changes not Affecting Structural Complexity may Break OCL. Impact analysis</title>
        <p>revealed that changes not affecting structural complexity, e.g., updates of group 3 ,
may nevertheless induce a syntactical breakage of OCL expressions in certain cases as
explicated above. This is, since changes of group 3 may induce implicit type changes
of the underlying OCL datatypes and by this, change the set of valid operations.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Related Work</title>
      <p>Subsequently, related work is evaluated with respect to its focus, supported changes,
impact analysis on OCL, and support by a prototypical implementation (cf. Table 3).</p>
      <p>
        Regarding the focus of co-evolution in a specific technical space, two groups of
approaches exist. Most closely related, the first group of approaches targets the
coevolution of transformations employing OCL expressions [
        <xref ref-type="bibr" rid="ref13 ref5 ref6">5, 6, 13</xref>
        ] in the technical
space of Ecore, whereby the co-evolution of the OCL-part is considered particularly
      </p>
      <p>Focus of Work
Co-Evolution of Technical Classes of</p>
      <p>Space SCuhpapnogretesd</p>
      <p>Supported Changes
Approach
iLnCOM frrsaonm</p>
      <p>
        T
~ (ATL)
 (ATL)
 (ATL)
by one of them [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], only. More widely related since not basing on Ecore and by this
entailing a different set of changes, but nevertheless facing similar challenges, the
second group concentrates on the co-evolution of OCL constraints as parts of UML class
diagrams [
        <xref ref-type="bibr" rid="ref12 ref14 ref3">3, 12, 14</xref>
        ], with one exception basing on MOF [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>
        Considering the supported changes, six approaches [
        <xref ref-type="bibr" rid="ref12 ref13 ref3 ref5 ref6 ref8">3, 5, 6, 8, 12, 13</xref>
        ] partially
allow for constructive changes, five of those [
        <xref ref-type="bibr" rid="ref12 ref13 ref5 ref6 ref8">5, 6, 8, 12, 13</xref>
        ] partially consider destructive
changes, and updative changes are partially supported by all approaches. Thus, no
approach covers a complete change set. However, the surveyed approaches additionally
consider composite changes, which will be one line of future work as detailed below. By
concentrating on composite changes, no approach presents a minimal change set, which
is different to our work providing a systematically derived, minimal set of changes.
      </p>
      <p>
        Regarding the impact on OCL, four approaches [
        <xref ref-type="bibr" rid="ref13 ref14 ref6 ref8">6, 8, 13, 14</xref>
        ] consider breaking and
non-breaking impacts on the syntax, whereby one of them [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] considers impacts
partially, only. Considering the scope of impact on OCL, no approach regards this. Finally,
six approaches [
        <xref ref-type="bibr" rid="ref13 ref14 ref3 ref5 ref6 ref8">3, 5, 6, 8, 13, 14</xref>
        ] provide an implementation, while a sole approach is
conceptual, only, like the work presented in this paper.
      </p>
      <p>In summary, one might see that the work presented in this paper is unique with
respect to the complete and minimal set of changes and a systematic in-depth
investigation of impacts. This is in contrast to related approaches, which rather concentrate on
fully supporting co-evolution for smaller sets of selected composite changes.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion &amp; Future Work</title>
      <p>
        This paper provided a systematic investigation of impacts of MM evolution on OCL
expressions in model transformations. Basing thereupon, several lines of future work
remain open. First, resolution actions to resolve violations caused by MM evolution
have to be identified. Their goal will be to perform local repairing by establishing a
view simulating the old MM version, e.g., in case of decreasing the upperBound from
&gt; 1 to 1, the now single-valued feature will be wrapped into a collection. In case that
multiple changes have been performed on a single MM-element, the resolution actions
should be chained analogous to the idea presented in [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. This chaining will represent
a first step towards the support for composite changes out of atomic changes, which will
be the next step in our research agenda. Moreover, we plan to investigate impacts and
resolution actions for complete transformation definitions, i.e., not only parts written
in OCL, thereby also focusing on impacts caused by an evolution of the target MM.
Finally, we will implement the conceptual approach presented in this paper.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. Be´zivin, J.:
          <source>On the Unification Power of Models. SoSym</source>
          <volume>4</volume>
          (
          <issue>2</issue>
          ) (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Cabot</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gogolla</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Object Constraint Language (OCL): A Definitive Guide</article-title>
          . In:
          <article-title>Formal Methods for Model-Driven Engineering</article-title>
          . Springer (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Correa</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Werner</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Applying Refactoring Techniques to UML/OCL Models</article-title>
          .
          <source>In: UML 2004</source>
          . Springer (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>Di</given-names>
            <surname>Ruscio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Iovino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            ,
            <surname>Pierantonio</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          :
          <article-title>Evolutionary Togetherness: How to Manage Coupled Evolution in Metamodeling Ecosystems</article-title>
          . In: ICGT. Springer (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5. Garce´s,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Vara</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Jouault</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Marcos</surname>
          </string-name>
          , E.:
          <article-title>Adapting transformations to metamodel changes via external transformation composition</article-title>
          .
          <source>SoSym</source>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. Garc´ıa, J.,
          <string-name>
            <surname>Diaz</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Azanza</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Model Transformation Co-evolution: A Semi-automatic Approach</article-title>
          .
          <source>In: Software Language Engineering</source>
          . Springer (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Gruschko</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kolovos</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paige</surname>
          </string-name>
          , R.:
          <article-title>Towards Synchronizing Models with Evolving Metamodels</article-title>
          .
          <source>In: Int. Workshop on Model-Driven Software Evolution</source>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Hassam</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sadou</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gloahec</surname>
            ,
            <given-names>V.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fleurquin</surname>
          </string-name>
          , R.:
          <article-title>Assistance System for OCL Constraints Adaptation during Metamodel Evolution</article-title>
          . In: SMR. IEEE (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. Herrmannsdo¨rfer,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Wachsmuth</surname>
          </string-name>
          , G.:
          <article-title>Coupled Evolution of Software Metamodels and Models</article-title>
          .
          <source>In: Evolving Software Systems</source>
          . Springer (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Iovino</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pierantonio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Malavolta</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>On the Impact Significance of Metamodel Evolution in MDE</article-title>
          .
          <source>JoT</source>
          <volume>11</volume>
          (
          <issue>3</issue>
          ) (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Jouault</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Allilaire</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          , Be´zivin, J.,
          <string-name>
            <surname>Kurtev</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>ATL: A model transformation tool</article-title>
          .
          <source>Science of Computer Programming</source>
          <volume>72</volume>
          (
          <issue>1-2</issue>
          ) (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Kosiuczenko</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Redesign of UML class diagrams: a formal approach</article-title>
          .
          <source>SoSym</source>
          <volume>8</volume>
          (
          <issue>2</issue>
          ) (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Kruse</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>On the Use of Operators for the Co-Evolution of Metamodels and Transformations</article-title>
          .
          <source>In: Int. Workshop on Models and Evolution</source>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Markovic</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Baar</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Refactoring OCL annotated UML class diagrams</article-title>
          .
          <source>SoSym</source>
          <volume>7</volume>
          (
          <issue>1</issue>
          ) (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. Me´ndez,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Etien</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Muller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Casallas</surname>
          </string-name>
          , R.:
          <article-title>Towards Transformation Migration After Metamodel Evolution</article-title>
          .
          <source>In: Int. Workshop on Models and Evolution</source>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Miller</surname>
            ,
            <given-names>R.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ioannidis</surname>
            ,
            <given-names>Y.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ramakrishnan</surname>
            ,
            <given-names>R.:</given-names>
          </string-name>
          <article-title>The use of information capacity in schema integration and translation</article-title>
          .
          <source>In: VLDB</source>
          . vol.
          <volume>93</volume>
          . Morgan Kaufmann (
          <year>1993</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17. Object Management Group:
          <article-title>Meta Object Facility (MOF) 2</article-title>
          .0 Query/View/Transformation (QVT). http://www.omg.org/spec/QVT/1.1 (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18. Object Management Group:
          <article-title>OMG Object Contraint Language (OCL)</article-title>
          . http://www.omg.org/spec/OCL/2.4 (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Rossi</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brinkkemper</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <source>Complexity Metrics for Systems Development Methods and Techniques. Information Systems</source>
          <volume>21</volume>
          (
          <issue>2</issue>
          ) (
          <year>1996</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20. Scho¨nbo¨ck, J.,
          <string-name>
            <surname>Kusel</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Etzlstorfer</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kapsammer</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schwinger</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wischenbart</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>CARE - A Constraint-Based Approach for Re-Establishing ConformanceRelationships</article-title>
          . In: APCCM (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kusel</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Retschitzegger</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          , Scho¨nbo¨ck, J.,
          <string-name>
            <surname>Schwinger</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          , Sa´nchez Cuadrado, J.,
          <string-name>
            <surname>Guerra</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Lara</surname>
          </string-name>
          , J.:
          <article-title>Reusing Model Transformations across Heterogeneous Metamodels</article-title>
          . In: Int. Workshop on Multi-Paradigm
          <string-name>
            <surname>Modeling</surname>
          </string-name>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , Mart´ınez,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Jouault</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Cabot</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.:</surname>
          </string-name>
          <article-title>A Catalog of Refactoring for Model-toModel Transformations</article-title>
          .
          <source>JOT</source>
          <volume>11</volume>
          (
          <issue>2</issue>
          ) (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>