<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>0717-5000</journal-id>
<journal-title><![CDATA[CLEI Electronic Journal]]></journal-title>
<abbrev-journal-title><![CDATA[CLEIej]]></abbrev-journal-title>
<issn>0717-5000</issn>
<publisher>
<publisher-name><![CDATA[Centro Latinoamericano de Estudios en Informática]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S0717-50002015000200004</article-id>
<title-group>
<article-title xml:lang="en"><![CDATA[Towards an automatic model transformation mechanism from UML state machines to DEVS models]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Gonzalez]]></surname>
<given-names><![CDATA[Ariel]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Luna]]></surname>
<given-names><![CDATA[Carlos]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Cuello]]></surname>
<given-names><![CDATA[Roque]]></given-names>
</name>
<xref ref-type="aff" rid="A03"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Perez]]></surname>
<given-names><![CDATA[Marcela]]></given-names>
</name>
<xref ref-type="aff" rid="A03"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Daniele]]></surname>
<given-names><![CDATA[Marcela]]></given-names>
</name>
<xref ref-type="aff" rid="A03"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad Nacional de Río Cuarto  ]]></institution>
<addr-line><![CDATA[Río Cuarto ]]></addr-line>
<country>Argentina</country>
</aff>
<aff id="A02">
<institution><![CDATA[,Universidad de la República  ]]></institution>
<addr-line><![CDATA[Montevideo ]]></addr-line>
<country>Uruguay</country>
</aff>
<aff id="A03">
<institution><![CDATA[,Universidad Nacional de Río Cuarto  ]]></institution>
<addr-line><![CDATA[Río Cuarto ]]></addr-line>
<country>Argentina</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>08</month>
<year>2015</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>08</month>
<year>2015</year>
</pub-date>
<volume>18</volume>
<numero>2</numero>
<fpage>4</fpage>
<lpage>4</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.edu.uy/scielo.php?script=sci_arttext&amp;pid=S0717-50002015000200004&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.edu.uy/scielo.php?script=sci_abstract&amp;pid=S0717-50002015000200004&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.edu.uy/scielo.php?script=sci_pdf&amp;pid=S0717-50002015000200004&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="en"><p><![CDATA[The development of complex event-driven systems requires studies and analysis prior to deployment with the goal of detecting unwanted behavior. UML is a language widely used by the software engineering community for modeling these systems through state machines, among other mechanisms. Currently, these models do not have appropriate execution and simulation tools to analyze the real behavior of systems. Existing tools do not provide appropriate libraries (sampling from a probability distribution, plotting, etc.) both to build and to analyze models. Modeling and simulation for design and prototyping of systems are widely used techniques to predict, investigate and compare the performance of systems. In particular, the Discrete Event System Specification (DEVS) formalism separates the modeling and simulation; there are several tools available on the market that run and collect information from DEVS models. This paper proposes a model transformation mechanism from UML state machines to DEVS models in the Model-Driven Development (MDD) context, through the declarative QVT Relations language, in order to perform simulations using tools, such as PowerDEVS. A mechanism to validate the transformation is proposed. Moreover, examples of application to analyze the behavior of an automatic banking machine and a control system of an elevator are presented.]]></p></abstract>
<abstract abstract-type="short" xml:lang="es"><p><![CDATA[El desarrollo de complejos sistemas guiados por modelos requiere de estudios y análisis previos a la implementación, con el objetivo de detectar comportamientos no deseados. UML es un lenguaje ampliamente usado por la comunidad de ingeniería de software para modelar estos sistemas a través de las máquinas de estados, entre otros mecanismos. En la actualidad, estos modelos no disponen de adecuadas herramientas de simulación y ejecución para analizar el comportamiento real de los sistemas. Las herramientas existentes no proveen librerías apropiadas (para el muestreo de distribuciones de probabilidad, ploteo, etc.) para construir y analizar modelos. El modelado y la simulación para el diseño y prototipado de sistemas son técnicas ampliamente usadas para predecir, investigar y comparar la performance de los sistemas. En particular, el formalismo Especificación de Sistemas de Eventos Discretos (Discrete Event System Specification - DEVS) separa el modelado de la simulación. Existen varias herramientas disponibles en el mercado que ejecutan y recopilan información de modelos DEVS. Este artículo propone un mecanismo de transformación de modelos de máquinas de estados UML a modelos DEVS en el contexto del desarrollo dirigido por modelos (Model-Driven Development - MDD) mediante el lenguaje declarativo QVT-Relations, a fin de realizar simulaciones utilizando herramientas tales como PowerDevs. Asimismo, se describe una propuesta para validar la transformación desarrollada. Finalmente, se presentan dos ejemplos de aplicación. El primero analiza el comportamiento de un cajero automático de un banco y el segundo analiza un sistema de control de ascensores.]]></p></abstract>
<kwd-group>
<kwd lng="en"><![CDATA[Statecharts]]></kwd>
<kwd lng="en"><![CDATA[DEVS]]></kwd>
<kwd lng="en"><![CDATA[UML]]></kwd>
<kwd lng="en"><![CDATA[MDA]]></kwd>
<kwd lng="en"><![CDATA[QVT Relations]]></kwd>
<kwd lng="es"><![CDATA[Máquinas de Estados]]></kwd>
<kwd lng="es"><![CDATA[DEVS]]></kwd>
<kwd lng="es"><![CDATA[UML]]></kwd>
<kwd lng="es"><![CDATA[MDA]]></kwd>
<kwd lng="es"><![CDATA[QVT Relations]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <div class="maketitle">  <h2 class="titleHead" style="font-size:14pt">Towards an automatic model transformation mechanism from UML state machines to DEVS models</h2>                                <div class="author" > <span  class="cmbx-12">Ariel Gonzalez</span> <br />                 <span  class="cmr-12">Universidad Nacional de R</span><span  class="cmr-12">ío Cuarto,</span> <br />                        <span  class="cmr-12">R</span><span  class="cmr-12">ío Cuarto, Argentina,</span> <br />              <span  class="cmti-12"><a href="mailto:agonzalez@dc.exa.unrc.edu.ar">agonzalez@dc.exa.unrc.edu.ar</a> </span><br class="and" /><span  class="cmbx-12">Carlos Luna</span> <br />                     <span  class="cmr-12">Universidad de la Rep</span><span  class="cmr-12">ública,</span> <br />                         <span  class="cmr-12">Montevideo, Uruguay</span> <br /><span  class="cmti-12"><a href="mailto:cluna@fing.edu.uy">cluna@fing.edu.uy</a></span><br class="and" /><span  class="cmbx-12">Roque Cuello, Marcela Perez, Marcela Daniele</span> <br />                 <span  class="cmr-12">Universidad Nacional de R</span><span  class="cmr-12">ío Cuarto,</span> <br />                        <span  class="cmr-12">R</span><span  class="cmr-12">ío Cuarto, Argentina,</span> <br />               <span  class="cmsy-10x-x-120">{</span><span  class="cmti-12"><a href="mailto:cuello@dc.exa.unrc.edu.ar">cuello</a>,<a href="mailto:perez@dc.exa.unrc.edu.ar">perez</a>,<a href="mailto:marcela@dc.exa.unrc.edu.ar">marcela</a></span><span  class="cmsy-10x-x-120">}</span><span  class="cmti-12">@dc.exa.unrc.edu.ar </span></div><br />     <div class="date" ></div>    </div>        <div  class="abstract"  >     <div class="center"  > <!--l. 63-->    <p class="noindent" >                                                                                                                                                                                         <div class="minipage">    <div class="center"  > <!--l. 63-->    <p class="noindent" > <!--l. 63-->    <p class="noindent" ><span  class="cmbx-10">Abstract</span></div> <!--l. 64-->    ]]></body>
<body><![CDATA[<p class="noindent" >The development of complex event-driven systems requires studies and analysis prior to deployment with the goal of detecting unwanted behavior. UML is a language widely used by the software engineering community for modeling these systems through state machines, among other mechanisms. Currently, these models do not have appropriate execution and simulation tools to analyze the real behavior of systems. Existing tools do not provide appropriate libraries (sampling from a probability distribution, plotting, etc.) both to build and to analyze models. Modeling and simulation for design and prototyping of systems are widely used techniques to predict, investigate and compare the performance of systems. In particular, the Discrete Event System Specification (DEVS) formalism separates the modeling and simulation; there are several tools available on the market that run and collect information from DEVS models. This paper proposes a model transformation mechanism from UML state machines to DEVS models in the Model-Driven Development (MDD) context, through the declarative QVT Relations language, in order to perform simulations using tools, such as PowerDEVS. A mechanism to validate the transformation is proposed. Moreover, examples of application to analyze the behavior of an automatic banking machine and a control system of an elevator are presented.     <br><br  class="newline" />Spanish Abstract:     <br> <br  class="newline" />El desarrollo de complejos sistemas guiados por modelos requiere de estudios y análisis previos a la implementación, con el objetivo de detectar comportamientos no deseados. UML es un lenguaje ampliamente usado por la comunidad de ingeniería de software para modelar estos sistemas a través de las máquinas de estados, entre otros mecanismos. En la actualidad, estos modelos no disponen de adecuadas herramientas de simulación y ejecución para analizar el comportamiento real de los sistemas. Las herramientas existentes no proveen librerías apropiadas (para el muestreo de distribuciones de probabilidad, ploteo, etc.) para construir y analizar modelos. El modelado y la simulación para el diseño y prototipado de sistemas son técnicas ampliamente usadas para predecir, investigar y comparar la performance de los sistemas. En particular, el formalismo Especificación de Sistemas de Eventos Discretos (Discrete Event System Specification - DEVS) separa el modelado de la simulación. Existen varias herramientas disponibles en el mercado que ejecutan y recopilan información de modelos DEVS. Este artículo propone un mecanismo de transformación de modelos de máquinas de estados UML a modelos DEVS en el contexto del desarrollo dirigido por modelos (Model-Driven Development - MDD) mediante el lenguaje declarativo QVT-Relations, a fin de realizar simulaciones utilizando herramientas tales como PowerDevs. Asimismo, se describe una propuesta para validar la transformación desarrollada. Finalmente, se presentan dos ejemplos de aplicación. El primero analiza el comportamiento de un cajero automático de un banco y el segundo analiza un sistema de control de ascensores.</div></div> </div> <!--l. 70-->    <p class="noindent" ><span  class="cmbx-10">Keywords: </span>Statecharts, DEVS, UML, MDA, QVT Relations. <br  class="newline" />Spanish Keywords: Máquinas de Estados, DEVS, UML, MDA, QVT Relations.<br  class="newline" />Submitted: 2014-11-11. Revised: 2015-04-07. Accepted: 2015-07-12.    <h3 class="sectionHead"><span class="titlemark">1   </span> <a   id="x1-10001"></a>Introduction</h3> <!--l. 79-->    <p class="noindent" >Model-Driven Development (MDD) <span class="cite">[<a  href="#XMCF03">1</a><a id="br1">,</a>&#x00A0;<a  href="#XMCF03bis">2</a><a id="br2">,</a>&#x00A0;<a  href="#XMCF03bisbis">3</a><a id="br3">]</a></span> is a methodology that advocates the use of models as the primary artifacts that drive the development of software, in order to increase productivity, quality and reduce costs <span class="cite">[<a  href="#Xfrance2007model">4</a><a id="br4">,</a>&#x00A0;<a  href="#Xbeydeda2005model">5</a><a id="br5">]</a></span>. One of its main objectives is to organize abstraction levels and development methodologies, promoting the use of models as the main artifacs to be constructed and maintained. A model consist of a set of elements that provide a synthetic and asbtract description of a system, specific or hypothetical. Thus, the development process becomes a refinement process and transformation between models, increasingly generating lower-level abstraction models until, in the last step, specific platform code is generated. There is a growing interest in this field. In particular, the                                                                                                                                                                                     Model-Driven Architecture (MDA) <span class="cite">[<a  href="#XMM03">6</a><a id="br6">]</a></span> is the approach defined by the Object Managment Group (OMG) <span class="cite">[<a  href="#XOMG">7</a><a id="br7">]</a></span>. <!--l. 82-->    <p class="indent" >   For the MDD, the Unified Modeling Language (UML) <span class="cite">[<a  href="#XOMG">7</a>,&#x00A0;<a  href="#XOMG04">8</a><a id="br8">]</a></span> has become the standard for modeling the different aspects of software systems, both in the academic environment and industrial developments. UML follows the Object Oriented paradigm and allows the description of both static and dyanimc aspects of software systems. More than a language, it is a set of languages, mostly graphic notations, supported by a significant number of proprietary and open source tools <span class="cite">[<a  href="#XRumbaugh:2004:UML:993859">9</a><a id="br9">]</a></span>. While UML is one of the preferred means of communication between modeling experts, due to powerful grapical representation, this capacity is bounded in term of model execution, that is, the execution of a simulation. <!--l. 86-->    <p class="indent" >   In the simulation area, the Discrete Event System Specification (DEVS) <span class="cite">[<a  href="#XZV93">10</a><a id="br10">]</a></span> is a modular and hierarchical formalism modeling and analyzing systems of various types; in particular, discrete event systems, systems of differential equations (continuous systems), and hybrid systems (continuous and discrete) <span class="cite">[<a  href="#Xwainer2010discrete">11</a><a id="br11">,</a>&#x00A0;<a  href="#Xcirino2012devs">12</a><a id="br12">]</a></span>. DEVS provides a theoretical basis for a system to run models using the DEVS simulation protocol <span class="cite">[<a  href="#XZV93">10</a><a id="br10">,</a>&#x00A0;<a  href="#Xzeigler2000theory">13</a><a id="br13">,</a>&#x00A0;<a  href="#Xdevsbook">14</a><a id="br14">]</a></span>. The DEVS models are hierarchical in nature and consist of atomic models and coupled models in order to build designs at different levels of asbtraction. <!--l. 88-->    <p class="indent" >   There is currently a major need of simulation tools for dynamic UML models to analyze the actual behavior of complex systems. Moreover, it is recommended to apply modeling and simulation techniques in early stages of software development, as these help to detect inconspicuous problems before deployment. UML is powerful in terms of its graphical representation, but weak regarding the execution of their dynamic models. In the software engineering community, state machines are one of the most used UML modeling languages <span class="cite">[<a  href="#XRumbaugh:2004:UML:993859">9</a><a id="br9">,</a>&#x00A0;<a  href="#XWang:2012:HFS:2462874">15</a><a id="br15">]</a></span>. The present work aims to enhance the simulation of these using the DEVS formalism. Currently, DEVS is widely used by engineers within the academic world, who understand the modeling of discrete event systems and are capable of translating system requirements to DEVS model code. <!--l. 90-->    <p class="indent" >   The main objective of this work is the proposal of a mechanism to execute and analyze UML state machines through DEVS, a modeling and simulation formalism (M&amp;S). A formal relationship is defined between elements of the state machines (State Charts - SCs), proposed by Harel <span class="cite">[<a  href="#XHar87">16</a><a id="br16">]</a></span>, and the elements of the DEVS formalism <span class="cite">[<a  href="#XZV93">10</a><a id="br10">]</a></span>. Furthermore, a DEVS representation (metamodel) is defined and a mapping from UML statecharts to DEVS models is presented, through transformation rules implemented in QVT Relations language (QVT-R) <span class="cite">[<a  href="#XQVT11">17</a><a id="br17">]</a></span>. Finally, the implementation of a DEVS model is built and can then be imported by the PowerDEVS Simulation Tool <span class="cite">[<a  href="#XBK11">18</a><a id="br18">]</a></span> for the execution and analysis of the model. Even though the development and analysis of simulations (on models obtained from the transformation) are not the focus of this work, we include examples of analysis of applications. Figure <a  href="#x1-10011">1<!--tex4ht:ref: fig:procesoSC-DEVS --></a> shows the described process. <!--l. 94-->    <p class="indent" >   Even though the transformation of UML models for simulation purposes is not a new idea, and there also exist other similar approaches that can be used as reference, this paper provides a sound process for achieving this objective, from both the conceptual perspective and the technical implementation perspective. This is the main contribution of this work. <!--l. 96-->    ]]></body>
<body><![CDATA[<p class="indent" >   <hr class="figure">    <div class="figure"  >                                                                                                                                                                                     <a   id="x1-10011"></a>                                                                                                                                                                                         <div class="center"  > <!--l. 97-->    <p class="noindent" > <!--l. 98-->    <p class="noindent" ><img  src="/img/revistas/cleiej/v18n2/2a040x.png" alt="PIC" class="graphics" width="337.85995pt" height="212.29167pt" ><!--tex4ht:graphics   name=="/img/revistas/cleiej/v18n2/2a040x.png" src="imagenes/procesoSC-DEVS.eps"   --></div> <br />     <div class="caption"  ><span class="id">Figure&#x00A0;1: </span><span   class="content">Execution and analysis of UML state machines through DEVS</span></div><!--tex4ht:label?: x1-10011 -->                                                                                                                                                                                     <!--l. 102-->    <p class="indent" >   </div><hr class="endfigure"> <!--l. 105-->    <p class="indent" >   The rest of the paper is organized as follows. In Section <a  href="#x1-20002">2<!--tex4ht:ref: Motivacion y Trabajos Relacionados --></a> we describe the motivations that give rise to the current proposal, along with other related works that are directly linked to this one. Section <a  href="#x1-30003">3<!--tex4ht:ref: Nociones Preliminares --></a> introduces the theoretical components that form the basis of the main issues, such as MDA, the SC&#8217;s, and the DEVS formalism. In Section <a  href="#x1-100004">4<!--tex4ht:ref: De Maquinas de Estados a Modelos DEVS --></a> we present the formal transformation process of SC&#8217;s to DEVS models. Then, in Section <a  href="#x1-140005">5<!--tex4ht:ref: Implementacion de la Transformacion con Query/View/Transformation --></a> we define, first, the relations in QVT-R that implement the process, and then the C++ code generation to be imported by PowerDEVS. Section <a  href="#x1-180006">6<!--tex4ht:ref: Validacion de la Transformacion --></a> describes a proposal to validate the transformation. In Section <a  href="#x1-230007">7<!--tex4ht:ref: Ejemplo de Aplicacion --></a> includes two application examples: the analysis of the behavior of an automatic banking machine and a control system of an elevator. Finally, in Section <a  href="#x1-280008">8<!--tex4ht:ref: Conclusiones y Trabajos Futuros --></a> detailed conclusions and future work discussions are presented. <!--l. 107-->    <p class="indent" >   The full development is available at <a  href="https://www.dropbox.com/sh/4e0zorfyvgdmdg3/dnfWO_ija9" class="url" ><span  class="cmtt-10">https://www.dropbox.com/sh/4e0zorfyvgdmdg3/dnfWO_ija9</span></a>. <!--l. 109-->    <p class="indent" >   A preliminary version of this paper appeared in XL CLEI <span class="cite">[<a  href="#XXL2014">19</a><a id="br19">]</a></span>.    <h3 class="sectionHead"><span class="titlemark">2   </span> <a   id="x1-20002"></a>Motivation and Related Work</h3> <!--l. 115-->    ]]></body>
<body><![CDATA[<p class="noindent" >Mapping UML components to DEVS models (and vice versa) is not a new idea, nor an isolated initiative. There are many research projects that aim to integrate developments in modeling and simulation, generating different methodologies, processes and specific frameworks. However, our proposal differs from previous works on issues that we discuss in this section. <!--l. 119-->    <p class="indent" >   There are different tools that support UML (UML Computer Aided Software Engineering - UML CASE) providing simulation capabilities, such as IBM Rational Rose <span class="cite">[<a  href="#XIBM">20</a>,&#x00A0;<a  href="#Xrussell2012ibm">21</a><a id="br21">]</a></span> and Poseidon <span class="cite">[<a  href="#XPoseidon">22</a><a id="br22">]</a></span>. These tools have proprietary simulation engines which are not extensible and can not be tailored to meet specific requirements. For the current proposal a specific simulation engine is required to support simulation processes in detail (time event management, probability distributions, etc.), such as PowerDevs. <!--l. 123-->    <p class="indent" >   For the representation of DEVS models there are different approaches. One of such approaches is the Structure Entity Modeler Scalable with Complexity Measures (SESM/CM) <span class="cite">[<a  href="#XEudevs2">23</a><a id="br23">]</a></span> which is adequate for: developing component-based hierarchical models, modeling behavioral aspects of atomic models, providing structural specifications, and storing the models using XML. However, this approach is closer to the simulation experts than domain experts and it needs further development to represent atomic models using XML. <!--l. 125-->    <p class="indent" >   In <span class="cite">[<a  href="#XFromUML13">24</a><a id="br24">]</a></span> and <span class="cite">[<a  href="#XMRZ07">25</a><a id="br25">]</a></span> another metamodel is defined to represent DEVS systems through XML. In both cases, JavaML <span class="cite">[<a  href="#XBG00">26</a><a id="br26">]</a></span> is used to describe the behavior of an atomic model. This solution is suitable for transforming platform specific models to platform independent models, but it does not provide a graphical solution for modeling such systems. One of the goals of our research project is to incorporate in the future a tool for viewing and editing models. Another tool that is available is ATOM3 <span class="cite">[<a  href="#XLaraV02">27</a><a id="br27">]</a></span> which is a good solution since it has a layer of metamodeling that allows describing domain specific modeling languages, and a layer that supports construction, modification and transformation of domain models. <!--l. 128-->    <p class="indent" >   In the field of modeling and simulation based on UML, several authors have approached the subject from different perspectives. Choi <span class="cite">[<a  href="#XChoiJKBL06">28</a><a id="br28">]</a></span> uses UML sequence diagrams to define the behavior of a system. In <span class="cite">[<a  href="#XCF-77">29</a><a id="br29">]</a></span> eight steps to build DEVS models using UML are introduced, but in this case many human decisions are needed to transform the model. <!--l. 130-->    <p class="indent" >   In <span class="cite">[<a  href="#XZ05">30</a><a id="br30">]</a></span>, Zinoviev presents a formal mapping from DEVS to UML. In this technique, input and output ports are mapped to UML events. Not continuous DEVS state variables are mapped to UML states and those that are continuous are mapped to attributes of an UML state. The mapping presented is elegant, yet their representation in UML does not tend to provide a unified representation for the modeling formalism. <!--l. 132-->    <p class="indent" >   Huang and Sarjoughian define in <span class="cite">[<a  href="#XHuangS04">31</a><a id="br31">]</a></span> a mapping for coupled models in UML-RT structure diagrams <span class="cite">[<a  href="#XDouglass:1997:RUD:522584">32</a><a id="br32">,</a>&#x00A0;<a  href="#XGomaa:2011:SMD:1972546">33</a><a id="br33">]</a></span>, but the use of UML profiles for planning, performance and time specification (OMG2005) is unnecessary for mapping DEVS to UML. They conclude that UML-RT is not suitable for a simulation environment, and argue that the software design and simulation are inherently different. <!--l. 134-->    <p class="indent" >   In <span class="cite">[<a  href="#XSchulzER00">34</a><a id="br34">]</a></span> an informal mapping from DEVS to a STATEMATE statechart is introduced. Shulz indicates that DEVS has greater expressive power than the statechart <span class="cite">[<a  href="#XHP98">35</a><a id="br35">]</a></span>, and that any DEVS model can be represented by a StateMate activity diagram, together with an appropiate indentifier convention for events. <!--l. 136-->    <p class="indent" >   In the MDA context, Tolk and Muguira <span class="cite">[<a  href="#XTM04">36</a><a id="br36">]</a></span> show how complementary ideas and methods of High Level Architecture (HLA) and DEVS can be integrated into a well-defined M&amp;S application domain, within the MDS framework. HLA has a distributed simulation architecture, independent of the computing platform. It provides an interface in which each simulation engine must conform to participate in a distributed simulation exercise. While it is widely used in the defense industry, its adoption in commercial industry has been restricted. The HLA                                                                                                                                                                                     interface specification does not include a network protocol for Run-Time Infrastructure (RTI). It is up to the developers of an RTI to create a specification. Due to this, interoperability between RTI products and often, RTI versions, should not be assumed, therefore, this limits their use in commercial industry. <!--l. 138-->    <p class="indent" >   Transformations between UML and DEVS models are presented in <span class="cite">[<a  href="#XPasqua2012">37</a><a id="br37">]</a></span> and <span class="cite">[<a  href="#XHuHCC14">38</a><a id="br38">]</a></span>. In <span class="cite">[<a  href="#XPasqua2012">37</a><a id="br37">]</a></span>, the authors transform sequence diagrams to Finite and Deterministic DEVS to verify by means of space state exploration and to validate a set of traces by means of a simulation. The extension of the modeling language based on DEVS (E-DEVSML) proposed in <span class="cite">[<a  href="#XHuHCC14">38</a><a id="br38">]</a></span> can help modelers to simulate systematically the systems. Also, an approach to make UML diagrams executable through an automated model transformation process using E-DEVSM is described. However, it does not specify the types of UML diagrams that are transformed and presents a proposal based on scarce bibliography. Neither <span class="cite">[<a  href="#XPasqua2012">37</a><a id="br37">]</a></span> or <span class="cite">[<a  href="#XHuHCC14">38</a><a id="br38">]</a></span> analyze the validation of the transformation or discuss possible mechanisms. <!--l. 141-->    ]]></body>
<body><![CDATA[<p class="indent" >   In <span class="cite">[<a  href="#XSaadawiW13">39</a><a id="br39">]</a></span>, the authors present a new extension to the DEVS formalism, called Rational Time-Advance DEVS (RTA-DEVS) which can be fomally checked with standard model-checking algorithms and tools. This is done by means of a procedure that creates Timed Automata models that are behaviorally equivalent to the original RTA-DEVS models via a transformation models. This paper also presents a validation mechanism of transformation using the technique known as Correctness-by-Construction. <!--l. 143-->    <p class="indent" >   In <span class="cite">[<a  href="#XRCMZ09">40</a><a id="br40">]</a></span>, Mittal and Risco-Martin present <span  class="cmsl-10">eUDEVS (Executable UML with DEVS Theory of Modeling and</span> <span  class="cmsl-10">Simulation) </span>where the authors analyze not only the specification of the structure and the behavior of DEVS models in UML, but also a method for modeling general purpose DEVS models, which supports the specification, analysis, design, verification and validation of a wide variety of systems based on DEVS. In <span class="cite">[<a  href="#XRCMZ09">40</a><a id="br40">]</a></span> an M&amp;S methodology consisting of three steps is proposed. First, the static structure of the UML state machine is synthesized and its corresponding representation in State Chart XML (SCXML) <span class="cite">[<a  href="#Xrussell2012scxml">41</a><a id="br41">]</a></span> is generated. Second, the SCXML file is converted to a DEVS finite and deterministic state machine model (<span  class="cmti-10">Finte Deterministic DEVS </span>- FD-DEVS), defined by Mittal in <span class="cite">[<a  href="#XMZH">42</a><a id="br42">]</a></span>, which specifies its behavior. At this stage the model is totally platform independent. Finally, from the XML FD-DEVS, a simulation model is generated using a series of XML-based transformations, to be executed later by the DEVSJAVA <span class="cite">[<a  href="#XDJ00">43</a><a id="br43">]</a></span> simulation engine. The proposed method is interesting and ambitious, but the employment of XSL transformations (<span  class="cmti-10">eXtensible Stylesheet Language Transformations </span>- XSLT) makes it unclear. Additionally, the work is based on a representation of the SCXML state machine defined by the World Wide Web Consortium (W3C), which does not consider all elements of UML state machines. SCXML is a general-purpose event-based state machine language that can be used in many ways and is currently a working draft specification. Also, it provides a generic state-machine based execution environment based on Harel state tables, Commons SCXML. Commons SCXML is an implementation that creates and maintains a Java SCXML engine capable of executing a state machine defined using a SCXML document, however, it does not provide libraries for analysis of the models. <br  class="newline" /> <!--l. 147-->    <p class="indent" >   This work differs from the above, and especially from <span class="cite">[<a  href="#XRCMZ09">40</a><a id="br40">]</a></span>, in the following aspects:      <ul class="itemize1">      <li class="itemize">A proposal in the context of the MDA is made;      </li>      <li class="itemize">A formal mapping between the SC&#8217;s, defined by Harel, and DEVS models is performed;      </li>      <li class="itemize">A  QVT-R  transformation,  model-to-model  (M2M),  implementing  the  mapping  from  UML  state      machines  to  DEVS  models  is  defined.  It  employes  a  declarative  language  standardized  by  the      OMG instead of using imperative languages or XML transformation tools. The instrumentation of      transformation rules through XML definitions leads, in general, to unclear and difficult developments.      XSL transformations are very different from a programming language since they are based on the use      of templates which often are difficult to maintain when they become large. In contrast, transformation      languages such as QVT and ATL have similar styles to programming languages. In particular, QVT-R      follows the style of the logical-relational paradigm. This feature allows us to define transformations as      declarative, modular, easier to extend and modify specifications.      </li>      <li class="itemize">A C++ code of DEVS models is generated to be imported by the PowerDEVS (open source) simulation      tool.                                                                                                                                                                                          </li>      <li class="itemize">Mechanisms to validate transformations are discussed, while this is not done in <span class="cite">[<a  href="#XRCMZ09">40</a><a id="br40">]</a></span>.      </li>      <li class="itemize">Our proposal focuses on discrete dynamical systems, where time constraints occur in many places and      drive the evolution of these systems. For example, elevator systems and assembly machines.</li>    </ul> <!--l. 161-->    <p class="indent" >   Even though the transformation of UML models for simulation purposes is not a new idea, and there also exist other similar approaches that can be used as reference, we propose a model transformation mechanism from UML SC&#8217;s to DEVS models in the MDD context, through the declarative QVT-R language, in order to perform simulations using tools, such as PowerDEVS. Further research will develop a unified tool that contains a specific modeling environment that allows the representation of systems with UML elements considered in this work, along with the transformation to DEVS models. We also propose to integrate PowerDEVS for the implementation and analysis of the models. <!--l. 165-->    <p class="noindent" >    <h3 class="sectionHead"><span class="titlemark">3   </span> <a   id="x1-30003"></a>Preliminary Notions</h3> <!--l. 168-->    <p class="noindent" >    <h4 class="subsectionHead"><span class="titlemark">3.1   </span> <a   id="x1-40003.1"></a>Model-Driven Architecture (MDA)</h4> <!--l. 170-->    <p class="noindent" >MDA is an OMG initiative that proposes a set of standards which specify interoperable technologies to implement the principles of MDD, incorporating automated transformations. MDA defines a process of software construction based on the production and processing of models. The principles on which MDA is based are: abstraction, automation and standardization. The MDA central process consist in model transformation. The main underlying idea is to use models, so that the properties and characteristics of the systems remain contained in an abstract model, independent of the changes in technology. MDA provides a set of guidelines or standards expressed as models and establishes four levels of abstraction: Computation Independent Model (CIM), Platform Independent Model (PIM), Platform Specific Model (PSM), and the final application. The CIM models describe the environment in which the system is used, without direct reference to its implementation. The PIM models describe the functionality and structure of an information system without considering technological details of the platform on which the system is implemented. The PSM models describe the specific platform where the system is executed. MDA proposes the following development process: from requirements we get a PIM, then this model is transformed with the help of one or more tools in PSM, and finally each PSM is transformed into code. Therefore, MDA incorporates the idea of models transformation (CIM to PIM, PIM to PSM, PSM to code), making use of tools for the automation of these activities. Figure <a  href="#x1-40012">2<!--tex4ht:ref: fig:procesoMDD --></a> shows the process and the roles defined by MDA. <!--l. 173-->    <p class="indent" >   The principle of abstraction used by MDA focuses its attention on the problem domain rather than on the technology. Different models aim at the definition of a semantic that separates relevant aspects of the problem from those related to the technology. Regarding automation, MDA favors the emergence of new CASE tools with specific functionalities for the exchange of models, consistency verification, processing and handling of meta models, among others. <!--l. 175-->    <p class="indent" >   <hr class="figure">    ]]></body>
<body><![CDATA[<div class="figure"  >                                                                                                                                                                                     <a   id="x1-40012"></a>                                                                                                                                                                                         <div class="center"  >      <div class="caption"  ><a href=="/img/revistas/cleiej/v18n2/2a041x.png"><span class="id">Figure&#x00A0;2: </span><span   class="content">MDA processes and roles</span></a></div><!--tex4ht:label?: x1-40012 -->                                                                                                                                                                                     <!--l. 181-->    <p class="indent" >   </div><hr class="endfigure">    <h4 class="likesubsectionHead"><a   id="x1-50003.1"></a>Mapping and Model Transformation</h4> <!--l. 186-->    <p class="noindent" >A set of mappings between models from different abstraction levels are established in Figure <a  href="#x1-40012">2<!--tex4ht:ref: fig:procesoMDD --></a>. These mappings can also be defined between models belonging to the same level. Below are some of the possible transformations:      <ul class="itemize1">      <li class="itemize">Mapping PIM to PIM. It is applied in order to optimize them for the duration of the development      process. This mapping does not require any information on the implementation platform.      </li>      <li class="itemize">Mapping PIM to PSM. It is applied in cases where it has a PIM resulting from a series of refinements      of PIM to PIM. This mapping will be implemented in a dependent architecture of a specific platform.      </li>      <li class="itemize">Mapping from PSM to PSM. It is applied during the encoding and component development. This      mapping is linked to the refinement of PSM own models.      </li>      <li class="itemize">Mapping from PSM to PIM. This transformation may be required to generate abstract models from      existing implementations. It can be used in order to extract into generic models, desirable properties      of a system.      </li>      <li class="itemize">Mapping from PSM to code. Enables the generation of specific source code to a particular platform      from a PSM.</li>    </ul> <!--l. 198-->    <p class="indent" >   The languages most commonly used to describe model-to-model transformations are QVT and ATL (Atlas Transformation Language) <span class="cite">[<a  href="#XATL">44</a><a id="br44">]</a></span>. In the present work we opted for QVT-R (QVT-Relations) for its simplicity and clarity to define relationships between elements of the source and target metamodels. <!--l. 201-->    <p class="noindent" ><span class="likeparagraphHead"><a   id="x1-60003.1"></a>Query/View/Transformation (QVT)</span>    The OMG defined the QVT standard <span class="cite">[<a  href="#XQVT11">17</a><a id="br17">]</a></span> to work with software models. QVT consists of three parts: query, view and transformation. In particular, a transformation metamodel describes relationships between a source metamodel <span  class="cmti-10">S</span>, and a target metamodel <span  class="cmti-10">T</span>, specified in MOF <span class="cite">[<a  href="#XMOF11">45</a><a id="br45">]</a></span>. The QVT specification 1.1 has a declarative/imperative hybrid nature. In this work the <span  class="cmti-10">Relations </span>declarative language is employed. The tool used for the definition of the transformations is called MediniQVT <span class="cite">[<a  href="#XMED11">46</a><a id="br46">]</a></span>. This tool implements the OMG QVT-R specification into a powerful engine QVT. Its interface is based on Eclipse, and use Eclipse Modeling Framework (EMF) <span class="cite">[<a  href="#XEMF10">47</a><a id="br47">]</a></span> for representing models. MediniQVT requires that metamodels (and models) be written in a simplified version of the MOF standard, called Ecore <span class="cite">[<a  href="#XECORE12">48</a><a id="br48">]</a></span>, which is defined in the EMF. An Ecore metamodel is represented in XML; however has an EMF Ecore models graphic editor which facilitates the creation thereof. <!--l. 205-->    <p class="noindent" ><span class="likeparagraphHead"><a   id="x1-70003.1"></a>Ecore and Ecplispe Modeling Framework Characteristics</span>    The metamodels and EMF models used are represented by XML documents; EMF has a graphical editor which facilitates the creation of Ecore models. There are tools that automatically treat these metamodels and models, including the Eclipse plug-in to transform these models, with the definition of QVT transformations. The features and elements of the modeling language Ecore are: the unifying element (root) is the package <span  class="cmtt-10">EPackage</span>, which physically contains its elements (<span  class="cmtt-10">containment </span>specification) and, in turn, these may be contained in other packages. There is a factory (<span  class="cmtt-10">EFactory</span>) per package that allows the creation of model elements. Constructs that describe a set of elements (instances) are classifiers (<span  class="cmtt-10">EClassifiers</span>): <span  class="cmtt-10">EClass </span>and <span  class="cmtt-10">eDataType</span>. Ecore specifies the characteristics of the classes (<span  class="cmtt-10">EClass</span>), their structural characteristics (<span  class="cmtt-10">EStructuralFeatures</span>), attributes (<span  class="cmtt-10">EAttributes</span>), operations and relationships (inheritance, reference (<span  class="cmtt-10">EReference</span>)). The <span  class="cmtt-10">EClass </span>have a superclass and is composed of structural features (<span  class="cmtt-10">EStructuralFeatures</span>: <span  class="cmtt-10">EReference </span>and <span  class="cmtt-10">EAttribute</span>). Both <span  class="cmtt-10">EAttributes </span>and <span  class="cmtt-10">EReferences </span>may be provided with multiplicity. The <span  class="cmtt-10">EDataTypes </span>model basic or indivisible data model types, and the <span  class="cmtt-10">EReferences </span>may be                                                                                                                                                                                     contained or be references (pointers). The <span  class="cmtt-10">Operations </span>model the operations of the interface (although implementation is not provided for them). All elements inherit from <span  class="cmtt-10">ENamedElement </span>(nameless) and <span  class="cmtt-10">EModelElement </span>(model element). Moreover, every element of the model can have associated annotations (EAnnotation): name / value pairs for additional specifications; eg, OCL constraints or documentation strings. <!--l. 210-->    <p class="noindent" >    <h4 class="subsectionHead"><span class="titlemark">3.2   </span> <a   id="x1-80003.2"></a>State Machines</h4> <!--l. 213-->    ]]></body>
<body><![CDATA[<p class="noindent" >A SC is a visual representation of a finite state automata with hierarchy of states. These machines were introduced by Harel <span class="cite">[<a  href="#XHar87">16</a><a id="br16">]</a></span> and incorporated into the various versions of UML with some variations. The main feature of the SCs is that their states can be refined, thus defining a hierarchy of states. The decomposition of a state can be sequential or parallel, in the first, a state decomposes into an automaton, while in the second it breaks down into two or more automata running concurrently. Although this hierarchy is allowed, a SC with composite states has its equivalent using only simple statements. In this paper, we will rely on the definition and application of SCs containing only simple statements. There are many algorithms and tools that convert a SC with composite states to an equivalent SC with simple states <span class="cite">[<a  href="#XHar87">16</a>,&#x00A0;<a  href="#XMOLA">49</a>,&#x00A0;<a  href="#XWA04">50</a><a id="br50">]</a></span>. Transitions are directed. A transition (<span  class="cmti-10">t</span>) is formed by its name, origin state, the event that &#8220;triggers&#8221; it (<span  class="cmti-10">e</span>), the trigger condition (<span  class="cmti-10">c</span>), the actions to be executed ([alpha]) and destination state. The graphical notation used is <img  src="/img/revistas/cleiej/v18n2/2a042x.png" alt="t : e,c&#x2215;&#x03B1;  "  class="math" >. <!--l. 216-->    <p class="noindent" >    <h4 class="subsectionHead"><span class="titlemark">3.3   </span> <a   id="x1-90003.3"></a>M&amp;S and DEVS </h4> <!--l. 219-->    <p class="noindent" >A model is a representation of the construction and working of some system of interest. A model is similar to but simpler than the system it represents. One purpose of a model is to enable the analyst to predict the effect of changes to the system. On the one hand, a model should be a close approximation to the real system and incorporate most of its salient features. On the other hand, it should not be so complex that it is impossible to understand and experiment with it. Generally, a model intended for a simulation study is a mathematical model developed with the help of simulation software. Mathematical model classifications include deterministic (input and output variables are fixed values) or stochastic (at least one of the input or output variables is probabilistic); static (time is not taken into account) or dynamic (time-varying interactions among variables are taken into account). Typically, simulation models are stochastic and dynamic. <!--l. 224-->    <p class="indent" >   Simulation is a descriptive tool, allowing us to experiment with a model instead of the real system. The propose of simulating, generally falls into one of three categories as follows:      <ul class="itemize1">      <li class="itemize"><span  class="cmti-10">Comparison</span>. A comparison of simulation runs can be used to assess the effect of changing a decision      variable. The results of the different runs can then be evaluated in terms of the objetives.      </li>      <li class="itemize"><span  class="cmti-10">Prediction</span>. A simulation may be used for predictive proposes to determine the state of the system at      some future point in time, subject to assumptions about how it behaves now and how it will continue      to behave.      </li>      <li class="itemize"><span  class="cmti-10">Investigation</span>. Some simulations are developed to provide an insight into the behavior of the system,      rather than to perform detailed experimentation. It is of interest to see how the simulation behaves      and reacts to normal and abnormal stimuli.</li>    </ul> <!--l. 232-->    <p class="indent" >   Simulation is used before an existing system is altered or a new system built, to reduce the chances of failure to meet specifications, to eliminate unforeseen bottlenecks, to prevent under or over-utilization of resources, and to optimize system performance. <!--l. 236-->    <p class="indent" >   During the last decades, the rapid evolution of technology has produced a proliferation of new dynamical systems of great complexity. Examples include computer networks, automated production systems, air traffic control, and general systems of command, control, communications and information. All the activities in these systems are due to the occurrence of asynchronous discrete events, some controlled (such as pressing a key) and some not (like spontaneous equipment failure). This feature is what leads to define the term: Discrete Event Systems (Discrete-Event Systems - DES) <span class="cite">[<a  href="#XZKP00">51</a><a id="br51">]</a></span>. Among the most popular formalisms for representation of DES are Petri Nets, the SC, Grafcet, Event Graphs, and many generalizations and particularizations of                                                                                                                                                                                     them. <!--l. 238-->    <p class="indent" >   With the motivation of problem-oriented modeling and simulation of DES, in the decade of the &#8217;70 Bernard Zeigler proposed a theoretical framework and a methodology for M&amp;S systems. It is here that arises DEVS <span class="cite">[<a  href="#XZV93">10</a><a id="br10">]</a></span>, a formalism for modeling with a solid semantic, based on a theoretical system basis. This formalism, sometimes pointed as universal, allows to describe dynamic discrete event systems. Its universality means that any formalism for these systems can be adjusted to DEVS. Because of its great adaptation for modeling complex systems and the simplicity and efficiency of the implementation of simulations, DEVS is currently one of the most used tools in modeling and simulation by mean of discrete events. In Section <a  href="#x1-120004.2">4.2<!--tex4ht:ref: Definicion del formalismo DEVS --></a> the details of the formalism are presented. <!--l. 241-->    <p class="noindent" >    <h3 class="sectionHead"><span class="titlemark">4   </span> <a   id="x1-100004"></a>From State Machines to DEVS Models</h3> <!--l. 244-->    <p class="noindent" >The main objective of this work is to provide a mechanism that achieves the execution of UML SCs, through a process that transform them to DEVS atomic models, to later be able of carrying simulations on them. To build this process of transformation is necessary to make a review of the elements of each formalisms. Subsequently, a mapping between them through a set of rules that indicate how information from one domain translates to another is defined. These rules are especially needed because although the domain elements of a SC has similar aspects from the DEVS ones, the specification of DEVS elements is more stringent. <!--l. 246-->    ]]></body>
<body><![CDATA[<p class="noindent" >    <h4 class="subsectionHead"><span class="titlemark">4.1   </span> <a   id="x1-110004.1"></a>Formal Definition of a SC</h4> <!--l. 249-->    <p class="noindent" >The UML SCs are based on the SCs defined by Harel. They are composed by a set of states, transitions and events. Formally, following <span class="cite">[<a  href="#XvdB02">52</a><a id="br52">]</a></span>, a SC is defined as a tuple <img  src="/img/revistas/cleiej/v18n2/2a043x.png" alt="&#x27E8;S,&#x03A3;,T,A &#x27E9; "  class="math" >, where:      <ul class="itemize1">      <li class="itemize"><img  src="/img/revistas/cleiej/v18n2/2a044x.png" alt="S  "  class="math" >&#x00A0;: is a finite (non-empty) set of states.      </li>      <li class="itemize"><img  src="/img/revistas/cleiej/v18n2/2a045x.png" alt="&#x03A3;  "  class="math" >&#x00A0;: is a finite set of events.      </li>      <li class="itemize"><img  src="/img/revistas/cleiej/v18n2/2a046x.png" alt="T  "  class="math" > is a finite set of transitions represented by the tuple <img  src="/img/revistas/cleiej/v18n2/2a047x.png" alt="t = (t&#x2032;,so,e,c,a,sd)  "  class="math" >, where:          <ul class="itemize2">          <li class="itemize"><img  src="/img/revistas/cleiej/v18n2/2a048x.png" alt=" &#x2032; t "  class="math" > is the transition name;          </li>          <li class="itemize"><img  src="/img/revistas/cleiej/v18n2/2a049x.png" alt="so &#x2208; S  "  class="math" > is the origin state;          </li>          <li class="itemize"><img  src="/img/revistas/cleiej/v18n2/2a0410x.png" alt="e &#x2208; &#x03A3;  "  class="math" > is the trigger event;          </li>          <li class="itemize"><img  src="/img/revistas/cleiej/v18n2/2a0411x.png" alt="c  "  class="math" > is a trigger condition;          </li>          <li class="itemize"><img  src="/img/revistas/cleiej/v18n2/2a0412x.png" alt="a &#x2208; A  "  class="math" > A is an action to be executed when the transition occurs;          </li>          <li class="itemize"><img  src="/img/revistas/cleiej/v18n2/2a0413x.png" alt="sd &#x2208; S  "  class="math" > is the destination state.</li>    </ul>      </li>      <li class="itemize"><img  src="/img/revistas/cleiej/v18n2/2a0414x.png" alt="(A &#x2286; &#x03A3;)  "  class="math" >: is a set of actions, where <img  src="/img/revistas/cleiej/v18n2/2a0415x.png" alt="&#x03C4; &#x2208; A  "  class="math" > represents the &#8220;null action&#8221; or &#8220;skip&#8221;.</li>    </ul> <!--l. 266-->    <p class="indent" >   For convenience, a life time (or residence time) can be associated to a state. These are used to describe a new behavior, that defines for how long the system can remain in a state. When time has elapsed, a special transition must be triggered. This behavior could also be implemented by associating a time event to a transition, which fires when the origin state reaches that time. On one hand, the association of time to each state is formalized, and secondly, a special event <img  src="/img/revistas/cleiej/v18n2/2a0416x.png" alt="&#x03B3; &#x2208; &#x03A3;  "  class="math" > called <span  class="cmsl-10">time event </span>to be used in transitions that are triggered upon reaching the time in his origin state. We refer to these transitions as <span  class="cmsl-10">time</span> <span  class="cmsl-10">transitions</span>. Only one time transition must be defined by each state, and the life time must be not equal to <img  src="/img/revistas/cleiej/v18n2/2a0417x.png" alt="&#x221E; "  class="math" >.                                                                                                                                                                                     <!--l. 269-->    <p class="indent" >   The SC formal definition is extended with the following components: <img  src="/img/revistas/cleiej/v18n2/2a0418x.png" alt="&#x27E8;S,&#x03A3;, T,A,&#x03A0;&#x27E9; "  class="math" >, where:      <ul class="itemize1">      <li class="itemize"><img  src="/img/revistas/cleiej/v18n2/2a0419x.png" alt="        + &#x03A0; : S &#x00D7; &#x211C;0,&#x221E; "  class="math" > is a set of pairs that associates with each state a value in <img  src="/img/revistas/cleiej/v18n2/2a0420x.png" alt=" + &#x211C;0,&#x221E; "  class="math" >, that represents the      life time.      </li>      <li class="itemize"><img  src="/img/revistas/cleiej/v18n2/2a0421x.png" alt="&#x03B3; &#x2208; &#x03A3;  "  class="math" > is the <span  class="cmsl-10">time event</span>.      </li>      <li class="itemize">Si <img  src="/img/revistas/cleiej/v18n2/2a0422x.png" alt="&#x03A0; (s) &#x2044;= &#x221E; "  class="math" > then there must be a unique <span  class="cmsl-10">time transition</span> <img  src="/img/revistas/cleiej/v18n2/2a0423x.png" alt="(t&#x2032;,s,&#x03B3;,true,a,sd)  "  class="math" > with origin <img  src="/img/revistas/cleiej/v18n2/2a0424x.png" alt="s  "  class="math" >.</li>    </ul> <!--l. 276-->    <p class="indent" >   Figure <a  href="#x1-240016">6<!--tex4ht:ref: fig:CajeroAutomaticoBancoUML --></a> shows an example of a SC. Note that the transitions are triggered when the life time runs out in their origin state (<span  class="cmsl-10">time transition</span>) are drawn simply by associating the life time of their origin state and action output; the event (event time <img  src="/img/revistas/cleiej/v18n2/2a0425x.png" alt="&#x03C4;  "  class="math" >) and condition (<img  src="/img/revistas/cleiej/v18n2/2a0426x.png" alt="true  "  class="math" >) are not drawn. <!--l. 279-->    <p class="noindent" >    <h4 class="subsectionHead"><span class="titlemark">4.2   </span> <a   id="x1-120004.2"></a>Definition of DEVS Formalism</h4> <!--l. 282-->    <p class="noindent" >A classic DEVS atomic model is defined as a tuple <img  src="/img/revistas/cleiej/v18n2/2a0427x.png" alt="&#x27E8;X, Y,S,&#x03B4;ext,&#x03B4;int,&#x03BB;,ta&#x27E9; "  class="math" >, where:      <ul class="itemize1">      <li class="itemize"><img  src="/img/revistas/cleiej/v18n2/2a0428x.png" alt="X  "  class="math" > is the set of input events (possibly <img  src="/img/revistas/cleiej/v18n2/2a0429x.png" alt="&#x221E; "  class="math" >).      </li>      <li class="itemize"><img  src="/img/revistas/cleiej/v18n2/2a0430x.png" alt="Y  "  class="math" > is the set of output events (possibly <img  src="/img/revistas/cleiej/v18n2/2a0431x.png" alt="&#x221E; "  class="math" >).      </li>      <li class="itemize"><img  src="/img/revistas/cleiej/v18n2/2a0432x.png" alt="S  "  class="math" > is the set of states (possibly <img  src="/img/revistas/cleiej/v18n2/2a0433x.png" alt="&#x221E; "  class="math" >).      </li>      <li class="itemize"><img  src="/img/revistas/cleiej/v18n2/2a0434x.png" alt="&#x03B4;   : Q &#x00D7; X &#x2192; S  ext  "  class="math" > is the <span  class="cmti-10">external transition </span>function which defines how an input event changes a state      of the system, where: <img  src="/img/revistas/cleiej/v18n2/2a0435x.png" alt="Q = {(s,e)|s &#x2208; S,0 &#x2264; e &#x2264; ta(s)} "  class="math" > is the set of total states, and <img  src="/img/revistas/cleiej/v18n2/2a0436x.png" alt="e  "  class="math" > theis the      elapsed time since the last event.      </li>      <li class="itemize"><img  src="/img/revistas/cleiej/v18n2/2a0437x.png" alt="&#x03B4;int : S &#x2192; S  "  class="math" > is the <span  class="cmti-10">internal transition  </span>function which defines how a state of the system changes      internally (when the elapsed time reaches to the lifetime of the state).      </li>      <li class="itemize"><img  src="/img/revistas/cleiej/v18n2/2a0438x.png" alt="&#x03BB; : S &#x2192; Y  "  class="math" >is the output function. This function defines how a state of the system generates an output      event (when the elapsed time reaches to the lifetime of the state).      </li>      <li class="itemize"><img  src="/img/revistas/cleiej/v18n2/2a0439x.png" alt="ta : S &#x2192; &#x211C;+          0,&#x221E; "  class="math" > is the <span  class="cmti-10">time advance </span>function which is used to determine the lifespan of a state.</li>    ]]></body>
<body><![CDATA[</ul> <!--l. 294-->    <p class="indent" >   A system that is in a state <img  src="/img/revistas/cleiej/v18n2/2a0440x.png" alt="s &#x2208; S  "  class="math" > will remain in it for a <img  src="/img/revistas/cleiej/v18n2/2a0441x.png" alt="ta(s)  "  class="math" > period of time, unless an input event with value <img  src="/img/revistas/cleiej/v18n2/2a0442x.png" alt="x &#x2208; X  "  class="math" > occurs, after a time <img  src="/img/revistas/cleiej/v18n2/2a0443x.png" alt="e  "  class="math" > lower or equal to <img  src="/img/revistas/cleiej/v18n2/2a0444x.png" alt="ta(s)  "  class="math" > elapses. In this case, the system will experience an <span  class="cmti-10">external</span> <span  class="cmti-10">transition </span>to the state <img  src="/img/revistas/cleiej/v18n2/2a0445x.png" alt="s&#x2032; = &#x03B4;ext(s,e,x)  "  class="math" >. However, if the elapsed time <img  src="/img/revistas/cleiej/v18n2/2a0446x.png" alt="e  "  class="math" > is equal to <img  src="/img/revistas/cleiej/v18n2/2a0447x.png" alt="ta(s)  "  class="math" > without external events have taken place, an internal event will occur leading to an <span  class="cmti-10">internal transition</span>. This will produce an output event with value <img  src="/img/revistas/cleiej/v18n2/2a0448x.png" alt="y = &#x03BB; (s)  "  class="math" > and a transition to a new state <img  src="/img/revistas/cleiej/v18n2/2a0449x.png" alt="s&#x2032;&#x2032; = &#x03B4;int(s)  "  class="math" >. In both cases, the system will remain in the new state, by the time <img  src="/img/revistas/cleiej/v18n2/2a0450x.png" alt="ta  "  class="math" > determined or until an external event occurs again. <!--l. 296-->    <p class="indent" >   Note that in the definition of DEVS filed, the <span  class="cmti-10">time advance </span>function supports associating a time <img  src="/img/revistas/cleiej/v18n2/2a0451x.png" alt="0  "  class="math" > or <img  src="/img/revistas/cleiej/v18n2/2a0452x.png" alt="&#x221E; "  class="math" > to a state <img  src="/img/revistas/cleiej/v18n2/2a0453x.png" alt="s &#x2208; S  "  class="math" >. In the first case, the system may remain <img  src="/img/revistas/cleiej/v18n2/2a0454x.png" alt="0  "  class="math" > units of time in <img  src="/img/revistas/cleiej/v18n2/2a0455x.png" alt="s  "  class="math" >. Therefore, when <img  src="/img/revistas/cleiej/v18n2/2a0456x.png" alt="s  "  class="math" > is reached, an internal transition happen immediately generating an output event and a state change. Such a state is called <span  class="cmti-10">transitory state</span>. Moreover, when the system reaches s whose associated time is <img  src="/img/revistas/cleiej/v18n2/2a0457x.png" alt="&#x221E; "  class="math" >, no internal transitions will exist and will remain forever in this state unless an external event occurs. Such a state is <span  class="cmti-10">called</span> <span  class="cmti-10">passive</span>.                                                                                                                                                                                     <!--l. 312-->    <p class="noindent" >    <h4 class="subsectionHead"><span class="titlemark">4.3   </span> <a   id="x1-130004.3"></a>Element Mapping</h4> <!--l. 315-->    <p class="noindent" >Model transformations are defined as programs that take a model (or more than one) as input and returns another model (or more than one) as output.Consist of a set of rules describing how one or more source model elements are transformed into one or more elements of the target model. Below is formally defined the set of rules that describe how the elements of the source model are transformed into elements of the target model by extracting the necessary information from a SC to build a DEVS atomic model. <!--l. 317-->    <p class="indent" >   Given ME = <img  src="/img/revistas/cleiej/v18n2/2a0458x.png" alt="&#x27E8;Suml,&#x03A3;, T,A,&#x03A0;&#x27E9; "  class="math" > a SC, and MA = <img  src="/img/revistas/cleiej/v18n2/2a0459x.png" alt="&#x27E8;X,Y,Sdevs,&#x03B4;ext,&#x03B4;int,&#x03BB;,ta&#x27E9; "  class="math" > a DEVS atomic model, the transformation rules are defined as follows: <!--l. 320-->    <p class="indent" >      <dl class="enumerate"><dt class="enumerate">   1. </dt><dd  class="enumerate"><span  class="cmsl-10">Rule   1</span>:   states   from   <img  src="/img/revistas/cleiej/v18n2/2a0460x.png" alt="Suml  "  class="math" >   and   their   life   time   are   transformed   DEVS   states,   where:      <img  src="/img/revistas/cleiej/v18n2/2a0461x.png" alt="Sdevs = {(s,&#x03C3;)|s &#x2208; Suml,&#x03A0;(s) = &#x03C3;} "  class="math" >.   On   the   other   hand,   the   <img  src="/img/revistas/cleiej/v18n2/2a0462x.png" alt="ta  "  class="math" >  function   is   defined   as:      <img  src="/img/revistas/cleiej/v18n2/2a0463x.png" alt="ta((s,&#x03C3;)) = &#x03C3;  "  class="math" >.      </dd><dt class="enumerate">   2. </dt><dd  class="enumerate"><span  class="cmsl-10">Rule 2</span>: an event <img  src="/img/revistas/cleiej/v18n2/2a0464x.png" alt="e &#x2208; &#x03A3;  "  class="math" > is transformed into a DEVS input event with the same name; <img  src="/img/revistas/cleiej/v18n2/2a0465x.png" alt="X = &#x03A3; - &#x03B3;  "  class="math" >.      </dd><dt class="enumerate">   3. </dt><dd  class="enumerate"><span  class="cmsl-10">Rule 3</span>: an action <img  src="/img/revistas/cleiej/v18n2/2a0466x.png" alt="a &#x2208; A  "  class="math" > is transformed into a DEVS output event with the same name; <img  src="/img/revistas/cleiej/v18n2/2a0467x.png" alt="Y = A  "  class="math" >.      </dd><dt class="enumerate">   4. </dt><dd  class="enumerate"><span  class="cmsl-10">Rule 4</span>: to define the transitions mapping is necessary to distinguish particular cases, as in ME all the      information is contained in the tuple that defines the transition, while on a DEVS model it is specified      in various elements of the atomic model. This classification is to distinguish transitions according to      their trigger (event time and the rest), and according to a certain action or null action attached to it.          <ul class="itemize1">          <li class="itemize"><span  class="cmsl-10">Rule  4.1</span>:  a  transition  <img  src="/img/revistas/cleiej/v18n2/2a0468x.png" alt="t &#x2208; T  "  class="math" > that  is  triggered  by  the  occurrence  of  a  time  event  (<img  src="/img/revistas/cleiej/v18n2/2a0469x.png" alt="&#x03B3;  "  class="math" >),  is          transformed into an internal transition in MA.          <!--l. 337-->    <p class="noindent" >Given <img  src="/img/revistas/cleiej/v18n2/2a0470x.png" alt="    &#x2032; t = (t,so,&#x03B3;,true,a,sd) &#x2208; T  "  class="math" >:          <!--l. 339-->    <p class="noindent" ><img  src="/img/revistas/cleiej/v18n2/2a0471x.png" alt="&#x03B4;int((so,&#x03C3;)) = (sd,&#x03A0;(sd))  "  class="math" >, and <img  src="/img/revistas/cleiej/v18n2/2a0472x.png" alt="&#x03BB;((so,&#x03C3;)) = a.  "  class="math" >          </li>          <li class="itemize"><span  class="cmsl-10">Rule 4.2</span>: a transition <img  src="/img/revistas/cleiej/v18n2/2a0473x.png" alt="t &#x2208; T  "  class="math" > that is triggered by the occurrence of an event <img  src="/img/revistas/cleiej/v18n2/2a0474x.png" alt="e &#x2044;= &#x03B3;  "  class="math" > and contains          the null action <img  src="/img/revistas/cleiej/v18n2/2a0475x.png" alt="&#x03C4;  "  class="math" >, it is transformed into an external transition in MA.          <!--l. 342-->    <p class="noindent" >Given <img  src="/img/revistas/cleiej/v18n2/2a0476x.png" alt="t = (t&#x2032;,s,e,c,&#x03C4;,s) &#x2208; T        o      d  "  class="math" >, where <img  src="/img/revistas/cleiej/v18n2/2a0477x.png" alt="e &#x2044;= &#x03B3;  "  class="math" >:<br  class="newline" /><img  src="/img/revistas/cleiej/v18n2/2a0478x.png" alt="if c then &#x03B4; (((s ,&#x03C3; ),t ),e) = (s ,&#x03A0;(s ))          ext   o    e       d    d  "  class="math" > <span  class="cmti-10">else</span>&#x00A0;<img  src="/img/revistas/cleiej/v18n2/2a0479x.png" alt="&#x03B4;  (((s,&#x03C3;),t),e) = (s ,&#x03C3;- t )).  ext   o    e       o     e  "  class="math" >          </li>          <li class="itemize"><span  class="cmsl-10">Rule 4.3</span>: a transition <img  src="/img/revistas/cleiej/v18n2/2a0480x.png" alt="t &#x2208; T  "  class="math" > that is triggered by the occurrence of an event <img  src="/img/revistas/cleiej/v18n2/2a0481x.png" alt="e &#x2044;= &#x03B3;  "  class="math" > and contains          a non-null action <img  src="/img/revistas/cleiej/v18n2/2a0482x.png" alt="a &#x2044;= &#x03C4;  "  class="math" >, produce the following elements in MA.          <!--l. 347-->    ]]></body>
<body><![CDATA[<p class="noindent" >Given <img  src="/img/revistas/cleiej/v18n2/2a0483x.png" alt="t = (t&#x2032;,so,e,c,a,sd) &#x2208; T  "  class="math" >, where <img  src="/img/revistas/cleiej/v18n2/2a0484x.png" alt="e &#x2044;= &#x03B3;  "  class="math" >, and <img  src="/img/revistas/cleiej/v18n2/2a0485x.png" alt="a &#x2044;= &#x03C4;  "  class="math" >:              <dl class="enumerate"><dt class="enumerate">          (a) </dt><dd  class="enumerate">it is defined an intermediate state <img  src="/img/revistas/cleiej/v18n2/2a0486x.png" alt="so - sd  "  class="math" > with life time 0, in order to produce as output of              the model MA, the action <img  src="/img/revistas/cleiej/v18n2/2a0487x.png" alt="a  "  class="math" >: <img  src="/img/revistas/cleiej/v18n2/2a0488x.png" alt="(so - sd,0) &#x2208; Sdevs  "  class="math" >;              </dd><dt class="enumerate">          (b) </dt><dd  class="enumerate">an external transition from <img  src="/img/revistas/cleiej/v18n2/2a0489x.png" alt="s  o  "  class="math" > to <img  src="/img/revistas/cleiej/v18n2/2a0490x.png" alt="s - s  o   d  "  class="math" >: <img  src="/img/revistas/cleiej/v18n2/2a0491x.png" alt="&#x03B4;  (((s,&#x03C3;),t),e) = (s - s ,0)  ext  o     e       o   d  "  class="math" >;              </dd><dt class="enumerate">          (c) </dt><dd  class="enumerate">an internal transition from <img  src="/img/revistas/cleiej/v18n2/2a0492x.png" alt="so - sd  "  class="math" > to <img  src="/img/revistas/cleiej/v18n2/2a0493x.png" alt="sd  "  class="math" >: <img  src="/img/revistas/cleiej/v18n2/2a0494x.png" alt="&#x03B4;int(so - sd,&#x03C3; ) = (sd,&#x03A0; (sd))  "  class="math" >;              </dd><dt class="enumerate">          (d) </dt><dd  class="enumerate">an element from the output function that maps <img  src="/img/revistas/cleiej/v18n2/2a0495x.png" alt="so - sd  "  class="math" > to the output event (action) <img  src="/img/revistas/cleiej/v18n2/2a0496x.png" alt="a  "  class="math" >:              <img  src="/img/revistas/cleiej/v18n2/2a0497x.png" alt="&#x03BB;(so - sd) = a  "  class="math" >.              </dd></dl>          </li>    </ul>      </dd></dl>                                                                                                                                                                                     <!--l. 374-->    <p class="noindent" >    <h3 class="sectionHead"><span class="titlemark">5   </span> <a   id="x1-140005"></a>Implementing the Transformation with QVT and Exporting to PowerDEVS</h3> <!--l. 377-->    <p class="noindent" >In this section an implementation of the transformation rules from UML statecharts to DEVS atomic models based on the QVT-R language is proposed. Subsequently, the exporting method of the resulting model is described, so that it can be interpreted by PowerDEVS. <!--l. 379-->    <p class="indent" >   A set of QVT relations that implement the rules detailed in Section <a  href="#x1-130004.3">4.3<!--tex4ht:ref: Mapeo de elementos --></a> is defined. We make use of the UML 2.4.1 metamodel described in the official website of the OMG <span class="cite">[<a  href="#XOMG04">8</a><a id="br8">]</a></span>. In function of this specification, the UML elements that are used to support the formalism of the SCs defined in <a  href="#x1-110004.1">4.1<!--tex4ht:ref: Definicion Formal de las SC --></a> are described. Later, the DEVS formalism metamodel presented in Section <a  href="#x1-120004.2">4.2<!--tex4ht:ref: Definicion del formalismo DEVS --></a>, is defined in Ecore format. <!--l. 381-->    <p class="indent" >   An execution of rules in QVT receives a model (or instance) of a UML SC satisfies the UML metamodel in Ecore <span class="cite">[<a  href="#XEMF10">47</a><a id="br47">]</a></span>, and builds a DEVS atomic model that satisfies the respective metamodel in Ecore format. <!--l. 383-->    <p class="indent" >   Table <a  href="#x1-140011">1<!--tex4ht:ref: tab:ME-MEEcore --></a> reflects briefly which UML elements are used to model the SCs defined in Section <a  href="#x1-110004.1">4.1<!--tex4ht:ref: Definicion Formal de las SC --></a>.        <div class="table">                                                                                                                                                                                     <!--l. 385-->    <p class="indent" >   <a   id="x1-140011"></a><hr class="float">    <div class="float"  >                                                                                                                                                                                          ]]></body>
<body><![CDATA[<div class="caption"  ><span class="id">Table&#x00A0;1: </span><span   class="content">Mapping between SC elements (formal definition) and UML 2.4.1 elements</span></div><!--tex4ht:label?: x1-140011 -->     <div class="pic-tabular"> <img  src="/img/revistas/cleiej/v18n2/2a0498x.png" alt="-------------------------------------------- -De-finition---Description----Ecore-(EClass-)--  ME          state machines StateMachine  S           state          State  &#x03A3;           event          SignalEvent  A           action         FunctionBehavior  T           transition      Transition -&#x03A0;-----------life-time--------Constraint-------- " ></div>                                                                                                                                                                                        </div><hr class="endfloat" />    </div>    <h4 class="likesubsectionHead"><a   id="x1-150005"></a>DEVS Metamodel</h4> <!--l. 402-->    <p class="noindent" >The DEVS metamodel definition is based on the specification described in Section <a  href="#x1-120004.2">4.2<!--tex4ht:ref: Definicion del formalismo DEVS --></a> and is built with the MediniQVT tool. Note that each element of the tuple that defines the DEVS models is defined by a metaclass. Figure <a  href="#x1-150013">3<!--tex4ht:ref: fig:DEVS Metamodel --></a> shows graphically that metamodel. Briefly, Table <a  href="#x1-150022">2<!--tex4ht:ref: DEVS-DEVSEcore --></a> describes the relationship between the elements from the formal definition of an DEVS atomic model and elements of the Ecore metamodel. <!--l. 404-->    <p class="indent" >   <hr class="figure">    <div class="figure"  >                                                                                                                                                                                     <a   id="x1-150013"></a>                                                                                                                                                                                     <!--l. 406-->    <p class="noindent" ><img  src="/img/revistas/cleiej/v18n2/2a0499x.png" alt="PIC" class="graphics" width="364.96721pt" height="379.42136pt" ><!--tex4ht:graphics   name=="/img/revistas/cleiej/v18n2/2a0499x.png" src="imagenes/diagramaDevs.eps"   --> <br />     <div class="caption"  ><span class="id">Figure&#x00A0;3: </span><span   class="content">DEVS metamodel</span></div><!--tex4ht:label?: x1-150013 -->                                                                                                                                                                                     <!--l. 409-->    <p class="indent" >   </div><hr class="endfigure">        <div class="table">                                                                                                                                                                                     <!--l. 412-->    <p class="indent" >   <a   id="x1-150022"></a><hr class="float">    ]]></body>
<body><![CDATA[<div class="float"  >                                                                                                                                                                                          <div class="caption"  ><span class="id">Table&#x00A0;2: </span><span   class="content">Mapping between DEVS atomic model elements (formal definition) and its representation in Ecore</span></div><!--tex4ht:label?: x1-150022 -->     <div class="pic-tabular"> <img  src="/img/revistas/cleiej/v18n2/2a04100x.png" alt="------------------------------------------------ -De-finition---Description-------Ecore--(EClass-)---  MA          atomic model      AtomicModel  S           state             State  X           input event        InputEvent  Y           output event      OutputEvent  &#x03B4;int         internal transition InternalTransition  &#x03B4;ext         external transition ExternalTransition  &#x03BB;           output function    OutputFunction -ta----------time-advance------lifeTime(Double)--- " ></div>                                                                                                                                                                                        </div><hr class="endfloat" />    </div>    <h4 class="subsectionHead"><span class="titlemark">5.1   </span> <a   id="x1-160005.1"></a>Transformation Rules in QTV-R</h4> <!--l. 433-->    <p class="noindent" >The definition of relationships (rules) in QVT-R implement the rules specified in <a  href="#x1-130004.3">4.3<!--tex4ht:ref: Mapeo de elementos --></a>. These transformation rules are written declaratively and describe consistent relationships between the set of elements of each model. This consistency can be verified by running the transformation in <span  class="cmsl-10">checkonly </span>mode (read-only), with a satisfactory result if both models are consistent according to the relations. Similarly, it can be executed in <span  class="cmsl-10">enforce </span>mode to modify or build one of the models, so that both satisfy the relations at the end of the execution. In this paper, QVT relationships are built by checking the UML model, and enforcing the DEVS one, thus the elements of first maps to elements of the second. <!--l. 435-->    <p class="indent" >   For space reasons, the relevant parts of the code relationships are shown. In particular, only the construction of states, input events and partly the construction of internal and external transitions from the DEVS atomic model are shown. In <a  href="https://www.dropbox.com/sh/4e0zorfyvgdmdg3/dnfWO_ija9" class="url" ><span  class="cmtt-10">https://www.dropbox.com/sh/4e0zorfyvgdmdg3/dnfWO_ija9</span></a> it is possible to download the full definition of the rules. Note that a rule defined in Section <a  href="#x1-130004.3">4.3<!--tex4ht:ref: Mapeo de elementos --></a> may be implemented by more than one relationship in QVT-R. <!--l. 437-->    <p class="indent" >   The relationship <span  class="cmtt-10">state2state </span>builds the DEVS model states according to the following mapping: the name of the DEVS state corresponds to the name that has in the UML model and its lifetime specified on the UML (Constraint) time constraint.                                                                                                                                                                                            <div class="verbatim" id="verbatim-1"> top&#x00A0;relation&#x00A0;state2state&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;nameS:&#x00A0;String; &#x00A0;<br />&#x00A0;&#x00A0;checkonly&#x00A0;domain&#x00A0;smUml&#x00A0;s_source&#x00A0;:uml::State&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;container&#x00A0;=&#x00A0;regionsource&#x00A0;:uml::Region{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;stateMachine&#x00A0;=&#x00A0;sm&#x00A0;:uml::StateMachine{}&#x00A0;}, &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;stateInvariant&#x00A0;=&#x00A0;s_stateInvariant&#x00A0;:uml::Constraint{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;specification&#x00A0;=&#x00A0;spec&#x00A0;:uml::ValueSpecification{}&#x00A0;}, &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;name&#x00A0;=&#x00A0;nameS &#x00A0;<br />&#x00A0;&#x00A0;}; &#x00A0;<br />&#x00A0;&#x00A0;enforce&#x00A0;domain&#x00A0;smDevs&#x00A0;s_target&#x00A0;:devs::State&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;atomicModel&#x00A0;=&#x00A0;am&#x00A0;:devs::AtomicModel{}, &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;lifeTime&#x00A0;=&#x00A0;spec.oclAsType(uml::LiteralDouble).value, &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;name&#x00A0;=&#x00A0;nameS &#x00A0;<br />&#x00A0;&#x00A0;}; &#x00A0;<br />&#x00A0;&#x00A0;when&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;statemachine2atomicmodel(sm,am); &#x00A0;<br />&#x00A0;&#x00A0;} &#x00A0;<br />} </div> <!--l. 459-->    <p class="nopar" > <!--l. 462-->    <p class="indent" >   The UML events <span  class="cmtt-10">S</span>ignalEvent are mapped to <span  class="cmtt-10">InputEvent </span>elements of the DEVS metamodel. This is defined by the relationship <span  class="cmtt-10">signalEvent2inputEvent</span>.                                                                                                                                                                                            <div class="verbatim" id="verbatim-2"> top&#x00A0;relation&#x00A0;signalEvent2inputEvent&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;nameT&#x00A0;:&#x00A0;String; &#x00A0;<br />&#x00A0;&#x00A0;checkonly&#x00A0;domain&#x00A0;smUml&#x00A0;s_source&#x00A0;:uml::SignalEvent&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;name&#x00A0;=&#x00A0;nameT &#x00A0;<br />&#x00A0;&#x00A0;}; &#x00A0;<br />&#x00A0;&#x00A0;enforce&#x00A0;domain&#x00A0;smDevs&#x00A0;s_target&#x00A0;:devs::InputEvent&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;name&#x00A0;=&#x00A0;nameT &#x00A0;<br />&#x00A0;&#x00A0;}; &#x00A0;<br />} </div> <!--l. 474-->    ]]></body>
<body><![CDATA[<p class="nopar" > <!--l. 476-->    <p class="indent" >   A UML transition that is triggered by the ocurrence of an external event and contains an action attached to it, creates various elements of the resulting DEVS atomic model, according to the last rule defined in Section <a  href="#x1-130004.3">4.3<!--tex4ht:ref: Mapeo de elementos --></a>.                                                                                                                                                                                            <div class="verbatim" id="verbatim-3"> --&#x00A0;Source&#x00A0;Transition. &#x00A0;<br />top&#x00A0;relation&#x00A0;transition2mediatorState&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;nameT&#x00A0;:&#x00A0;String; &#x00A0;<br />&#x00A0;&#x00A0;checkonly&#x00A0;domain&#x00A0;smUml&#x00A0;s_source&#x00A0;:uml::Transition&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;container&#x00A0;=&#x00A0;regionsource&#x00A0;:uml::Region{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;stateMachine&#x00A0;=&#x00A0;sm&#x00A0;:uml::StateMachine{}&#x00A0;}, &#x00A0;<br />&#x00A0;&#x00A0;source&#x00A0;=&#x00A0;ss_uml&#x00A0;:uml::State{}, &#x00A0;<br />&#x00A0;&#x00A0;target&#x00A0;=&#x00A0;st_uml&#x00A0;:uml::State{}, &#x00A0;<br />&#x00A0;&#x00A0;trigger&#x00A0;=&#x00A0;t_uml&#x00A0;:uml::Trigger{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;event&#x00A0;=&#x00A0;se_uml&#x00A0;:uml::SignalEvent{}&#x00A0;}, &#x00A0;<br />&#x00A0;&#x00A0;effect&#x00A0;=&#x00A0;a_uml&#x00A0;:uml::Activity{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;classifierBehavior&#x00A0;=&#x00A0;fb_uml&#x00A0;:uml::FunctionBehavior{}&#x00A0;}, &#x00A0;<br />&#x00A0;&#x00A0;name&#x00A0;=&#x00A0;nameT &#x00A0;<br />}; &#x00A0;<br /> &#x00A0;<br />--&#x00A0;Middle&#x00A0;Status &#x00A0;<br />&#x00A0;&#x00A0;enforce&#x00A0;domain&#x00A0;smDevs&#x00A0;s_target_MS&#x00A0;:devs::State&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;atomicModel&#x00A0;=&#x00A0;am&#x00A0;:devs::AtomicModel{}, &#x00A0;<br />&#x00A0;&#x00A0;lifeTime&#x00A0;=&#x00A0;0.0, &#x00A0;<br />&#x00A0;&#x00A0;name&#x00A0;=&#x00A0;ss_uml.name&#x00A0;+&#x00A0;&#8217;-&#8217;&#x00A0;+&#x00A0;st_uml.name &#x00A0;<br />&#x00A0;&#x00A0;}; &#x00A0;<br /> &#x00A0;<br />--&#x00A0;External&#x00A0;transition &#x00A0;<br />&#x00A0;&#x00A0;enforce&#x00A0;domain&#x00A0;smDevs&#x00A0;s_target_ET&#x00A0;:devs:: &#x00A0;<br />&#x00A0;&#x00A0;ExternalTransition&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;atomicModel&#x00A0;=&#x00A0;am&#x00A0;:devs::AtomicModel{}, &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;source&#x00A0;=&#x00A0;ss_devs&#x00A0;:devs::State{}, &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;target&#x00A0;=&#x00A0;s_target_MS, &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;inputEvent&#x00A0;=&#x00A0;ie_devs&#x00A0;:devs::InputEvent{}, &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;name&#x00A0;=&#x00A0;ss_uml.name&#x00A0;+&#x00A0;&#8217;to&#8217;&#x00A0;+&#x00A0;s_target_MS.name&#x00A0;+&#8217;(?&#8217;&#x00A0;+&#x00A0;t_uml.name+&#8217;)&#8217; &#x00A0;<br />&#x00A0;&#x00A0;}; &#x00A0;<br /> &#x00A0;<br />--&#x00A0;Internal&#x00A0;Transition &#x00A0;<br />&#x00A0;&#x00A0;enforce&#x00A0;domain&#x00A0;smDevs&#x00A0;s_target_ITTarget&#x00A0;:devs:: &#x00A0;<br />&#x00A0;&#x00A0;InternalTransition&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;atomicModel&#x00A0;=&#x00A0;am&#x00A0;:devs::AtomicModel{}, &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;source&#x00A0;=&#x00A0;s_target_MS, &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;target&#x00A0;=&#x00A0;st_devs&#x00A0;:devs::State{}, &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;name&#x00A0;=&#x00A0;s_target_MS.name&#x00A0;+&#x00A0;&#8217;to&#8217;&#x00A0;+&#x00A0;st_uml.name &#x00A0;<br />&#x00A0;&#x00A0;}; &#x00A0;<br /> &#x00A0;<br />--&#x00A0;Output&#x00A0;Function &#x00A0;<br />&#x00A0;&#x00A0;enforce&#x00A0;domain&#x00A0;smDevs&#x00A0;s_target_OF&#x00A0;:devs::OutputFunction&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;atomicModel&#x00A0;=&#x00A0;am&#x00A0;:devs::AtomicModel{}, &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;state&#x00A0;=&#x00A0;s_target_MS, &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;outputEvent&#x00A0;=&#x00A0;oe_devs&#x00A0;:devs::OutputEvent{}, &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;name&#x00A0;=&#x00A0;s_target_MS.name&#x00A0;+&#x00A0;&#8217;(!&#8217;&#x00A0;+&#x00A0;fb_uml.name&#x00A0;+&#x00A0;&#8217;)&#8217; &#x00A0;<br />&#x00A0;&#x00A0;}; &#x00A0;<br /> &#x00A0;<br />--&#x00A0;Preconditions &#x00A0;<br />&#x00A0;&#x00A0;when&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;state2state(ss_uml,ss_devs); &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;state2state(st_uml,st_devs); &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;signalEvent2inputEvent(se_uml,&#x00A0;ie_devs); &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;function2outputEvent(fb_uml,oe_devs); &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;isUmlExternalTransition(s_source);                                                                                                                                                                                     &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;statemachine2atomicmodel(sm,am); &#x00A0;<br />&#x00A0;&#x00A0;} &#x00A0;<br />} </div> <!--l. 538-->    <p class="nopar" > <!--l. 541-->    <p class="noindent" >    <h4 class="subsectionHead"><span class="titlemark">5.2   </span> <a   id="x1-170005.2"></a>Exporting to PowerDEVS</h4> <!--l. 544-->    <p class="noindent" >The DEVS model resulting from the transformation can be exported to various tools to perform simulations; among others, PowerDevs, DEVSJAVA <span class="cite">[<a  href="#XDJ00">43</a><a id="br43">]</a></span>, DEVS-C++ <span class="cite">[<a  href="#XDEVSC++">53</a><a id="br53">]</a></span>, DEVSim++ <span class="cite">[<a  href="#XDEVSim++">54</a><a id="br54">]</a></span>, CD++ <span class="cite">[<a  href="#XCD++02">55</a><a id="br55">]</a></span>, and JDEVS <span class="cite">[<a  href="#XJDEVS04">56</a><a id="br56">]</a></span>. These software tools provide different features, which include graphical interfaces and advanced simulation functionalities for general purpose and domain-specific DEVS models. In this paper we have chosen PowerDEVS, being an open source tool and easy to use to implement these models; moreover, it has versions for both Windows and Linux and is widely used in academia for teaching M&amp;S. <!--l. 546-->    <p class="indent" >   PowerDEVS is implemented in C++ (with <span  class="cmti-10">QT </span>graphics libraries) and DEVS models must also be defined in C++. It consists of several separate programs:      <ul class="itemize1">      <li class="itemize"><span  class="cmti-10">Model Editor</span>: contains the graphical interface that allows, among other high-level definitions, the      hierarchical construction of the structure of DEVS (files .pdm) models, which have a special syntax.      </li>      <li class="itemize"><span  class="cmti-10">Atomic Editor</span>: allows to define in C ++ (.h and .cpp files) the behavior of the DEVS atomic models,      i.e. transition functions, the output function, lifetime, and other elements of these models.      </li>      <li class="itemize"><span  class="cmti-10">Preprocessor</span>: translates files from the <span  class="cmti-10">Model Editor </span>in structures with information necessary to build      the simulation code, and links files created with the <span  class="cmti-10">Atomic Editor </span>compiling a <span  class="cmti-10">stand-alone </span>executable      file.      </li>      <li class="itemize"><span  class="cmti-10">Simulation  Interface</span>:  runs  the  <span  class="cmti-10">stand-alone  </span>executables,  allowing  to  vary  the  parameters  of  the      simulation.      </li>      <li class="itemize">An instance of a <span  class="cmti-10">Scilab </span>execution where the simulation parameters are read and the results can be      exported.</li>    </ul> <!--l. 557-->    <p class="indent" >   The export of a DEVS atomic model in Ecore produce, first, a file (.pdm) that defines the structure of the model and can be opened by the <span  class="cmti-10">Model Editor</span>, and secondly, the files that define the behavior (.h and .cpp) so that they can be interpreted by the <span  class="cmti-10">Atomic Model</span>. The algorithm that generates the code (<span  class="cmti-10">XEP:</span> <span  class="cmti-10">XML Ecore to PowerDEVS</span>) was implemented by the authors of the current work and is based on the <span  class="cmti-10">Saxon XSLT library </span>and <span  class="cmti-10">the XQuery Processor </span><span class="cite">[<a  href="#XSaxon">57</a><a id="br57">]</a></span>, which is a collection of tools for processing XML documents. <!--l. 559-->    <p class="indent" >   The export process described is shown in Figure <a  href="#x1-170014">4<!--tex4ht:ref: fig:DEVStoPOWERDEVS --></a>. In Section <a  href="#x1-230007">7<!--tex4ht:ref: Ejemplo de Aplicacion --></a> two examples of application can be observed. <!--l. 561-->    ]]></body>
<body><![CDATA[<p class="indent" >   <hr class="figure">    <div class="figure"  >                                                                                                                                                                                     <a   id="x1-170014"></a>                                                                                                                                                                                     <!--l. 563-->    <p class="noindent" ><img  src="/img/revistas/cleiej/v18n2/2a04101x.png" alt="PIC" class="graphics" width="298.11374pt" height="140.77592pt" ><!--tex4ht:graphics   name=="/img/revistas/cleiej/v18n2/2a04101x.png" src="imagenes/DEVStoPOWERDEVS.eps"   --> <br />     <div class="caption"  ><span class="id">Figure&#x00A0;4: </span><span   class="content">Exporting Ecore DEVS atomic models to PowerDEVS</span></div><!--tex4ht:label?: x1-170014 -->                                                                                                                                                                                     <!--l. 566-->    <p class="indent" >   </div><hr class="endfigure">    <h3 class="sectionHead"><span class="titlemark">6   </span> <a   id="x1-180006"></a>Validation of the Transformation</h3> <!--l. 571-->    <p class="noindent" >To validate the application of existing theories and tools about the DEVS models, we need to construct DEVS models from UML SCs models with equivalent behaviors. <!--l. 573-->    <p class="indent" >   In previous sections, we define the transformation by a systematic method and then develop their implementation, but these mechanisms need to be validated in order to increase the credibility of the results. <!--l. 575-->    <p class="indent" >   The validation of a model transformation typically includes properties which involve the syntactic correction of the transformation with respect to its specification language and syntactic correction of models produced by the transformation <span class="cite">[<a  href="#XLBM06">58</a>,&#x00A0;<a  href="#XKUSTER06">59</a><a id="br59">]</a></span>, but few proposals focus on the semantic consistency of the transformation, i.e. the preservation of the correction of the target model in relation to the origin model. In order to do this we can apply both empirical and theoretical (formal) validation methods. <!--l. 578-->    <p class="noindent" >    <h4 class="subsectionHead"><span class="titlemark">6.1   </span> <a   id="x1-190006.1"></a>Empirical Validation</h4> <!--l. 581-->    <p class="noindent" >In the context of MDD, software development is based on the refinement of models until they become codes. An example of this is the theory of refinement of Dijkstra <span class="cite">[<a  href="#XDijkstra:1997:DP:550359">60</a><a id="br60">]</a></span>, widely applied in the area of formal methods. However, it is difficult to adapt the theory to the validation of the model transformation. <span class="cite">[<a  href="#Xpons_08_lightweight">61</a><a id="br61">]</a></span> describes an agile formal proposal for semantic validation specifying the structures of refinement with OCL which are equivalent to those employed in the formal languages. This proposal has the support of the software engineering community, due to the fact that it uses known languages. Generally, refinement is verified by demonstrating that the actual system simulates the abstract system. <!--l. 583-->    ]]></body>
<body><![CDATA[<p class="indent" >   This paper does not specifically propose a refinement, it aims to obtain an equivalent or more general model in the context of simulation systems, in order to take advantage of existing analysis tools. The model validation mechanisms in the field of M&amp;S are clearly suited to our proposal. The model validation methods try to show that the models actually represent the actual system which is one of the most important and difficult tasks faced by a modeler. Therefore, assuming that the validation of the state machine was made, in our proposal, empirical validation of the transformation is limited to the validation of the DEVS model, that is, to determine that the new model resulting from the transformation also models the real system. This is represented in Figure <a  href="#x1-190015">5<!--tex4ht:ref: fig:ValidacionEmpirica --></a>. <!--l. 585-->    <p class="indent" >   <hr class="figure">    <div class="figure"  >                                                                                                                                                                                     <a   id="x1-190015"></a>                                                                                                                                                                                         <div class="center"  > <!--l. 586-->    <p class="noindent" > <!--l. 587-->    <p class="noindent" ><img  src="/img/revistas/cleiej/v18n2/2a04102x.png" alt="PIC" class="graphics" width="316.18124pt" height="149.05687pt" ><!--tex4ht:graphics   name=="/img/revistas/cleiej/v18n2/2a04102x.png" src="imagenes/ValidacionEmpirica.eps"   --></div> <br />     <div class="caption"  ><span class="id">Figure&#x00A0;5: </span><span   class="content">Empirical validation of the transformation</span></div><!--tex4ht:label?: x1-190015 -->                                                                                                                                                                                     <!--l. 591-->    <p class="indent" >   </div><hr class="endfigure"> <!--l. 594-->    <p class="indent" >   The modeler should work closely with end users during periods of model development and validation in order to increase the credibility of the model. We can find various model validation strategies in the current literature <span class="cite">[<a  href="#Xbcnn2000">62</a><a id="br62">]</a></span> <span class="cite">[<a  href="#XSargent14">63</a><a id="br63">]</a></span> but the main goals of the validation process are common to all:      <ul class="itemize1">      <li class="itemize">To produce a model that represents a real system behavior, real enough to use it instead of the original      system in experimentation and analysis.      </li>      <li class="itemize">To raise the credibility of the model to an acceptable level so that it is used by those responsible for      making decisions.</li>    </ul> <!--l. 601-->    ]]></body>
<body><![CDATA[<p class="indent" >   In the validation process it is important:      <ul class="itemize1">      <li class="itemize">To examine at the model outputs and determine its acceptability, under a variety of configurations of      the input parameters. To make this model present a wide variety of statistical results, which should be      examined carefully.      </li>      <li class="itemize">To make the model print the input parameters while analyzing the simulation and verify that their      values have not been changed.      </li>      <li class="itemize">To document the model as much as possible.      </li>      <li class="itemize">If the operational model is animated, to verify by means of the observation of the simulation that the      model imitates the real system.      </li>      <li class="itemize">To monitor the simulation: tracking specific entities, monitoring of the component values, etc.      </li>      <li class="itemize">To review the acceptability of the model outputs in detail.      </li>      <li class="itemize">To calculate certain measures of long-term performance analytically, if possible, and then compare      these results with the values that the system provides. his is very important in validating models.      </li>      <li class="itemize">To use both the real system and the model, the same sets of input data to compare the outputs.</li>    </ul>    <h4 class="subsectionHead"><span class="titlemark">6.2   </span> <a   id="x1-200006.2"></a>Proposal for Theoretical Validation</h4> <!--l. 614-->    <p class="noindent" >Recent studies describe validation and verification techniques of model transformations. In <span class="cite">[<a  href="#XWangBL14">64</a><a id="br64">]</a></span>, the idea is to convert a model transformation system into a relational logic specification. The Alloy model analyzer is used to check if any invalid target model is created by the transformation. Other strategies achieve the correction of the transformation by means of the <span  class="cmti-10">correct-by-construction </span>using transformation patterns <span class="cite">[<a  href="#XLano14">65</a><a id="br65">]</a></span> or using ontologies <span class="cite">[<a  href="#XRB14">66</a><a id="br66">]</a></span>. <!--l. 617-->    <p class="indent" >   In the context of state transition systems there are simulation and/or bisimulation techniques <span class="cite">[<a  href="#XAceto:2007:RSM:1324845">67</a>,&#x00A0;<a  href="#XSaadawiW13">39</a><a id="br39">]</a></span> that could be applied in this work. These techniques attempt to formally prove that a state transition system includes the behavior of another, and vice versa. In our proposal we must demonstrate, in particular, that the behavior of the resulting DEVS model preserves the behavior of the SC, in other words, that the DEVS models behave like the SCs. <!--l. 626-->    <p class="indent" >   A <span  class="cmti-10">simulation </span>is a binary relation between two systems associated state transition systems where the behavior of one includes the other. A bisimulation is a binary relation between two systems of state transition, which combines systems that behave in the same way. This means, a system <span  class="cmti-10">simulates </span>another system and vicerversa. <!--l. 628-->    <p class="indent" >   In this work the SCs and DEVS models are state transition systems including time constraints (TLTS). Considering <span class="cite">[<a  href="#XAceto:2007:RSM:1324845">67</a><a id="br67">]</a></span>, a timed simulation is a binary relation <img  src="/img/revistas/cleiej/v18n2/2a04103x.png" alt="R  "  class="math" > over a set of states of a TLTS defined as follows:                                                                                                                                                                                         <div class="center"  > <!--l. 630-->    <p class="noindent" > <!--l. 631-->    <p class="noindent" ><img  src="/img/revistas/cleiej/v18n2/2a04104x.png" alt="R  "  class="math" > is a <span  class="cmti-10">timed simulation </span>iff <img  src="/img/revistas/cleiej/v18n2/2a04105x.png" alt="&#x2200;(p,q) &#x2208; R,  "  class="math" > if <img  src="/img/revistas/cleiej/v18n2/2a04106x.png" alt="  &#x03B1; p -&#x2192;  p&#x2032; "  class="math" > then <img  src="/img/revistas/cleiej/v18n2/2a04107x.png" alt="      &#x03B1; &#x2203;q&#x2032;,q-&#x2192;  q&#x2032; &#x2227;(p&#x2032;,q&#x2032;) &#x2208; R  "  class="math" ></div> <!--l. 634-->    <p class="indent" >   Where <img  src="/img/revistas/cleiej/v18n2/2a04108x.png" alt="&#x03B1;  "  class="math" > is an external event or permanence time associated with a state. <!--l. 636-->    ]]></body>
<body><![CDATA[<p class="indent" >   Two TLTSs are said to be bisimilar iff there exists a bisimulation between their state spaces. <!--l. 644-->    <p class="indent" >   In a TLTS the <span  class="cmti-10">eventual transition relation </span>defines a transition from state <img  src="/img/revistas/cleiej/v18n2/2a04109x.png" alt="s  "  class="math" > to state <img  src="/img/revistas/cleiej/v18n2/2a04110x.png" alt="t  "  class="math" > that may contain one or more direct transitions labeled. The <span  class="cmti-10">eventual transition relation </span>(<img  src="/img/revistas/cleiej/v18n2/2a04111x.png" alt="=&#x21D2; "  class="math" >) between <img  src="/img/revistas/cleiej/v18n2/2a04112x.png" alt="s  "  class="math" > and <img  src="/img/revistas/cleiej/v18n2/2a04113x.png" alt="t  "  class="math" > on <img  src="/img/revistas/cleiej/v18n2/2a04114x.png" alt="&#x03B1;  "  class="math" > (<img  src="/img/revistas/cleiej/v18n2/2a04115x.png" alt="  &#x03B1; s=&#x21D2;  t  "  class="math" >) is defined as follows: <!--l. 646-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04116x.png" alt="   &#x03B1; s =&#x21D2; t  "  class="math" > iff there is an eventual transition relation from <img  src="/img/revistas/cleiej/v18n2/2a04117x.png" alt="s  "  class="math" > to <img  src="/img/revistas/cleiej/v18n2/2a04118x.png" alt="t  "  class="math" > (with <img  src="/img/revistas/cleiej/v18n2/2a04119x.png" alt="&#x03B1; = d(delay)  "  class="math" > or <img  src="/img/revistas/cleiej/v18n2/2a04120x.png" alt="&#x03B1; = e(event))  "  class="math" >, which is composed of one or more direct transitions. This represents the following sequence of transitions: <img  src="/img/revistas/cleiej/v18n2/2a04121x.png" alt="  &#x03B1;    0 s -&#x2192; s&#x2032;(-&#x2192; )*t  "  class="math" >, proved that the only transition output <img  src="/img/revistas/cleiej/v18n2/2a04122x.png" alt="s&#x2032; "  class="math" > is an even transition time with delay zero, where <img  src="/img/revistas/cleiej/v18n2/2a04123x.png" alt="* "  class="math" > defines zero or more occurrences of transition <img  src="/img/revistas/cleiej/v18n2/2a04124x.png" alt="0-&#x2192; "  class="math" >. <!--l. 651-->    <p class="noindent" >    <h5 class="likesubsubsectionHead"><a   id="x1-210006.2"></a>Weak timed bisimulation</h5> <!--l. 652-->    <p class="noindent" >A weak timed simulation <span class="cite">[<a  href="#XAceto:2007:RSM:1324845">67</a><a id="br67">]</a></span> is a binary relation <img  src="/img/revistas/cleiej/v18n2/2a04125x.png" alt="R  "  class="math" > over a set of states of a TLTS. If we have states <img  src="/img/revistas/cleiej/v18n2/2a04126x.png" alt="s1,s&#x2032;1,s2  "  class="math" > and <img  src="/img/revistas/cleiej/v18n2/2a04127x.png" alt="s&#x2032;2  "  class="math" >, <img  src="/img/revistas/cleiej/v18n2/2a04128x.png" alt="R  "  class="math" > is a weak timed simulation <img  src="/img/revistas/cleiej/v18n2/2a04129x.png" alt="s1Rs2  "  class="math" > iff: if <img  src="/img/revistas/cleiej/v18n2/2a04130x.png" alt="   &#x03B1; s1-&#x2192; s&#x2032;1  "  class="math" >, then there is a transition <img  src="/img/revistas/cleiej/v18n2/2a04131x.png" alt="    &#x03B1; s2 =&#x21D2; s&#x2032;2  "  class="math" >. <!--l. 655-->    <p class="indent" >   We choose the weak bisimulation relation to validate the transformation from SCs to DEVS, as this relation allows two models to be in simulation relation even with if one of them has some different transitions from the other, provided that these extra transitions are time transition with delay zero. <!--l. 657-->    <p class="noindent" >    <h5 class="likesubsubsectionHead"><a   id="x1-220006.2"></a>Preservation of semantics</h5> <!--l. 659-->    <p class="noindent" >Given ME = <img  src="/img/revistas/cleiej/v18n2/2a04132x.png" alt="&#x27E8;Suml,&#x03A3;, T,A,&#x03A0;&#x27E9; "  class="math" > a UML SC, and MA = <img  src="/img/revistas/cleiej/v18n2/2a04133x.png" alt="&#x27E8;X,Y,Sdevs,&#x03B4;ext,&#x03B4;int,&#x03BB;,ta&#x27E9; "  class="math" > the DEVS atomic model resulting of the transformation. If we define <img  src="/img/revistas/cleiej/v18n2/2a04134x.png" alt="R  "  class="math" > as: <img  src="/img/revistas/cleiej/v18n2/2a04135x.png" alt="siR(si,&#x03C3; )  "  class="math" > where <img  src="/img/revistas/cleiej/v18n2/2a04136x.png" alt="si &#x2208; Suml  "  class="math" > and <img  src="/img/revistas/cleiej/v18n2/2a04137x.png" alt="(si,&#x03C3;) &#x2208; Sdevs  "  class="math" > according to rule 1 defined in section <a  href="#x1-130004.3">4.3<!--tex4ht:ref: Mapeo de elementos --></a>, then <img  src="/img/revistas/cleiej/v18n2/2a04138x.png" alt="R  "  class="math" > is a weak timed bisimulation, which means that MA <span  class="cmti-10">simulates</span> ME. <!--l. 661-->    <p class="indent" >   Demonstration and a more detailed analysis of the proposal will be considered in the future. <!--l. 664-->    <p class="noindent" >    <h3 class="sectionHead"><span class="titlemark">7   </span> <a   id="x1-230007"></a>Aplication Examples</h3> <!--l. 666-->    ]]></body>
<body><![CDATA[<p class="noindent" >Two examples are presented in this paper. The first case study shows the simplified operation of an Automatic Banking Machine (ABM). The purpose of this one is to give a general view of the mapping from a UML SC to a DEVS model, showing formal and graphical representations. The second example models the behavior of a control system of an elevator, in order to estimate certain performance variables, such as the average time of movement of each order, utilization factor, etc., or even plot the trajectory. Current available simulation tools for UML SCs do not provide adequate libraries to estimate these variables. This fact has motivated the development of the current work. <!--l. 670-->    <p class="indent" >   Simulations are developed to analyze complex systems. In this first version, the case studies allow the reader to understand the approach proposed in this paper to analyze dynamic systems from a UML diagram state machines. In future extensions contemplate complex systems in order to discover improvements in systems based on analysis by the DEVS simulation models. In Section <a  href="#x1-270007.2">7.2<!--tex4ht:ref: Control System of an Elevator --></a>, which corresponds to the example of elevator, we describe possible extensions to the case study. <!--l. 673-->    <p class="noindent" >    <h4 class="subsectionHead"><span class="titlemark">7.1   </span> <a   id="x1-240007.1"></a>Automatic Banking Machine (ABM)</h4> <!--l. 675-->    <p class="noindent" >The example shows the simplified operation of an ABM, a machine that allow a user to select different types of banking transactions by exchanging data through a magnetic card. In addition, the machine has mechanisms to diagnose failures and provide information to maintenance personnel to perform repairs. Due to space limitations, described below are only the most relevant ABM behaviors. It is considered that the ABM starts off and, once connected to the electrical power supply, a pre-launch automatic test begins, which lasts about 10 seconds. In case                                                                                                                                                                                     of failure the machine goes out of service, otherwise it will be ready for online banking (idle). When the user enters their card, he must authenticate his login with a password or PIN. If the authentication fails, after 30 seconds the ABM goes idle again, ejecting the card entered; otherwise presents an options menu to start a transaction. After the transaction the user decides to make, the user can return to the menu or exit the system. In case of failure, the ABM has a process of diagnosis and repair that maintenance staff is responsible for configuring and executing. This procedure can be performed when the ABM is idle or out of service. <!--l. 678-->    <p class="indent" >   Figure <a  href="#x1-240016">6<!--tex4ht:ref: fig:CajeroAutomaticoBancoUML --></a> ilustrates the SC of the ABM using the graphical representation of UML 2.4.1. <!--l. 680-->    <p class="indent" >   <hr class="figure">    <div class="figure"  >                                                                                                                                                                                     <a   id="x1-240016"></a>                                                                                                                                                                                     <!--l. 682-->    <p class="noindent" ><img  src="/img/revistas/cleiej/v18n2/2a04139x.png" alt="PIC" class="graphics" width="314.67735pt" height="194.32706pt" ><!--tex4ht:graphics   name=="/img/revistas/cleiej/v18n2/2a04139x.png" src="imagenes/CabUML.eps"   --> <br />     <div class="caption"  ><span class="id">Figure&#x00A0;6: </span><span   class="content">UML SC of an automatic banking machine</span></div><!--tex4ht:label?: x1-240016 -->                                                                                                                                                                                     <!--l. 685-->    <p class="indent" >   </div><hr class="endfigure"> <!--l. 687-->    ]]></body>
<body><![CDATA[<p class="indent" >   The formal specification of the ABM SC is as follows: (<span  class="cmsl-10">Sc</span><span  class="cmsl-10">_Cab</span>) = <img  src="/img/revistas/cleiej/v18n2/2a04140x.png" alt="&#x27E8;S,&#x03A3;,T, A,&#x03A0;&#x27E9; "  class="math" >, where:<br  class="newline" /> <!--l. 690-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04141x.png" alt="S  "  class="math" ><span  class="cmsl-10">:</span><span  class="cmsy-10">{</span><span  class="cmsl-10">Off, Try, Out of Service, Idle, Maintenance, Authentication, Menu, Transaction</span><span  class="cmsy-10">} </span>;<br  class="newline" /> <!--l. 693-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04142x.png" alt="&#x03A3;  "  class="math" ><span  class="cmsl-10">:</span><span  class="cmsy-10">{</span><span  class="cmsl-10">ButtonOn, ButtonOff, ButtonExit, Ok, ButtonMenu, InsertedCard, OptionSelect, Failure, Repair,</span> <span  class="cmsl-10">Mant-OK</span><span  class="cmsy-10">}</span> <img  src="/img/revistas/cleiej/v18n2/2a04143x.png" alt="&#x222A; A  "  class="math" >;<br  class="newline" /> <!--l. 695-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04144x.png" alt="T  "  class="math" ><span  class="cmsl-10">:</span><span  class="cmsy-10">{</span><span  class="cmsl-10">(Off</span><img  src="/img/revistas/cleiej/v18n2/2a04145x.png" alt="&#x2192; "  class="math" ><span  class="cmsl-10">Try, Off, ButtonOn, true, TurnOn, Try), (Try</span><img  src="/img/revistas/cleiej/v18n2/2a04146x.png" alt="&#x2192; "  class="math" ><span  class="cmsl-10">Out Of Service, Failure, true,</span> <img  src="/img/revistas/cleiej/v18n2/2a04147x.png" alt="&#x03C4;  "  class="math" ><span  class="cmsl-10">, Out Of</span> <span  class="cmsl-10">Service), (Idle</span><img  src="/img/revistas/cleiej/v18n2/2a04148x.png" alt="&#x2192; "  class="math" ><span  class="cmsl-10">Off, Idle, ButtonOff, true, TurnOff, Off), (Idle</span><img  src="/img/revistas/cleiej/v18n2/2a04149x.png" alt="&#x2192; "  class="math" ><span  class="cmsl-10">Authentication, Idle, InsertedCard, true,</span> <img  src="/img/revistas/cleiej/v18n2/2a04150x.png" alt="&#x03C4;  "  class="math" ><span  class="cmsl-10">,</span> <span  class="cmsl-10">Authentication), (Authentication</span> <img  src="/img/revistas/cleiej/v18n2/2a04151x.png" alt="&#x2192; "  class="math" ><span  class="cmsl-10">Idle, Authentication,</span> <img  src="/img/revistas/cleiej/v18n2/2a04152x.png" alt="&#x03B3;  "  class="math" ><span  class="cmsl-10">, true,</span> <img  src="/img/revistas/cleiej/v18n2/2a04153x.png" alt="&#x03C4;  "  class="math" ><span  class="cmsl-10">, Idle), (Try</span><img  src="/img/revistas/cleiej/v18n2/2a04154x.png" alt="&#x2192; "  class="math" ><span  class="cmsl-10">Idle, Try,</span> <img  src="/img/revistas/cleiej/v18n2/2a04155x.png" alt="&#x03B3;  "  class="math" ><span  class="cmsl-10">, true,</span> <img  src="/img/revistas/cleiej/v18n2/2a04156x.png" alt="&#x03C4;  "  class="math" ><span  class="cmsl-10">,</span> <span  class="cmsl-10">Idle), (Idle</span><img  src="/img/revistas/cleiej/v18n2/2a04157x.png" alt="&#x2192; "  class="math" ><span  class="cmsl-10">Maintenance, Idle, Repair, true,</span> <img  src="/img/revistas/cleiej/v18n2/2a04158x.png" alt="&#x03C4;  "  class="math" ><span  class="cmsl-10">, Maintenance), (Maintenance</span><img  src="/img/revistas/cleiej/v18n2/2a04159x.png" alt="&#x2192; "  class="math" ><span  class="cmsl-10">Out of Service, Maintenance,</span> <span  class="cmsl-10">Failure, true,</span> <img  src="/img/revistas/cleiej/v18n2/2a04160x.png" alt="&#x03C4;  "  class="math" ><span  class="cmsl-10">, Out of Service), (Maintenance</span><img  src="/img/revistas/cleiej/v18n2/2a04161x.png" alt="&#x2192; "  class="math" ><span  class="cmsl-10">Try, Maintenance, Mant-OK , true,</span> <img  src="/img/revistas/cleiej/v18n2/2a04162x.png" alt="&#x03C4;  "  class="math" ><span  class="cmsl-10">, Try), (Out of</span> <span  class="cmsl-10">Service</span><img  src="/img/revistas/cleiej/v18n2/2a04163x.png" alt="&#x2192; "  class="math" ><span  class="cmsl-10">Maintenance, Out of Service, Repair, true,</span> <img  src="/img/revistas/cleiej/v18n2/2a04164x.png" alt="&#x03C4;  "  class="math" ><span  class="cmsl-10">, Maintenance), (Authentication</span> <img  src="/img/revistas/cleiej/v18n2/2a04165x.png" alt="&#x2192; "  class="math" ><span  class="cmsl-10">Menu,</span> <span  class="cmsl-10">Authentication, Ok, true, RegisterUser, Menu), (Menu</span><img  src="/img/revistas/cleiej/v18n2/2a04166x.png" alt="&#x2192; "  class="math" ><span  class="cmsl-10">Idle, Menu, ButtonExit, true, EjectCard,</span> <span  class="cmsl-10">Idle), (Menu</span><img  src="/img/revistas/cleiej/v18n2/2a04167x.png" alt="&#x2192; "  class="math" ><span  class="cmsl-10">Transaction, Menu, OptionSelected, true,</span> <img  src="/img/revistas/cleiej/v18n2/2a04168x.png" alt="&#x03C4;  "  class="math" ><span  class="cmsl-10">, Transaction), (Transaction</span><img  src="/img/revistas/cleiej/v18n2/2a04169x.png" alt="&#x2192; "  class="math" ><span  class="cmsl-10">Menu,</span> <span  class="cmsl-10">Transaction, ButtonMenu, true,</span><img  src="/img/revistas/cleiej/v18n2/2a04170x.png" alt="&#x03C4;  "  class="math" ><span  class="cmsl-10">, Menu), (Transaction</span> <img  src="/img/revistas/cleiej/v18n2/2a04171x.png" alt="&#x2192; "  class="math" ><span  class="cmsl-10">Out of Service, Transaction, Failure,</span> <span  class="cmsl-10">true,</span><img  src="/img/revistas/cleiej/v18n2/2a04172x.png" alt="&#x03C4;  "  class="math" ><span  class="cmsl-10">, Out of Service), (Transaction</span> <img  src="/img/revistas/cleiej/v18n2/2a04173x.png" alt="&#x2192; "  class="math" ><span  class="cmsl-10">Idle, Transaction, ButtonExit, true, EjectCard, Idle) </span><span  class="cmsy-10">}</span> ;<br  class="newline" /> <!--l. 712-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04174x.png" alt="A  "  class="math" ><span  class="cmsl-10">:</span><span  class="cmsy-10">{</span><span  class="cmsl-10">TurnOff, TurnOn, EjectCard, RegisterUser</span><span  class="cmsy-10">} </span>;<br  class="newline" /> <!--l. 714-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04175x.png" alt="&#x03A0;  "  class="math" ><span  class="cmsl-10">:</span><span  class="cmsy-10">{</span><span  class="cmsl-10">(Off,</span> <img  src="/img/revistas/cleiej/v18n2/2a04176x.png" alt="&#x221E; "  class="math" ><span  class="cmsl-10">), (Try, 10), (Out of Service,</span> <img  src="/img/revistas/cleiej/v18n2/2a04177x.png" alt="&#x221E; "  class="math" ><span  class="cmsl-10">), (Idle,</span> <img  src="/img/revistas/cleiej/v18n2/2a04178x.png" alt="&#x221E; "  class="math" ><span  class="cmsl-10">), (Maintenance,</span> <img  src="/img/revistas/cleiej/v18n2/2a04179x.png" alt="&#x221E; "  class="math" ><span  class="cmsl-10">), (Authentication, 30), (Menu,</span> <img  src="/img/revistas/cleiej/v18n2/2a04180x.png" alt="&#x221E; "  class="math" ><span  class="cmsl-10">), (Transaction,</span> <img  src="/img/revistas/cleiej/v18n2/2a04181x.png" alt="&#x221E; "  class="math" ><span  class="cmsl-10">)</span><span  class="cmsy-10">} </span>.    <h4 class="likesubsectionHead"><a   id="x1-250007.1"></a>From UML ABM to DEVS ABM</h4> <!--l. 727-->    <p class="noindent" >The execution of the transformation rules in QVT-R takes as argument the ABM UML model in Ecore format and creates a DEVS atomic model. Figure <a  href="#x1-250017">7<!--tex4ht:ref: fig:CajeroAutomaticoBancoDevs --></a> shows a diagram of the resulting DEVS atomic model. Although DEVS models do not have a standardized graphical notation, because the sets may have infinite cardinality, in this case it is possible to plot the model because the number of processed elements is finite. By convention, internal transitions are drawn with dotted lines and the output <img  src="/img/revistas/cleiej/v18n2/2a04182x.png" alt="lambda  "  class="math" > function is represented implicitly on internal transitions specifying the output as a function of the source state, for example, <span  class="cmsl-10">!EjectCard</span>. The other elements are intuitive in the diagram. <!--l. 731-->    <p class="indent" >   Note that the transformation of the transitions that are triggered by the occurrence of external events, and that have actions as output, generate an intermediate state with life time <img  src="/img/revistas/cleiej/v18n2/2a04183x.png" alt="0(zero)  "  class="math" >, to produce immediate output action. For example, the transition going from state <span  class="cmsl-10">Off </span>to state <span  class="cmsl-10">Try </span>produces the intermediate state <span  class="cmsl-10">Off-Try</span>; when this is reached an internal transition is triggered immediately (because the lifetime is zero) that changes the the ABM to the state <span  class="cmsl-10">Try</span>, and also, launches out the action <span  class="cmsl-10">!TurnOn </span>(<img  src="/img/revistas/cleiej/v18n2/2a04184x.png" alt="&#x03BB;  "  class="math" ><span  class="cmsl-10">(Off-Try) =</span> <span  class="cmsl-10">TurnOn)</span>. <!--l. 735-->    <p class="indent" >   <hr class="figure">    <div class="figure"  >                                                                                                                                                                                     <a   id="x1-250017"></a>                                                                                                                                                                                     <!--l. 737-->    ]]></body>
<body><![CDATA[<p class="noindent" ><img  src="/img/revistas/cleiej/v18n2/2a04185x.png" alt="PIC" class="graphics" width="320.19801pt" height="338.96825pt" ><!--tex4ht:graphics   name=="/img/revistas/cleiej/v18n2/2a04185x.png" src="imagenes/CabDEVS.eps"   --> <br />     <div class="caption"  ><span class="id">Figure&#x00A0;7: </span><span   class="content">DEVS model of a bank ABM</span></div><!--tex4ht:label?: x1-250017 -->                                                                                                                                                                                     <!--l. 740-->    <p class="indent" >   </div><hr class="endfigure"> <!--l. 742-->    <p class="indent" >   The formal specification of the resulting DEVS ABM atomic model (<span  class="cmsl-10">Devs</span><span  class="cmsl-10">_Cab</span>) is as follows: <br  class="newline" /> <!--l. 744-->    <p class="indent" >   <span  class="cmsl-10">Devs</span><span  class="cmsl-10">_Cab </span>= <img  src="/img/revistas/cleiej/v18n2/2a04186x.png" alt="&#x27E8;X, Y,S,&#x03B4;ext,&#x03B4;int,&#x03BB;,ta&#x27E9; "  class="math" >, where:<br  class="newline" /> <!--l. 746-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04187x.png" alt="X  "  class="math" ><span  class="cmsl-10">:</span><span  class="cmsy-10">{</span><span  class="cmsl-10">ButtonOff, ButtonExit, Ok, ButtonMenu, InsertedCard, OptionSelect, ButtonOn, Failure, Repair, Off-Try,</span> <span  class="cmsl-10">Idle-Off, Authentication-Menu, Menu-Idle,Transaction-Idle</span><span  class="cmsy-10">}</span><br  class="newline" /> <!--l. 748-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04188x.png" alt="Y  "  class="math" ><span  class="cmsl-10">:</span><span  class="cmsy-10">{</span><span  class="cmsl-10">TurnOff, EjectCard, RegisterUser, TurnOn</span><span  class="cmsy-10">}</span><br  class="newline" /> <!--l. 750-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04189x.png" alt="S  "  class="math" ><span  class="cmsl-10">:</span><span  class="cmsy-10">{</span><span  class="cmsl-10">(d,</span> <img  src="/img/revistas/cleiej/v18n2/2a04190x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">)</span> <img  src="/img/revistas/cleiej/v18n2/2a04191x.png" alt="| "  class="math" > <span  class="cmsl-10">d</span> <img  src="/img/revistas/cleiej/v18n2/2a04192x.png" alt="&#x2208; "  class="math" ><span  class="cmsy-10">{</span><span  class="cmsl-10">Off, Try, Out of Service, Idle, Maintenance, Authentication, Menu, Transformation</span><span  class="cmsy-10">}</span> <img  src="/img/revistas/cleiej/v18n2/2a04193x.png" alt="&#x2227;&#x03C3; &#x2208; &#x211C;+0,&#x221E; "  class="math" ><span  class="cmsy-10">}</span><br  class="newline" /> <!--l. 752-->    <p class="indent" >   The external transitions are: <!--l. 754-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04194x.png" alt="&#x03B4;ext  "  class="math" ><span  class="cmsl-10">(((Off,</span> <img  src="/img/revistas/cleiej/v18n2/2a04195x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">), t</span><img  src="/img/revistas/cleiej/v18n2/2a04196x.png" alt="e  "  class="math" ><span  class="cmsl-10">), ?ButtonOn) = (Off-Try, 0)</span> <!--l. 756-->    ]]></body>
<body><![CDATA[<p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04197x.png" alt="&#x03B4;ext  "  class="math" ><span  class="cmsl-10">(((Try,</span> <img  src="/img/revistas/cleiej/v18n2/2a04198x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">), t</span><img  src="/img/revistas/cleiej/v18n2/2a04199x.png" alt="e  "  class="math" ><span  class="cmsl-10">), ?Failure) = (Out of Service,</span> <img  src="/img/revistas/cleiej/v18n2/2a04200x.png" alt="&#x221E; "  class="math" ><span  class="cmsl-10">)</span> <!--l. 758-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04201x.png" alt="&#x03B4;ext  "  class="math" ><span  class="cmsl-10">(((Out of Service,</span> <img  src="/img/revistas/cleiej/v18n2/2a04202x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">), t</span><img  src="/img/revistas/cleiej/v18n2/2a04203x.png" alt="e  "  class="math" ><span  class="cmsl-10">), ?Repair) = (Maintenance,</span> <img  src="/img/revistas/cleiej/v18n2/2a04204x.png" alt="&#x221E; "  class="math" ><span  class="cmsl-10">)</span> <!--l. 760-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04205x.png" alt="&#x03B4;ext  "  class="math" ><span  class="cmsl-10">(((Maintenance,</span> <img  src="/img/revistas/cleiej/v18n2/2a04206x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">), t</span><img  src="/img/revistas/cleiej/v18n2/2a04207x.png" alt="e  "  class="math" ><span  class="cmsl-10">), ?Failure) = (Out of Service,</span> <img  src="/img/revistas/cleiej/v18n2/2a04208x.png" alt="&#x221E; "  class="math" ><span  class="cmsl-10">)</span> <!--l. 762-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04209x.png" alt="&#x03B4;ext  "  class="math" ><span  class="cmsl-10">(((Idle,</span> <img  src="/img/revistas/cleiej/v18n2/2a04210x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">), t</span><img  src="/img/revistas/cleiej/v18n2/2a04211x.png" alt="e  "  class="math" ><span  class="cmsl-10">), ?Repair) = (Maintenance,</span> <img  src="/img/revistas/cleiej/v18n2/2a04212x.png" alt="&#x221E; "  class="math" ><span  class="cmsl-10">)</span> <!--l. 764-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04213x.png" alt="&#x03B4;ext  "  class="math" ><span  class="cmsl-10">(((Idle,</span> <img  src="/img/revistas/cleiej/v18n2/2a04214x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">), t</span><img  src="/img/revistas/cleiej/v18n2/2a04215x.png" alt="e  "  class="math" ><span  class="cmsl-10">), ?ButtonOff) = (Idle-Off, 0)</span> <!--l. 766-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04216x.png" alt="&#x03B4;ext  "  class="math" ><span  class="cmsl-10">(((Idle,</span> <img  src="/img/revistas/cleiej/v18n2/2a04217x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">), t</span><img  src="/img/revistas/cleiej/v18n2/2a04218x.png" alt="e  "  class="math" ><span  class="cmsl-10">), ?InsertedCard) = (Authentication, 30)</span> <!--l. 768-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04219x.png" alt="&#x03B4;ext  "  class="math" ><span  class="cmsl-10">(((Authentication,</span> <img  src="/img/revistas/cleiej/v18n2/2a04220x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">), t</span><img  src="/img/revistas/cleiej/v18n2/2a04221x.png" alt="e  "  class="math" ><span  class="cmsl-10">), ?Ok) = (Authentication-Menu, 0)</span> <!--l. 770-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04222x.png" alt="&#x03B4;ext  "  class="math" ><span  class="cmsl-10">(((Menu,</span> <img  src="/img/revistas/cleiej/v18n2/2a04223x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">), t</span><img  src="/img/revistas/cleiej/v18n2/2a04224x.png" alt="e  "  class="math" ><span  class="cmsl-10">), ?ButtonExit) = (Menu-Idle, 0)</span> <!--l. 772-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04225x.png" alt="&#x03B4;ext  "  class="math" ><span  class="cmsl-10">(((Menu,</span> <img  src="/img/revistas/cleiej/v18n2/2a04226x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">), t</span><img  src="/img/revistas/cleiej/v18n2/2a04227x.png" alt="e  "  class="math" ><span  class="cmsl-10">), ?OptionSelect) = (Transaction,</span> <img  src="/img/revistas/cleiej/v18n2/2a04228x.png" alt="&#x221E; "  class="math" ><span  class="cmsl-10">)</span> <!--l. 774-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04229x.png" alt="&#x03B4;ext  "  class="math" ><span  class="cmsl-10">(((Transaction,</span> <img  src="/img/revistas/cleiej/v18n2/2a04230x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">), t</span><img  src="/img/revistas/cleiej/v18n2/2a04231x.png" alt="e  "  class="math" ><span  class="cmsl-10">), ?ButtonMenu) = (Menu,</span> <img  src="/img/revistas/cleiej/v18n2/2a04232x.png" alt="&#x221E; "  class="math" ><span  class="cmsl-10">)</span> <!--l. 776-->    ]]></body>
<body><![CDATA[<p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04233x.png" alt="&#x03B4;ext  "  class="math" ><span  class="cmsl-10">(((Transaction,</span> <img  src="/img/revistas/cleiej/v18n2/2a04234x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">), t</span><img  src="/img/revistas/cleiej/v18n2/2a04235x.png" alt="e  "  class="math" ><span  class="cmsl-10">), ?Failure) = (Out of Service,</span> <img  src="/img/revistas/cleiej/v18n2/2a04236x.png" alt="&#x221E; "  class="math" ><span  class="cmsl-10">)</span> <!--l. 778-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04237x.png" alt="&#x03B4;ext  "  class="math" ><span  class="cmsl-10">(((Transaction,</span> <img  src="/img/revistas/cleiej/v18n2/2a04238x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">), t</span><img  src="/img/revistas/cleiej/v18n2/2a04239x.png" alt="e  "  class="math" ><span  class="cmsl-10">), ?ButtonExit) = (Transaction-Idle, 0)</span><br  class="newline" /> <!--l. 780-->    <p class="indent" >   The internal transition are: <!--l. 782-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04240x.png" alt="&#x03B4;int  "  class="math" ><span  class="cmsl-10">(Off-Try,</span> <img  src="/img/revistas/cleiej/v18n2/2a04241x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">) = (Try, 10)</span> <!--l. 784-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04242x.png" alt="&#x03B4;int  "  class="math" ><span  class="cmsl-10">(Try,</span> <img  src="/img/revistas/cleiej/v18n2/2a04243x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">) = (Idle,</span> <img  src="/img/revistas/cleiej/v18n2/2a04244x.png" alt="&#x221E; "  class="math" ><span  class="cmsl-10">)</span> <!--l. 786-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04245x.png" alt="&#x03B4;int  "  class="math" ><span  class="cmsl-10">(Idle-Off,</span> <img  src="/img/revistas/cleiej/v18n2/2a04246x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">) = (Off,</span> <img  src="/img/revistas/cleiej/v18n2/2a04247x.png" alt="&#x221E; "  class="math" ><span  class="cmsl-10">)</span> <!--l. 788-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04248x.png" alt="&#x03B4;int  "  class="math" ><span  class="cmsl-10">(Authentication,</span> <img  src="/img/revistas/cleiej/v18n2/2a04249x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">) = (Idle,</span> <img  src="/img/revistas/cleiej/v18n2/2a04250x.png" alt="&#x221E; "  class="math" ><span  class="cmsl-10">)</span> <!--l. 790-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04251x.png" alt="&#x03B4;int  "  class="math" ><span  class="cmsl-10">(Authentication-Menu,</span> <img  src="/img/revistas/cleiej/v18n2/2a04252x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">) = (Menu,</span> <img  src="/img/revistas/cleiej/v18n2/2a04253x.png" alt="&#x221E; "  class="math" ><span  class="cmsl-10">)</span> <!--l. 792-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04254x.png" alt="&#x03B4;int  "  class="math" ><span  class="cmsl-10">(Menu-Idle,</span> <img  src="/img/revistas/cleiej/v18n2/2a04255x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">) = (Idle,</span> <img  src="/img/revistas/cleiej/v18n2/2a04256x.png" alt="&#x221E; "  class="math" ><span  class="cmsl-10">)</span> <!--l. 794-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04257x.png" alt="&#x03B4;int  "  class="math" ><span  class="cmsl-10">(Transaction-Idle,</span> <img  src="/img/revistas/cleiej/v18n2/2a04258x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">) = (Idle,</span> <img  src="/img/revistas/cleiej/v18n2/2a04259x.png" alt="&#x221E; "  class="math" ><span  class="cmsl-10">)</span><br  class="newline" /> <!--l. 796-->    ]]></body>
<body><![CDATA[<p class="indent" >   The output function is defined as: <!--l. 798-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04260x.png" alt="&#x03BB;  "  class="math" ><span  class="cmsl-10">(Off-Try,</span> <img  src="/img/revistas/cleiej/v18n2/2a04261x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">) = !TurnOn</span> <!--l. 800-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04262x.png" alt="&#x03BB;  "  class="math" ><span  class="cmsl-10">(Idle-Off,</span> <img  src="/img/revistas/cleiej/v18n2/2a04263x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">) = !TurnOff</span> <!--l. 802-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04264x.png" alt="&#x03BB;  "  class="math" ><span  class="cmsl-10">(Authentication-Menu,</span> <img  src="/img/revistas/cleiej/v18n2/2a04265x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">) = !RegisterUser</span> <!--l. 804-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04266x.png" alt="&#x03BB;  "  class="math" ><span  class="cmsl-10">(Menu-Idle,</span> <img  src="/img/revistas/cleiej/v18n2/2a04267x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">) = !EjectCard</span> <!--l. 806-->    <p class="indent" >   <img  src="/img/revistas/cleiej/v18n2/2a04268x.png" alt="&#x03BB;  "  class="math" ><span  class="cmsl-10">(Transaction-Idle,</span> <img  src="/img/revistas/cleiej/v18n2/2a04269x.png" alt="&#x03C3;  "  class="math" ><span  class="cmsl-10">) = !EjectCard</span>    <h4 class="likesubsectionHead"><a   id="x1-260007.1"></a>From DEVS ABM in Ecore to PowerDEVS</h4> <!--l. 810-->    <p class="noindent" >The DEVS ABM atomic model in Ecore resulting from the transformation, it is translated into C++ code by the XEP algorithm developed by the authors in order to be interpreted and simulated by PowerDEVS. According to the description in Section <a  href="#x1-170005.2">5.2<!--tex4ht:ref: Exportacion a PowerDevs --></a>, the files that define the structure (.pdm) and behavior (.h, .cpp) of the model are generated. The following code shows the ABM.pdm generated file:                                                                                                                                                                                            <div class="verbatim" id="verbatim-4"> /*&#x00A0;CAB.pdm&#x00A0;*/ &#x00A0;<br />Coupled&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;Type&#x00A0;=&#x00A0;Root &#x00A0;<br />&#x00A0;&#x00A0;Name&#x00A0;=&#x00A0;CAB &#x00A0;<br />&#x00A0;&#x00A0;Ports&#x00A0;=&#x00A0;0;&#x00A0;0 &#x00A0;<br />&#x00A0;&#x00A0;Description&#x00A0;= &#x00A0;<br />&#x00A0;&#x00A0;Graphic&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;Position&#x00A0;=&#x00A0;0;&#x00A0;0 &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;Dimension&#x00A0;=&#x00A0;600;&#x00A0;600 &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;Direction&#x00A0;=&#x00A0;Right &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;Color&#x00A0;=&#x00A0;15 &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;Icon&#x00A0;=&#x00A0;Window&#x00A0;=&#x00A0;5000;&#x00A0;5000;&#x00A0;5000;&#x00A0;5000 &#x00A0;<br />&#x00A0;&#x00A0;} &#x00A0;<br />&#x00A0;&#x00A0;Parameters&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;} &#x00A0;<br />&#x00A0;&#x00A0;System&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;Atomic&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Name&#x00A0;=&#x00A0;CAB &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Ports&#x00A0;=&#x00A0;1&#x00A0;;&#x00A0;1 &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Path&#x00A0;=&#x00A0;discrete\CAB.h &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Description&#x00A0;=&#x00A0;Atomic&#x00A0;DEVS&#x00A0;model &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Graphic&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Position&#x00A0;=&#x00A0;-6105&#x00A0;;&#x00A0;-2610 &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Dimension&#x00A0;=&#x00A0;675&#x00A0;;&#x00A0;720 &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Direction&#x00A0;=&#x00A0;Right &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Color&#x00A0;=&#x00A0;15 &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Icon&#x00A0;=&#x00A0;None &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;} &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Parameters&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;} &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;} &#x00A0;<br />&#x00A0;&#x00A0;} &#x00A0;<br />} </div> <!--l. 846-->    <p class="nopar" > <!--l. 848-->    <p class="indent" >   The C++ code corresponding to the generated header file ABM.h is displayed below:                                                                                                                                                                                            ]]></body>
<body><![CDATA[<div class="verbatim" id="verbatim-5"> /*&#x00A0;File:&#x00A0;CAB.h&#x00A0;*/ &#x00A0;<br />#if&#x00A0;!defined&#x00A0;CAB &#x00A0;<br />#define&#x00A0;CAB &#x00A0;<br />#include&#x00A0;"simulator.h" &#x00A0;<br />#include&#x00A0;"event.h" &#x00A0;<br />#include&#x00A0;"stdarg.h" &#x00A0;<br /> &#x00A0;<br />class&#x00A0;CAB:&#x00A0;public&#x00A0;Simulator&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;//&#x00A0;Declare&#x00A0;the&#x00A0;state, &#x00A0;<br />&#x00A0;&#x00A0;//&#x00A0;output&#x00A0;variables &#x00A0;<br />&#x00A0;&#x00A0;//&#x00A0;and&#x00A0;parameters &#x00A0;<br /> &#x00A0;<br />&#x00A0;&#x00A0;char&#x00A0;*s; &#x00A0;<br />&#x00A0;&#x00A0;double&#x00A0;sigma; &#x00A0;<br />&#x00A0;&#x00A0;char&#x00A0;*y; &#x00A0;<br />&#x00A0;&#x00A0;#define&#x00A0;INF&#x00A0;1e20 &#x00A0;<br /> &#x00A0;<br />&#x00A0;&#x00A0;public: &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;CAB(const&#x00A0;char&#x00A0;*n):&#x00A0;Simulator(n)&#x00A0;{}; &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;void&#x00A0;init(double,&#x00A0;...); &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;double&#x00A0;ta(double&#x00A0;t); &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;void&#x00A0;dint(double); &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;void&#x00A0;dext(Event&#x00A0;,&#x00A0;double&#x00A0;); &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;Event&#x00A0;lambda(double); &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;void&#x00A0;exit(); &#x00A0;<br />}; &#x00A0;<br />#endif </div> <!--l. 879-->    <p class="nopar" > <!--l. 889-->    <p class="indent" >   Finally, below are shown just the relevant parts of the generated C++ code corresponding to the behavior of the DEVS ABM in Ecore (CAB.cpp):                                                                                                                                                                                            <div class="verbatim" id="verbatim-6"> /*&#x00A0;File:&#x00A0;CAB.cpp&#x00A0;*/ &#x00A0;<br />#include&#x00A0;"CAB.h" &#x00A0;<br />void&#x00A0;CAB::init(double&#x00A0;t,...)&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;//The&#x00A0;&#8217;parameters&#8217;&#x00A0;variable&#x00A0;contains&#x00A0;the&#x00A0;parameters &#x00A0;<br />&#x00A0;&#x00A0;//&#x00A0;transferred&#x00A0;from&#x00A0;the&#x00A0;editor. &#x00A0;<br />&#x00A0;&#x00A0;va_list&#x00A0;parameters; &#x00A0;<br />&#x00A0;&#x00A0;va_start(parameters,t); &#x00A0;<br />&#x00A0;&#x00A0;//To&#x00A0;get&#x00A0;a&#x00A0;parameter:&#x00A0;%Name%&#x00A0;=&#x00A0;va_arg(parameters,%Type%) &#x00A0;<br />&#x00A0;&#x00A0;//where: &#x00A0;<br />&#x00A0;&#x00A0;//&#x00A0;&#x00A0;%Name%&#x00A0;is&#x00A0;the&#x00A0;parameter&#x00A0;name &#x00A0;<br />&#x00A0;&#x00A0;//&#x00A0;&#x00A0;%Type%&#x00A0;is&#x00A0;the&#x00A0;parameter&#x00A0;type &#x00A0;<br />&#x00A0;&#x00A0;s&#x00A0;=&#x00A0;"Off"; &#x00A0;<br />&#x00A0;&#x00A0;sigma&#x00A0;=&#x00A0;INF; &#x00A0;<br />} &#x00A0;<br /> &#x00A0;<br />double&#x00A0;CAB::ta(double&#x00A0;t)&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;//This&#x00A0;function&#x00A0;returns&#x00A0;a&#x00A0;double. &#x00A0;<br />&#x00A0;&#x00A0;return&#x00A0;sigma; &#x00A0;<br />} &#x00A0;<br /> &#x00A0;<br />void&#x00A0;CAB::dint(double&#x00A0;t)&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;if&#x00A0;(strcmp(s,"Try")==&#x00A0;0)&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;s&#x00A0;=&#x00A0;"Idle"; &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;sigma&#x00A0;=&#x00A0;INF &#x00A0;<br />&#x00A0;&#x00A0;}; &#x00A0;<br />&#x00A0;&#x00A0;if&#x00A0;(strcmp(s,"Autentication")==&#x00A0;0)&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;s&#x00A0;=&#x00A0;"Idle"; &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;sigma&#x00A0;=&#x00A0;INF &#x00A0;<br />&#x00A0;&#x00A0;}; &#x00A0;<br />&#x00A0;&#x00A0;if&#x00A0;(strcmp(s,"Off-Try")==&#x00A0;0)&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;s&#x00A0;=&#x00A0;"Try"; &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;sigma&#x00A0;=&#x00A0;10.0; &#x00A0;<br />&#x00A0;&#x00A0;}; &#x00A0;<br />&#x00A0;&#x00A0;... &#x00A0;<br />} &#x00A0;<br /> &#x00A0;<br />void&#x00A0;CAB::dext(Event&#x00A0;x,&#x00A0;double&#x00A0;t)&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;//The&#x00A0;input&#x00A0;event&#x00A0;is&#x00A0;in&#x00A0;the&#x00A0;&#8217;x&#8217;&#x00A0;variable. &#x00A0;<br />&#x00A0;&#x00A0;//where: &#x00A0;<br />&#x00A0;&#x00A0;//&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#8217;x.value&#8217;&#x00A0;is&#x00A0;the&#x00A0;value&#x00A0;(pointer&#x00A0;to&#x00A0;void) &#x00A0;<br />&#x00A0;&#x00A0;//&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#8217;x.port&#8217;&#x00A0;is&#x00A0;the&#x00A0;port&#x00A0;number &#x00A0;<br />&#x00A0;&#x00A0;//&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#8217;e&#8217;&#x00A0;is&#x00A0;the&#x00A0;time&#x00A0;elapsed&#x00A0;since&#x00A0;last&#x00A0;transition &#x00A0;<br />&#x00A0;&#x00A0;if&#x00A0;((strcmp(s,"Try")==&#x00A0;0)&#x00A0;&amp;&amp;&#x00A0;(strcmp((char*)x.value,"Failure")==&#x00A0;0))&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;s&#x00A0;=&#x00A0;"OutofService"; &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;sigma&#x00A0;=&#x00A0;INF; &#x00A0;<br />&#x00A0;&#x00A0;}; &#x00A0;<br />&#x00A0;&#x00A0;if&#x00A0;(&#x00A0;(strcmp(s,"Idle")==&#x00A0;0)&#x00A0;&amp;&amp;&#x00A0;(strcmp((char*)x.value,"InsertedCard")==&#x00A0;0))&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;s&#x00A0;=&#x00A0;"Autentication"; &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;sigma&#x00A0;=&#x00A0;30.0; &#x00A0;<br />&#x00A0;&#x00A0;}; &#x00A0;<br />&#x00A0;&#x00A0;... &#x00A0;<br />} &#x00A0;<br /> &#x00A0;<br />Event&#x00A0;CAB::lambda(double&#x00A0;t)&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;//This&#x00A0;function&#x00A0;returns&#x00A0;an&#x00A0;Event: &#x00A0;<br />&#x00A0;&#x00A0;//&#x00A0;Event(%Value%,&#x00A0;%NroPort%)                                                                                                                                                                                     &#x00A0;<br />&#x00A0;&#x00A0;//where: &#x00A0;<br />&#x00A0;&#x00A0;//%Value%&#x00A0;points&#x00A0;to&#x00A0;the&#x00A0;variable&#x00A0;which&#x00A0;contains&#x00A0;the&#x00A0;value. &#x00A0;<br />&#x00A0;&#x00A0;//%NroPort%&#x00A0;is&#x00A0;the&#x00A0;port&#x00A0;number&#x00A0;(from&#x00A0;0&#x00A0;to&#x00A0;n-1) &#x00A0;<br />&#x00A0;&#x00A0;if&#x00A0;(strcmp(s,"Off-Try")==&#x00A0;0)&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;y&#x00A0;=&#x00A0;"TurnOn"; &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;return&#x00A0;Event(y,0); &#x00A0;<br />&#x00A0;&#x00A0;}; &#x00A0;<br />&#x00A0;&#x00A0;if&#x00A0;(strcmp(s,"Idle-Off")==&#x00A0;0)&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;y&#x00A0;=&#x00A0;"TurnOff"; &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;return&#x00A0;Event(y,0); &#x00A0;<br />&#x00A0;&#x00A0;}; &#x00A0;<br />&#x00A0;&#x00A0;... &#x00A0;<br />} &#x00A0;<br /> &#x00A0;<br />void&#x00A0;CAB::exit()&#x00A0;{ &#x00A0;<br />&#x00A0;&#x00A0;//Code&#x00A0;executed&#x00A0;at&#x00A0;the&#x00A0;end&#x00A0;of&#x00A0;the&#x00A0;simulation. &#x00A0;<br />} </div> <!--l. 966-->    <p class="nopar" > <!--l. 971-->    <p class="noindent" >    <h4 class="subsectionHead"><span class="titlemark">7.2   </span> <a   id="x1-270007.2"></a>Control System of an Elevator</h4> <!--l. 973-->    <p class="noindent" >Consider a simple elevator that can be commanded by the events <span  class="cmti-10">up </span>and <span  class="cmti-10">down</span>. Each level of the building has a sensor that indicates the presence of the elevator, so that the output of the &#8220;system elevator&#8221; are the events produced by these sensors. The elevator goes up and down at constants speeds of 1 meter per second, the distance between one level and another is 2 meters and the building has 4 levels. <!--l. 975-->    <p class="indent" >   The elevator is commanded by a <span  class="cmti-10">controller </span>that receives events indicating the current level of the elevator. Whenever an event arrives, verifies if the elevator should continue going up or down. Upon reaching the target level, it doesn&#8217;t send any other signal to the elevator, making it to remain at the current level. <!--l. 977-->    <p class="indent" >   A possible extension to the problem is to attach a <span  class="cmti-10">generator </span>to the <span  class="cmti-10">controller </span>which generates the elevator destinations as <span  class="cmtt-10">Go to level i</span>. Each time the <span  class="cmti-10">controller </span>sends a <span  class="cmti-10">Free </span>signal, the <span  class="cmti-10">generator</span>, after a short time (<span  class="cmti-10">delay</span>), must determine the new level to which the elevator should be directed. Collected data indicates that <span  class="cmti-10">delays</span> follows an exponential probability distribution with mean 4 seconds, and destination levels have equal probability of being selected. <!--l. 979-->    <p class="indent" >   It is of interest in this problem to get, through simulations, graphics of the elevator trajectory and know its utilization factor(usage time / total time). Future extensions may include the management of a queue of orders to the elevator and assess, for example, the average waiting time of orders (time between the occurrence of the order and the beginning of the movement towards the target); and even composing this operations to form a system of several elevators. <!--l. 981-->    ]]></body>
<body><![CDATA[<p class="indent" >   For clarity, we model the problem by designing three UML state machines: <a   id="x1-27001r1"></a>i)&#x00A0;SC UML for the elevator, <a   id="x1-27002r2"></a>ii)&#x00A0;SC UML for the controller, and <a   id="x1-27003r3"></a>iii)&#x00A0;SC UML for the generator. Figure <a  href="#x1-270048">8<!--tex4ht:ref: fig:AscensorSC --></a> and Figure <a  href="#x1-270059">9<!--tex4ht:ref: fig:ControladorAscensorSC --></a> ilustrate the SCs of the elevator and controller respectively, using the graphical representation of UML 2.4.1. <!--l. 990-->    <p class="indent" >   <hr class="figure">    <div class="figure"  >                                                                                                                                                                                     <a   id="x1-270048"></a>                                                                                                                                                                                     <!--l. 992-->    <p class="noindent" ><img  src="/img/revistas/cleiej/v18n2/2a04270x.png" alt="PIC" class="graphics" width="292.59473pt" height="231.86752pt" ><!--tex4ht:graphics   name=="/img/revistas/cleiej/v18n2/2a04270x.png" src="imagenes/AscensorSC.eps"   --> <br />     <div class="caption"  ><span class="id">Figure&#x00A0;8: </span><span   class="content">UML SC of an elevator</span></div><!--tex4ht:label?: x1-270048 -->                                                                                                                                                                                     <!--l. 995-->    <p class="indent" >   </div><hr class="endfigure"> <!--l. 997-->    <p class="indent" >   <hr class="figure">    <div class="figure"  >                                                                                                                                                                                     <a   id="x1-270059"></a>                                                                                                                                                                                     <!--l. 999-->    <p class="noindent" ><img  src="/img/revistas/cleiej/v18n2/2a04271x.png" alt="PIC" class="graphics" width="301.42778pt" height="143.53702pt" ><!--tex4ht:graphics   name=="/img/revistas/cleiej/v18n2/2a04271x.png" src="imagenes/ControladorAscensorSC.eps"   --> <br />     <div class="caption"  ><span class="id">Figure&#x00A0;9: </span><span   class="content">UML SC controller of an elevator</span></div><!--tex4ht:label?: x1-270059 -->                                                                                                                                                                                     <!--l. 1002-->    ]]></body>
<body><![CDATA[<p class="indent" >   </div><hr class="endfigure"> <!--l. 1004-->    <p class="indent" >   After applying the transformation rules presented in Section <a  href="#x1-160005.1">5.1<!--tex4ht:ref: Transformation Rules in QTV-R --></a>, the resulting DEVS models in Ecore format are shown in Figure <a  href="#x1-2700610">10<!--tex4ht:ref: fig:AscensorDEVS --></a> and Figure <a  href="#x1-2700711">11<!--tex4ht:ref: fig:ControladorAscensorDEVS --></a>. Then, through the algorithm XEP, C++ code is generated corresponding to PowerDEVS models (.pdm, .h and .cpp files) to be handled by this tool. We call PowerDEVS models to models that satisfy the metamodel of Figure <a  href="#x1-150013">3<!--tex4ht:ref: fig:DEVS Metamodel --></a>. <!--l. 1007-->    <p class="indent" >   <hr class="figure">    <div class="figure"  >                                                                                                                                                                                     <a   id="x1-2700610"></a>                                                                                                                                                                                     <!--l. 1009-->    <p class="noindent" >      <div class="caption"  ><a href=="/img/revistas/cleiej/v18n2/2a04272x.png"> <span class="id">Figure&#x00A0;10: </span><span   class="content">DEVS model of an elevator</span></a></div><!--tex4ht:label?: x1-2700610 -->                                                                                                                                                                                     <!--l. 1012-->    <p class="indent" >   </div><hr class="endfigure"> <!--l. 1014-->    <p class="indent" >   <hr class="figure">    <div class="figure"  >                                                                                                                                                                                     <a   id="x1-2700711"></a>                                                                                                                                                                                     <!--l. 1016-->    <p class="noindent" ><img  src="/img/revistas/cleiej/v18n2/2a04273x.png" alt="PIC" class="graphics" width="362.155pt" height="240.70056pt" ><!--tex4ht:graphics   name=="/img/revistas/cleiej/v18n2/2a04273x.png" src="imagenes/ControladorAscensorDEVS.eps"   --> <br />     ]]></body>
<body><![CDATA[<div class="caption"  ><span class="id">Figure&#x00A0;11: </span><span   class="content">DEVS model of an controller</span></div><!--tex4ht:label?: x1-2700711 -->                                                                                                                                                                                     <!--l. 1019-->    <p class="indent" >   </div><hr class="endfigure"> <!--l. 1021-->    <p class="indent" >   Simulation tools, particularly PowerDEVS, contain a lot of libraries that help enrich the models to be analyzed and discover properties about them. In the present example, as an initial step, the generated models of the <span  class="cmti-10">generator</span>, <span  class="cmti-10">controller </span>and <span  class="cmti-10">elevator </span>are connected, and later, PowerDEVS libraries (<span  class="cmtt-10">StochasticLib1.h</span>) are used to plot and generate samples of, an exponential distribution for the <span  class="cmti-10">delays</span>, and a uniform distribution for the building leves, as can be seen in Figure <a  href="#x1-2700812">12<!--tex4ht:ref: fig:PowerDEVSAscensor --></a>. The <span  class="cmtt-10">StochasticLib1.h </span>library implements the generation of samples of a variety of probability distributions commonly used in discrete event simulation models. <!--l. 1024-->    <p class="indent" >   <hr class="figure">    <div class="figure"  >                                                                                                                                                                                     <a   id="x1-2700812"></a>                                                                                                                                                                                     <!--l. 1026-->    <p class="noindent" ><img  src="/img/revistas/cleiej/v18n2/2a04274x.png" alt="PIC" class="graphics" width="329.22496pt" height="112.81976pt" ><!--tex4ht:graphics   name=="/img/revistas/cleiej/v18n2/2a04274x.png" src="imagenes/PowerDEVSAscensor.eps"   --> <br />     <div class="caption"  ><span class="id">Figure&#x00A0;12: </span><span   class="content">PowerDEVS model of an elevator</span></div><!--tex4ht:label?: x1-2700812 -->                                                                                                                                                                                     <!--l. 1029-->    <p class="indent" >   </div><hr class="endfigure"> <!--l. 1031-->    <p class="indent" >   After several runs of the system and using the technique of confidence interval for the outputs it was established that on average the utilization factor of the elevator is 0,34 (34%) and their confidence limits are <img  src="/img/revistas/cleiej/v18n2/2a04275x.png" alt="+ - 0.027  "  class="math" > . Likewise, analyzing the graphics and records (log files) determines that the elevator moves on average <img  src="/img/revistas/cleiej/v18n2/2a04276x.png" alt="1.32  "  class="math" > levels for each order, this corresponds to 2.64 sec. This measurement makes more sense in a possible extension of the case study, for example, considering waiting lines with different policies (disciplines) and multiple elevators working together. In this case, if the discipline of the queues changes, the amount of movement of the elevators will be modified. It is difficult to analyze this with current available execution tools for UML SCs.    <h3 class="sectionHead"><span class="titlemark">8   </span> <a   id="x1-280008"></a>Conclusion and Future Work</h3> <!--l. 1037-->    <p class="noindent" >MDD is an approach with the potential to make development more efficient and obtain more reliable results, since, among other things, it enables the verification of systems in early stages of development offering greater control. Many of MDD techniques use UML, incorporated as a de facto standard language in academic and industrial areas, which allows the description of many aspects of a system. In particular, UML statecharts provide a mechanism to specify the behavior of systems using a graphical representation. These diagrams are compact, expressive and provide the ability to model not only simple but also complex reactive systems. Multiple tools support the latest versions of UML, which generally provide graphical features that facilitate the modeling of systems. However, they lack the ability to execute and simulate dynamic models. This limits the analysis of the behavior of systems in real scenarios. DEVS is founded on the principles of systems theory and its development through component-based engineering. With the advances of UML in recent years, the community around DEVS has devoted efforts to define a mapping between UML and DEVS elements. It is known that DEVS is more rigorous and expressive than UML, but due to the manipulation of potentially infinite sets which a model can contain, it lacks a graphical notation which is required by industry professionals. The combination of graphic virtues of UML with the powerful simulation tools of DEVS models led to the current proposal. Some research groups have addressed various proposals for this important relation between DEVS and UML, but none has a formal solution or an implementation based on the definition of metamodels using standards. <!--l. 1039-->    ]]></body>
<body><![CDATA[<p class="indent" >   This work presents a mechanism for closing the gap between two formalisms with different tools and technologies, different theoretical bases, but united by a common purpose, which is to provide solutions to real problems through the creation and analysis of abstract models. A process of model transformation that maps elements from UML SCs to elements of DEVS models is defined. This is achieved by exploiting the graphic qualities of one, the specificity and rigor of the other, resulting in a simulation model that can be executed and analyzed by a large number of specific tools. The transformation was defined as a set of rules by cases and was implemented using QVT-R, a language standardized by the OMG. The UML 2.4.1 metamodel in Ecore format is used and the metamodel of the DEVS formalism, also in Ecore, is defined. The result of the transformation is a DEVS model in Ecore format that satisfies its corresponding metamodel. This model provides a sufficient set of information that can be exported and executed by different existing DEVS simulation tools and engines, in particular PowerDEVS. Furthermore, two examples of application to analyze the behavior of an automatic banking machine and a control system of an elevator are presented and analyzed. These case studies show the usefulness of the proposed approach. <!--l. 1042-->    <p class="indent" >   This research is part of a comprehensive project that in the future will address the following extensions: <a   id="x1-28001r1"></a>i)&#x00A0;development of a direct transformation of UML statecharts with composite states to DEVS models; <a   id="x1-28002r2"></a>ii)&#x00A0;incorporation of more elements of UML to the SCs, including their transformations to elements of a DEVS model; <a   id="x1-28003r3"></a>iii)&#x00A0;extension of the DEVS formalism with conditional transitions, in order to enable adding decision elements to the flow of the system; <a   id="x1-28004r4"></a>iv)&#x00A0;exportation of the resulting Ecore DEVS models to other simulation tools; <a   id="x1-28005r5"></a>v)&#x00A0;process evaluation with complex cases studies; <a   id="x1-28006r6"></a>vi)&#x00A0;construction of a tool that covers the complete process of transformation, execution and analysis; <a   id="x1-28007r7"></a>vii)&#x00A0;development of a deeper analysis of the validation mechanism of transformation; <a   id="x1-28008r8"></a>viii)&#x00A0;implementation of the model-to-text (M2T) transformation using the OMG standards, in particular the MOF Model To Text Transformation Language (MOFM2T); and <a   id="x1-28009r9"></a>ix)&#x00A0;development of an editor that allows the use of only those elements of the UML SCs that are considered in the transformation, preserving the semantics and design constraints defined in the latest version of UML. <!--l. 2-->    <p class="noindent" >                                                                                                                                                                                        <h3 class="likesectionHead"><a   id="x1-290008"></a>References</h3> <!--l. 2-->    <p class="noindent" >         <div class="thebibliography">         <p class="bibitem" ><span class="biblabel">   [<a href="#br1">1</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XMCF03"></a>S.&#x00A0;J.  Mellor,  A.&#x00A0;N.  Clark,  and  T.&#x00A0;Futagami,  &#8220;Guest  editors&#8217;  introduction:   Model-driven     development,&#8221; <span  class="cmti-10">IEEE Software</span>, vol.&#x00A0;20, no.&#x00A0;5, pp. 14&#8211;18, 2003.     </p>         <p class="bibitem" ><span class="biblabel">   [<a href="#br2">2</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XMCF03bis"></a>B.&#x00A0;Selic, &#8220;The pragmatics of model-driven development,&#8221; <span  class="cmti-10">IEEE Softw.</span>, vol.&#x00A0;20, no.&#x00A0;5, pp. 19&#8211;25,     2003.     </p>         <p class="bibitem" ><span class="biblabel">   [<a href="#br3">3</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XMCF03bisbis"></a>T.&#x00A0;Stahl,  M.&#x00A0;Voelter,  and  K.&#x00A0;Czarnecki,  <span  class="cmti-10">Model-Driven  Software  Development:  Technology,</span>     <span  class="cmti-10">Engineering, Management</span>.   John Wiley &amp; Sons, 2006.     </p>         <p class="bibitem" ><span class="biblabel">   [<a href="#br4">4</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="Xfrance2007model"></a>R.&#x00A0;France and B.&#x00A0;Rumpe, &#8220;Model-driven development of complex software: A research roadmap,&#8221;     in <span  class="cmti-10">2007 Future of Software Engineering</span>.   IEEE Computer Society, 2007, pp. 37&#8211;54.     </p>         <p class="bibitem" ><span class="biblabel">   [<a href="#br5">5</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="Xbeydeda2005model"></a>S.&#x00A0;Beydeda,  M.&#x00A0;Book,  V.&#x00A0;Gruhn  <span  class="cmti-10">et</span><span  class="cmti-10">&#x00A0;al.</span>,  <span  class="cmti-10">Model-driven  software  development</span>.     Springer,  2005,     vol.&#x00A0;15.     </p>         ]]></body>
<body><![CDATA[<p class="bibitem" ><span class="biblabel">   [<a href="#br6">6</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XMM03"></a>J.&#x00A0;Miller and J.&#x00A0;Mukerji, &#8220;Mda guide version 1.0.1,&#8221; Object Management Group (OMG), Tech.     Rep., 2003.     </p>         <p class="bibitem" ><span class="biblabel">   [<a href="#br7">7</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XOMG"></a><span  class="cmti-10">Object Management Group</span>,  Object  Management  Group  Std.,  Last  access:  May  2015.  [Online].     Available: <a  href="http://www.omg.org" class="url" >http://www.omg.org</a>     </p>         <p class="bibitem" ><span class="biblabel">   [<a href="#br8">8</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XOMG04"></a><span  class="cmti-10">OMG Unified Modeling Language (OMG UML), Superstructure, Version 2.4.1</span>, Object Management     Group Std., Rev. 2.4.1, 2011. [Online]. Available: <a  href="http://www.omg.org/spec/UML/2.4.1" class="url" >http://www.omg.org/spec/UML/2.4.1</a>     </p>         <p class="bibitem" ><span class="biblabel">   [<a href="#br9">9</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XRumbaugh:2004:UML:993859"></a>J.&#x00A0;Rumbaugh, I.&#x00A0;Jacobson, and G.&#x00A0;Booch, <span  class="cmti-10">Unified Modeling Language Reference Manual, The (2Nd</span>     <span  class="cmti-10">Edition)</span>.   Pearson Higher Education, 2004.     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br10">10</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XZV93"></a>B.&#x00A0;P. Zeigler and S.&#x00A0;Vahie, &#8220;Devs formalism and methodology: Unity of conception/diversity of     application,&#8221; in <span  class="cmti-10">Proceedings of the 25th Conference on Winter Simulation</span>, ser. WSC &#8217;93.   New York,     NY, USA: ACM, 1993, pp. 573&#8211;579. [Online]. Available: <a  href="http://doi.acm.org/10.1145/256563.256724" class="url" >http://doi.acm.org/10.1145/256563.256724</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br11">11</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="Xwainer2010discrete"></a>G.&#x00A0;Wainer and P.&#x00A0;Mosterman, <span  class="cmti-10">Discrete-Event Modeling and Simulation: Theory and Applications</span>,     ser. Computational Analysis, Synthesis, and Design of Dynamic Systems.   Taylor &amp; Francis, 2010.     [Online]. Available: <a  href="http://books.google.com.uy/books?id=WQvzk7ZnwHkC" class="url" >http://books.google.com.uy/books?id=WQvzk7ZnwHkC</a>                                                                                                                                                                                         </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br12">12</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="Xcirino2012devs"></a>Z.&#x00A0;Cirino,               <span  class="cmti-10">Devs</span>.             CIV,               2012.               [Online].               Available:     <a  href="http://books.google.com.uy/books?id=-BxCuAAACAAJ" class="url" >http://books.google.com.uy/books?id=-BxCuAAACAAJ</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br13">13</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="Xzeigler2000theory"></a>B.&#x00A0;Zeigler, H.&#x00A0;Praehofer, and T.&#x00A0;Kim, <span  class="cmti-10">Theory of Modeling and Simulation: Integrating Discrete</span>     <span  class="cmti-10">Event  and  Continuous  Complex  Dynamic  Systems</span>.    Academic  Press,  2000.  [Online].  Available:     <a  href="http://books.google.com.uy/books?id=REzmYOQmHuQC" class="url" >http://books.google.com.uy/books?id=REzmYOQmHuQC</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br14">14</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="Xdevsbook"></a>H.&#x00A0;G.     Molter,     &#8220;Discrete     event     system     specification,&#8221;     in     <span  class="cmti-10">SynDEVS    Co-Design</span>     <span  class="cmti-10">Flow</span>.      Springer     Fachmedien     Wiesbaden,     2012,     pp.     9&#8211;42.     [Online].     Available:     <a  href="http://dx.doi.org/10.1007/978-3-658-00397-5_2" class="url" >http://dx.doi.org/10.1007/978-3-658-00397-5_2</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br15">15</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XWang:2012:HFS:2462874"></a>J.&#x00A0;Wang, <span  class="cmti-10">Handbook of Finite State Based Models and Applications</span>, 1st&#x00A0;ed.  Chapman &amp; Hall/CRC,     2012.     </p>         ]]></body>
<body><![CDATA[<p class="bibitem" ><span class="biblabel">  [<a href="#br16">16</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XHar87"></a>D.&#x00A0;Harel, &#8220;Statecharts: A visual formalism for complex systems,&#8221; <span  class="cmti-10">Sci. Comput. Program.</span>, vol.&#x00A0;8,     no.&#x00A0;3, pp. 231&#8211;274, 1987.     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br17">17</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XQVT11"></a>OMG,    <span  class="cmti-10">Meta    Object    Facility    (MOF)    2.0    Query/View/Transformation    Specification,</span>     <span  class="cmti-10">Version    1.1</span>,    Object    Management    Group    Std.,    Rev.    1.1,    2011.    [Online].    Available:     <a  href="http://www.omg.org/spec/QVT/1.1/" class="url" >http://www.omg.org/spec/QVT/1.1/</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br18">18</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XBK11"></a>F.&#x00A0;Bergero  and  E.&#x00A0;Kofman,  &#8220;Powerdevs:  A  tool  for  hybrid  system  modeling  and  real-time     simulation,&#8221;   <span  class="cmti-10">Simulation</span>,   vol.&#x00A0;87,   no.   1-2,   pp.   113&#8211;132,   Jan.   2011.   [Online].   Available:     <a  href="http://dx.doi.org/10.1177/0037549710368029" class="url" >http://dx.doi.org/10.1177/0037549710368029</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br19">19</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XXL2014"></a>A.&#x00A0;Gonzalez, C.&#x00A0;D. Luna, R.&#x00A0;Cuello, M.&#x00A0;Perez, and M.&#x00A0;Daniele, &#8220;Metamodel-based transformation     from UML state machines to DEVS models,&#8221; in <span  class="cmti-10">XL Latin American Computing Conference, CLEI</span>     <span  class="cmti-10">2014,  Montevideo,  Uruguay,  September  15-19,  2014</span>.    IEEE,  2014,  pp.  1&#8211;12.  [Online].  Available:     <a  href="http://dx.doi.org/10.1109/CLEI.2014.6965145" class="url" >http://dx.doi.org/10.1109/CLEI.2014.6965145</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br20">20</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XIBM"></a><span  class="cmti-10">IBM     Rational     Rose</span>,     IBM,     Last     access:     May     2015.     [Online].     Available:     <a  href="http://www.ibm.com/developerworks/rational/products/rose" class="url" >http://www.ibm.com/developerworks/rational/products/rose</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br21">21</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="Xrussell2012ibm"></a>J.&#x00A0;Russell and R.&#x00A0;Cohn, <span  class="cmti-10">Ibm Rational Rose Xde</span>.   Book on Demand, 2012. [Online]. Available:     <a  href="http://books.google.com.uy/books?id=vIecMQEACAAJ" class="url" >http://books.google.com.uy/books?id=vIecMQEACAAJ</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br22">22</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XPoseidon"></a><span  class="cmti-10">Poseidon      for      UML</span>,       Last       access:       May       2015.       [Online].       Available:     <a  href="http://www.gentleware.com/new-poseidon-for-uml-8-0.html" class="url" >http://www.gentleware.com/new-poseidon-for-uml-8-0.html</a>                                                                                                                                                                                         </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br23">23</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XEudevs2"></a>S.&#x00A0;Bendre and H.&#x00A0;S. Sarjoughian, &#8220;Discrete-event behavioral modeling in sesm: Software design and     implementation,&#8221; in <span  class="cmti-10">Advanced Simulation Technology Conference</span>, 2005, pp. 23&#8211;28.     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br24">24</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XFromUML13"></a>P.&#x00A0;P.  Vladimir  and  P.&#x00A0;Slavícek,  &#8220;Towards  devs  meta  language,&#8221;  in  <span  class="cmti-10">Industrial  Simulation</span>     <span  class="cmti-10">Conference</span>, 2006, pp. 69&#8211;73.     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br25">25</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XMRZ07"></a>S.&#x00A0;Mittal, J.&#x00A0;L. Risco-Martín, and B.&#x00A0;P. Zeigler, &#8220;Devsml: Automating devs execution over soa     towards  transparent  simulators,&#8221;  in  <span  class="cmti-10">Proceedings  of  the  2007  Spring  Simulation  Multiconference  -</span>     <span  class="cmti-10">Volume 2</span>, ser. SpringSim &#8217;07.   San Diego, CA, USA: Society for Computer Simulation International,     2007, pp. 287&#8211;295. [Online]. Available: <a  href="http://dl.acm.org/citation.cfm?id=1404680.1404725" class="url" >http://dl.acm.org/citation.cfm?id=1404680.1404725</a>     </p>         ]]></body>
<body><![CDATA[<p class="bibitem" ><span class="biblabel">  [<a href="#br26">26</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XBG00"></a>G.&#x00A0;J.      Badros,      &#8220;Javaml:      a      markup      language      for      java      source      code.&#8221;     <span  class="cmti-10">Computer     Networks</span>,     vol.&#x00A0;33,     no.     1-6,     pp.     159&#8211;177,     2000.     [Online].     Available:     <a  href="http://dblp.uni-trier.de/db/journals/cn/cn33.html#Badros00" class="url" >http://dblp.uni-trier.de/db/journals/cn/cn33.html#Badros00</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br27">27</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XLaraV02"></a>J.&#x00A0;de&#x00A0;Lara and H.&#x00A0;Vangheluwe, &#8220;Using atom3 as a meta-case tool.&#8221; in <span  class="cmti-10">ICEIS</span>, 2002, pp. 642&#8211;649.     [Online]. Available: <a  href="http://dblp.uni-trier.de/db/conf/iceis/iceis2002.html#LaraV02" class="url" >http://dblp.uni-trier.de/db/conf/iceis/iceis2002.html#LaraV02</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br28">28</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XChoiJKBL06"></a>K.&#x00A0;Choi, S.&#x00A0;Jung, H.&#x00A0;Kim, D.-H. Bae, and D.&#x00A0;Lee, &#8220;Uml-based modeling and simulation method for     mission-critical real-time embedded system development,&#8221; in <span  class="cmti-10">IASTED Conf. on Software Engineering</span>,     P.&#x00A0;Kokol, Ed.   IASTED/ACTA Press, 2006, pp. 160&#8211;165.     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br29">29</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XCF-77"></a>S.&#x00A0;Y. Hong and T.&#x00A0;G. Kim, &#8220;Embedding uml subset into object-oriented devs modeling process,&#8221;     in <span  class="cmti-10">Society of Modeling and Computer Simulation International</span>, 2004, pp. 161 &#8211; 166.     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br30">30</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XZ05"></a>D.&#x00A0;Zinoviev,  &#8220;Mapping  DEVS  models  onto  UML  models,&#8221;  <span  class="cmti-10">CoRR</span>,  vol.  abs/cs/0508128,  2005.     [Online]. Available: <a  href="http://arxiv.org/abs/cs/0508128" class="url" >http://arxiv.org/abs/cs/0508128</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br31">31</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XHuangS04"></a>D.&#x00A0;Huang   and   H.&#x00A0;S.   Sarjoughian,   &#8220;Software   and   simulation   modeling   for   real-time     software-intensive systems,&#8221; in <span  class="cmti-10">DS-RT</span>.   IEEE Computer Society, 2004, pp. 196&#8211;203.     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br32">32</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XDouglass:1997:RUD:522584"></a>B.&#x00A0;P. Douglass, <span  class="cmti-10">Real-Time UML: Developing Efficient Objects for Embedded Systems</span>.  Boston, MA,     USA: Addison-Wesley Longman Publishing Co., Inc., 1997.     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br33">33</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XGomaa:2011:SMD:1972546"></a>H.&#x00A0;Gomaa, <span  class="cmti-10">Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures</span>,     1st&#x00A0;ed.   New York, NY, USA: Cambridge University Press, 2011.                                                                                                                                                                                         </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br34">34</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XSchulzER00"></a>S.&#x00A0;Schulz, T.&#x00A0;Ewing, and J.&#x00A0;Rozenblit, &#8220;Discrete event system specification (devs) and statemate     statecharts equivalence for embedded systems modeling,&#8221; in <span  class="cmti-10">ECBS</span>.   IEEE Computer Society, 2000, p.     308.     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br35">35</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XHP98"></a>D.&#x00A0;Harel  and  M.&#x00A0;Politi,  <span  class="cmti-10">Modeling Reactive Systems with Statecharts: The Statemate Approach</span>,     1st&#x00A0;ed.   New York, NY, USA: McGraw-Hill, Inc., 1998.     </p>         ]]></body>
<body><![CDATA[<p class="bibitem" ><span class="biblabel">  [<a href="#br36">36</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XTM04"></a>A.&#x00A0;Tolk and J.&#x00A0;A. Muguira, &#8220;M&amp;s within the model driven architecture,&#8221; in <span  class="cmti-10">Interservice/Industry</span>     <span  class="cmti-10">Training, Simulation, and Education Conference</span>, 2004.     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br37">37</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XPasqua2012"></a>R.&#x00A0;Pasqua, D.&#x00A0;Foures, A.&#x00A0;Vincent, and A.&#x00A0;Nketsa, &#8220;From sequence diagrams uml 2.x to fd-devs     by model transformation,&#8221; in <span  class="cmti-10">European Simulation and Modelling Conference</span>, Essen, Germany, Oct.     2012, pp. 37&#8211;43 N° 12 481. [Online]. Available: <a  href="https://hal.archives-ouvertes.fr/hal-00781084" class="url" >https://hal.archives-ouvertes.fr/hal-00781084</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br38">38</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XHuHCC14"></a>J.&#x00A0;Hu,  L.&#x00A0;Huang,  B.&#x00A0;Cao,  and  X.&#x00A0;Chang,  &#8220;Extended  DEVSML  as  a  model  transformation     intermediary to make UML diagrams executable,&#8221; in <span  class="cmti-10">The 26th International Conference on Software</span>     <span  class="cmti-10">Engineering and Knowledge Engineering, Hyatt Regency, Vancouver, BC, Canada, July 1-3, 2013.</span>,     2014, pp. 314&#8211;317.     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br39">39</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XSaadawiW13"></a>H.&#x00A0;Saadawi    and    G.&#x00A0;A.    Wainer,    &#8220;Principles    of    discrete    event    system    specification     model    verification.&#8221;    <span  class="cmti-10">Simulation</span>,    vol.&#x00A0;89,    no.&#x00A0;1,    pp.    41&#8211;67,    2013.    [Online].    Available:     <a  href="http://dblp.uni-trier.de/db/journals/simulation/simulation89.html#SaadawiW13" class="url" >http://dblp.uni-trier.de/db/journals/simulation/simulation89.html#SaadawiW13</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br40">40</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XRCMZ09"></a>J.&#x00A0;L. Risco-Martín, J.&#x00A0;M. de&#x00A0;la Cruz, S.&#x00A0;Mittal, and B.&#x00A0;P. Zeigler, &#8220;eudevs: Executable uml with     devs theory of modeling and simulation.&#8221; <span  class="cmti-10">Simulation</span>, vol.&#x00A0;85, no. 11-12, pp. 750&#8211;777, 2009. [Online].     Available: <a  href="http://dblp.uni-trier.de/db/journals/simulation/simulation85.html#Risco-MartinCMZ09" class="url" >http://dblp.uni-trier.de/db/journals/simulation/simulation85.html#Risco-MartinCMZ09</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br41">41</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="Xrussell2012scxml"></a>J.&#x00A0;Russell    and    R.&#x00A0;Cohn,    <span  class="cmti-10">Scxml</span>.     Book    on    Demand,    2012.    [Online].    Available:     <a  href="http://books.google.com.uy/books?id=zXDGMgEACAAJ" class="url" >http://books.google.com.uy/books?id=zXDGMgEACAAJ</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br42">42</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XMZH"></a>S.&#x00A0;Mittal, B.&#x00A0;Zeigler, and M.&#x00A0;Hwang, <span  class="cmti-10">W3C XML Schema for Finite Deterministic (FD) DEVS</span>     <span  class="cmti-10">Models</span>, Std., Last access: May 2015. [Online]. Available: <a  href="http://www.saurabh-mittal.com/fddevs/" class="url" >http://www.saurabh-mittal.com/fddevs/</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br43">43</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XDJ00"></a>B.&#x00A0;P. Zeigler and H.&#x00A0;Sarjoughian, &#8220;Introduction to devs modeling and simulation with java: A     simplified approach to hla-compliant distributed simulations,&#8221; <span  class="cmti-10">Arizona Center for Integrative Modeling</span>     <span  class="cmti-10">and Simulation</span>, 2000.     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br44">44</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XATL"></a><span  class="cmti-10">ATL     Transformation     Language</span>,     Last     access:     May     2015.     [Online].     Available:     <a  href="http://www.eclipse.org/atl" class="url" >http://www.eclipse.org/atl</a>                                                                                                                                                                                         </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br45">45</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XMOF11"></a><span  class="cmti-10">OMG Meta Object Facility (MOF) Core Specification, Version 2.4.1</span>, Object Management Group     Std., Rev. 2.4.1, 2011. [Online]. Available: <a  href="http://www.omg.org/spec/MOF/2.4.1" class="url" >http://www.omg.org/spec/MOF/2.4.1</a>     </p>         ]]></body>
<body><![CDATA[<p class="bibitem" ><span class="biblabel">  [<a href="#br46">46</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XMED11"></a><span  class="cmti-10">Medini QVT</span>, ikv++ Technologies, Last access: May 2015. [Online]. Available: <a  href="http://www.ikv.de/" class="url" >http://www.ikv.de/</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br47">47</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XEMF10"></a>D.&#x00A0;Steinberg, F.&#x00A0;Budinsky, M.&#x00A0;Paternostro, and E.&#x00A0;Merks, <span  class="cmti-10">EMF: Eclipse Modeling Framework 2.0</span>,     2nd&#x00A0;ed.   Addison-Wesley Professional, 2009.     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br48">48</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XECORE12"></a><span  class="cmti-10">Ecore               metamodel               specification</span>,                 Object                 Management     Group,            Last            access:            May            2015.            [Online].            Available:     <a  href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/package-summary.html" class="url" >http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/package-summary.html</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br49">49</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XMOLA"></a><span  class="cmti-10">MOLA Tool Architecture</span>, Last access: May 2015. [Online]. Available: <a  href="http://mola.mii.lu.lv" class="url" >http://mola.mii.lu.lv</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br50">50</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XWA04"></a>A.&#x00A0;Wasowski,  &#8220;Flattening  statecharts  without  explosions,&#8221;  <span  class="cmti-10">SIGPLAN Not.</span>,  vol.&#x00A0;39,  no.&#x00A0;7,  pp.     257&#8211;266, Jun. 2004. [Online]. Available: <a  href="http://doi.acm.org/10.1145/998300.997200" class="url" >http://doi.acm.org/10.1145/998300.997200</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br51">51</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XZKP00"></a>B.&#x00A0;P. Zeigler, T.&#x00A0;G. Kim, and H.&#x00A0;Praehofer, <span  class="cmti-10">Theory of Modeling and Simulation</span>, 2nd&#x00A0;ed.  Orlando,     FL, USA: Academic Press, Inc., 2000.     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br52">52</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XvdB02"></a>M.&#x00A0;von&#x00A0;der   Beeck,   &#8220;A   structured   operational   semantics   for   uml-statecharts,&#8221;   <span  class="cmti-10">Software</span>     <span  class="cmti-10">and   Systems   Modeling</span>,   vol.&#x00A0;V1,   no.&#x00A0;2,   pp.   130&#8211;141,   December   2002.   [Online].   Available:     <a  href="http://dx.doi.org/10.1007/s10270-002-0012-8" class="url" >http://dx.doi.org/10.1007/s10270-002-0012-8</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br53">53</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XDEVSC++"></a>H.&#x00A0;Cho and Y.&#x00A0;Cho, <span  class="cmti-10">DEVS-C++ Reference Guide</span>, The University of Arizona, 1997.     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br54">54</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XDEVSim++"></a>T.&#x00A0;G. Kim, <span  class="cmti-10">DEVSim++ User&#8217;s Manual. C++ Based Simulation with Hierarchical Modular DEVS</span>     <span  class="cmti-10">Models</span>, Korea Advance Institute of Science and Technology, 1994.     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br55">55</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XCD++02"></a>G.&#x00A0;Wainer, &#8220;Cd++: A toolkit to develop devs models,&#8221; <span  class="cmti-10">Softw. Pract. Exper.</span>, vol.&#x00A0;32, no.&#x00A0;13, pp.     1261&#8211;1306, 2002. [Online]. Available: <a  href="http://dx.doi.org/10.1002/spe.482" class="url" >http://dx.doi.org/10.1002/spe.482</a>     </p>         ]]></body>
<body><![CDATA[<p class="bibitem" ><span class="biblabel">  [<a href="#br56">56</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XJDEVS04"></a>J.-B. Filippi and P.&#x00A0;Bisgambiglia, &#8220;Jdevs: an implementation of a devs based formal framework for     environmental modelling,&#8221; in <span  class="cmti-10">Environmental Modelling and Software</span>, 2004, pp. 261&#8211;274.                                                                                                                                                                                         </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br57">57</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XSaxon"></a>M.&#x00A0;Kay, <span  class="cmti-10">SAXON. The XSLT and XQuery Processor</span>, Saxonica, Last access: May 2015. [Online].     Available: <a  href="http://saxon.sourceforge.net" class="url" >http://saxon.sourceforge.net</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br58">58</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XLBM06"></a>J.-M.  Mottu,  B.&#x00A0;Baudry,  and  Y.&#x00A0;L.  Traon,  &#8220;Reusable  mda  components:  A  testing-for-trust     approach.&#8221;  in  <span  class="cmti-10">MoDELS</span>,  ser.  Lecture  Notes  in  Computer  Science,  O.&#x00A0;Nierstrasz,  J.&#x00A0;Whittle,     D.&#x00A0;Harel,  and  G.&#x00A0;Reggio,  Eds.,  vol.  4199.    Springer,  2006,  pp.  589&#8211;603.  [Online].  Available:     <a  href="http://dblp.uni-trier.de/db/conf/models/models2006.html#MottuBT06" class="url" >http://dblp.uni-trier.de/db/conf/models/models2006.html#MottuBT06</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br59">59</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XKUSTER06"></a>J.&#x00A0;M.    Küster,    &#8220;Definition    and    validation    of    model    transformations.&#8221;    <span  class="cmti-10">Software</span>     <span  class="cmti-10">and     System     Modeling</span>,     vol.&#x00A0;5,     no.&#x00A0;3,     pp.     233&#8211;259,     2006.     [Online].     Available:     <a  href="http://dblp.uni-trier.de/db/journals/sosym/sosym5.html#Kuster06" class="url" >http://dblp.uni-trier.de/db/journals/sosym/sosym5.html#Kuster06</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br60">60</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XDijkstra:1997:DP:550359"></a>E.&#x00A0;W. Dijkstra, <span  class="cmti-10">A Discipline of Programming</span>, 1st&#x00A0;ed.    Upper Saddle River, NJ, USA: Prentice     Hall PTR, 1997.     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br61">61</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="Xpons_08_lightweight"></a>C.&#x00A0;Pons and D.&#x00A0;Garcia, &#8220;A lightweight approach for the semantic validation of model refinements,&#8221;     <span  class="cmti-10">Electronic Notes in Theoretical Computer Science</span>, vol. 220, no.&#x00A0;1, pp. 43&#8211;61, December 2008. [Online].     Available: <a  href="http://dx.doi.org/10.1016/j.entcs.2008.11.005" class="url" >http://dx.doi.org/10.1016/j.entcs.2008.11.005</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br62">62</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="Xbcnn2000"></a>J.&#x00A0;Banks, J.&#x00A0;S. Carson, B.&#x00A0;L. Nelson, and D.&#x00A0;M. Nicol, <span  class="cmti-10">Discrete-Event System Simulation (5rd</span>     <span  class="cmti-10">Edition)</span>, 5th&#x00A0;ed.   Prentice Hall, 2010.     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br63">63</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XSargent14"></a>R.&#x00A0;G. Sargent, &#8220;Verifying and validating simulation models,&#8221; in <span  class="cmti-10">Proceedings of the 2014 Winter</span>     <span  class="cmti-10">Simulation  Conference,  Savannah,  GA,  USA,  December  7-10,  2014</span>,  2014,  pp.  118&#8211;131.  [Online].     Available: <a  href="http://dx.doi.org/10.1109/WSC.2014.7019883" class="url" >http://dx.doi.org/10.1109/WSC.2014.7019883</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br64">64</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XWangBL14"></a>X.&#x00A0;Wang,      F.&#x00A0;Büttner,      and      Y.&#x00A0;Lamo,      &#8220;Verification      of      graph-based      model     transformations   using   alloy,&#8221;   <span  class="cmti-10">ECEASST</span>,   vol.&#x00A0;67,   pp.   113&#8211;129,   2014.   [Online].   Available:     <a  href="http://journal.ub.tu-berlin.de/eceasst/article/view/943" class="url" >http://journal.ub.tu-berlin.de/eceasst/article/view/943</a>     </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br65">65</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XLano14"></a>K.&#x00A0;Lano, S.&#x00A0;Kolahdouz-Rahimi, I.&#x00A0;Poernomo, J.&#x00A0;Terrell, and S.&#x00A0;Zschaler, &#8220;Correct-by-construction     synthesis of model transformations using transformation patterns,&#8221; <span  class="cmti-10">Softw. Syst. Model.</span>, vol.&#x00A0;13, no.&#x00A0;2,     pp. 873&#8211;907, May 2014. [Online]. Available: <a  href="http://dx.doi.org/10.1007/s10270-012-0291-7" class="url" >http://dx.doi.org/10.1007/s10270-012-0291-7</a>     </p>         ]]></body>
<body><![CDATA[<p class="bibitem" ><span class="biblabel">  [<a href="#br66">66</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XRB14"></a>S.&#x00A0;Roser  and  B.&#x00A0;Bauer,  &#8220;Automatic  generation  and  evolution  of  model  transformations  using     ontology engineering space,&#8221; <span  class="cmti-10">Journal on Data Semantics XI</span>, vol. 5383, pp. 32&#8211;64, 2014.                                                                                                                                                                                         </p>         <p class="bibitem" ><span class="biblabel">  [<a href="#br67">67</a>]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a   id="XAceto:2007:RSM:1324845"></a>L.&#x00A0;Aceto, A.&#x00A0;Ingólfsdóttir, K.&#x00A0;G. Larsen, and J.&#x00A0;Srba, <span  class="cmti-10">Reactive Systems: Modelling, Specification</span>     <span  class="cmti-10">and Verification</span>.   New York, NY, USA: Cambridge University Press, 2007. </p>     </div>           ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Mellor]]></surname>
<given-names><![CDATA[S. J.]]></given-names>
</name>
<name>
<surname><![CDATA[Clark]]></surname>
<given-names><![CDATA[A. N.]]></given-names>
</name>
<name>
<surname><![CDATA[Futagami]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Guest editors’ introduction: Model-driven development]]></article-title>
<source><![CDATA[IEEE Software]]></source>
<year>2003</year>
<volume>20</volume>
<numero>5</numero>
<issue>5</issue>
<page-range>14-18</page-range></nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Selic]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[The pragmatics of model-driven development]]></article-title>
<source><![CDATA[IEEE Softw]]></source>
<year>2003</year>
<volume>20</volume>
<numero>5</numero>
<issue>5</issue>
<page-range>19-25</page-range></nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Stahl]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
<name>
<surname><![CDATA[Voelter]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Czarnecki]]></surname>
<given-names><![CDATA[K]]></given-names>
</name>
</person-group>
<source><![CDATA[Model-Driven Software Development: Technology, Engineering, Management]]></source>
<year>2006</year>
<publisher-name><![CDATA[John Wiley & Sons]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[France]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Rumpe]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Model-driven development of complex software: A research roadmap]]></article-title>
<source><![CDATA[Future of Software Engineering: IEEE Computer Society]]></source>
<year>2007</year>
<page-range>37-54</page-range></nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Beydeda]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Book]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Gruhn]]></surname>
<given-names><![CDATA[V]]></given-names>
</name>
</person-group>
<source><![CDATA[Model-driven software development]]></source>
<year>2005</year>
<volume>15</volume>
<publisher-name><![CDATA[Springer]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Miller]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Mukerji]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[Mda guide version 1.0.1]]></source>
<year>2003</year>
</nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="">
<collab>Object Management Group</collab>
<source><![CDATA[]]></source>
<year>2015</year>
</nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="">
<collab>OMG</collab>
<source><![CDATA[Unified Modeling Language (OMG UML): Superstructure, Version 2.4.1]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Rumbaugh]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Jacobson]]></surname>
<given-names><![CDATA[I]]></given-names>
</name>
<name>
<surname><![CDATA[Booch]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
</person-group>
<source><![CDATA[Unified Modeling Language Reference Manual]]></source>
<year>2004</year>
<edition>2</edition>
<publisher-name><![CDATA[Pearson Higher Education]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Zeigler]]></surname>
<given-names><![CDATA[B. P]]></given-names>
</name>
<name>
<surname><![CDATA[Vahie]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Devs formalism and methodology: Unity of conception/diversity of application]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[25 Proceedings of the 25th Conference on Winter Simulation]]></conf-name>
<conf-date>1993</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B11">
<label>11</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Wainer]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
<name>
<surname><![CDATA[Mosterman]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Discrete-Event Modeling and Simulation: Theory and Applications]]></article-title>
<source><![CDATA[Computational Analysis, Synthesis, and Design of Dynamic Systems]]></source>
<year>2010</year>
<publisher-name><![CDATA[Taylor & Francis]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B12">
<label>12</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Cirino]]></surname>
<given-names><![CDATA[Z]]></given-names>
</name>
</person-group>
<source><![CDATA[Devs: CIV]]></source>
<year>2012</year>
</nlm-citation>
</ref>
<ref id="B13">
<label>13</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Zeigler]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[Praehofer]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
<name>
<surname><![CDATA[Kim]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
</person-group>
<source><![CDATA[Theory of Modeling and Simulation: Integrating Discrete Event and Continuous Complex Dynamic Systems]]></source>
<year>2000</year>
<publisher-name><![CDATA[Academic Press]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B14">
<label>14</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Molter]]></surname>
<given-names><![CDATA[H. G]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Discrete event system specification]]></article-title>
<source><![CDATA[SynDEVS Co-Design Flow]]></source>
<year>2012</year>
<page-range>9-42</page-range><publisher-loc><![CDATA[Wiesbaden ]]></publisher-loc>
<publisher-name><![CDATA[Springer Fachmedien]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B15">
<label>15</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Wang]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[Handbook of Finite State Based Models and Applications]]></source>
<year>2012</year>
<edition>1</edition>
<publisher-name><![CDATA[Chapman & Hall]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B16">
<label>16</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Harel]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Statecharts: A visual formalism for complex systems]]></article-title>
<source><![CDATA[Sci. Comput. Program.,]]></source>
<year>1987</year>
<volume>8</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>231-274</page-range></nlm-citation>
</ref>
<ref id="B17">
<label>17</label><nlm-citation citation-type="">
<collab>OMG</collab>
<source><![CDATA[Meta Object Facility (MOF) 2.0 Query/View/Transformation Specification: Version 1.1, Object Management Group Std]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B18">
<label>18</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bergero]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Kofman]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Powerdevs: A tool for hybrid system modeling and real-time simulation]]></article-title>
<source><![CDATA[Simulation]]></source>
<year>Jan.</year>
<month> 2</month>
<day>01</day>
<volume>87</volume>
<numero>1-2</numero>
<issue>1-2</issue>
<page-range>113-132</page-range></nlm-citation>
</ref>
<ref id="B19">
<label>19</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Gonzalez]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Luna]]></surname>
<given-names><![CDATA[C. D]]></given-names>
</name>
<name>
<surname><![CDATA[Cuello]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Perez]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Daniele]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Metamodel-based transformation from UML state machines to DEVS models]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[XL Latin American Computing Conference]]></conf-name>
<conf-date>September 15-19, 2014</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B20">
<label>20</label><nlm-citation citation-type="">
<source><![CDATA[IBM Rational Rose]]></source>
<year>May </year>
<month>20</month>
<day>15</day>
</nlm-citation>
</ref>
<ref id="B21">
<label>21</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Russell]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Cohn]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<source><![CDATA[Ibm Rational Rose Xde. Book on Demand]]></source>
<year>2012</year>
</nlm-citation>
</ref>
<ref id="B22">
<label>22</label><nlm-citation citation-type="">
<source><![CDATA[Poseidon for UML]]></source>
<year>May </year>
<month>20</month>
<day>15</day>
</nlm-citation>
</ref>
<ref id="B23">
<label>23</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bendre]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Sarjoughian]]></surname>
<given-names><![CDATA[H. S]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Discrete-event behavioral modeling in sesm: Software design and implementation]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Advanced Simulation Technology Conference]]></conf-name>
<conf-date>2005</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B24">
<label>24</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Vladimir]]></surname>
<given-names><![CDATA[P. P.]]></given-names>
</name>
<name>
<surname><![CDATA[Slavícek]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<source><![CDATA[]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B25">
<label>25</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Mittal]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Risco-Martín]]></surname>
<given-names><![CDATA[J. L.]]></given-names>
</name>
<name>
<surname><![CDATA[Zeigler]]></surname>
<given-names><![CDATA[B. P.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Devsml: Automating devs execution over soa towards transparent simulators]]></article-title>
<source><![CDATA[Proceedings of the 2007 Spring Simulation Multiconference]]></source>
<year>2007</year>
<volume>2</volume>
<page-range>287-295</page-range><publisher-loc><![CDATA[San Diego^eCA CA]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B26">
<label>26</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Badros]]></surname>
<given-names><![CDATA[G. J]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Javaml: a markup language for java source code]]></article-title>
<source><![CDATA[Computer Networks]]></source>
<year>2000</year>
<volume>33</volume>
<numero>1-6</numero>
<issue>1-6</issue>
<page-range>159-177</page-range></nlm-citation>
</ref>
<ref id="B27">
<label>27</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[de Lara]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Vangheluwe]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Using atom3 as a meta-case tool.]]></article-title>
<source><![CDATA[ICEIS]]></source>
<year>2002</year>
<page-range>642-649</page-range></nlm-citation>
</ref>
<ref id="B28">
<label>28</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Choi]]></surname>
<given-names><![CDATA[K]]></given-names>
</name>
<name>
<surname><![CDATA[Jung]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Kim]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
<name>
<surname><![CDATA[Bae]]></surname>
<given-names><![CDATA[D.-H]]></given-names>
</name>
<name>
<surname><![CDATA[Lee]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Uml-based modeling and simulation method for mission-critical real-time embedded system development]]></article-title>
<person-group person-group-type="editor">
<name>
<surname><![CDATA[Kokol]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<collab>IASTED</collab>
<source><![CDATA[Conf. on Software Engineering]]></source>
<year>2006</year>
<page-range>160-165</page-range></nlm-citation>
</ref>
<ref id="B29">
<label>29</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Hong]]></surname>
<given-names><![CDATA[S. Y]]></given-names>
</name>
<name>
<surname><![CDATA[Kim]]></surname>
<given-names><![CDATA[T. G]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Embedding uml subset into object-oriented devs modeling process]]></article-title>
<source><![CDATA[Society of Modeling and Computer Simulation International]]></source>
<year>2004</year>
<page-range>161 - 166</page-range></nlm-citation>
</ref>
<ref id="B30">
<label>30</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Zinoviev]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<source><![CDATA[Mapping DEVS models onto UML models: CoRR]]></source>
<year>2005</year>
</nlm-citation>
</ref>
<ref id="B31">
<label>31</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Huang]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Sarjoughian]]></surname>
<given-names><![CDATA[H. S.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Software and simulation modeling for real-time software-intensive systems]]></article-title>
<source><![CDATA[DS-RT: IEEE Computer Society]]></source>
<year>2004</year>
<page-range>196-203</page-range></nlm-citation>
</ref>
<ref id="B32">
<label>32</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Douglass]]></surname>
<given-names><![CDATA[B. P]]></given-names>
</name>
</person-group>
<source><![CDATA[Real-Time UML: Developing Efficient Objects for Embedded Systems]]></source>
<year>1997</year>
<publisher-loc><![CDATA[Boston^eMA MA]]></publisher-loc>
<publisher-name><![CDATA[Addison-Wesley Longman Publishing Co]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B33">
<label>33</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Gomaa]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
</person-group>
<source><![CDATA[Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures]]></source>
<year>2011</year>
<edition>1</edition>
<publisher-loc><![CDATA[New York ]]></publisher-loc>
<publisher-name><![CDATA[Cambridge University Press]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B34">
<label>34</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Schulz]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Ewing]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
<name>
<surname><![CDATA[Rozenblit]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Discrete event system specification (devs) and statemate statecharts equivalence for embedded systems modeling]]></article-title>
<source><![CDATA[ECBS: IEEE Computer Society]]></source>
<year>2000</year>
<page-range>308</page-range></nlm-citation>
</ref>
<ref id="B35">
<label>35</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Harel]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Politi]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[Modeling Reactive Systems with Statecharts: The Statemate Approach]]></source>
<year>1998</year>
<edition>1</edition>
<publisher-loc><![CDATA[New York ]]></publisher-loc>
<publisher-name><![CDATA[McGraw-Hill]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B36">
<label>36</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Tolk]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Muguira]]></surname>
<given-names><![CDATA[J. A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[M&s within the model driven architecture]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Interservice/Industry Training, Simulation, and Education Conference]]></conf-name>
<conf-date>2004</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B37">
<label>37</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Pasqua]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Foures]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Vincent]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Nketsa]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[From sequence diagrams uml 2.x to fd-devs by model transformation]]></article-title>
<source><![CDATA[European Simulation and Modelling Conference]]></source>
<year>Oct.</year>
<month> 2</month>
<day>01</day>
<page-range>37-43</page-range></nlm-citation>
</ref>
<ref id="B38">
<label>38</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Hu]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Huang]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[Cao]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[Chang]]></surname>
<given-names><![CDATA[X]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Extended DEVSML as a model transformation intermediary to make UML diagrams executable]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[26 International Conference on Software Engineering and Knowledge Engineering]]></conf-name>
<conf-loc>Vancouver </conf-loc>
</nlm-citation>
</ref>
<ref id="B39">
<label>39</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Saadawi]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
<name>
<surname><![CDATA[Wainer]]></surname>
<given-names><![CDATA[G. A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Principles of discrete event system specification model verification]]></article-title>
<source><![CDATA[Simulation]]></source>
<year>2013</year>
<volume>89</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>41-67</page-range></nlm-citation>
</ref>
<ref id="B40">
<label>40</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Risco-Martín]]></surname>
<given-names><![CDATA[J. L]]></given-names>
</name>
<name>
<surname><![CDATA[de la Cruz]]></surname>
<given-names><![CDATA[J. M]]></given-names>
</name>
<name>
<surname><![CDATA[Mittal]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Zeigler]]></surname>
<given-names><![CDATA[B. P]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[eudevs: Executable uml with devs theory of modeling and simulation]]></article-title>
<source><![CDATA[Simulation]]></source>
<year>2009</year>
<volume>85</volume>
<numero>11-12</numero>
<issue>11-12</issue>
<page-range>750-777</page-range></nlm-citation>
</ref>
<ref id="B41">
<label>41</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Russell]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Cohn]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<source><![CDATA[Scxml: Book on Demand]]></source>
<year>2012</year>
</nlm-citation>
</ref>
<ref id="B42">
<label>42</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Mittal]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Zeigler]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[Hwang]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[W3C XML Schema for Finite Deterministic (FD) DEVS Models]]></source>
<year>May </year>
<month>20</month>
<day>15</day>
</nlm-citation>
</ref>
<ref id="B43">
<label>43</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Zeigler]]></surname>
<given-names><![CDATA[B. P]]></given-names>
</name>
<name>
<surname><![CDATA[Sarjoughian]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Introduction to devs modeling and simulation with java: A simplified approach to hla-compliant distributed simulations]]></article-title>
<source><![CDATA[Arizona Center for Integrative Modeling and Simulation]]></source>
<year>2000</year>
</nlm-citation>
</ref>
<ref id="B44">
<label>44</label><nlm-citation citation-type="">
<source><![CDATA[ATL Transformation Language]]></source>
<year>May </year>
<month>20</month>
<day>15</day>
</nlm-citation>
</ref>
<ref id="B45">
<label>45</label><nlm-citation citation-type="">
<collab>Object Management Group</collab>
<source><![CDATA[OMG Meta Object Facility (MOF) Core Specification]]></source>
<year>2011</year>
</nlm-citation>
</ref>
<ref id="B46">
<label>46</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Medini]]></surname>
<given-names><![CDATA[QVT]]></given-names>
</name>
</person-group>
<source><![CDATA[ikv++ Technologies]]></source>
<year>May </year>
<month>20</month>
<day>15</day>
</nlm-citation>
</ref>
<ref id="B47">
<label>47</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Steinberg]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Budinsky]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Paternostro]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Merks]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
</person-group>
<source><![CDATA[EMF: Eclipse Modeling Framework 2.0]]></source>
<year>2009</year>
<edition>2</edition>
<publisher-name><![CDATA[Addison-Wesley Professional]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B48">
<label>48</label><nlm-citation citation-type="">
<source><![CDATA[Ecore metamodel specification: Object Management Group]]></source>
<year>May </year>
<month>20</month>
<day>15</day>
</nlm-citation>
</ref>
<ref id="B49">
<label>49</label><nlm-citation citation-type="">
<source><![CDATA[MOLA Tool Architecture]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B50">
<label>50</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Wasowski]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Flattening statecharts without explosions]]></article-title>
<source><![CDATA[SIGPLAN]]></source>
<year>Jun.</year>
<month> 2</month>
<day>00</day>
<volume>39</volume>
<numero>7</numero>
<issue>7</issue>
<page-range>257-266</page-range></nlm-citation>
</ref>
<ref id="B51">
<label>51</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Zeigler]]></surname>
<given-names><![CDATA[B. P.]]></given-names>
</name>
<name>
<surname><![CDATA[Kim]]></surname>
<given-names><![CDATA[T. G.]]></given-names>
</name>
<name>
<surname><![CDATA[Praehofer]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
</person-group>
<source><![CDATA[Theory of Modeling and Simulation]]></source>
<year></year>
<edition>2</edition>
<publisher-loc><![CDATA[FL ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B52">
<label>52</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[von der Beeck]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A structured operational semantics for uml-statecharts]]></article-title>
<source><![CDATA[Software and Systems Modeling]]></source>
<year>Dece</year>
<month>mb</month>
<day>er</day>
<volume>V1</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>130-141</page-range></nlm-citation>
</ref>
<ref id="B53">
<label>53</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Cho]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
<name>
<surname><![CDATA[Cho]]></surname>
<given-names><![CDATA[Y]]></given-names>
</name>
</person-group>
<source><![CDATA[DEVS-C++ Reference Guide]]></source>
<year>1997</year>
<publisher-name><![CDATA[The University of Arizona]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B54">
<label>54</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kim]]></surname>
<given-names><![CDATA[T. G]]></given-names>
</name>
</person-group>
<source><![CDATA[DEVSim++: User’s Manual. C++ Based Simulation with Hierarchical Modular DEVS Models, Korea Advance Institute of Science and Technology]]></source>
<year>1994</year>
</nlm-citation>
</ref>
<ref id="B55">
<label>55</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Wainer]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Cd++: A toolkit to develop devs models]]></article-title>
<source><![CDATA[Softw. Pract. Exper.]]></source>
<year>2002</year>
<volume>32</volume>
<numero>13</numero>
<issue>13</issue>
<page-range>1261-1306</page-range></nlm-citation>
</ref>
<ref id="B56">
<label>56</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Filippi]]></surname>
<given-names><![CDATA[J.-B]]></given-names>
</name>
<name>
<surname><![CDATA[Bisgambiglia]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Jdevs: an implementation of a devs based formal framework for environmental modelling]]></article-title>
<source><![CDATA[Environmental Modelling and Software]]></source>
<year>2004</year>
<page-range>261-274</page-range></nlm-citation>
</ref>
<ref id="B57">
<label>57</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kay]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[The XSLT and XQuery Processor]]></source>
<year>May </year>
<month>20</month>
<day>15</day>
</nlm-citation>
</ref>
<ref id="B58">
<label>58</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Mottu]]></surname>
<given-names><![CDATA[J.-M]]></given-names>
</name>
<name>
<surname><![CDATA[Baudry]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[Traon]]></surname>
<given-names><![CDATA[Y. L.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Reusable mda components: A testing-for-trust approach]]></article-title>
<person-group person-group-type="editor">
<name>
<surname><![CDATA[Nierstrasz]]></surname>
<given-names><![CDATA[O]]></given-names>
</name>
<name>
<surname><![CDATA[Whittle]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Harel]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Reggio]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
</person-group>
<source><![CDATA[MoDELS: Lecture Notes in Computer Science]]></source>
<year>2006</year>
<volume>4199</volume>
<page-range>589-603</page-range><publisher-name><![CDATA[Springer]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B59">
<label>59</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Küster]]></surname>
<given-names><![CDATA[J. M]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Definition and validation of model transformations]]></article-title>
<source><![CDATA[Software and System Modeling]]></source>
<year>2006</year>
<volume>5</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>233-259</page-range></nlm-citation>
</ref>
<ref id="B60">
<label>60</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Dijkstra]]></surname>
<given-names><![CDATA[E. W]]></given-names>
</name>
</person-group>
<source><![CDATA[A Discipline of Programming]]></source>
<year>1997</year>
<edition>1</edition>
<publisher-loc><![CDATA[NJ ]]></publisher-loc>
<publisher-name><![CDATA[Prentice Hall PTR]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B61">
<label>61</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Pons]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[Garcia]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A lightweight approach for the semantic validation of model refinements]]></article-title>
<source><![CDATA[Electronic Notes in Theoretical Computer Science]]></source>
<year>Dece</year>
<month>mb</month>
<day>er</day>
<volume>220</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>43-61</page-range></nlm-citation>
</ref>
<ref id="B62">
<label>62</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Banks]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Carson]]></surname>
<given-names><![CDATA[J. S]]></given-names>
</name>
<name>
<surname><![CDATA[Nelson]]></surname>
<given-names><![CDATA[B. L]]></given-names>
</name>
<name>
<surname><![CDATA[Nicol]]></surname>
<given-names><![CDATA[D. M]]></given-names>
</name>
</person-group>
<source><![CDATA[Discrete-Event System Simulation]]></source>
<year>2010</year>
<edition>5</edition>
<publisher-name><![CDATA[Prentice Hall]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B63">
<label>63</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Sargent]]></surname>
<given-names><![CDATA[R. G]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Verifying and validating simulation models]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the 2014 Winter Simulation Conference]]></conf-name>
<conf-date>December 7-10, 2014</conf-date>
<conf-loc>Savannah GA</conf-loc>
</nlm-citation>
</ref>
<ref id="B64">
<label>64</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Wang]]></surname>
<given-names><![CDATA[X]]></given-names>
</name>
<name>
<surname><![CDATA[Büttner]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Lamo]]></surname>
<given-names><![CDATA[Y]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Verification of graph-based model transformations using alloy]]></article-title>
<source><![CDATA[ECEASST]]></source>
<year>2014</year>
<volume>67</volume>
<page-range>113-129</page-range></nlm-citation>
</ref>
<ref id="B65">
<label>65</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Lano]]></surname>
<given-names><![CDATA[K]]></given-names>
</name>
<name>
<surname><![CDATA[Kolahdouz-Rahimi]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Poernomo]]></surname>
<given-names><![CDATA[I]]></given-names>
</name>
<name>
<surname><![CDATA[Terrell]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Zschaler]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Correct-by-construction synthesis of model transformations using transformation patterns]]></article-title>
<source><![CDATA[Softw. Syst. Model]]></source>
<year>2014</year>
<volume>13</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>873-907</page-range></nlm-citation>
</ref>
<ref id="B66">
<label>66</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Roser]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Bauer]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Automatic generation and evolution of model transformations using ontology engineering space]]></article-title>
<source><![CDATA[Journal on Data Semantics]]></source>
<year>2014</year>
<volume>5383</volume>
<page-range>32-64</page-range></nlm-citation>
</ref>
<ref id="B67">
<label>67</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Aceto]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[Ingólfsdóttir]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Larsen]]></surname>
<given-names><![CDATA[K. G]]></given-names>
</name>
<name>
<surname><![CDATA[Srba]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[Reactive Systems: Modelling, Specification and Verification]]></source>
<year>2007</year>
<publisher-loc><![CDATA[New York ]]></publisher-loc>
<publisher-name><![CDATA[Cambridge University Press]]></publisher-name>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
