<!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 Generic Framework for Realizing Semantic Model Differencing Operators?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Philip Langer</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tanja Mayerhofer</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Gerti Kappel</string-name>
          <email>gertig@big.tuwien.ac.at</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Business Informatics Group, Vienna University of Technology</institution>
          ,
          <addr-line>Vienna</addr-line>
          ,
          <country country="AT">Austria</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>syntax representation. Thereby, syntactic differences among models can be revealed. However, syntactic differences can only approximate semantic differences among models. We propose a generic framework for realizing semantic model differencing operators revealing semantic differences among models [7]. Therefore, we utilize the behavioral semantics specification of the considered modeling language to execute the models to be compared and capture execution traces providing semantic interpretations over the models. By comparing these semantic interpretations, semantic differences among models can be identified.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Managing the evolution of models requires techniques for identifying differences among
independently developed or consecutive versions of models. The majority of existing
model differencing approaches compare models based on their abstract syntax
representation. This can be done in a generic manner by incorporating the metamodel to
which the compared models comply into the differencing algorithm [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Thereby, the
differencing algorithm first identifies corresponding model elements among the
models to be compared and then performs a fine-grained comparison of all corresponding
model elements. This results in a set of syntactic differences among the models, which
are usually represented in terms of edit operations, such as add, delete, and update.
      </p>
      <p>
        Syntactic differences among models constitute valuable and efficiently processable
information sufficient for several application domains. However, they can only
approximate semantic differences among models. As pointed out by Maoz et al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], few
syntactic differences among models may induce very different semantics and syntactically
different models may still induce the same semantics. Semantic model differencing
enables several additional analyses compared to syntactic differencing, such as the
verification of semantic preservation of changes like refactorings and the identification of
? This work is partly funded by the European Commission under the ICT Policy Support
Programme grant no. 317859 and by the Austrian Federal Ministry of Transport, Innovation and
Technology (BMVIT) under the FFG BRIDGE program grant no. 832160.
semantic conflicts among concurrent changes. Moreover, the identification of
semantic differences among models provides the basis for comprehending the evolution of
a model, as it enables to reason about the meaning of a change, that is the impact a
syntactic change has on a model’s semantics.
      </p>
      <p>
        We propose a generic framework that enables to realize semantic model
differencing operators for specific modeling languages [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. According to the idea of generic
syntactic differencing [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], we propose to utilize the behavioral semantics specification of a
modeling language for supporting semantic model differencing. Thereby, we exploit the
executability provided by the behavioral semantics specification to execute the models
to be compared and to obtain execution traces. As these execution traces constitute
semantic interpretations over the compared models, they can be used to identify semantic
differences among the models. Therefore, the execution traces are syntactically
compared by applying dedicated match rules defining which syntactic differences among
them constitute semantic differences among the compared models. Execution traces,
which lead to the identification of semantic differences constitute diff witnesses, that
are manifestations of the semantic differences. They enable modelers to reason about
a model’s evolution and can be further processed for carrying out model management
activities, such as model versioning.
      </p>
      <p>In Section 2, we discuss existing work in semantic model differencing, before we
introduce our approach in Section 3. Subsequently, we discuss in Section 4 an
implementation of our approach for an existing semantics specification language and present
evaluation results for this implementation. Finally, we conclude the paper in Section 5.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        Significant advances in semantic model differencing have been recently achieved by
Maoz et al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], who proposed an approach for defining enumerative semantic
differencing operators. In this approach, two models to be compared are translated into an
adequate semantic domain whereupon dedicated algorithms are used to calculate semantic
differences in terms of diff witnesses. By applying this approach, they defined
differencing operators for UML class diagrams and UML activity diagrams called CDDiff [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]
and ADDiff [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. CDDiff computes object diagrams constituting valid instances of only
one of two compared class diagrams. ADDiff calculates execution traces possible in
only one of two compared activity diagrams. Gerth et al. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] developed an approach
for detecting semantically equivalent fragments of business process models. Therefore,
business process models are translated into normalized process model terms, which
are subsequently compared by syntactic differencing techniques. Reiter et al. [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]
presented an approach for detecting semantic conflicts among change operations. In their
approach, models are translated into so-called semantic views, which are then compared
by syntactic differencing techniques. Fahrenberg et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] propose an approach for
defining non-enumerative semantic differencing operators. In their approach, the
models to be compared are translated into a semantic domain having an algebraic structure
that enables to define the difference among two models in terms of an operator on the
semantic domain. They applied this approach to define semantic differencing operators
for feature models and automata specifications [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], as well as UML class diagrams [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
Syntactic Differencing
M1
M2
      </p>
      <p>Syntactic
Matching
Match
Rules
Syn</p>
      <sec id="sec-2-1">
        <title>CsMy1n,M2</title>
        <p>M1
M2
Model
Execution
IM1
IM2
TM1
TM2
TM1
TM2</p>
      </sec>
      <sec id="sec-2-2">
        <title>CsMy1n,M2</title>
        <p>Semantic
Matching
Match
Rules
Sem</p>
      </sec>
      <sec id="sec-2-3">
        <title>CsMe1m,M2</title>
        <p>C … Correspondence I … Input M … Model T … Trace</p>
        <p>Fig. 1. Overview of semantic model differencing framework
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Semantic Model Differencing</title>
      <p>
        While the approaches presented by Maoz et al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and Fahrenberg et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] are
