<?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>1692-3324</journal-id>
<journal-title><![CDATA[Revista Ingenierías Universidad de Medellín]]></journal-title>
<abbrev-journal-title><![CDATA[Rev. ing. univ. Medellín]]></abbrev-journal-title>
<issn>1692-3324</issn>
<publisher>
<publisher-name><![CDATA[Universidad de Medellín]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S1692-33242010000200014</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Un entorno para la representación de aspectos en esquemas preconceptuales]]></article-title>
<article-title xml:lang="en"><![CDATA[An environment for representing aspects in pre-conceptual schemas]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Zapata Jaramillo]]></surname>
<given-names><![CDATA[Carlos Mario]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[González Calderón]]></surname>
<given-names><![CDATA[Guillermo]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Chaverra Mojica]]></surname>
<given-names><![CDATA[John Jairo]]></given-names>
</name>
<xref ref-type="aff" rid="A03"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad Nacional de Colombia Facultad de Minas Escuela de Sistemas]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<aff id="A02">
<institution><![CDATA[,Universidad de Medellín Facultad de Ingenierías ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<aff id="A03">
<institution><![CDATA[,Universidad Nacional de Colombia  ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>07</month>
<year>2010</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>07</month>
<year>2010</year>
</pub-date>
<volume>9</volume>
<numero>17</numero>
<fpage>165</fpage>
<lpage>174</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_arttext&amp;pid=S1692-33242010000200014&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_abstract&amp;pid=S1692-33242010000200014&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_pdf&amp;pid=S1692-33242010000200014&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[Desde mediados de los 90 se viene dando la tendencia a identificar aspectos desde las etapas más tempranas del desarrollo de software. Las herramientas CASE (Computer-Aided Software Engineering) estándar permiten representar los aspectos en diagramas UML (Unified Modeling Language) pero, para ello, se requiere que el analista interprete de manera subjetiva el dominio, sin que medie una validación de los interesados. Es por esto que en este artículo se proponeun entorno, basado en EMF (Eclipse® Modelling Framework), que permite representar los aspectos en esquemas preconceptuales para luego traducirlos a los diagramas de clases y secuencias. El uso de la herramienta se ejemplifica con un caso de estudio.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[Since the mid-nineties, there has been a trend for identifying aspects from the earliest stages of software development lifecycle. The standard CASE (Computer-Aided Software Engineering) tools are used to represent aspects in UML (Unified Modeling Language) diagrams. However, the analyst makes this task by interpreting the domain in a subjective way, with no validation from stakeholders. For this reason, in this paper we present an EMF-based environment for representing aspects in pre-conceptual schemas, and then translating them into class and sequence diagrams. We exemplify the use of such environment with a case study.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[EMF]]></kwd>
<kwd lng="es"><![CDATA[GMF]]></kwd>
<kwd lng="es"><![CDATA[MOFScript]]></kwd>
<kwd lng="es"><![CDATA[aspecto]]></kwd>
<kwd lng="es"><![CDATA[esquemas preconceptuales]]></kwd>
<kwd lng="en"><![CDATA[EMF]]></kwd>
<kwd lng="en"><![CDATA[GMF]]></kwd>
<kwd lng="en"><![CDATA[MOFScript]]></kwd>
<kwd lng="en"><![CDATA[aspect]]></kwd>
<kwd lng="en"><![CDATA[pre-conceptual schemas]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[  	    <p ALIGN="CENTER"><FONT SIZE="4" FACE="Verdana"><B>Un entorno para la representaci&oacute;n de aspectos en esquemas preconceptuales  </B></FONT></p> 	    <p ALIGN="CENTER">&nbsp;</p> 	    <p ALIGN="CENTER"><B><FONT SIZE="3" FACE="Verdana">An environment for representing aspects in pre-conceptual schemas  </FONT></B></p>     <p>&nbsp;</p>     <p>&nbsp;</p>     <p><FONT SIZE="2" FACE="Verdana"> Carlos Mario Zapata Jaramillo<SUP>*</SUP>; Guillermo Gonz&aacute;lez Calder&oacute;n<SUP>**</SUP>; John Jairo Chaverra Mojica<SUP>**</SUP>*   </FONT></p>        <p><FONT SIZE="2" FACE="Verdana">* Ph. D. en Ingenier&iacute;a, profesor asociado de la Universidad Nacional de Colombia, l&iacute;der del grupo de investigaci&oacute;n en Lenguajes Computacionales. Facultad de Minas, Escuela de Sistemas. Correo electr&oacute;nico: <a href="mailto:cmzapata@unal.edu.co.">cmzapata@unal.edu.co.    <BR>   </a></FONT><FONT SIZE="2" FACE="Verdana">**       Docente de la Facultad de Ingenier&iacute;as, Universidad de Medell&iacute;n, Grupo de Investigaci&oacute;n ARKADIUS. Correo electr&oacute;nico: <a href="mailto:ggonzalezc@udem.edu.co.">ggonzalezc@udem.edu.co.    <BR>       </a></FONT><FONT SIZE="2" FACE="Verdana">***       Estudiante de maestr&iacute;a en Ingenier&iacute;a de Sistemas, Universidad Nacional de Colombia. Correo electr&oacute;nico: <a href="mailto:jjchaverra@unal.edu.co.">jjchaverra@unal.edu.co.</a>        </FONT></p>        ]]></body>
<body><![CDATA[<p>&nbsp;</p>       <p>&nbsp;</p>   <hr size="1" noshade> <font size="2" face="Verdana"><B>Resumen</B></font>       <p><FONT SIZE="2" FACE="Verdana">Desde mediados de los 90 se viene dando la tendencia a identificar aspectos desde las etapas m&aacute;s tempranas del desarrollo de software. Las herramientas CASE <I>(Computer-Aided Software Engineering)</I> est&aacute;ndar permiten representar los aspectos en diagramas UML <I>(Unified Modeling Language)</I> pero, para ello, se requiere que el analista interprete de manera subjetiva el dominio, sin que medie una validaci&oacute;n de los interesados. Es por esto que en este art&iacute;culo se proponeun entorno, basado en EMF <I>(Eclipse&reg; Modelling Framework),</I> que permite representar los aspectos en esquemas preconceptuales para luego traducirlos a los diagramas de clases y secuencias. El uso de la herramienta se ejemplifica con un caso de estudio.  </FONT>       <p><FONT SIZE="2" FACE="Verdana"><B>Palabras clave:</B> EMF, GMF, MOFScript,     aspecto, esquemas preconceptuales. </FONT>       <hr size="1" noshade><font size="2" face="Verdana"><B>Abstract</B></font>     <p><FONT SIZE="2" FACE="Verdana">Since the mid-nineties, there has been a trend for identifying aspects from the earliest stages of software development lifecycle. The standard CASE (Computer-Aided Software Engineering) tools are used to represent aspects in UML (Unified Modeling Language) diagrams. However, the analyst makes this task by interpreting the domain in a subjective way, with no validation from stakeholders. For this reason, in this paper we present an EMF-based environment for representing aspects in pre-conceptual schemas, and then translating them into class and sequence diagrams. We exemplify the use of such environment with a case study.</FONT>       <p><FONT SIZE="2" FACE="Verdana"><B>Key words:</B> EMF, GMF, MOFScript, aspect, pre-conceptual schemas. </FONT> <hr size="1" noshade>         <p>&nbsp;</p>     <p>&nbsp;</p>     <p><FONT SIZE="3" FACE="Verdana"><B>INTRODUCCI&Oacute;N </B></FONT></p>     <p><FONT SIZE="2" FACE ="Verdana">La programaci&oacute;n orientada a aspectos (POA) tiene como prop&oacute;sito permitir una adecuada modularizaci&oacute;n de los sistemas y facilitar una mejor separaci&oacute;n de conceptos o requisitos. Dichos requisitos pueden tener dos or&iacute;genes: funcionales y no funcionales. Generalmente, los aspectos agrupan comportamientos comunes de las operaciones o restricciones asociadas con requisitos no funcionales &#91;1&#93;.</FONT></p>     ]]></body>
<body><![CDATA[<p><FONT SIZE="2" FACE ="Verdana">&Uacute;ltimamente, se viene dando la tendencia a identificar los aspectos desde etapas m&aacute;s tempranas del desarrollo de software, para que, cuando se llegue a la etapa de implementaci&oacute;n, se tengan claros todos los aspectos. As&iacute;, se busca hacer m&aacute;s r&aacute;pido y efectivo el proceso de desarrollo de software, logrando mayor consistencia, trazabilidad y facilidad el mantenimiento futuro en los aplicativos finales &#91;2&#93;. De esta manera, si hubiese cambios en los requisitos del interesado, no ser&iacute;an tan traum&aacute;ticos.</FONT></p>     <p><FONT SIZE="2" FACE ="Verdana">Para representar los aspectos en diagramas UML existen herramientas CASE pero, para ello, se requiere que el analista interprete de manera subjetiva el dominio &#91;2&#93;. Adem&aacute;s, estas herramientas utilizan un lenguaje t&eacute;cnico que el interesado no entiende f&aacute;cilmente. Por ende, no se tiene una verdadera validaci&oacute;n de la aplicaci&oacute;n que se est&aacute; construyendo, sino hasta las etapas finales de desarrollo.</FONT></p>     <p><FONT SIZE="2" FACE ="Verdana">Zapata <i>et al</i>. &#91;2&#93; especifican una propuesta para la representaci&oacute;n de los aspectos a partir de esquemas preconceptuales. Como son de f&aacute;cil interpretaci&oacute;n para los interesados, estos esquemas solucionan parcialmente el an&aacute;lisis subjetivo del dominio y logran una validaci&oacute;n con el interesado desde las fases iniciales del desarrollo. De esta manera, el desarrollo depende menos del analista y se disminuyen los errores que se cometen al elaborar manualmente los diagramas. Adem&aacute;s, se mejora la interacci&oacute;n con el interesado, logrando que, a la hora de desarrollar el producto, no se tengan inconvenientes por funcionalidades que el analista no interprete adecuadamente. Sin embargo, esta propuesta a&uacute;n no se incorpora en las herramientas CASE convencionales. Por ello, en este art&iacute;culo se propone la implementaci&oacute;n de un entorno, basado en EMF y GMF <I>(Graphical Modelling Framework),</I> para la representaci&oacute;n de aspectos en esquemas preconceptuales y su traducci&oacute;n a los diagramas de clases y secuencias de UML.</FONT></p>     <p><FONT SIZE="2" FACE ="Verdana">Este art&iacute;culo se organiza de la siguiente manera: en la secci&oacute;n 2, se define el marco te&oacute;rico que agrupa los conceptos de este dominio; en la secci&oacute;n 3, se resumen algunos trabajos en representaci&oacute;n de aspectos; en la secci&oacute;n 4, se plantean los elementos de la propuesta de implementaci&oacute;n en el entorno EMF; en la secci&oacute;n 5, se plantea un caso de estudio para ejemplificar el uso de la herramienta. Las conclusiones y el trabajo futuro se incluyen en las secciones 6 y 7, respectivamente.</FONT></p>      <p>&nbsp;</p>     <p><FONT SIZE="3" FACE="Verdana"><B>1. MARCO TE&Oacute;RICO </B></FONT></p>     <p><FONT SIZE="2" FACE ="Verdana">Se definen, en esta secci&oacute;n, algunos t&eacute;rminos que ser&aacute;n &uacute;tiles para entender la soluci&oacute;n.</FONT></p>     <p><FONT SIZE="2" FACE ="Verdana">Un aspecto es la agrupaci&oacute;n de requisitos funcionales y no funcionales, que se diseminan por todo el c&oacute;digo &#91;3&#93;.Algunos de sus conceptos b&aacute;sicos son:</FONT></p>     <p><FONT SIZE="2" FACE ="Verdana">&#8226; <I>Aspect:</I> Funcionalidad que se cruza a lo largo de la aplicaci&oacute;n (cross-cutting) de forma modular y separada del resto del sistema.    <BR> </FONT><FONT SIZE="2" FACE ="Verdana">&#8226; <I>Join point:</I> Es     un punto de ejecuci&oacute;n dentro del sistema, donde un aspecto se puede conectar como una llamada a un m&eacute;todo, el lanzamiento de una excepci&oacute;n o la modificaci&oacute;n de un campo.    ]]></body>
<body><![CDATA[<BR> </FONT><FONT SIZE="2" FACE ="Verdana">&#8226; <I>Pointcut:</I> Define los m&eacute;todos que se aplicar&aacute;n a cada join point. Se especifica mediante nombres (de clases, m&eacute;todos, campos) o expresiones regulares, e incluso din&aacute;micamente en tiempo de ejecuci&oacute;n</FONT></p>     <p><FONT SIZE="2" FACE ="Verdana">Seg&uacute;n Zapata <i>et al</i>. &#91;4&#93; los esquemas preconceptuales permiten la representaci&oacute;n de la terminolog&iacute;a de un dominio para facilitar su traducci&oacute;n a diferentes esquemas conceptuales. La descripci&oacute;n de los diferentes elementos que conforman los esquemas preconceptuales se puede ver en Zapata <i>et al</i>.&#91;2, 4-6&#93;. Para poder emplear los esquemas preconceptuales en la representaci&oacute;n de aspectos es necesario construir un metamodelo, que es un modelo de modelos que incluye definiciones que abarcan los elementos que se emplean gr&aacute;ficamente en un determinado diagrama &#91;7&#93;. Como el metamodelo se puede definir en t&eacute;rminos de UML, es necesario contar con un lenguaje para la descripci&oacute;n de restricciones que se aplican al metamodelo, para determinar si existe buena formaci&oacute;n en el lenguaje derivable del metamodelo&#91;7&#93;. Para las restricciones se emplea en este art&iacute;culo OCL <I>(ObjectConstraintLanguaje).</I></FONT></p>     <p><FONT SIZE="2" FACE ="Verdana">El entorno para implementar el desarrollo se compone de lo siguiente:</FONT></p>     <p><FONT SIZE="2" FACE ="Verdana">&#8226; EMF (Eclipse<sup>&reg;</sup> Modelling Framework): es una estructura de modelado que facilita la generaci&oacute;n de c&oacute;digo, para construir herramientas y otras aplicaciones, basadas en un modelo de datos estructurado desde una especificaci&oacute;n del modelo descrito en XMI (XML&#150;Extensible Markap Language&#150;Metadata Interchange) &#91;8&#93;.    <BR> </FONT><FONT SIZE="2" FACE ="Verdana">&#8226; GMF (Graphical Modelling Framework): proporciona una herramienta para la generaci&oacute;n de editores gr&aacute;ficos basados en EMF. Permite asociar cada nodo especificado en el metamodelo con su respectiva componente gr&aacute;fica &#91;8&#93;.    <BR> </FONT><FONT SIZE="2" FACE ="Verdana">&#8226; MOFScript (Meta-object facilitysript): es un plug-in de Eclipse<sup>&#174;</sup> que permite definir conjuntos de reglas, en las que se indican c&oacute;mo realizar transformaciones desde un modelo estructurado a texto. Como modelo de entrada es posible utilizar modelos que soporta el plug-in EMF o personalizados. En el contexto de este art&iacute;culo, este plug-in se utilizar&aacute; para definir las reglas de transformaci&oacute;n a c&oacute;digo Java y Aspecto (uno de los principales lenguajes orientados a aspectos) a partir de esquemas preconceptuales &#91;8&#93;.</FONT></p>     <p>&nbsp;</p>     <p><FONT SIZE="3" FACE="Verdana"><B>2. ANTECEDENTES </B></FONT></p>     <p><FONT SIZE="2" FACE ="Verdana">Las herramientas CASE convencionales (por ejemplo, ArgoUML &#91;9&#93; y Eclipse<sup>&reg;</sup>) y algunas metaCASE (como AToM3<sup>&reg;</sup> &#91;10&#93;) se pueden usar para la elaboraci&oacute;n de diagramas y su posterior traducci&oacute;n a diferentes lenguajes de programaci&oacute;n. Sin embargo, en estos casos la elaboraci&oacute;n de los diagramas corre a cargo del analista, sin que los interesados puedan validar los diagramas. Adem&aacute;s, en general, estas herramientas no posibilitan la traducci&oacute;n a lenguajes orientados a aspectos, como el AspectJ. Otros trabajos se encargan de la representaci&oacute;n de aspectos, tales como:</FONT></p>     <p><FONT SIZE="2" FACE ="Verdana">&#8226; Bennett <i>et al</i>. &#91;11&#93; presentan un framework para la generaci&oacute;n autom&aacute;tica de c&oacute;digo orientado a aspectos a partir del diagrama de clases. Los autores proponen la representaci&oacute;n de los aspectos como una clase. Para generar el c&oacute;digo se analiza el XML que el framework genera.    ]]></body>
<body><![CDATA[<BR> </FONT><FONT SIZE="2" FACE ="Verdana">&#8226; Baschy S&aacute;nchez &#91;3&#93; presentan una propuesta para la incorporaci&oacute;n de aspectos en UML para el diagrama de clases. En la <A HREF="#f1">figura 1</A> se presenta un diagrama de clases con aspectos, en donde incorporan un nuevo elemento donde se representa el aspecto C, siendo C una operaci&oacute;n com&uacute;n en la clase A y B.</FONT></p>     <p ALIGN="CENTER"><FONT SIZE="2" FACE ="Verdana"><img src="/img/revistas/rium/v9n17/v9n17a14f1.jpg"><A NAME="f1"></A>    <BR> </FONT><FONT SIZE="2" FACE ="Verdana"><strong>Figura 1.</strong> Diagrama       de clases con aspectos<br /> Fuente: elaboración propia.</FONT></p>     <p><FONT SIZE="2" FACE ="Verdana">Si bien en la primera propuesta se genera c&oacute;digo orientado a aspectos, en ambas propuestas es el analista quien debe elaborar los diagramas en su lenguaje t&eacute;cnico, basado en UML, lo cual sigue impidiendo la validaci&oacute;n que pueden hacer los interesados.</FONT></p>      <p>&nbsp;</p>     <p><FONT SIZE="3" FACE="Verdana"><B>3. ESQUEMAS PRECONCEPTUALES PARA LA REPRESENTACI&Oacute;N DE ASPECTOS EN EL ENTORNO EMF </B></FONT></p>     <p><FONT SIZE="2" FACE ="Verdana">Para construir una herramienta CASE en el entorno     EMF y GMF es necesario definir el metamodelo del dominio, en este caso del     esquema preconceptual, que se debi&oacute; construir en el marco de este     art&iacute;culo. En la <A HREF="#f2">figura 2</A> se presenta el metamodelo del esquema preconceptual, en la notaci&oacute;n propia del diagrama de clases. En este trabajo se utiliza OCL para garantizarle al usuario que su esquema preconceptual es, sint&aacute;cticamente, correcto. OCL permite definir restricciones de conexi&oacute;n entre los diferentes elementos del metamodelo. En la <A HREF="#f3">figura 3</A> se ilustra la forma de utilizar OCL en EMF. Inicialmente, se define un <I>link</I> de conexi&oacute;n entre dos nodos, luego se limita a que la conexi&oacute;n parta de una &#8220;Especificaci&oacute;n&#8221; y finalice en un &#8220;Concepto&#8221;. De esta manera, se definen todas las conexiones que sean necesarias, siguiendo los lineamientos propios de la sintaxis del esquema preconceptual. Una vez que el usuario grafique su esquema preconceptual, se obtiene un XMI que contiene toda la informaci&oacute;n de los elementos definidos. En la <A HREF="#f4">figura 4</A> se presenta la estructura en XMI de un ejemplo.</FONT></p>     <p ALIGN="CENTER"><FONT SIZE="2" FACE ="Verdana"><img src="/img/revistas/rium/v9n17/v9n17a14f2.jpg">    <BR>   <STRONG>Figura       2.</STRONG> Metamodelo del esquema preconceptual<BR /> Fuente: elaboración propia.</FONT></p>     <p ALIGN="CENTER">&nbsp;</p>     ]]></body>
<body><![CDATA[<p ALIGN="CENTER"><FONT SIZE="2" FACE ="Verdana"><img src="/img/revistas/rium/v9n17/v9n17a14f3.jpg"><A NAME="f3"></A>    <BR> </FONT><FONT SIZE="2" FACE ="Verdana"><STRONG>Figura 3</STRONG>.       Incorporación de OCL en EMF<BR /> Fuente: elaboración propia.</FONT></p>     <p ALIGN="CENTER">&nbsp;</p>     <p ALIGN="CENTER"><FONT SIZE="2" FACE ="Verdana"><img src="/img/revistas/rium/v9n17/v9n17a14f4.jpg"><A NAME="f4"></A>    <BR> </FONT><FONT SIZE="2" FACE ="Verdana"><STRONG>Figura 4.</STRONG> Estructura       XMI de un esquema preconceptual<BR /> Fuente: elaboración propia.</FONT></p>     <p><FONT SIZE="2" FACE ="Verdana">Para realizar la traducci&oacute;n del esquema     preconceptual a diagramas UML y c&oacute;digo fuente Java y AspectJ se utiliza     MOFScript. &Eacute;ste analiza el XMI que contiene toda la informaci&oacute;n     del esquema preconceptual que el usuario grafique. En la <a href="#f5"> figura 5</a> se ilustra la manera de recolectar la informaci&oacute;n de los nodos o conceptos contenidos en el XMI.</FONT></p>     <p ALIGN="CENTER"><FONT SIZE="2" FACE ="Verdana"><img src="/img/revistas/rium/v9n17/v9n17a14f5.jpg"><A NAME="f5"></A>    <BR> </FONT><FONT SIZE="2" FACE ="Verdana"><STRONG>Figura 5. </STRONG>Código       MOFScript para recolectar la información de los nodos contenidos en un       esquema preconceptual.<BR /> Fuente: elaboración propia.</FONT></p>     <p><FONT SIZE="2" FACE ="Verdana">Una vez almacenada la informaci&oacute;n de     los conceptos, se ejecuta el proceso para la generaci&oacute;n de c&oacute;digo     o de los diagramas UML que se requieran. Las reglas para obtener los diagramas     de clases y secuencias se basan en las que definen Zapata <i>et al</i>. &#91;4,     6&#93;, para los elementos b&aacute;sicos de estos diagramas y en las reglas     que se definen para incorporar los aspectos en dichos diagramas &#91;2&#93;.     Las reglas para la traducci&oacute;n a AspectJ y Java se generan a partir     de los trabajos previos &#91;3, 11&#93;. En la <A HREF="#f6">figura 6</A> se ilustra la forma de recorrer los &#8220;conceptos&#8221; almacenados y la manera de escribir los archivos correspondientes.</FONT></p>     <p ALIGN="CENTER"><FONT SIZE="2" FACE ="Verdana"><img src="/img/revistas/rium/v9n17/v9n17a14f6.jpg"><A NAME="f6"></A>    ]]></body>
<body><![CDATA[<BR> </FONT><FONT SIZE="2" FACE ="Verdana"><STRONG>Figura 6</STRONG>.       Código MOFScript para la generación de clases Java a partir de esquemas       preconceptuales<BR /> Fuente: elaboración propia.</FONT></p>     <p>&nbsp;</p>     <p><FONT SIZE="3" FACE="Verdana"><B>4. CASO DE ESTUDIO </B></FONT></p>     <p><FONT SIZE="2" FACE ="Verdana">Con el fin de ejemplificar las reglas definidas     en Zapata <i>et al</i>. &#91;2&#93;, se presenta un caso de estudio de una     pizzer&iacute;a, tomado de Arango y Zapata &#91;12&#93; y adaptado para este     art&iacute;culo: &#8220;Esta pizzer&iacute;a cuenta con un despachador, tres chefs     y siete repartidores que realizan las diferentes funciones necesarias para     la satisfacci&oacute;n de las necesidades de los clientes. El cliente llama     a la pizzer&iacute;a y realiza el pedido. Una vez se le toma el pedido, el     repartidor debe entregar el producto en m&aacute;ximo 30 minutos. Cuando     el cliente recibe la pizza, realiza el pago correspondiente. Luego, el repartidor     regresa a la pizzer&iacute;a y el despachador registra el pago. La pizzer&iacute;a     maneja un control sobre sus empleados, para ellos tiene todos los datos personales     de cada uno, como son: nombre, direcci&oacute;n, tel&eacute;fono y c&eacute;dula&#8221;.     La <A HREF="#f7">figura 7</A> representa el esquema preconceptual para este caso de estudio.</FONT></p>     <p ALIGN="CENTER"><FONT SIZE="2" FACE ="Verdana"><img src="/img/revistas/rium/v9n17/v9n17a14f7.jpg"><A NAME="f7"></A>    <BR> </FONT><FONT SIZE="2" FACE ="Verdana"><STRONG>Figura 7.</STRONG> Esquema       preconceptual para el caso de estudio<BR /> Fuente: elaboración propia.</FONT></p>     <p><FONT SIZE="2" FACE ="Verdana">En las <A HREF="#t1">tablas 1</A> y <A HREF="#t2">2</A> se muestra     la forma de aplicar las reglas definidas en Zapata <i>et al</i>. &#91;2&#93; para la identificaci&oacute;n de aspectos y su traducci&oacute;n a los diagramas UML, c&oacute;digo Java y AspectJ. N&oacute;tese que los diagramas y el c&oacute;digo resultante son consistentes entre s&iacute;; por ejemplo, en el diagrama de clases existe una clase llamada<I> &#8220;Persona&#8221;</I> con atributos: <I>nombre, direcci&oacute;n, tel&eacute;fono y c&eacute;dula.</I> Esta misma informaci&oacute;n se ve reflejada en el c&oacute;digo fuente. De esta manera, el analista no tiene que preocuparse por la consistencia y la trazabilidad entre los diferentes diagramas y el c&oacute;digo fuente.</FONT></p>     <p ALIGN="CENTER"><FONT SIZE="2" FACE ="Verdana"><STRONG>  Tabla 1.</STRONG> Esquema     preconceptual a diagrama de clases y secuencias<BR />     <img src="/img/revistas/rium/v9n17/v9n17a14t1.jpg"><A NAME="t1"></A>    <BR> Fuente: elaboración propia.</FONT></p>     <p ALIGN="CENTER">&nbsp;</p>     ]]></body>
<body><![CDATA[<p ALIGN="CENTER"><FONT SIZE="2" FACE ="Verdana"><B>Tabla 2. </B>Esquema     Preconceptual a código Java y AspectJ<BR />     <img src="/img/revistas/rium/v9n17/v9n17a14t2.jpg"><A NAME="t2"></A>    <BR> Fuente: elaboración propia.</FONT></p>      <p>&nbsp;</p>     <p><FONT SIZE="3" FACE="Verdana"><B>5. CONCLUSIONES </B></FONT></p>     <p><FONT SIZE="2" FACE ="Verdana">En este art&iacute;culo se present&oacute; una herramienta CASE elaborada en el entorno EMF, que emplea GMF y que permite graficar el esquema preconceptual de un dominio, generar autom&aacute;ticamente dos diagramas UML (clases y secuencias) que incluyen la representaci&oacute;n de aspectos y generar c&oacute;digo fuente en Java y AspectJ. Los principales aportes son:</FONT></p>     <p><FONT SIZE="2" FACE ="Verdana">&#8226; El interesado no necesita tener previo conocimiento de las reglas para obtener los diagramas UML y el c&oacute;digo en Java y AspectJ.    <BR> </FONT><FONT SIZE="2" FACE ="Verdana">&#8226; Se aumenta la participaci&oacute;n del interesado en el proceso del desarrollo de Software. De esta manera se tiene una validaci&oacute;n en fases tempranas del ciclo de vida de una aplicaci&oacute;n.    <BR> </FONT><FONT SIZE="2" FACE ="Verdana">&#8226; Se mantiene consistencia entre los diagramas resultantes.</FONT></p>     <p>&nbsp;</p>     <p><FONT SIZE="3" FACE="Verdana"><B>6. TRABAJO FUTURO </B></FONT></p>     ]]></body>
<body><![CDATA[<p><FONT SIZE="2" FACE ="Verdana">Las l&iacute;neas de futuro desarrollo que se pueden generar de este trabajo son:</FONT></p>     <p><FONT SIZE="2" FACE ="Verdana">&#8226; Lograr que el prototipo permita la edici&oacute;n de los diagramas UML resultantes.    <BR> </FONT><FONT SIZE="2" FACE ="Verdana">&#8226; Definir tipos de datos en las relaciones din&aacute;micas y estructurales para mayor completitud cuando se genere el c&oacute;digo.    <BR> </FONT><FONT SIZE="2" FACE ="Verdana">&#8226; Identificar reglas para la generaci&oacute;n autom&aacute;tica de casos de uso con aspectos.    <BR> </FONT><FONT SIZE="2" FACE ="Verdana">&#8226; Definir nuevas reglas en la generaci&oacute;n de aspectos para requisitos no funcionales.</FONT></p>     <p>&nbsp;</p>     <p><FONT SIZE="3" FACE="Verdana"><B>AGRADECIMIENTO </B></FONT></p>       <p><FONT SIZE="2" FACE="Verdana">Este trabajo se realiz&oacute; en el marco del proyecto de investigaci&oacute;n &#8220;Transformaci&oacute;n semiautom&aacute;tica de los esquemas conceptuales, generados en unc-diagramador, en prototipos funcionales&#8221;, financiado por la Vicerrector&iacute;a de Investigaci&oacute;n de la Universidad Nacional de Colombia. </FONT></p>      <p>&nbsp;</p>     <p><FONT SIZE="3" FACE="Verdana"><B>REFERENCIAS </B></FONT></p>     ]]></body>
<body><![CDATA[<!-- ref --><p><FONT SIZE="2" FACE ="Verdana">&#91;1&#93; M. Tabares <i>et al</i>., &#8220;La ingenier&iacute;a de requisitos orientada a aspectos: una experiencia de aplicaci&oacute;n en un sistema de ayuda en l&iacute;nea,&#8221; <I>Dyna,</I> vol. 74, no. 153, pp. 285-289, 2008.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000093&pid=S1692-3324201000020001400001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE ="Verdana">&#91;2&#93; C. Zapata <i>et al</i>., &#8220;Representaci&oacute;n de aspectos candidatos en esquemas preconceptuales,&#8221; <I>Revista Ingenier&iacute;as Universidad de Medell&iacute;n, </I>vol. 9, no. 16, pp. 123-131, 2010.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000094&pid=S1692-3324201000020001400002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE ="Verdana">&#91;3&#93; M. Basch, y A. S&aacute;nchez, &#8220;Inorporating aspects into the UML,&#8221; presentado a 3rd Workshop on Aspect-Oriented modeling with UML, Boston, 2003.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000095&pid=S1692-3324201000020001400003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE ="Verdana">&#91;4&#93; C. Zapata <i>et al</i>., &#8220;Pre-conceptual schema: a conceptual-graph-like knowledge representation for requierements elicitation,&#8221; <I>Lecture Notes in Computer Science,</I> vol. 4293, pp. 17-27, 2006.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000096&pid=S1692-3324201000020001400004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE ="Verdana">&#91;5&#93; C. Zapata, y D. Cardona, &#8220;Implementaci&oacute;n en C# de las reglas heur&iacute;sticas de conversi&oacute;n de esquemas preconceptuales a diagramas UML 2.0,&#8221; <I>Revista Facultad de Ingenier&iacute;a Universidad de Antioquia,</I> no. 44, pp. 119-136, 2008.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000097&pid=S1692-3324201000020001400005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE ="Verdana">&#91;6&#93; C. Zapata, y G. Garc&eacute;s, &#8220;Generaci&oacute;n del diagrama de secuencias de UML 2.1.1 desde esquemas preconceptuales,&#8221; <I>Revista EIA,</I> no. 10, pp. 89-103, 2008.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000098&pid=S1692-3324201000020001400006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE ="Verdana">&#91;7&#93; OMG. &#8220;Unified modeling language specification. Version 2.1.1,&#8221; septiembre 01, 2009; <A HREF="http://www.uml.org/" TARGET="_blank">http://www.omg.org/uml/</A>.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000099&pid=S1692-3324201000020001400007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE ="Verdana">&#91;8&#93; B. Moore <i>et al</i>., &#8220;Eclipse development using the Graphical Editing Framework and the Eclipse Modeling Framework,&#8221; IBM International Technical Support Organization, 2004.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000100&pid=S1692-3324201000020001400008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE ="Verdana">&#91;9&#93; ArgoUML. agosto 25, 2009; <A HREF="http://argouml.tigris.org/documentation/" TARGET="_blank">http://argouml.tigris.org/documentation</A>.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000101&pid=S1692-3324201000020001400009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE ="Verdana">&#91;10&#93; J. De Lara, y H. Vangheluwe, &#8220;AToM3: a tool for multi-formalism and meta-modeling,&#8221; presentado a Proceedings of the Fifth International Conference on fundamental approaches to software engineering, Londres, 2002, pp. 174-188.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000102&pid=S1692-3324201000020001400010&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE ="Verdana">&#91;11&#93; J. Bennet <i>et al</i>., &#8220;Aspect-oriented model-driven skeleton code generation: A graph-based transformation approach,&#8221; <I>Science of Computer Programming,</I> vol. 75, no. 8, pp. 689-725, 2009.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000103&pid=S1692-3324201000020001400011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE ="Verdana">&#91;12&#93; F. Arango, y C. Zapata, <I>Un m&eacute;todo para la elicitaci&oacute;n de requisitos de software,</I> Medell&iacute;n: Universidad Nacional de Colombia, 2006, pp. 113.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000104&pid=S1692-3324201000020001400012&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><p>&nbsp;</p>     <p><FONT SIZE="2" FACE ="Verdana">  <B>Recibido:</B> 09/02/2010.<B>     <BR> Aceptado:</B> 08/10/2010.  </FONT></p>      ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Tabares]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[La ingeniería de requisitos orientada a aspectos: una experiencia de aplicación en un sistema de ayuda en línea]]></article-title>
<source><![CDATA[Dyna]]></source>
<year>2008</year>
<volume>74</volume>
<numero>153</numero>
<issue>153</issue>
<page-range>285-289</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[Zapata]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[Representación de aspectos candidatos en esquemas preconceptuales]]></article-title>
<source><![CDATA[Revista Ingenierías Universidad de Medellín]]></source>
<year>2010</year>
<volume>9</volume>
<numero>16</numero>
<issue>16</issue>
<page-range>123-131</page-range></nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Basch]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Sánchez]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
</person-group>
<source><![CDATA[Inorporating aspects into the UML]]></source>
<year></year>
<conf-name><![CDATA[3 Workshop on Aspect-Oriented modeling with UML]]></conf-name>
<conf-date>2003</conf-date>
<conf-loc>Boston </conf-loc>
</nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Zapata]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Pre-conceptual schema: a conceptual-graph-like knowledge representation for requierements elicitation]]></article-title>
<source><![CDATA[Lecture Notes in Computer Science]]></source>
<year>2006</year>
<volume>4293</volume>
<page-range>17-27</page-range></nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Zapata]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
<name>
<surname><![CDATA[Cardona]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[Implementación en C# de las reglas heurísticas de conversión de esquemas preconceptuales a diagramas UML 2.0]]></article-title>
<source><![CDATA[Revista Facultad de Ingeniería Universidad de Antioquia]]></source>
<year>2008</year>
<numero>44</numero>
<issue>44</issue>
<page-range>119-136</page-range></nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Zapata]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
<name>
<surname><![CDATA[Garcés]]></surname>
<given-names><![CDATA[G.]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[Generación del diagrama de secuencias de UML 2.1.1 desde esquemas preconceptuales]]></article-title>
<source><![CDATA[Revista EIA]]></source>
<year>2008</year>
<numero>10</numero>
<issue>10</issue>
<page-range>89-103</page-range></nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="">
<collab>OMG</collab>
<source><![CDATA[Unified modeling language specification: Version 2.1.1]]></source>
<year>sept</year>
<month>ie</month>
<day>mb</day>
</nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Moore]]></surname>
<given-names><![CDATA[B.]]></given-names>
</name>
</person-group>
<source><![CDATA[Eclipse development using the Graphical Editing Framework and the Eclipse Modeling Framework]]></source>
<year>2004</year>
<publisher-name><![CDATA[IBM International Technical Support Organization]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="">
<source><![CDATA[ArgoUML]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="confpro">
<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>
<source><![CDATA[AToM3: a tool for multi-formalism and meta-modeling]]></source>
<year></year>
<conf-name><![CDATA[Fifth International Conference on fundamental approaches to software engineering]]></conf-name>
<conf-date>2002</conf-date>
<conf-loc>Londres </conf-loc>
<page-range>174-188</page-range></nlm-citation>
</ref>
<ref id="B11">
<label>11</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bennet]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Aspect-oriented model-driven skeleton code generation: A graph-based transformation approach]]></article-title>
<source><![CDATA[Science of Computer Programming]]></source>
<year></year>
<volume>75</volume>
<numero>8</numero>
<issue>8</issue>
<page-range>689-725</page-range></nlm-citation>
</ref>
<ref id="B12">
<label>12</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Arango]]></surname>
<given-names><![CDATA[F.]]></given-names>
</name>
<name>
<surname><![CDATA[Zapata]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
</person-group>
<source><![CDATA[Un método para la elicitación de requisitos de software]]></source>
<year>2006</year>
<publisher-loc><![CDATA[Medellín ]]></publisher-loc>
<publisher-name><![CDATA[Universidad Nacional de Colombia]]></publisher-name>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
