<?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-33242010000100011</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Representación de aspectos candidato en esquemas preconceptuales]]></article-title>
<article-title xml:lang="en"><![CDATA[Representing candidate aspects by means of pre-conceptual schemes]]></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[Orozco]]></surname>
<given-names><![CDATA[Gabriel Eduardo]]></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 Grupo de Investigación ARKADIUS]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<aff id="A03">
<institution><![CDATA[,Universidad Nacional  ]]></institution>
<addr-line><![CDATA[Medellín ]]></addr-line>
<country>Colombia</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>01</month>
<year>2010</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>01</month>
<year>2010</year>
</pub-date>
<volume>9</volume>
<numero>16</numero>
<fpage>123</fpage>
<lpage>131</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_arttext&amp;pid=S1692-33242010000100011&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-33242010000100011&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-33242010000100011&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="en"><p><![CDATA[Aspects have been gradually consolidating as a new software development paradigm. Although aspects are already common in programming, as aspect-oriented languages have shown, aspect evolution is currently going to the first phases of software development lifecycle. Some work has been devoted to natural-language-based aspect identification. However, translation from natural language to conceptual schemas still has problems. For this reason, we present, in this paper, a proposal for representing aspects in the so-called pre-conceptual schemes (PS), which are previous diagrams to conceptual scheme generation. PS representation is, then, translated into class and sequence diagram, two of the most representative UML diagrams. The overall environment is, finally, exemplified by means of a case study]]></p></abstract>
<kwd-group>
<kwd lng="en"><![CDATA[aspects]]></kwd>
<kwd lng="en"><![CDATA[software development lifecycle]]></kwd>
<kwd lng="en"><![CDATA[representation]]></kwd>
<kwd lng="en"><![CDATA[pre-conceptual schemas]]></kwd>
<kwd lng="en"><![CDATA[UML class and sequence diagrams]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p ALIGN="CENTER"><FONT SIZE="4" FACE="Verdana"><B>Representaci&oacute;n de aspectos    candidato en esquemas preconceptuales </B></FONT></p>     <p ALIGN="CENTER">&nbsp;</p>      <p ALIGN="CENTER"><B><FONT SIZE="3" FACE="Verdana">Representing candidate aspects    by means of pre-conceptual schemes </FONT></B></p>     <p ALIGN="CENTER">&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>; Gabriel Eduardo Orozco<sup>***</sup> </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> <sup>* </sup>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. Universidad    Nacional. E-mail: <a href="mailto:cmzapata@unal.edu.co">cmzapata@unal.edu.co</a>    </FONT>    <br>   <FONT SIZE="2" FACE="Verdana"><sup>** </sup>M. Sc. Ingenier&iacute;a de Sistemas,    docente de la Facultad de Ingenier&iacute;as, Universidad de Medell&iacute;n,    Grupo de Investigaci&oacute;n ARKADIUS. E-mail: <a href="mailto:ggonzalezc@udem.edu.co">ggonzalezc@udem.edu.co</a>    </FONT>    <br>   <FONT SIZE="2" FACE="Verdana"><sup>*** </sup>Estudiante de Maestr&iacute;a en    Ingenier&iacute;a de Sistemas. Universidad Nacional. Medell&iacute;n, Colombia.    E-mail: <a href="mailto:georozco@unalmed.edu.co">georozco@unalmed.edu.co</a>    </FONT></p>      <p>&nbsp;</p>     ]]></body>
<body><![CDATA[<p>&nbsp;</p> <hr size="1" noshade> <font size="2" face="Verdana"><B>Resumen</B></font>     <p><FONT SIZE="2" FACE="Verdana"> Los aspectos se vienen consolidando poco a poco    como un nuevo paradigma de desarrollo de <i>software.</i> Si bien ya son comunes    en programaci&oacute;n, donde existen lenguajes orientados a aspectos, su evoluci&oacute;n    se viene trasladando hacia las etapas iniciales del ciclo de vida del <i>software.</i>    Existen algunas iniciativas para la identificaci&oacute;n de aspectos desde    lenguaje natural, pero a&uacute;n presentan falencias en la manera de traducir    los aspectos desde lenguaje natural hasta los esquemas conceptuales. Por ello,    en este art&iacute;culo se presenta una propuesta para la representaci&oacute;n    de aspectos en los denominados esquemas preconceptuales, que son esquemas previos    a la elaboraci&oacute;n de esquemas conceptuales, para luego traducirlos en    dos de los diagramas m&aacute;s representativos de UML: clases y secuencias.    El entorno completo se ejemplifica luego mediante un caso de estudio.</FONT></p>     <p><FONT SIZE="2" FACE="Verdana"> <b>Palabras clave:</b> aspectos, ciclo de vida    del <i>software,</i> representaci&oacute;n, esquemas preconceptuales, diagramas    de clases y de secuencias de UML. </FONT></p> <hr size="1" noshade> <font size="2" face="Verdana"><B>Abstract</B></font>     <p><FONT SIZE="2" FACE="Verdana"> Aspects have been gradually consolidating as    a new software development paradigm. Although aspects are already common in    programming, as aspect-oriented languages have shown, aspect evolution is currently    going to the first phases of software development lifecycle. Some work has been    devoted to natural-language-based aspect identification. However, translation    from natural language to conceptual schemas still has problems. For this reason,    we present, in this paper, a proposal for representing aspects in the so-called    pre-conceptual schemes (PS), which are previous diagrams to conceptual scheme    generation. PS representation is, then, translated into class and sequence diagram,    two of the most representative UML diagrams. The overall environment is, finally,    exemplified by means of a case study.</FONT></p> <FONT SIZE="2" FACE="Verdana"> <b>Key words:</b> aspects, software development    lifecycle, representation, pre-conceptual schemas, UML class and sequence diagrams.    </FONT> <hr size="1" noshade>     <p>&nbsp;</p>     <p><FONT SIZE="3" FACE="Verdana"><B>INTRODUCCI&Oacute;N	</B></FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> Kiczales <i>et al.</i> &#91;1&#93; presentan los aspectos como un paradigma de programaci&oacute;n, diferente a la orientaci&oacute;n a objetos, que pretende solucionar los problemas del c&oacute;digo disperso y enmara&ntilde;ado. Este nuevo paradigma viene, desde entonces, progresando en paralelo con los dem&aacute;s paradigmas de desarrollo y consolid&aacute;ndose como una de las maneras de programaci&oacute;n de aplicaciones. </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> Los lenguajes de orientaci&oacute;n aspectual, tales como AspectJ&#153;, HyperJ&#153;, AspectC&#153; y AspectC<SUP>++</SUP>&#153;, ya se suelen utilizar regularmente en el proceso de desarrollo, de modo que es posible generar c&oacute;digo que opere con intereses transversales a las diferentes aplicaciones, representando, en ocasiones, requisitos no funcionales de las mismas &#91;2&#93;. El progreso en programaci&oacute;n aspectual se viene complementando con una creciente necesidad de encontrar equivalencias, en diferentes esquemas conceptuales de an&aacute;lisis y dise&ntilde;o, para el c&oacute;digo aspectual. As&iacute;, se presentan varias propuestas para la representaci&oacute;n de aspectos en diferentes diagramas, particularmente los pertenecientes al Lenguaje Unificado de Modelado (UML) &#91;3-6&#93;. En estos proyectos, sin embargo, es el dise&ntilde;ador del sistema quien se debe ingeniar la representaci&oacute;n de los aspectos y trazarla en el lenguaje gr&aacute;fico que utilice. </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> Una continuaci&oacute;n obligada de estas nuevas formas de representaci&oacute;n de aspectos en etapas tempranas del desarrollo la constituyen los trabajos que procuran la identificaci&oacute;n de los aspectos desde lenguajes naturales o controlados. Proyectos como <i>Theme </i>&#91;7&#93; y <i>Lexical Chain Viewer </i>&#91;8&#93; permiten identificar conceptos y relaciones que se podr&iacute;an considerar aspectos, pero se ocupan poco de su conversi&oacute;n a alguna de las propuestas de representaci&oacute;n de aspectos en esquemas conceptuales. </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> Los problemas antes descritos justifican la propuesta que se presenta en este art&iacute;culo para emplear los denominados esquemas preconceptuales (un tipo especial de diagramas que compendia las caracter&iacute;sticas estructurales, de comportamiento e interacci&oacute;n en un &uacute;nico diagrama), ampliar su sintaxis para dar cabida a nuevos elementos y traducirlos en dos de los diagramas m&aacute;s representativos de UML: clases y secuencias. </FONT></p>      ]]></body>
<body><![CDATA[<p><FONT SIZE="2" FACE="Verdana"> Este art&iacute;culo se estructura as&iacute;: en la secci&oacute;n 2 se expone el marco te&oacute;rico con los conceptos iniciales que permiten la comprensi&oacute;n de la propuesta; en la secci&oacute;n 3 se incluyen los antecedentes en representaci&oacute;n de aspectos desde las fases tempranas del ciclo de vida del <i>software;</i> en la secci&oacute;n 4 se propone la representaci&oacute;n mediante esquemas preconceptuales; en la secci&oacute;n 5 se presenta un caso de estudio; finalmente, en la secci&oacute;n 6 se concluye y se presentan l&iacute;neas de trabajo futuro. </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"><B>1.1 Aspectos </B></FONT></p>     <p><FONT SIZE="2" FACE="Verdana"> Losavio <i>et al.</i> &#91;9&#93; recopilan algunas de las definiciones m&aacute;s importantes que tienen que ver con los aspectos, de la siguiente manera: </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> <i>Crosscutting concern: </i>una funcionalidad o asunto de inter&eacute;s para el sistema que se encuentra dispersa en toda la aplicaci&oacute;n. </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> Aspecto: es la implementaci&oacute;n de un <i>crosscutting concern.</i> </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> <i>Join point:</i> es un punto de inter&eacute;s de una aplicaci&oacute;n en el cual se pueden componer (ligar elementos que se crearon separadamente) dos aspectos. </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> <i>Point cut:</i> es un predicado que permite identificar y seleccionar un conjunto de <i>join points.</i> </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"><B>1.2 Representaci&oacute;n de aspectos en diagramas    de clases y secuencias de UML </B></FONT></p>     ]]></body>
<body><![CDATA[<p><FONT SIZE="2" FACE="Verdana"> El <i>Unified Modeling Language </i>(UML), que    es el est&aacute;ndar <i>de facto </i>para el desarrollo de aplicaciones de    <i>software,</i> posee un lenguaje complementario denominado <i>Object Constraint    Language </i>(OCL) para expresar las restricciones de los diferentes diagramas.    Este lenguaje, sin embargo, no posee equivalencias con los lenguajes de orientaci&oacute;n    aspectual. Por ello, Tabares <i>et al.</i> &#91;6&#93; proponen una manera de    representar los aspectos en diagramas de UML, espec&iacute;ficamente en los    diagramas de clases y secuencias. En cuanto al primer diagrama, un aspecto candidato    se puede representar en t&eacute;rminos de una clase con el estereotipo &#60;&#60;<i>aspect</i>&#62;&#62;,    la cual posee una operaci&oacute;n estereotipada &#60;&#60;<i>point cut</i>&#62;&#62;,    tal como se muestra en la <a href="#f1">figura 1(a)</a>. En el caso del diagrama    de secuencias, un aspecto se asimila a una nota UML ligada con el(los) objeto(s)    que intervengan en la interacci&oacute;n. En la nota se detalla el aspecto a    que se refiere y el point cut respectivo, tal como se muestra en la <a href="#f1">figura    1(b)</a>. </FONT></p>      <p align="center"><img src="/img/revistas/rium/v9n16/v9n16a11f1.jpg"><a name="f1"></a></p>     <p><FONT SIZE="2" FACE="Verdana"><B>1.3 Esquemas preconceptuales	</B></FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> Zapata <i>et al.</i>&#91;10&#93; proponen una    forma de representaci&oacute;n del conocimiento mediante esquemas preconceptuales.    En estos esquemas se puede representar gr&aacute;ficamente un discurso expresado    en UN-Lencep (Universidad Nacional-Lenguaje controlado para la especificaci&oacute;n    de esquemas preconceptuales, que es un subconjunto del lenguaje natural que    los interesados entienden y pueden validar en las fases iniciales del desarrollo    de <i>software</i>) para luego traducirlo en diferentes diagramas. En la <a href="#f2">figura    2</a> se presentan los diferentes elementos que hacen parte de los esquemas    preconceptuales, que son: conceptos, que incluyen sustantivos y frases centradas    en sustantivos; relaciones estructurales, que son los verbos &#8220;es&#8221;    y &#8220;tiene&#8221;; relaciones din&aacute;micas, que coinciden con los verbos    de operaci&oacute;n; notas, que permiten especificar posibles valores de un    concepto; condicionales, que establecen restricciones que se deben cumplir para    poder realizar operaciones; conexiones, que unen relaciones (estructurales y    din&aacute;micas) con conceptos y viceversa; implicaciones, que constituyen    relaciones causa-efecto entre relaciones din&aacute;micas o entre condicionales    y relaciones din&aacute;micas. </FONT></p>      <p align="center"><img src="/img/revistas/rium/v9n16/v9n16a11f2.jpg"><a name="f2"></a></p>     <p align="center">&nbsp;</p>     <p><FONT SIZE="3" FACE="Verdana"><B>2 ANTECEDENTES	</B></FONT></p>      <p><FONT SIZE="2" FACE="Verdana"><B>2.1 Propuestas de representaci&oacute;n de    aspectos en UML </B></FONT></p>     <p><FONT SIZE="2" FACE="Verdana"> La propuesta de Tabares <i>et al.</i> &#91;6&#93;, discutida en la secci&oacute;n 2.2, no es la &uacute;nica que emplea UML y su mecanismo de extensibilidad para la representaci&oacute;n de aspectos. Por ejemplo, Anjum &#91;3&#93; propone una manera de modelar algunos requisitos no funcionales como aspectos en el diagrama de clases. Suzuki y Yamamoto &#91;4&#93; proponen un trabajo similar, que incluye los diagramas de clases y paquetes. Finalmente, Krechetov <i>et al.</i> &#91;5&#93; presentan una recopilaci&oacute;n de algunas de las principales representaciones de aspectos en UML para proponer una visi&oacute;n integrada en los diagramas de clases y de paquetes. Todos estos enfoques tienen en com&uacute;n el hecho de que el analista o dise&ntilde;ador, seg&uacute;n sea el caso, es quien debe capturar la informaci&oacute;n y elaborar el diagrama UML que represente los aspectos, sin que medie para ello ning&uacute;n recurso computacional. As&iacute;, la interpretaci&oacute;n de lo que se debe colocar como aspecto corre a cargo del analista o dise&ntilde;ador, sin que pueda haber validaci&oacute;n de parte del interesado. </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"><B>2.2 Aspectos candidato desde lenguaje natural	   </B></FONT></p>     ]]></body>
<body><![CDATA[<p><FONT SIZE="2" FACE="Verdana"> En busca de ayudas para la identificaci&oacute;n de aspectos desde lenguaje natural o controlado, algunos proyectos pretenden detectar ciertos patrones en el lenguaje para establecer qu&eacute; se podr&iacute;a definir como &#8220;aspecto candidato&#8221;. En esta l&iacute;nea de trabajo, el proyecto <i>Theme </i>&#91;7&#93; es uno de los m&aacute;s completos, pues permite establecer, a partir de un documento de requisitos, algunos verbos que se podr&iacute;an considerar aspectos candidato, para luego intentar una representaci&oacute;n en alg&uacute;n lenguaje gr&aacute;fico de desarrollo de <i>software.</i> En esta misma l&iacute;nea, el <i>Lexical Chain Viewer </i>&#91;8&#93; posee un entorno que &uacute;nicamente identifica los aspectos candidato pero no sugiere su forma de representaci&oacute;n. En ambos casos, el documento de partida corresponde a los requisitos identificados para la potencial aplicaci&oacute;n de <i>software.</i> Este documento, sin embargo, es el resultado concreto de un largo proceso de captura de requisitos, por lo cual se ubica mucho m&aacute;s adelante en el ciclo de vida del <i>software</i> que las descripciones iniciales que realizan los interesados. Adem&aacute;s, el hecho de no apuntar a una representaci&oacute;n concreta aleja estos procesos de identificaci&oacute;n de la codificaci&oacute;n de la aplicaci&oacute;n de <i>software,</i> algo que ya los trabajos iniciales en programaci&oacute;n orientada a aspectos estructuraban en sus lenguajes. </FONT></p>      <p>&nbsp;</p>     <p><FONT SIZE="3" FACE="Verdana"><B>3 PROPUESTA PARA LA REPRESENTACI&Oacute;N DE ASPECTOS CANDIDATO EN ESQUEMAS PRECONCEPTUALES	</B></FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> La secci&oacute;n 3 muestra una problem&aacute;tica de la realidad a la que se enfrentan los trabajos orientados a aspectos en la actualidad, que se puede sintetizar de la siguiente manera: </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> Cuando se parte de documentos de requisitos se desperdicia informaci&oacute;n valiosa que puede entregar el interesado en las entrevistas de captura de requisitos. Adem&aacute;s, no se cuenta, generalmente, con elementos de enlace para una representaci&oacute;n en lenguajes de dise&ntilde;o. </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> Cuando se parte de lenguajes gr&aacute;ficos de representaci&oacute;n, como el UML, la responsabilidad sobre la definici&oacute;n de los aspectos recae directamente sobre el analista o el dise&ntilde;ador, puesto que el interesado no entiende lo suficiente esos lenguajes de modelado y sus extensiones como para validar los resultados. </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> Cuando se parte de lenguajes de programaci&oacute;n orientada a aspectos, la responsabilidad es del programador y cualquier error detectado en esta etapa podr&iacute;a tener repercusiones desastrosas en los tiempos de entrega o la calidad de la aplicaci&oacute;n de <i>software.</i> </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> As&iacute;, se requiere una soluci&oacute;n que parta de una representaci&oacute;n del discurso del interesado en lugar de un documento de requisitos. Se requiere, adem&aacute;s, que los interesados puedan entender y validar esa representaci&oacute;n del discurso, de modo que se puedan detectar errores desde fases muy tempranas del desarrollo. Finalmente, se requiere que esa representaci&oacute;n se pueda traducir autom&aacute;ticamente a un lenguaje de modelado, con el fin de continuar con el proceso de elaboraci&oacute;n de la aplicaci&oacute;n de <i>software.</i> </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> La soluci&oacute;n que se propone en este art&iacute;culo integra esos elementos requeridos de la siguiente manera: </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> El punto de partida es una representaci&oacute;n del discurso en esquemas preconceptuales &#91;10&#93;, que los interesados pueden entender y validar. </FONT></p>      ]]></body>
<body><![CDATA[<p><FONT SIZE="2" FACE="Verdana"> El mecanismo de traducci&oacute;n se basa en reglas heur&iacute;sticas de transformaci&oacute;n hacia la representaci&oacute;n en UML planteada por Tabares <i>et al.</i> &#91;6&#93;. De esta manera, se garantiza la trazabilidad hacia etapas posteriores del desarrollo de la aplicaci&oacute;n y se pueden evitar errores de transformaci&oacute;n de la informaci&oacute;n en esas etapas. </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> Para realizar la representaci&oacute;n de aspectos    en esquemas preconceptuales, en este art&iacute;culo se propone un elemento    adicional que no estaba presente hasta ahora en la definici&oacute;n de dichos    esquemas. Este elemento, que se denomina &#8220;marco&#8221;, se puede apreciar    en la <a href="#f3">figura 3(a)</a>. Los marcos se requieren para agrupar diferentes    elementos de los esquemas preconceptuales o, incluso, para guardar esquemas    preconceptuales completos en su interior. Adem&aacute;s, es necesario modificar    el uso de las notas, con el fin de que se puedan unir a los marcos, y modificar    levemente su sintaxis, para permitir la representaci&oacute;n de restricciones    en las notas. Para ello se utilizan los s&iacute;mbolos &#8220;&#123;&#8221;    y &#8220;&#125&#8221; en las notas, para representar que el contenido entre    llaves se trata de una restricci&oacute;n, como se muestra en la <a href="#f3">figura    3(b)</a>. Con estos nuevos elementos definidos se pueden definir las reglas    que permitir&aacute;n la traducci&oacute;n a UML. </FONT></p>     <p align="center"><img src="/img/revistas/rium/v9n16/v9n16a11f3.jpg"><a name="f3"></a></p>     <p><FONT SIZE="2" FACE="Verdana"> Los aspectos son comportamientos transversales a una aplicaci&oacute;n de <i>software</i> y pueden provenir de requisitos funcionales y no funcionales. En relaci&oacute;n con los requisitos funcionales, que son aquellos que se ligan con los procesos de la organizaci&oacute;n, la regla de transformaci&oacute;n se define as&iacute;: las relaciones din&aacute;micas del esquema preconceptual que posean el mismo nombre se pueden agrupar bajo un mismo aspecto, generando en el diagrama de clases una clase con el estereotipo &#60;&#60;Aspect&#62;&#62;, cuyo nombre es el mismo de la relaci&oacute;n din&aacute;mica, y con una operaci&oacute;n estereotipada &#60;&#60;Point Cut&#62;&#62; con el mismo nombre; adem&aacute;s, se generan asociaciones estereotipadas &#60;&#60;crosscut&#62;&#62; con cada una de las clases que posean la operaci&oacute;n con el nombre de la relaci&oacute;n din&aacute;mica; finalmente, se genera una nota UML en el diagrama de secuencias, con el mismo contenido de la clase y con un v&iacute;nculo estereotipado &#60;&#60;crosscut&#62;&#62; con cada una de las apariciones del mensaje con el nombre de la relaci&oacute;n din&aacute;mica. Las relaciones din&aacute;micas que no se repiten se convierten en operaciones del diagrama de clases y mensajes del diagrama de secuencias, tal como se presenta en Zapata <i>et al.</i> &#91;10&#93;, pero no se generan los elementos ligados con los aspectos. </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> Para los requisitos no funcionales, ligados con caracter&iacute;sticas de calidad como el rendimiento y la seguridad, la regla de transformaci&oacute;n se define as&iacute;: La restricci&oacute;n ligada con un marco en el esquema preconceptual genera, en el diagrama de clases, una clase con el estereotipo &#60;&#60;Aspect&#62;&#62;, con el nombre de la primera relaci&oacute;n din&aacute;mica del marco, y una operaci&oacute;n estereotipada &#60;&#60;Point cut&#62;&#62;, con ese mismo nombre; adem&aacute;s, genera una nota UML ligada con la clase anterior que incluye el texto de la restricci&oacute;n del esquema preconceptual y asociaciones estereotipadas &#60;&#60;crosscut&#62;&#62; (entre la clase &#60;&#60;Aspect&#62;&#62; y las clases que se producen a partir de conceptos de llegada de las relaciones din&aacute;micas incluidas en el marco); finalmente, se genera una nota UML en el diagrama de secuencias, con el mismo contenido de la clase &#60;&#60;Aspect&#62;&#62; (incluyendo el contenido de la restricci&oacute;n) y con un v&iacute;nculo estereotipado &#60;&#60;crosscut&#62;&#62; con cada uno de los mensajes, que poseen el nombre de las relaciones din&aacute;micas incluidas en el marco. La clase &#60;&#60;Aspect&#62;&#62; y la nota UML generadas ser&aacute;n &uacute;nicas, as&iacute; la restricci&oacute;n se ligue con varios marcos a la vez. </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"> En una compa&ntilde;&iacute;a, el interesado revel&oacute; durante la entrevista alguna informaci&oacute;n b&aacute;sica para la construcci&oacute;n de una aplicaci&oacute;n de n&oacute;mina. La informaci&oacute;n fue la siguiente: la asistente de personal es la persona encargada de liquidar la n&oacute;mina de la compa&ntilde;&iacute;a; este proceso no deber&iacute;a tardar m&aacute;s de 15 minutos en total; el jefe de producci&oacute;n debe reportar las novedades en la planta, mientras que el jefe de personal reporta las cuotas que el trabajador paga para reducir el saldo de los pr&eacute;stamos y registra al trabajador. </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> Por efectos de espacio se omiti&oacute; una mayor cantidad de informaci&oacute;n del esquema preconceptual, con el fin de enfocar el problema en lo relevante para la representaci&oacute;n de aspectos. Esta informaci&oacute;n en UN-Lencep tiene la siguiente apariencia: asistente de personal liquida n&oacute;mina, jefe de producci&oacute;n reporta novedad, jefe de personal reporta cuota; pr&eacute;stamo tiene cuota y saldo, trabajador tiene pr&eacute;stamo, n&oacute;mina y novedad. </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> Por ser elementos nuevos, la informaci&oacute;n    ligada con los marcos y las restricciones todav&iacute;a no posee equivalencias    en UN-Lencep. A modo de propuesta, podr&iacute;a ser algo como: la restricci&oacute;n    &#8220;tiempo liquidaci&oacute;n &#60; 15 minutos&#8221; afecta el proceso &#8220;asistente    de personal liquida n&oacute;mina&#8221;. As&iacute;, el proceso que la restricci&oacute;n    afecta es el que debe aparecer dentro del marco en el esquema preconceptual.    La <a href="#f4">figura 4</a> muestra el esquema preconceptual resultante de    este discurso en UN-Lencep. Las figuras 5 y 6 muestran el diagrama de clases    y el diagrama de secuencias resultantes del esquema preconceptual de la <a href="#f4">figura    4</a>. </FONT></p>      ]]></body>
<body><![CDATA[<p align="center"><img src="/img/revistas/rium/v9n16/v9n16a11f4.jpg"><a name="f4"></a></p>     <p align="center">&nbsp;</p>     <p><FONT SIZE="3" FACE="Verdana"><B>5 CONCLUSIONES Y TRABAJO FUTURO	 </B></FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> En este art&iacute;culo se propuso una manera de representar, en esquemas preconceptuales, la informaci&oacute;n del dominio que puede derivar aspectos para el desarrollo de <i>software.</i> Para elaborar esta propuesta fue necesario crear un elemento nuevo para los esquemas preconceptuales (el marco) y modificar la sintaxis del elemento nota para que pudiera aceptar restricciones. Las reglas de transformaci&oacute;n que poseen los esquemas preconceptuales hacia los diagramas de UML garantizan la consistencia de los diferentes diagramas. Adem&aacute;s, las reglas definidas para la transformaci&oacute;n de la informaci&oacute;n aspectual desde esquemas preconceptuales hasta UML permiten seguir manejando adecuadamente la consistencia y se constituyen en una herramienta de trazabilidad, que permita ubicar la informaci&oacute;n en los diferentes diagramas que se generan. </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> Como l&iacute;neas de trabajo futuro, se cuenta con las siguientes: </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> Explotar a&uacute;n m&aacute;s los mecanismos de extensibilidad de UML para lograr representaciones m&aacute;s cercanas al c&oacute;digo. En este sentido, es importante involucrar los conceptos de MDA <i>(Model-driven Architecture)</i> para lograr transformaciones que se vayan acercando paulatinamente al c&oacute;digo fuente. </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> Determinar las reglas heur&iacute;sticas de transformaci&oacute;n a otros diagramas de UML que permitan el dise&ntilde;o de la aplicaci&oacute;n. Diagramas como despliegue, componentes, paquetes y estructura compuesta, que son los que revelan la estructura del dise&ntilde;o y se encuentran cercanos a la codificaci&oacute;n deber&iacute;an ser los primeros en estudio. </FONT></p>      <p><FONT SIZE="2" FACE="Verdana"> Definir una posible transformaci&oacute;n desde UN-Lencep hasta c&oacute;digo fuente escrito en lenguajes de orientaci&oacute;n aspectual, como AspectJ e HyperJ. </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"> 1. G. Kiczales <i>et al.</i>, &#8220;Aspect-Oriented    Programming,&#8221; en Proceedings of the European Conference on Object-Oriented    Programming (ECOOP), Finlandia, 1997, pp. 220-242. </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=000073&pid=S1692-3324201000010001100001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE="Verdana"> 2. L. Chung <i>et al., Non-Funcional Requirements    in software Engineering,</i> Dordrecht: Kluwer Academic Publisher, 2000, 476    p. </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=000074&pid=S1692-3324201000010001100002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE="Verdana"> 3. S. Anjum, &#8220;Incorporating Non-Functional    requirements with UML Models,&#8221; University of Waterloo, Waterloo, Canad&aacute;,    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=000075&pid=S1692-3324201000010001100003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE="Verdana"> 4. J. Suzuki, y Y. Yamamoto, &#8220;Extending    UML with Aspects: aspect support in the design phase,&#8221; en Lecture Notes    Computer Science: Proceedings of the Workshop on Object-Oriented Technology,    1999, pp. 299-300. </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=000076&pid=S1692-3324201000010001100004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE="Verdana"> 5. I. Krechetov <i>et al.</i>, &#8220;Towards    Integrated Aspect-Oriented Modeling Approach for Software Architecture Design.&#8221;    </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=000077&pid=S1692-3324201000010001100005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE="Verdana"> 6. M. Tabares <i>et al.</i>, &#8220;El desarrollo    de software orientado a aspectos: un caso pr&aacute;ctico para un sistema de    ayuda en l&iacute;nea,&#8221;<i> Avances en Sistemas e Informatica,</i> vol.    5, no. 2, pp. 61-68, 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=000078&pid=S1692-3324201000010001100006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE="Verdana"> 7. E. Baniassad, y S. Clark, &#8220;Theme: An    Approach for Aspect-Oriented Analysis and Design.&#8221; </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=000079&pid=S1692-3324201000010001100007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE="Verdana"> 8. D. Sheperd <i>et al.</i>, &#8220;Using Language    Clues to discover Crosscutting Concerns.&#8221; </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=000080&pid=S1692-3324201000010001100008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE="Verdana"> 9. F. Losavio <i>et al.</i>, &#8220;UML Extensions    for Aspect Oriented Software Development,&#8221; <i>Journal of Object Technology,</i>    vol. 8, no. 5, pp. 105-132, 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=000081&pid=S1692-3324201000010001100009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE="Verdana"> 10. C. Zapata <i>et al.</i>, &#8220;Pre-conceptual    Schema: A Conceptual-Graph-Like Knowledge Representation for Requirements Elicitation,&#8221;    en <i>Advances in Artificial Intelligence,</i> Berlin: Springer Berlin/Heidelberg,    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=000082&pid=S1692-3324201000010001100010&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> 29/09/2009     ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kiczales]]></surname>
<given-names><![CDATA[G.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Aspect-Oriented Programming]]></article-title>
<source><![CDATA[Proceedings]]></source>
<year></year>
<conf-name><![CDATA[ the European Conference on Object-Oriented Programming (ECOOP)]]></conf-name>
<conf-date>1997</conf-date>
<conf-loc>Finlandia </conf-loc>
<page-range>220-242</page-range></nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Chung]]></surname>
<given-names><![CDATA[L.]]></given-names>
</name>
</person-group>
<source><![CDATA[Non-Funcional Requirements in software Engineering]]></source>
<year>2000</year>
<publisher-loc><![CDATA[Dordrecht ]]></publisher-loc>
<publisher-name><![CDATA[Kluwer Academic Publisher]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Anjum]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
</person-group>
<source><![CDATA[Incorporating Non-Functional requirements with UML Models]]></source>
<year>2006</year>
<publisher-loc><![CDATA[^eWaterloo Waterloo]]></publisher-loc>
<publisher-name><![CDATA[University of Waterloo]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Suzuki]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Yamamoto]]></surname>
<given-names><![CDATA[Y.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Extending UML with Aspects: aspect support in the design phase]]></article-title>
<source><![CDATA[Lecture Notes Computer Science: Proceedings of the Workshop on Object-Oriented Technology]]></source>
<year>1999</year>
<page-range>299-300</page-range></nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Krechetov]]></surname>
<given-names><![CDATA[I.]]></given-names>
</name>
</person-group>
<source><![CDATA[Towards Integrated Aspect-Oriented Modeling Approach for Software Architecture Design]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B6">
<label>6</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[El desarrollo de software orientado a aspectos: un caso práctico para un sistema de ayuda en líne]]></article-title>
<source><![CDATA[Avances en Sistemas e Informatica]]></source>
<year>2008</year>
<volume>5</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>61-68</page-range></nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Baniassad]]></surname>
<given-names><![CDATA[E.]]></given-names>
</name>
<name>
<surname><![CDATA[Clark]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
</person-group>
<source><![CDATA[Theme: An Approach for Aspect-Oriented Analysis and Design]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Sheperd]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
</person-group>
<source><![CDATA[Using Language Clues to discover Crosscutting Concerns]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Losavio]]></surname>
<given-names><![CDATA[F.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[UML Extensions for Aspect Oriented Software Development]]></article-title>
<source><![CDATA[Journal of Object Technology]]></source>
<year>2009</year>
<volume>8</volume>
<numero>5</numero>
<issue>5</issue>
<page-range>105-132</page-range></nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="book">
<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 Requirements Elicitation]]></article-title>
<source><![CDATA[Advances in Artificial Intelligence]]></source>
<year>2006</year>
<publisher-loc><![CDATA[Berlin ]]></publisher-loc>
<publisher-name><![CDATA[Springer Berlin/Heidelberg]]></publisher-name>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