generally applicable for developing semantic differencing operators, doing so poses the
following major challenge. For developing a semantic differencing operator for a
specific modeling language, one has to develop an often non-trivial transformation into a
semantic domain encoding the semantics of the considered modeling language,
implement an analysis algorithm dedicated to semantic differencing in this semantic domain,
and translate the results back to the modeling language.
      </p>
      <p>
        To mitigate this challenge, we propose a generic framework for realizing
semantic model differencing operators for specific modeling languages [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. This framework
utilizes the behavioral semantics specification of a modeling language, which can be
defined using existing semantics specification languages, such as xMOF [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ],
Kermeta [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], or DMM [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], for reasoning about semantic differences among models. Such
semantics specifications can be used for various application domains, such as model
simulation, verification, and validation. We aim at utilizing such semantics
specifications also for semantic model differencing. Therefore, we exploit the executability
provided by behavioral semantics specifications enabling to execute the models to be
compared and obtain execution traces constituting semantic interpretations over the models.
These semantic interpretations act as basis for identifying semantic differences.
      </p>
      <p>Figure 1 depicts an overview of our semantic model differencing framework. In
the syntactic matching step, syntactically corresponding elements of the two compared
models M1 and M2 are identified based on syntactic match rules M atchRulesSyn.
Thereby, syntactic correspondences CMsy1n;M2 between the models are established. In the
model execution step, the models M1 and M2 are executed for relevant inputs IM1 and
IM2 based on the behavioral semantics specification of the modeling language. During
the model execution, the traces TM1 and TM2 are captured, which constitute semantic
interpretations over the models. In the semantic matching step, the captured traces TM1
and TM2 are compared based on semantic match rules M atchRulesSem establishing
semantic correspondences CMse1m;M2 . Thereby, two models M1 and M2 are semantically
equivalent, if the traces captured during their execution TM1 and TM2 match according
to the semantic match rules.</p>
      <p>Our semantic model differencing approach is generic, as it enables to implement
semantic differencing operators for any modeling languages whose behavioral
semantics is defined such that conforming models can be executed and execution traces can
be obtained. Only the semantic match rules are specific to the realization of a semantic
differencing operator. This is an important differentiator of our approach compared to
currently existing semantic model differencing approaches.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Implementation</title>
      <p>
        We implemented the proposed semantic model differencing framework for the
operational semantics specification language xMOF [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. xMOF integrates Ecore with
UML’s action language enabling the definition of a modeling language’s behavioral
semantics in terms of UML activities. Thereby, models can be executed by executing the
activities defined in the semantics specification using the fUML virtual machine [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
      </p>
      <p>
        In our approach, execution traces constitute the basis for reasoning about semantic
differences among models. We defined a generic trace format that serves as interface of
our semantic differencing framework. Hence, our framework does not directly depend
on a specific semantics specification language or virtual machine, but only operates on
traces conforming to this trace format. For fUML, a dedicated trace model exists [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ],
which enables to create a trace conform to the defined format. The execution traces
are compared according to semantic match rules, which define based on the runtime
information captured in the traces, which model elements semantically correspond to
each other and whether two models are semantically equivalent. For defining semantic
match rules, our implementation integrates the model comparison language ECL [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        We evaluated the expressive power of our generic model differencing framework by
carrying out two case studies based on our implementation. In these case studies, we
realized semantic differencing operators for UML activity diagrams and UML class
diagrams according to ADDiff [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and CDDiff [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. This enabled us to assess whether our
generic framework provides sufficient expressive power to define non-trivial semantic
differencing operators. Therefore, we implemented the semantics of UML activity
diagrams and UML class diagrams using xMOF as well as semantic match rules using
ECL, both according to the definitions provided by Maoz et al. The semantic
differencing operators defined with our framework enabled us to detect the same diff witnesses
as Maoz et al. among their case study example models. Thus, we conclude from the
case studies, that the expressive power of our generic semantic differencing framework
is sufficient for defining non-trivial semantic differencing operators. More details about
the case studies including performance measurements may be found in [
        <xref ref-type="bibr" rid="ref13 ref7">7,13</xref>
        ].
5
      </p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>In this paper, we presented a generic framework for realizing semantic model
differencing operators. In contrast to existing approaches, our approach follows the spirit of
generic syntactic model differencing by employing the behavioral semantics
specification of a modeling language to reason about semantic differences among models. Thus,
non-trivial transformations into a semantic domain specifically required for enabling
semantic differencing can be avoided. We discussed how our framework can be
realized for the operational semantics specification language xMOF. The evaluation of our
approach based on two case studies revealed that our approach is expressive enough to
define semantic differencing operators for specific modeling languages.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>M.</given-names>
            <surname>Alanen</surname>
          </string-name>
          and
          <string-name>
            <surname>I. Porres.</surname>
          </string-name>
          <article-title>Difference and Union of Models</article-title>
          .
          <source>In Proc. of 6th Int. Conf. on the Unified Modeling Language (UML'03)</source>
          , volume
          <volume>2863</volume>
          <source>of LNCS</source>
          , pages
          <fpage>2</fpage>
          -
          <lpage>17</lpage>
          . Springer,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>G.</given-names>
            <surname>Engels</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. H.</given-names>
            <surname>Hausmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Heckel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Sauer</surname>
          </string-name>
          .
          <article-title>Dynamic Meta Modeling: A Graphical Approach to the Operational Semantics of Behavioral Diagrams in UML</article-title>
          .
          <source>In Proc. of 3rd Int. Conf. on the Unified Modeling Language (UML'00)</source>
          , volume
          <volume>1939</volume>
          <source>of LNCS</source>
          , pages
          <fpage>323</fpage>
          -
          <lpage>337</lpage>
          . Springer,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>U.</given-names>
            <surname>Fahrenberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Acher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Legay</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Wasowski</surname>
          </string-name>
          .
          <article-title>Sound Merging and Differencing for Class Diagrams</article-title>
          .
          <source>In Proc. of 17th Int. Conf. on Fundamental Approaches to Software Engineering (FASE'14)</source>
          , volume
          <volume>8411</volume>
          <source>of LNCS</source>
          , pages
          <fpage>63</fpage>
          -
          <lpage>78</lpage>
          . Springer,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>U.</given-names>
            <surname>Fahrenberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Legay</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Wasowski</surname>
          </string-name>
          . Vision Paper:
          <article-title>Make a Difference! (Semantically)</article-title>
          .
          <source>In Proc. of 14th Int. Conf. on Model Driven Engineering Languages and Systems (MODELS'11)</source>
          , volume
          <volume>6981</volume>
          <source>of LNCS</source>
          , pages
          <fpage>490</fpage>
          -
          <lpage>500</lpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>C.</given-names>
            <surname>Gerth</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Ku</surname>
          </string-name>
          ¨ster, M. Luckey, and
          <string-name>
            <given-names>G.</given-names>
            <surname>Engels</surname>
          </string-name>
          .
          <article-title>Precise Detection of Conflicting Change Operations Using Process Model Terms</article-title>
          .
          <source>In Proc. of 13th Int. Conf. on Model Driven Engineering Languages and Systems (MODELS'10)</source>
          , volume
          <volume>6395</volume>
          <source>of LNCS</source>
          , pages
          <fpage>93</fpage>
          -
          <lpage>107</lpage>
          . Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>D.</given-names>
            <surname>Kolovos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Rose</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          <article-title>Garc´ıa-Dom´ınguez, and</article-title>
          <string-name>
            <given-names>R.</given-names>
            <surname>Paige</surname>
          </string-name>
          .
          <article-title>The Epsilon Book</article-title>
          . Online available at: http://www.eclipse.org/epsilon/doc/book, March
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>P.</given-names>
            <surname>Langer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Mayerhofer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Kappel. Semantic Model Differencing Utilizing Behavioral Semantics</surname>
          </string-name>
          <article-title>Specifications</article-title>
          .
          <source>In Proc. of 17th Int. Conf. on Model Driven Engineering Languages and Systems (MODELS'14)</source>
          , volume
          <volume>8767</volume>
          <source>of LNCS</source>
          , pages
          <fpage>116</fpage>
          -
          <lpage>132</lpage>
          . Springer,
          <year>2014</year>
          .
          <article-title>Accepted for publication</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>S.</given-names>
            <surname>Maoz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. O.</given-names>
            <surname>Ringert</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Rumpe</surname>
          </string-name>
          .
          <article-title>A Manifesto for Semantic Model Differencing</article-title>
          .
          <source>In Models in Software Engineering: Workshops and Symposia at MODELS</source>
          <year>2010</year>
          ,
          <article-title>Reports and Revised Selected Papers</article-title>
          , volume
          <volume>6627</volume>
          <source>of LNCS</source>
          , pages
          <fpage>194</fpage>
          -
          <lpage>203</lpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>S.</given-names>
            <surname>Maoz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. O.</given-names>
            <surname>Ringert</surname>
          </string-name>
          , and
          <string-name>
            <surname>B. Rumpe.</surname>
          </string-name>
          <article-title>ADDiff: Semantic Differencing for Activity Diagrams</article-title>
          .
          <source>In Proc. of 19th ACM SIGSOFT Symposium and 13th European Conf. on Foundations of Software Engineering (ESEC/FSE'11)</source>
          , pages
          <fpage>179</fpage>
          -
          <lpage>189</lpage>
          . ACM,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>S.</given-names>
            <surname>Maoz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. O.</given-names>
            <surname>Ringert</surname>
          </string-name>
          , and
          <string-name>
            <surname>B. Rumpe.</surname>
          </string-name>
          <article-title>CDDiff: Semantic Differencing for Class Diagrams</article-title>
          .
          <source>In Proc. of 25th European Conf. on Object-Oriented Programming (ECOOP'11)</source>
          , volume
          <volume>6813</volume>
          <source>of LNCS</source>
          , pages
          <fpage>230</fpage>
          -
          <lpage>254</lpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. T. Mayerhofer,
          <string-name>
            <given-names>P.</given-names>
            <surname>Langer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Kappel</surname>
          </string-name>
          .
          <article-title>A Runtime Model for fUML</article-title>
          .
          <source>In Proc. of 7th Workshop on Models@run.time (MRT'12)</source>
          , pages
          <fpage>53</fpage>
          -
          <lpage>58</lpage>
          . ACM,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. T. Mayerhofer,
          <string-name>
            <given-names>P.</given-names>
            <surname>Langer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Kappel</surname>
          </string-name>
          . xMOF:
          <article-title>Executable DSMLs Based on fUML</article-title>
          .
          <source>In Proc. of 6th Int. Conf. on Software Language Engineering (SLE'13)</source>
          , volume
          <volume>8225</volume>
          <source>of LNCS</source>
          , pages
          <fpage>56</fpage>
          -
          <lpage>75</lpage>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <article-title>Moliz project</article-title>
          . http://www.modelexecution.org.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. P.
          <article-title>-</article-title>
          <string-name>
            <surname>A. Muller</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Fleurey</surname>
          </string-name>
          , and J.
          <string-name>
            <surname>-M. Je</surname>
          </string-name>
          <article-title>´ze´quel. Weaving Executability into Object-Oriented Meta-Languages</article-title>
          .
          <source>In Proc. of 8th Int. C. on Model Driven Engineering Languages and Systems (MODELS'05)</source>
          , volume
          <volume>3713</volume>
          <source>of LNCS</source>
          , pages
          <fpage>264</fpage>
          -
          <lpage>278</lpage>
          . Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. Object Management Group.
          <article-title>Semantics of a Foundational Subset for Executable UML Models (fUML), Version 1</article-title>
          .0,
          <year>February 2011</year>
          . http://www.omg.org/spec/FUML/1.0.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>T.</given-names>
            <surname>Reiter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Altmanninger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Bergmayr</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Schwinger</surname>
          </string-name>
          , and
          <string-name>
            <surname>G. Kotsis.</surname>
          </string-name>
          <article-title>Models in Conflict - Detection of Semantic Conflicts in Model-based Development</article-title>
          .
          <source>In Proc. of 3rd Int. Workshop on Model-Driven Enterprise Information Systems (MDEIS'07)</source>
          , pages
          <fpage>29</fpage>
          -
          <lpage>40</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>