<!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>Using fUML as Semantics Specification Language in Model Driven Engineering</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Business Informatics Group, Vienna University of Technology</institution>
          ,
          <country country="AT">Austria</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In model-driven engineering (MDE), software is developed based on models which hence constitute the central artifacts in the software development process. Consequently, tools supporting MDE, such as model editors, interpreters, and debuggers are crucial in MDE. For developing such tools efficiently, modeling languages have to be defined formally. While for formally defining a modeling language's syntax standard means exist, this is not the case for defining its semantics. This impedes the efficient development of tools which build upon the modeling language's semantics, such as model interpreters, debuggers, and testing environments. To overcome this limitation, we present an approach for formally defining the semantics of modeling languages making use of the standardized and UML 2 compliant action language foundational UML (fUML).</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Over the past years, the software development methodology model-driven
engineering (MDE) gained significant popularity as it is a promising approach to address the
growing complexity of the software systems that have to be built today [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. In MDE,
models are specified using modeling languages to define the structure and behavior of
the software to be built. Model transformations and code generation are used to
generate different kinds of software artifacts from these models, such as source code and
deployment scripts. Because models constitute the central artifacts in MDE, its success
depends significantly on the availability of adequate tool support for creating,
exploring, analyzing, and utilizing models. In order to develop such tools1 in an efficient way,
modeling languages (i.e., their syntax and semantics) have to be defined formally [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        The abstract syntax of a modeling language defines the modeling language’s
concepts and their relations. For formally defining the abstract syntax, metamodels are the
standard means. MOF [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] constitutes a standardized, well established, and widely
accepted metamodeling language for this purpose. Furthermore, MOF laid the ground
for the emergence of a variety of tools building upon the abstract syntax definition of a
modeling language, such as techniques for deriving modeling editors from a metamodel
and generic components for model serialization, comparison, and transformation.
      </p>
      <p>
        The behavioral semantics of a modeling language defines the execution behavior
of conforming models. A formal specification of the behavioral semantics is not only
needed for precisely and unambiguously defining the behavior of models, but also to
1 In the remainder of this paper we will refer to tools for MDE, which are based on the definition
of a modeling language, as model-based tools.
establish the basis for an efficient development of model-based tools which build upon
the behavioral semantics of a modeling language, such as model interpreters, debuggers,
and testing environments [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Having the behavioral semantics of a modeling language
explicitly and formally defined enables to automate the development of such tools.
Unfortunately, no standard way for defining a modeling language’s behavioral semantics
explicitly and formally has been established yet. Hence, formalizing the behavioral
semantics of modeling languages remains a core challenge in MDE [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. To address this
challenge we propose to use the standardized and UML 2 compliant action language
foundational UML (fUML) [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] as semantics specification language in MDE.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Background and Related Work</title>
      <p>
        The behavioral semantics of many modeling languages, including widely adopted
languages such as UML [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], are only informally defined in natural language. This may
lead to several problems, such as to ambiguities in the semantic meaning of the
language’s modeling concepts. Furthermore, the behavior of models conforming to the
modeling language cannot be formally analyzed and the models cannot be executed.
Moreover, building tools, such as model debuggers and interpreters, is problematic if
the language’s semantics is only defined in natural language.
      </p>
      <p>A commonly used approach to make models executable is to utilize code generators
or to develop model interpreters with general-purpose programming languages (GPLs).
However, in this approach the behavioral semantics is encoded in the manually
constructed code generation templates or model interpreter implementations and hence is
only defined implicitly. A problem that arises is that the behavior of models can again
not be analyzed easily. Furthermore, the semantics can hardly be extended and reused
which makes it costly to create and maintain.</p>
      <p>To overcome these limitations, adequate techniques for formally and explicitly
specifying the behavioral semantics of modeling languages are needed. This need stimulated
intensive research resulting in various approaches proposed in the past which can be
divided into translational approaches and operational approaches.</p>
      <p>
        In translational approaches, models conforming to a modeling language are
translated into models conforming to another language whose semantics is formally and
explicitly defined. The advantage of this approach is that tools available for the target
language can be used for the translated models. Its drawback, however, is that a
translation from the source into the target language as well as a mapping of results obtained for
the translated models to the original models have to be developed. Examples for
translational approaches are the work of Chen et al. [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and Di Ruscio et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] using the
Abstract State Machine formalism as target language, Rivera et al. [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] using Maude,
Ku¨hne et al. [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] using Petri nets, and Rumpe et al. [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] using their System Model.
      </p>
      <p>
        In the operational approach, the behavioral semantics is directly introduced into the
modeling language without moving to another language. This can be done by utilizing
graph transformations as for instance proposed by Engels et al. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Another way is to
introduce operations into the metaclasses of a modeling language’s metamodel and
provide their implementations using a dedicated action language. Several action languages
and GPLs have been proposed for this purpose, such as Kermeta [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], Smalltalk [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ],
xCore [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], and EOL [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
    </sec>
    <sec id="sec-3">
      <title>Approach and Uniqueness</title>
      <p>
        Despite the fact that several approaches for formally and explicitly specifying the
behavioral semantics of modeling languages exist, none of these approaches is widely
adopted especially in industry. Moreover, the challenge of automatically generating
model-based tools from semantics specifications is only addressed by few approaches
which provide only partial solutions [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. We advocate for operational semantics
specification approaches because instead of translating models into a different language,
the behavioral semantics is directly attached to the modeling language. We also believe
that a standardized action language should be employed for this purpose. The action
languages proposed until now are either GPLs (e.g., Smalltalk), proprietary languages
(e.g., Kermeta), or adapted versions of standardized languages (e.g., xOCL integrated
in xCore). In contrast, we propose to use fUML, a standardized and UML 2 compliant
action language, for specifying the behavioral semantics of modeling languages. fUML
defines the semantics of a subset of UML consisting of concepts for modeling classes
and activities formally and provides a virtual machine (VM) for executing compliant
models. As both MOF and fUML are standardized by OMG, fUML may be considered
as promising candidate for becoming a standardized action language in metamodeling.
      </p>
      <p>To use fUML as semantics specification language and leverage the semantics
specification of a modeling language to execute conforming models, the following challenges
had to be addressed. First, fUML had to be integrated with existing metamodeling
languages. Second, state-of-the-art metamodeling methodologies and environments had
to be adequately extended to support a systematic and efficient development of
behavioral semantics specifications based on fUML. Third, a generic model interpreter had
to be developed to enable the execution of models based on the behavioral semantics
specification of the modeling language they conform to.</p>
      <p>
        To enable the usage of fUML for specifying the behavioral semantics of modeling
languages, we identified two strategies: a transformation-based and an integration-based
strategy [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Because of the better integration with existing metamodeling
environments, we decided to apply the integration-based strategy. In this approach, a
metamodeling language is extended with the behavioral part of fUML in a way that enables
to specify the behavior of the operations introduced for the metaclasses of a modeling
language using fUML activities. By applying this approach we extended Ecore, which
is integrated with the Eclipse Modeling Framework (EMF) [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] and which constitutes
the most prominent implementation of MOF. Thereby we obtained a new metamodeling
language which we called executable MOF (xMOF) that enables to specify a modeling
language’s abstract syntax using the modeling concepts stemming from Ecore and its
behavioral semantics using the modeling concepts stemming from fUML.
      </p>
      <p>Based on xMOF we elaborated a tool-supported methodology for developing the
behavioral semantics of modeling languages (cf. Figure 1). The input for the semantics
specification is the Ecore-based metamodel of a modeling language. As preparatory
step we automatically generate a subclass for each metaclass defined in the metamodel.
The language designer then adds operations and their implementations in the form of
activities to these subclasses, which specify the behavior of the metaclasses. By
subclassing the metaclasses for specifying their behavioral semantics, the behavioral
semantics specification is clearly separated from the abstract syntax specification. This
Semantics Specification</p>
      <p>Syntax
(Ecore)
Model Execution
Modeling Language Definition</p>
      <p>(xMOF)
Syntax Semantics
(Ecore) (fUML)</p>
      <p>Semantics
Initialization
Model</p>
      <p>Semantics
(fUML)
[initial]
xMOF2fUML
Conversion
Instance
Conversion</p>
      <p>Semantics</p>
      <p>Specification
fUML Model
fUML Input</p>
      <p>Values</p>
      <p>Semantics
(fUML)
[complete]
Model
Execution</p>
      <p>Execution
Output
Execution</p>
      <p>Trace
Execution
Events</p>
      <p>Caption:</p>
      <p>Artifact</p>
      <p>Task
Automated</p>
      <p>Task</p>
      <p>Manual
in/out relation
Model-based Tools</p>
      <p>Model
Debugging</p>
      <p>Model
Testing
Model
Analysis
…
fosters reusability and flexibility in the semantics specification and facilitates the
seamless integration of the development of a modeling language’s behavioral semantics into
existing metamodeling methodologies and environments which are by our methodology
only extended concerning the semantics specification.</p>
      <p>
        Having the behavioral semantics of a modeling language defined using xMOF, our
approach enables to execute conforming models based on this semantics specification
by leveraging the fUML VM2. For this, we automatically convert the modeling
language definition into an fUML compliant model. In this conversion, metaclasses are
converted into fUML classes and the implementations of the metaclasses’ operations
(in the form of activities) are converted into fUML activities. Furthermore, the
elements of the model to be executed are converted into corresponding fUML objects, i.e.,
instances of the fUML classes generated for the metaclasses of the model elements, and
are provided as input to the fUML VM. The fUML VM interprets the activities and
manipulates the objects, which represent the executed model, accordingly. The primary
output of the model execution is the set of manipulated objects which represents the
runtime state of the executed model after the model execution finished and is provided
to the user in the form of model annotations. For enabling the observation and
analysis of a model execution being carried out we extended the fUML VM in previous
work [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] with an event mechanism and a trace model. These outputs of the model
execution can be utilized by model-based tools building upon the modeling language’s
behavioral semantics, such as model debuggers, testing environments, and analyzers.
      </p>
    </sec>
    <sec id="sec-4">
      <title>4 Results and Contributions</title>
      <p>
        Formalizing the behavioral semantics of modeling languages and leveraging this
formalization for automatically generating model-based tools building upon the modeling
languages’ semantics is an open challenge in MDE [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Our previous research aiming
at addressing this challenge resulted in the following contributions3. (i) A strategy was
2 Our implementation is based on the reference implementation of the fUML VM provided at
http://fuml.modeldriven.org
3 The metamodel of xMOF, the source code of our tool support, as well as demos and case
studies can be found at our project website http://www.modelexecution.org.
proposed to integrate the standardized action language fUML with existing
metamodeling languages enabling the specification of the behavioral semantics of modeling
languages in an operational way. This strategy was applied to integrate fUML with Ecore,
which is the most prominent implementation of MOF, resulting in the metamodeling
language xMOF. (ii) Based on xMOF, a tool-supported methodology was elaborated
for developing behavioral semantics specifications of modeling languages which
integrates seamlessly with existing metamodeling methodologies and environments. (iii) A
generic model interpreter was developed which enables the execution of models based
on the modeling language’s semantics specification by leveraging the fUML VM.
      </p>
      <p>To qualitatively evaluate the applicability of our semantics specification approach
based on fUML, we carried out case studies in which we developed the behavioral
semantics specifications of distinct modeling languages using xMOF. In summary, the
case studies confirmed that the proposed metamodeling language xMOF as well as its
accompanying tool-supported methodology are applicable for defining the behavioral
semantics of different kinds of modeling languages. Moreover, by utilizing the generic
model interpreter based on the fUML VM it was possible to execute models
conforming to the modeling languages by interpreting their semantics specifications. Regarding
the suitability of fUML as action language for metamodeling we come to the
conclusion that due to its object-oriented and imperative nature, fUML is highly suitable as
semantics specification language. The case studies also revealed possible improvements
of our approach regarding the reusability of semantics specifications and tooling.
Furthermore, we recognized that the runtime information about the execution of a model
provided by our generic model interpreter in the form of execution events and an
execution trace helps in debugging and analyzing the xMOF-based semantics specification as
they provide detailed information about the executed fUML activities contained in the
semantics specification. However, to also provide this detailed runtime information to
the modeler, the execution events and trace should be tailored to the respective modeling
language as the modeler is only concerned with the concepts of the modeling language
and not with its semantics specification in terms of fUML activities.</p>
    </sec>
    <sec id="sec-5">
      <title>5 Conclusion and Future Work</title>
      <p>Our research is concerned with formally specifying the behavioral semantics of
modeling languages using fUML and utilizing the semantics specifications for efficiently
developing model-based tools building upon the behavioral semantics of modeling
languages. Our implementation of a generic model interpreter capable of executing models
based on the semantics specification of the used modeling language defined with fUML
is only the first step towards addressing the challenge of generating model-based tools
from a modeling language’s semantics specification. We will, in future work, further
investigate methods for generating model-based tools from fUML-based semantics
specifications. In particular, we are currently investigating the semi-automatic generation
of model debuggers. Furthermore, we will carry out a large-scale case study applying
our proposed semantics specification approach to fUML itself. This case study serves
two purposes; first, we will evaluate the applicability and scalability of our semantics
specification approach and second, having defined the behavioral semantics of fUML in
fUML enables to bootstrap fUML’s model execution capabilities for instance to support
a larger subset of UML without extending the fUML VM itself.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>B. R.</given-names>
            <surname>Bryant</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Gray</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mernik</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. J.</given-names>
            <surname>Clarke</surname>
          </string-name>
          , R. B. France, and
          <string-name>
            <given-names>G.</given-names>
            <surname>Karsai</surname>
          </string-name>
          .
          <article-title>Challenges and Directions in Formalizing the Semantics of Modeling Languages</article-title>
          .
          <source>Computer Science and Information Systems</source>
          ,
          <volume>8</volume>
          (
          <issue>2</issue>
          ):
          <fpage>225</fpage>
          -
          <lpage>253</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>K.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Sztipanovits</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Abdelwalhed</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E.</given-names>
            <surname>Jackson</surname>
          </string-name>
          .
          <article-title>Semantic Anchoring with Model Transformations</article-title>
          .
          <source>In Proceedings of the 1st European Conference on Model Driven Architecture - Foundations and Applications (ECMDA-FA)</source>
          , pages
          <fpage>115</fpage>
          -
          <lpage>129</lpage>
          . Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>T.</given-names>
            <surname>Clark</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Evans</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Sammut</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Willans</surname>
          </string-name>
          . Applied Metamodelling:
          <article-title>A Foundation for Language Driven Development</article-title>
          . Ceteva, Sheffield,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>D.</given-names>
            <surname>Di Ruscio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Jouault</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Kurtev</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.</surname>
          </string-name>
          <article-title>Be´zivin, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Pierantonio</surname>
          </string-name>
          .
          <article-title>Extending AMMA for Supporting Dynamic Semantics Specifications of DSLs</article-title>
          .
          <source>Technical Report</source>
          , INRIA/LINA, Universita` degli
          <string-name>
            <surname>Studi di L'Aquila</surname>
          </string-name>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>S.</given-names>
            <surname>Ducasse</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Gˆırba</surname>
          </string-name>
          .
          <article-title>Using Smalltalk as a Reflective Executable Meta-language</article-title>
          .
          <source>In Proceedings of the 9th International Conference on Model Driven Engineering Languages and Systems (MoDELS)</source>
          , pages
          <fpage>604</fpage>
          -
          <lpage>618</lpage>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <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 Proceedings of the 3rd International Conference on the Unified Modeling Language (UML)</source>
          , pages
          <fpage>323</fpage>
          -
          <lpage>337</lpage>
          . Springer,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. H. Gro¨nniger,
          <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>System Model-Based Definition of Modeling Language Semantics</article-title>
          .
          <source>In Proceedings of the Joint 11th IFIP International Conference FMOODS and 29th IFIP International Conference FORTE (FMOODS/FORTE)</source>
          , pages
          <fpage>152</fpage>
          -
          <lpage>166</lpage>
          . Springer,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Kolovos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. F.</given-names>
            <surname>Paige</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Polack</surname>
          </string-name>
          .
          <article-title>The Epsilon Object Language (EOL)</article-title>
          .
          <source>In Proceedings of the 2nd European Conference on Model Driven Architecture - Foundations and Applications (ECMDA-FA)</source>
          , pages
          <fpage>128</fpage>
          -
          <lpage>142</lpage>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. T. Ku¨hne, G. Mezei, E. Syriani,
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          .
          <article-title>Explicit Transformation Modeling</article-title>
          .
          <source>In Models in Software Engineering: Reports and Revised Selected Papers of Workshops and Symposia at MoDELS</source>
          <year>2009</year>
          , pages
          <fpage>240</fpage>
          -
          <lpage>255</lpage>
          . Springer,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10. 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 Proceedings of the 7th Workshop on Models@run.time (MRT) @ MoDELS'12</source>
          , pages
          <fpage>53</fpage>
          -
          <lpage>58</lpage>
          . ACM,
          <year>2012</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>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          . Towards xMOF:
          <article-title>Executable DSMLs based on fUML</article-title>
          .
          <source>In Proceedings of the 12th Workshop on Domain-Specific Modeling (DSM) @ SPLASH'12</source>
          , pages
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          . ACM,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. 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 Proceedings of the 8th International Conference on Model Driven Engineering Languages and Systems (MoDELS)</source>
          , pages
          <fpage>264</fpage>
          -
          <lpage>278</lpage>
          . Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Object Management Group. OMG Meta Object Facility (MOF) Core</surname>
            <given-names>Specification</given-names>
          </string-name>
          ,
          <source>Version 2.4</source>
          .1,
          <year>August 2011</year>
          . http://www.omg.org/spec/MOF/2.4.1.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. Object Management Group.
          <article-title>OMG Unified Modeling Language (OMG UML)</article-title>
          ,
          <source>Superstructure, Version 2.4</source>
          .1,
          <year>August 2011</year>
          . http://www.omg.org/spec/UML/2.4.1.
        </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>J. E.</given-names>
            <surname>Rivera</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Dura</surname>
          </string-name>
          <article-title>´n, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Vallecillo</surname>
          </string-name>
          .
          <article-title>On the Behavioral Semantics of Real-Time Domain Specific Visual Languages</article-title>
          .
          <source>In Proceedings of the 8th International Workshop on Rewriting Logic and Its Applications</source>
          (WRLA) @
          <source>ETAPS'10</source>
          , pages
          <fpage>174</fpage>
          -
          <lpage>190</lpage>
          . Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>D. C.</surname>
          </string-name>
          <article-title>Schmidt. Guest Editor's Introduction: Model-Driven Engineering</article-title>
          . IEEE Computer,
          <volume>39</volume>
          (
          <issue>2</issue>
          ):
          <fpage>25</fpage>
          -
          <lpage>31</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>D.</given-names>
            <surname>Steinberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Budinsky</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Paternostro</surname>
          </string-name>
          , and
          <string-name>
            <surname>E. Merks.</surname>
          </string-name>
          <article-title>EMF: Eclipse Modeling Framework</article-title>
          .
          <string-name>
            <surname>Addison-Wesley</surname>
            <given-names>Professional</given-names>
          </string-name>
          ,
          <source>2nd edition</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>