<?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>1794-1237</journal-id>
<journal-title><![CDATA[Revista EIA]]></journal-title>
<abbrev-journal-title><![CDATA[Revista EIA]]></abbrev-journal-title>
<issn>1794-1237</issn>
<publisher>
<publisher-name><![CDATA[Escuela de ingenieria de Antioquia]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S1794-12372008000200008</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[GENERACIÓN DEL DIAGRAMA DE SECUENCIAS DE UML 2.1.1 DESDE ESQUEMAS PRECONCEPTUALES]]></article-title>
<article-title xml:lang="en"><![CDATA[GENERATION OF UML 2.1.1 SEQUENCE DIAGRAM FROM PRE-CONCEPTUAL SCHEMES]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Zapata]]></surname>
<given-names><![CDATA[Carlos Mario]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Garcés]]></surname>
<given-names><![CDATA[Gilma Liliana]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad Nacional de Colombia Grupo de Investigacón en Lenguajes Computacionales ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<aff id="A02">
<institution><![CDATA[,Universidad Nacional de Colombia Grupo de Investigacón en Lenguajes Computacionales ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>12</month>
<year>2008</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>12</month>
<year>2008</year>
</pub-date>
<numero>10</numero>
<fpage>89</fpage>
<lpage>103</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_arttext&amp;pid=S1794-12372008000200008&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_abstract&amp;pid=S1794-12372008000200008&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_pdf&amp;pid=S1794-12372008000200008&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[El diagrama de secuencias es un esquema conceptual que permite representar el comportamiento de un sistema, para lo cual emplea la especificación de los objetos que se encuentran en un escenario y la secuencia de mensajes intercambiados entre ellos, con el fin de llevar a cabo una transacción del sistema. Existen diferentes enfoques que buscan la generación automática de modelos conceptuales, como el diagrama de secuencias. Algunos trabajos parten del lenguaje natural, pero generan diagramas diferentes al de secuencias o, si lo hacen igual, dejan de lado elementos como los fragmentos combinados, que describen ciertas condiciones lógicas en el sistema. Otros trabajos parten del código fuente, el cual se suele ubicar en una fase más avanzada del ciclo de vida del software. En este artículo se define un método, basado en reglas heurísticas, que permite identificar los elementos del diagrama de secuencias, incluyendo los fragmentos combinados, tomando como punto de partida los esquemas preconceptuales. Se realiza la implementación de las reglas en la herramienta AToM³ aplicándolas a un caso de estudio.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[Sequence diagram is a conceptual schema for representing behavior of a system. For performing such a task, it employs the object spec from a scenario and the sequence of messages exchanged among the objects. These elements describe a transaction of the system. Several approaches try the automated generation of conceptual models (like sequence diagram). Some of them use natural language as a starting point, but they are focused on other diagrams. Some others are focused on sequence diagram, but they do not obtain elements like combined fragments describing several logical constraints of the system. Other approaches use source code as a starting point, but source code can be related to an advanced phase of the software development life cycle. In this paper we define a method based on heuristic rules for obtaining automatically the elements of the sequence diagram (including combined fragments) from pre-conceptual schemas. These heuristic rules are implemented in the AToM³ tool and applied in a case study.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[modelo conceptual]]></kwd>
<kwd lng="es"><![CDATA[diagrama de secuencias]]></kwd>
<kwd lng="es"><![CDATA[fragmento combinado]]></kwd>
<kwd lng="es"><![CDATA[esquema preconceptual]]></kwd>
<kwd lng="es"><![CDATA[AToM³]]></kwd>
<kwd lng="en"><![CDATA[conceptual model]]></kwd>
<kwd lng="en"><![CDATA[sequence diagram]]></kwd>
<kwd lng="en"><![CDATA[combined fragment]]></kwd>
<kwd lng="en"><![CDATA[pre-conceptual schema]]></kwd>
<kwd lng="en"><![CDATA[AToM³]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[  <font face="Verdana" size="2">     <p align="center"><b><font size="4">GENERACI&Oacute;N </font><font size="4"> DEL DIAGRAMA DE SECUENCIAS   DE  UML 2.1.1 DESDE  ESQUEMAS PRECONCEPTUALES</font></b></p>     <p align="center"><b><font size="3">GENERATION OF  UML 2.1.1 SEQUENCE DIAGRAM FROM PRE-CONCEPTUAL SCHEMES</font></b></p> </font>    <p><font size="2" face="Verdana"><b>Carlos Mario Zapata*,  Gilma Liliana Garc&eacute;s**</b></font></p>  <font face="Verdana" size="2">    <p>* Ingeniero Civil, Especialista en Gerencia de Sistemas Inform&aacute;ticos, Mag&iacute;ster en Ingenier&iacute;a de Sistemas y Doctor en    Ingenier&iacute;a con &eacute;nfasis en Sistemas, Universidad Nacional de Colombia. Profesor Asociado, Universidad Nacional de    Colombia, Sede Medell&iacute;n. L&iacute;der del Grupo de Investigaci&oacute;n en Lenguajes Computacionales.<a href="mailto:cmzapata@unal.edu.co">cmzapata@unal.edu.co</a></p>      <p>** Ingeniera de Sistemas e Inform&aacute;tica. Mag&iacute;ster en Ingenier&iacute;a de Sistemas. Asistente de Investigaci&oacute;n del Grupo de  Investigaci&oacute;n en Lenguajes Computacionales, Universidad Nacional de Colombia.<a href="mailto:glgarces@unalmed.edu.co">glgarces@unalmed.edu.co</a></p>      <p>Art&iacute;culo recibido 29-IX-2008. Aprobado 17-XII-2008<br />  Discusi&oacute;n abierta hasta junio de 2009</p>  <hr />       <p><font size="3" face="Verdana"><b>RESUMEN</b></font></p>     <p>El diagrama de secuencias es un esquema conceptual que permite representar el comportamiento de un   sistema, para lo cual emplea la especificaci&oacute;n de los objetos que se encuentran en un escenario y la secuencia   de mensajes intercambiados entre ellos, con el fin de llevar a cabo una transacci&oacute;n del sistema. Existen diferentes   enfoques que buscan la generaci&oacute;n autom&aacute;tica de modelos conceptuales, como el diagrama de secuencias.   Algunos trabajos parten del lenguaje natural, pero generan diagramas diferentes al de secuencias o, si lo hacen   igual, dejan de lado elementos como los fragmentos combinados, que describen ciertas condiciones l&oacute;gicas en   el sistema. Otros trabajos parten del c&oacute;digo fuente, el cual se suele ubicar en una fase m&aacute;s avanzada del ciclo de   vida del software. En este art&iacute;culo se define un m&eacute;todo, basado en reglas heur&iacute;sticas, que permite identificar los   elementos del diagrama de secuencias, incluyendo los fragmentos combinados, tomando como punto de partida   los esquemas preconceptuales. Se realiza la implementaci&oacute;n de las reglas en la herramienta AToM<sup>3</sup> aplic&aacute;ndolas a un caso de estudio.</p>     <p><font size="2" face="Verdana"><b><font size="3">PALABRAS CLAVE:</font></b> modelo conceptual; diagrama de secuencias; fragmento combinado; esquema preconceptual, AToM<sup>3</sup>.</p> <hr />     ]]></body>
<body><![CDATA[<p><font size="3" face="Verdana"><b>ABSTRACT</b></font></p>     <p>Sequence diagram is a conceptual schema for representing behavior of a system. For performing such a   task, it employs the object spec from a scenario and the sequence of messages exchanged among the objects. These elements describe a transaction of the system. Several approaches try the automated generation of conceptual models (like sequence diagram). Some of them use natural language as a starting point, but they are focused on other diagrams. Some others are focused on sequence diagram, but they do not obtain elements like combined fragments describing several logical constraints of the system. Other approaches use source code as a starting point, but source code can be related to an advanced phase of the software development life cycle. In this paper we define a method based on heuristic rules for obtaining automatically the elements of the sequence diagram (including combined fragments) from pre-conceptual schemas. These heuristic rules are implemented in the AToM<sup>3</sup> tool and applied in a case study.</p>     <p><font size="3" face="Verdana"><b>KEY WORDS:</b></font> conceptual model; sequence diagram; combined fragment; pre-conceptual schema; AToM<sup>3</sup>.</p> <hr />     <p><font size="3" face="Verdana"><b>1. INTRODUCCION</b></font></p>    <p>En un proceso de desarrollo de software,   una de las tareas m&aacute;s relevantes para el &eacute;xito de un   proyecto de dise&ntilde;o e implementaci&oacute;n de un sistema   inform&aacute;tico es garantizar, de una forma apropiada,   la representaci&oacute;n y el modelado de los requisitos   de usuario. El planteamiento de objetivos confusos,   los tiempos de entrega tard&iacute;os y las especificaciones   y requisitos incompletos (Zapata y Arango, 2005)   apuntan a que se debe enfatizar en el desarrollo   de la fase de requisitos, de forma tal que el sistema   obtenido satisfaga las necesidades del interesado.   Durante la fase de an&aacute;lisis, espec&iacute;ficamente, los modelos   din&aacute;micos adquieren mayor importancia. Estos   se utilizan para especificar patrones de interacci&oacute;n   entre objetos o instancias de clases (D&iacute;az <i>et al</i>., 2005)   y describen la secuencia ordenada de los mensajes   que env&iacute;an y reciben las instancias durante la ejecuci&oacute;n   del escenario de un caso de uso (que se define   como una descripci&oacute;n parcial del comportamiento   de un sistema en una transacci&oacute;n particular). Para   la representaci&oacute;n de dichos patrones, la bibliograf&iacute;a   propone, entre otros, los diagramas de secuencias y de comunicaci&oacute;n (OMG, 2007). </p>    <p>El diagrama de secuencias, que se define en   UML (<i>Unified Modeling Language</i>), es uno de los m&aacute;s   utilizados para identificar el comportamiento de un   sistema (Pressman, 2005), por representar los objetos   que se encuentran en el escenario y la secuencia de   mensajes intercambiados entre los objetos para llevar a cabo la funcionalidad descrita por una transacci&oacute;n  del sistema. Adem&aacute;s, se utiliza con frecuencia para validar los casos de uso y apreciar la l&oacute;gica del dise&ntilde;o de forma din&aacute;mica (Ambler, 2005; Fowler y Scott, 1997 y 2003). </p>    <p>Existen diversos proyectos y herramientas   que buscan facilitar la extracci&oacute;n de la informaci&oacute;n   necesaria para la generaci&oacute;n autom&aacute;tica de esquemas   conceptuales (incluyendo el diagrama de   secuencias), con el fin de agilizar el desarrollo de   las aplicaciones de software. Los diferentes enfoques   se pueden clasificar en dos puntos de partida: especificaciones   textuales en lenguaje natural y c&oacute;digo   fuente. Estos proyectos y herramientas, sin embargo, a&uacute;n presentan algunas fallas por mejorar: </p>    <p>- Algunos se enfocan en diagramas diferentes al   de secuencias, lo cual deja de lado las particularidades   de ciertas restricciones del sistema que s&oacute;lo se pueden representar en dicho diagrama. </p>    <p>- Los que se enfocan en el diagrama de secuencias   s&oacute;lo obtienen los elementos b&aacute;sicos, dejando   de lado importantes elementos que permiten   expresar condiciones especiales y apreciar   la l&oacute;gica del dise&ntilde;o de forma din&aacute;mica (como es el caso de los fragmentos combinados). </p>    <p>- Los que parten del c&oacute;digo fuente se convierten   en herramientas interesantes para revisar   el diagrama de secuencias a posteriori, es decir,   en una fase m&aacute;s avanzada del ciclo de vida   del software, y como tales permiten la realizaci&oacute;n   de ingenier&iacute;a inversa. Sin embargo, si se   pretende agilizar el desarrollo de software es preferible identificar el diagrama de secuencias desde las fases iniciales del desarrollo y no esperar a la implementaci&oacute;n del c&oacute;digo fuente para su obtenci&oacute;n. </p>    ]]></body>
<body><![CDATA[<p>En este art&iacute;culo se parte de una representaci&oacute;n   gr&aacute;fica de las especificaciones textuales de un sistema,   mediante los denominados esquemas preconceptuales   (Zapata, Gelbukh y Arango, 2006a; Zapata, 2007)   y, mediante la definici&oacute;n de un conjunto de reglas   heur&iacute;sticas, se pretende la obtenci&oacute;n de los elementos   del diagrama de secuencias, incluyendo los fragmentos   combinados. El m&eacute;todo as&iacute; definido se implementa   en la herramienta AToM<sup>3</sup> (<i>A Tool for Multi-Formalism   Modeling and Meta-Modeling</i>) y se ejemplifica mediante   un caso de estudio cuyo enunciado proviene de la literatura especializada en el tema. </p>    <p>Para lograr este objetivo, en la secci&oacute;n 2 se   presenta el cuerpo te&oacute;rico necesario para este desarrollo,   que incluye una descripci&oacute;n de los principales   elementos que componen un diagrama de secuencias   seg&uacute;n el est&aacute;ndar UML 2.1.1, adem&aacute;s de los   esquemas preconceptuales y la herramienta AToM<sup>3</sup>;   en la secci&oacute;n 3, se presentan algunas propuestas en   torno a la generaci&oacute;n autom&aacute;tica del diagrama de   secuencias y otros esquemas conceptuales, resaltando   sus principales aportes y desventajas; en la   secci&oacute;n 4, se presentan las reglas de conversi&oacute;n entre   el esquema preconceptual y algunos elementos del   diagrama de secuencias UML 2.1.1, incluyendo los   fragmentos combinados; en la secci&oacute;n 5, se presenta   el caso de estudio, y en la secci&oacute;n 6, las principales   conclusiones obtenidas y el trabajo futuro que se   deriva de esta propuesta. </p> </font>     <p><font size="3" face="Verdana"><b>2. MARCO TE&Oacute;RICO</b></font></p>  <font face="Verdana" size="2">     <p><b>2.1 Principales elementos  del diagrama de secuencias</b></p>     <p>El diagrama de secuencias hace parte de los   diagramas de interacci&oacute;n de la especificaci&oacute;n UML 2.1.1 que describen los aspectos din&aacute;micos de un sistema y muestran la interacci&oacute;n entre los objetos de un sistema y los mensajes enviados entre ellos, ordenados seg&uacute;n su secuencia en el tiempo.</p>     <p>Los diagramas de secuencias son &uacute;tiles para   diversos usos (Ambler, 2005; Fowler y Scott, 1997 y 2003):</p>     <p>- <i>El modelado de escenarios de uso</i>. Un escenario   de uso es una descripci&oacute;n de una posible forma   en que un sistema se utiliza. La l&oacute;gica de un escenario   de uso puede ser parte de un caso de   uso, por ejemplo, una secuencia alternativa o un   paso completo a trav&eacute;s de un caso de uso, tal   como la l&oacute;gica que describe la secuencia normal   de la acci&oacute;n o una parte de ella. Un escenario   de uso tambi&eacute;n puede ser un paso a trav&eacute;s de la l&oacute;gica contenida en varios casos de uso.</p>     <p>- <i>El modelado de la l&oacute;gica de los m&eacute;todos</i>. Los   diagramas de secuencias se pueden utilizar   para explorar la l&oacute;gica de una operaci&oacute;n, funci&oacute;n   o procedimiento complejos, ya que ofrece   una forma de observar las invocaciones a las operaciones definidas en las clases.</p>     <p>- <i>La detecci&oacute;n de cuellos de botella en un dise&ntilde;o   orientado a objetos</i>. Al observar los mensajes   enviados a un objeto y cu&aacute;nto se tardan en ejecutar   el m&eacute;todo invocado, es posible concluir   que es necesario cambiar el dise&ntilde;o con el fin de distribuir la carga dentro del sistema.</p>     <p>Los principales elementos del diagrama de   secuencias especificados por Fowler y Scott (1997 y   2003) para la versi&oacute;n 2.0 y que siguen siendo v&aacute;lidos   en la Superestructura UML 2.1.1 (OMG, 2007) se pueden apreciar en la <a href="#t1">tabla 1</a>.</p>     ]]></body>
<body><![CDATA[<p>La sem&aacute;ntica de los fragmentos combinados   (FC) depende del operador de interacci&oacute;n, que   contiene un cierto n&uacute;mero de operandos y un   identificador. Mediante los operadores, se pueden definir, entre otros:</p>     <p>- <i>Alternativa </i>(denotado &quot;alt&quot;), que modela estructuras  if&hellip;then&hellip;else.</p>     <p align="center"><a name="t1"><img src="img/revistas/eia/n10/n10a08t1.gif" /></a></p>     <p>- <i>Opci&oacute;n</i> (denotado &quot;opt&quot;), que modela estructuras   switch. Una opci&oacute;n es sem&aacute;nticamente   equivalente a un fragmento combinado alternativo   donde hay un operando con contenido vac&iacute;o y otro no vac&iacute;o.</p>     <p>- <i>Quiebre de secuencia </i>(denotado por &quot;break&quot;),   que modela una secuencia alternativa de eventos,   que se procesa en lugar de todo el resto del diagrama.</p>     <p>- <i>Paralelo</i> (denotado por &quot;par&quot;), que modela procesos  concurrentes.</p>     <p>- <i>Ciclo</i> (denotado por &quot;loop&quot;), el cual incluye una  serie de mensajes que se repiten.</p>     <p><b>2.2 Esquemas preconceptuales</b></p>     <p>Un modelo verbal es una representaci&oacute;n de   los requisitos del interesado y un medio de comunicaci&oacute;n   con el analista, cuya finalidad es describir las necesidades y problemas de un sistema. Sin embargo, por estar escrita en lenguaje natural, dicha descripci&oacute;n resulta ser compleja, vaga o ambigua. Por esta raz&oacute;n, se hace necesaria la definici&oacute;n de un modelo que permita expresar los requisitos del interesado de una forma clara, sin sacrificar la riqueza que el lenguaje natural ofrece. En este contexto, nacen los EP (esquemas preconceptuales) que, seg&uacute;n Zapata, Gelbukh y Arango, (2006b), utilizan una notaci&oacute;n gr&aacute;fica para la expresi&oacute;n de los diferentes elementos del discurso de un interesado y constituyen un paso intermedio en la obtenci&oacute;n autom&aacute;tica de los diagramas de UML a partir de un lenguaje controlado. La sintaxis b&aacute;sica de los esquemas preconceptuales se muestra en la <a href="#f1">figura 1</a> y su explicaci&oacute;n es la siguiente: los conceptos son sustantivos o sintagmas nominales del discurso del interesado, las instancias son conjuntos de valores que puede tomar un concepto y que sirven para aclararlo (se unen al concepto que las origina mediante una l&iacute;nea discontinua), las relaciones estructurales son relaciones permanentes entre los conceptos (asociadas con los verbos &quot;es&quot; y &quot;tiene&quot;), las relaciones din&aacute;micas se asocian con los denominados &quot;verbos de actividad&quot; (que generan relaciones de tipo temporal entre los conceptos), las implicaciones sirven para unir relaciones din&aacute;micas o para unir condicionales con relaciones din&aacute;micas (estableciendo entre ellas una relaci&oacute;n causa-efecto), los condicionales son relaciones de causalidad que indican las restricciones o reglas del negocio que se deben cumplir y las conexiones permiten enlazar los conceptos con las relaciones y las relaciones con los conceptos.</p>     <p align="center"><a name="f1"><img src="img/revistas/eia/n10/n10a08f1.gif" /></a></p>     ]]></body>
<body><![CDATA[<p><b>2.3 Metamodelador AToM<sup>3</sup></b></p>     <p>Las dos tareas principales de AToM<sup>3</sup> son el   metamodelado y la transformaci&oacute;n de modelos. El   primero se refiere a la descripci&oacute;n o modelado de   diversas clases de formalismos usados para modelar   los sistemas. La transformaci&oacute;n de modelos se refiere   al proceso autom&aacute;tico de convertir, traducir o modificar   un modelo, que se encuentra en un formalismo   dado en otro modelo, que puede o no estar en el mismo formalismo.</p>     <p>AToM<sup>3</sup> tiene una interfaz gr&aacute;fica que facilita la   construcci&oacute;n de las especificaciones de un diagrama   de manera similar a como se elaboran las instancias   de un diagrama en una herramienta CASE (Computer-   Aided Software Engineering) convencional.   Esta especificaci&oacute;n se puede usar posteriormente   en la materializaci&oacute;n de instancias que representen   el dominio de un problema particular (De Lara y Vangheluwe, 2002).</p>     <p>Aparte de las ventajas ofrecidas por AToM<sup>3</sup>,   esta herramienta se seleccion&oacute; para elaborar el   prototipo del m&eacute;todo descrito en este art&iacute;culo por las siguientes razones (Torres, 1993):</p>     <p>- Es posible construir formalismos de modelos   desde cero, lo cual implica la posibilidad de   correcciones (adici&oacute;n o borrado de elementos,   por ejemplo) en modelos que cambian constantemente   de versi&oacute;n o en otros que presentan   con frecuencia modificaciones sutiles. As&iacute;,   para la conversi&oacute;n de que se ocupa el presente   art&iacute;culo, cabe mencionar los fragmentos combinados,   adicionados en la versi&oacute;n UML 2.1.1 en   el diagrama de secuencias y que pocas herramientas   CASE consideran para la elaboraci&oacute;n de estos diagramas.</p>     <p>- Es posible expresar gr&aacute;ficamente el formalismo   de los diferentes modelos, lo que reduce la complejidad para su comprensi&oacute;n.</p>     <p>- Es posible crear instancias de los modelos y verificar   las restricciones planteadas en el metamodelo sobre esas instancias en particular.</p>     <p>Adicionalmente, AToM<sup>3</sup> permite expresar ciertas   restricciones en t&eacute;rminos de gram&aacute;tica de grafos,   que puede combinar la expresi&oacute;n gr&aacute;fica con la textual,   en forma de precondiciones y postcondiciones   que se pueden establecer en el lenguaje Python (De Lara, Guerra y Vangheluwe, 2004).</p>     <p>La gram&aacute;tica de grafos se define como un   conjunto de reglas que poseen un lado izquierdo (<i>lefthand   side </i>o LHS), que contiene las precondiciones   que se deben cumplir para activar una determinada   regla, y un lado derecho (<i>right-hand side</i> o RHS), que   contiene el grafo que reemplazar&aacute; el que equipare   el lado izquierdo de la regla (De Lara, Vangheluwe   y   Alfonseca, 2003). De esta manera, es posible expresar   restricciones que permitan transformar modelos por   medio de los metamodelos definidos para estos, las   precondiciones y postcondiciones y las reglas que   activan las transformaciones. La gram&aacute;tica de grafos de AToM<sup>3</sup> posee tambi&eacute;n un mecanismo que va reescribiendo el modelo a medida que las diferentes reglas se van activando hasta que no haya reglas que se puedan ejecutar.</p> </font>     <p><font size="3" face="Verdana"><b>3. GENERACI&Oacute;N AUTOM&Aacute;TICA DE DIAGRAMAS DE SECUENCIAS</b></font></p>  <font face="Verdana" size="2">     ]]></body>
<body><![CDATA[<p>En la literatura se presentan diferentes propuestas   para abordar la generaci&oacute;n autom&aacute;tica de   esquemas conceptuales. Por un lado, se encuentran   propuestas que parten del lenguaje natural o de alguna   representaci&oacute;n intermedia de &eacute;l; por otro lado,   est&aacute;n aquellas que emplean el c&oacute;digo fuente como punto de partida.</p>     <p><b>3.1 M&eacute;todos que parten del lenguaje   natural o de una representaci&oacute;n intermedia</b></p>     <p>En este grupo de propuestas existen m&eacute;todos   que permiten generar de manera semiautom&aacute;tica el   diagrama de clases de UML a partir de especificaciones   textuales de requisitos, como lo hace NL-OOPS   (<i>Natural Language Object-Oriented Product System</i>,   Mich, 1996; Mich y Garigliano, 2002), CM-Builder   (<i>Conceptual Model Builder</i>, Harmain y Gaizauskas,   2000) y LIDA (<i>Linguistic Assistant for Domain Analysis</i>,   Overmyer, Lavoie y Rambow, 2001). Todos ellos   comparten las mismas limitaciones: el proceso es,   por lo general, semiautom&aacute;tico y, a pesar de que podr&iacute;an   identificar algunos de los elementos din&aacute;micos   que hacen parte de los diagramas de secuencias,   no lo hacen y se limitan a la sintaxis del diagrama de clases.</p>     <p>Otra propuesta que se ocupa de un &uacute;nico   diagrama es la de Zapata, Tamayo y Arango (2007),   que parte de esquemas preconceptuales para generar   los diagramas de casos de uso. Esta propuesta   permite identificar algunos de los elementos que se   requieren en el presente art&iacute;culo, pues el diagrama de   casos de uso contiene informaci&oacute;n com&uacute;n con el de   secuencias, pero no permite identificar los fragmentos combinados.</p>     <p>Dos propuestas m&aacute;s completas en este grupo   son NIBA (sigla en alem&aacute;n de An&aacute;lisis de Requisitos   de Informaci&oacute;n en Lenguaje Natural, Fliedl <i>et al</i>.   (2002), que reconoce diagramas de clases, actividades   y m&aacute;quina de estados, y la de Zapata (2007),   que parte de un lenguaje controlado denominado   UN-Lencep (acr&oacute;nimo de Universidad Nacional,   Lenguaje Controlado para la Especificaci&oacute;n de Esquemas   Preconceptuales) para obtener los diagramas   de clases, comunicaci&oacute;n y m&aacute;quina de estados. Pese   a la completitud que exhiben ambas propuestas, pues   identifican elementos correspondientes a diagramas   de comportamiento, tales como actividades o comunicaci&oacute;n,   que comparten ciertos elementos con los   diagramas de secuencias, tampoco identifican los fragmentos combinados.</p>     <p>En la propuesta de D&iacute;az <i>et al</i>. (2005), se realiza   una conversi&oacute;n semiautom&aacute;tica de los pasos correspondientes   a un escenario de un caso de uso a una   versi&oacute;n preliminar del diagrama de secuencias. En   este proceso, que define una sintaxis clara para expresar   los pasos del escenario, se pueden identificar   algunos inconvenientes: el proceso es semiautom&aacute;tico,   pues requiere una alta participaci&oacute;n del analista, y no se identifican los fragmentos combinados.</p>     <p>Otro de los trabajos que cabe mencionar en   este enfoque es el realizado por Feijs (2000) y Li (1999   y 2000), que relacionan algunos tipos de oraciones   escritas en lenguaje natural con los MSC (<i>Message   Sequence Chart</i>). Este trabajo es similar al anterior,   pues se parte de los pasos de un caso de uso, expresados   en oraciones que deben cumplir con ciertas   condiciones que restringen el lenguaje natural. Tambi&eacute;n   comparte sus limitaciones: es semiautom&aacute;tico y no identifica los fragmentos combinados.</p>     <p><b>3.2 M&eacute;todos que emplean el c&oacute;digo  fuente como punto de partida</b></p>     <p>Las propuestas enmarcadas dentro de este enfoque   emplean el c&oacute;digo fuente de una aplicaci&oacute;n de   software ya terminada como punto de partida en la obtenci&oacute;n del diagrama de secuencias. Adem&aacute;s, en su mayor&iacute;a, tienen como objetivo el entendimiento y prueba del software en ejecuci&oacute;n, empleando para ello el diagrama de secuencias, que desempe&ntilde;a un rol central en el modelado de la interacci&oacute;n entre objetos (Rountev et al., 2005; Zapata, Ochoa y V&eacute;lez, 2008). Por ejemplo, Rountev <i>et al</i>. (2005) aplican una t&eacute;cnica de ingenier&iacute;a inversa est&aacute;tica, haciendo un mapeo de objetos de interacci&oacute;n que parte del c&oacute;digo fuente (Java) y obtiene su equivalente en los objetos del diagrama de secuencia mediante un esquema de etiquetado de objetos. Zapata, Ochoa y V&eacute;lez (2008) obtienen el diagrama de secuencias a partir de c&oacute;digo Java empleando reglas heur&iacute;sticas de conversi&oacute;n. Los trabajos mencionados s&iacute; se enfocan en la generaci&oacute;n autom&aacute;tica del diagrama de secuencias e identifican los fragmentos combinados como parte fundamental de dichos diagramas, pero tienen como principal inconveniente el punto de partida: el c&oacute;digo fuente.</p>     <p>La ingenier&iacute;a de software procura la aplicaci&oacute;n   de un enfoque sistem&aacute;tico y disciplinado para el   desarrollo de software, en el cual se suele definir un   ciclo de desarrollo que incluye varias fases. En dichas   fases, el diagrama de secuencias se debe elaborar   antes de la implementaci&oacute;n de la aplicaci&oacute;n en un   lenguaje de programaci&oacute;n particular. Partir del c&oacute;digo   fuente para obtener el diagrama de secuencias   sirve como validaci&oacute;n para la correcta elaboraci&oacute;n   del diagrama de secuencias, pero no contribuye al   proceso de automatizaci&oacute;n en la elaboraci&oacute;n de una aplicaci&oacute;n de software.</p>     ]]></body>
<body><![CDATA[<p>Por ello, en este art&iacute;culo se propone la generaci&oacute;n   del diagrama de secuencias de UML, a partir   de una representaci&oacute;n del sistema expresada en   esquemas preconceptuales. Se toman estos esquemas   como punto de partida, pues como demuestra   Zapata (2007), tienen una representaci&oacute;n textual   cercana al lenguaje del interesado, que es el lenguaje   UN-Lencep. Cabe anotar que el principal aporte de   este art&iacute;culo es la definici&oacute;n de las reglas que permiten   la obtenci&oacute;n de los elementos del diagrama de   secuencias, incluyendo los fragmentos combinados, que hasta ahora no se identificaban en la literatura o se identificaban desde un producto avanzado del ciclo de vida del software como es el c&oacute;digo fuente.</p> </font>     <p><font size="3" face="Verdana"><b>4. OBTENCI&Oacute;N DE DIAGRAMAS DE SECUENCIAS DE UML</b> </font></p>  <font face="Verdana" size="2">      <p><b>  2.1.1 A PARTIR DE ESQUEMAS   PRECONCEPTUALES</b></p>      <p>Zapata (2007) propone el uso de esquemas    preconceptuales, dado que compendian las caracter&iacute;sticas    de algunos de los diagramas representativos de    UML, como son clases, comunicaci&oacute;n y m&aacute;quina de    estados. Los esquemas preconceptuales utilizan una    notaci&oacute;n gr&aacute;fica para la expresi&oacute;n de los diferentes    elementos del discurso de un interesado y constituyen    un paso intermedio en la obtenci&oacute;n autom&aacute;tica de los    diagramas de UML a partir de un lenguaje controlado.    En este art&iacute;culo se propone la ampliaci&oacute;n de la sintaxis    b&aacute;sica de los esquemas preconceptuales con un elemento    adicional que permita obtener un diagrama de    secuencias con la mayor&iacute;a de elementos propuestos    por UML 2.1.1, como los fragmentos combinados. As&iacute;,    se define un tipo especial de concepto denominado   &quot;ventana&quot;, que tiene la misma sintaxis de los conceptos    de los esquemas preconceptuales, pero anteponiendo    la palabra &quot;ventana&quot; al nombre del concepto. Este elemento    se requiere porque el discurso del interesado,    que se representa en esquemas preconceptuales, es    diferente al discurso que representa la soluci&oacute;n, el cual    se suele describir en los pasos del escenario de un caso    de uso. El elemento &quot;ventana&quot; representa una interfaz    gr&aacute;fica de usuario con la cual un usuario de un sistema    puede interactuar. As&iacute;, cuando en una transacci&oacute;n se    menciona el &quot;sistema&quot;, se puede reemplazar con la  &quot;ventana&quot; con la cual el usuario interact&uacute;a.</p>      <p><b>4.1 Definici&oacute;n de reglas heur&iacute;sticas</b></p>      <p>Los elementos del diagrama de secuencias se    pueden identificar a partir de un esquema preconceptual    mediante las reglas que se proponen en esta    secci&oacute;n. Las reglas 1, 6, 7 y 9 provienen de trabajos    previos, en tanto que las dem&aacute;s son originales de  este art&iacute;culo.</p>      <p><b>Regla 1: Elemento Actor</b></p>      <p>Esta regla se toma de Zapata, Tamayo y Arango    (2007), donde se define que el concepto que antecede  a una relaci&oacute;n din&aacute;mica es un actor.</p>      <p><b>Regla 2: Elemento L&iacute;nea de vida a partir de  relaci&oacute;n din&aacute;mica</b></p>      <p>En una relaci&oacute;n din&aacute;mica que une dos conceptos    A y B; el concepto B es un objeto que posee l&iacute;nea de    vida, si B no es el concepto destino de una relaci&oacute;n  estructural.</p>      ]]></body>
<body><![CDATA[<p><b>Regla 3: Elemento L&iacute;nea de vida a partir de  relaci&oacute;n estructural</b></p>      <p>En una relaci&oacute;n estructural de tipo &quot;tiene&quot; que    une dos conceptos A y B, el concepto A es un objeto  con l&iacute;nea de vida.</p>      <p><b>Regla 4: Elemento L&iacute;nea de vida a partir de  doble relaci&oacute;n estructural</b></p>      <p>En una relaci&oacute;n estructural de tipo &quot;tiene&quot; que    une dos conceptos A y B; el concepto B es un objeto    con l&iacute;nea de vida, si a su vez desempe&ntilde;a el papel    de concepto origen de otra relaci&oacute;n estructural de  tipo &quot;tiene&quot;.</p>      <p><b>Regla 5: Elemento Interfaz de usuario</b></p>      <p>El elemento &quot;Ventana&quot; representa el sistema (que    en realidad el usuario percibe como un conjunto    de interfaces gr&aacute;ficas de usuario) a partir del texto    de los requisitos del interesado. Dichas ventanas se    consideran interfaces de usuario en el diagrama de    secuencias, y para obtenerlas se establece que en    una relaci&oacute;n din&aacute;mica que une dos conceptos A y    B, si B es una ventana, el concepto B es una interfaz    de usuario candidata. Tambi&eacute;n es posible identificar    las interfaces de usuario a partir de los elementos    del esquema preconceptual que tienen una relaci&oacute;n    estructural con el concepto &quot;sesi&oacute;n&quot; propio de un  sistema de software terminado.</p>      <p><b>Regla 6: Elemento Mensaje a partir de relaci&oacute;n  din&aacute;mica</b></p>      <p>Esta regla se toma de Zapata (2007), para el diagrama    de comunicaci&oacute;n, pero es v&aacute;lida tambi&eacute;n para el    diagrama de secuencias. Cuando se tiene una relaci&oacute;n    din&aacute;mica que une dos conceptos A y B, la relaci&oacute;n    din&aacute;mica es un mensaje del objeto B, si B no participa  en una relaci&oacute;n estructural como concepto destino.</p>      <p><b>Regla 7: Elemento Mensaje con atributos de  clase</b></p>      <p>Al igual que la anterior, esta regla se toma de    Zapata (2007). En una relaci&oacute;n din&aacute;mica que une    dos conceptos A y B, si B participa en una relaci&oacute;n    estructural como concepto destino, entonces dicha    relaci&oacute;n se define como un mensaje desde el objeto    A cuyo nombre se compone del nombre de la relaci&oacute;n  din&aacute;mica y el nombre del concepto B.</p>      ]]></body>
<body><![CDATA[<p><b>Regla 8: Elemento Mensaje reflexivo</b></p>      <p>En una relaci&oacute;n din&aacute;mica que une dos conceptos    A y B; si B participa en una relaci&oacute;n estructural en la    que el concepto A es el concepto origen, entonces    la relaci&oacute;n din&aacute;mica es un mensaje de A enviado a  s&iacute; mismo.</p>      <p><b>Regla 9: Secuencia</b></p>      <p>Tambi&eacute;n esta regla proviene de la definici&oacute;n    del diagrama de comunicaci&oacute;n que realiza Zapata    (2007), y se puede aplicar directamente al diagrama    de secuencias. Las relaciones de implicaci&oacute;n entre relaciones    din&aacute;micas se suponen como la secuencia de  mensajes enviados entre los objetos identificados.</p>      <p><b>Regla 10: Elemento Fragmento combinado  &quot;opt&quot;</b></p>      <p>Un condicional en un esquema preconceptual    equivale a un fragmento combinado del diagrama    de secuencias con operador &quot;opt&quot;. El contenido del    condicional se escribe como condici&oacute;n de guarda  en el fragmento combinado.</p>      <p><b>Regla 11: Elemento Fragmento combinado  &quot;alt&quot;</b></p>      <p>Dos o m&aacute;s condicionales sobre relaciones din&aacute;micas    que apuntan a un mismo concepto en un esquema    preconceptual equivalen a un fragmento combinado    del diagrama de secuencias con operador &quot;alt&quot;. El    contenido de los condicionales se escribe como condiciones  de guarda en el fragmento combinado.</p>      <p><b>Regla 12: Elemento Fragmento combinado  &quot;par&quot;</b></p>      <p>Dadas dos relaciones din&aacute;micas 1 y 2 cuyos conceptos    origen son iguales, si de la relaci&oacute;n din&aacute;mica 1    no se inicia una relaci&oacute;n de implicaci&oacute;n a la relaci&oacute;n  din&aacute;mica 2, esto da origen a un elemento &quot;par&quot;.</p>      ]]></body>
<body><![CDATA[<p><b>4.2 Implementaci&oacute;n de las reglas  en AToM<sup>3</sup></b></p>      <p>En la presente propuesta se aprovechan las    ventajas mencionadas de la herramienta AToM<sup>3</sup>   para la elaboraci&oacute;n de modelos y metamodelos y la    transformaci&oacute;n entre esquemas preconceptuales y  diagramas de secuencias.</p>      <p><b><i>4.2.1 Definici&oacute;n de los metamodelos</i></b></p>      <p>En AToM<sup>3</sup> la definici&oacute;n de metamodelos se    basa en el modelo entidad-relaci&oacute;n extendido con    restricciones, en el cual las entidades se representan    como rect&aacute;ngulos y las relaciones como rombos.    En las figuras 2 y 3 se pueden apreciar los metamodelos    correspondientes al esquema preconceptual    y diagrama de secuencias. Cabe anotar que el modelo    entidad-relaci&oacute;n es un diagrama estructural,    por lo cual su lectura se puede realizar en cualquier    orden, pues se trata s&oacute;lo de establecer las relaciones    entre las entidades del mundo. Por ejemplo,    en la figura 2 la entidad &quot;RelacionEstructural&quot; y la    entidad &quot;Ventana&quot; se unen mediante una relaci&oacute;n    denominada &quot;REVentana&quot;. Los elementos del segundo    caj&oacute;n de cada entidad son caracter&iacute;sticas    que la entidad posee y se denominan atributos.    Adem&aacute;s, se registra la informaci&oacute;n correspondiente    al tipo de atributo. Por ejemplo, el atributo   &quot;Nombre&quot; de la entidad &quot;RelacionEstructural&quot; es de    tipo string. De forma an&aacute;loga se puede realizar la    lectura de los dem&aacute;s elementos correspondientes  a las <a href="#f2">figuras 2</a> y <a href="#f3">3</a>.</p>      <p align="center"><a name="f2"><img src="img/revistas/eia/n10/n10a08f2.gif" /></a></p>      <p align="center"><a name="f3"><img src="img/revistas/eia/n10/n10a08f3.gif" /></a></p>      <p><b><i>4.2.2 Implementaci&oacute;n de las reglas de  transformaci&oacute;n en AToM<sup>3</sup></i></b></p>      <p>La escritura de las reglas de transformaci&oacute;n   entre los diferentes metamodelos en AToM<sup>3</sup> se realiza   empleando la gram&aacute;tica de grafos y el lenguaje   Phyton. Mediante este mecanismo se definieron las reglas para el presente art&iacute;culo.</p>  </font>     <p><font size="3" face="Verdana"><b>5. CASO DE ESTUDIO</b></font></p>  <font face="Verdana" size="2">     <p>Con el fin de ejemplificar las reglas heur&iacute;sticas   que se definieron en la secci&oacute;n 4.1, se presenta un   caso de estudio relacionado con el despacho de   un pedido. El enunciado de este caso de estudio   se present&oacute; originalmente en ingl&eacute;s en el proyecto   NIBA (Fliedl <i>et al</i>., 2002) y lo adapt&oacute; Zapata, (2007)   al lenguaje UN-Lencep en espa&ntilde;ol. Por razones de espacio, s&oacute;lo se presenta una fracci&oacute;n del discurso:</p>     ]]></body>
<body><![CDATA[<p><i>Un art&iacute;culo es parte de un pedido; cuando el   asistente recibe el pedido, entonces el departamento_pedidos   verifica la cantidad_existente del art&iacute;culo; luego el   asistente consulta el pago; si pago.estado=&lsquo;autorizado&#39;,   entonces el departamento_pedidos tramita el pedido;   si pago.estado=&lsquo;no_autorizado&#39;, entonces el departamento_   pedidos rechaza el pedido; un pago contiene   un pedido; el pago posee un estado; el departamento de pedidos posee un inventario.</i></p>     <p>Con el discurso presentado se obtiene el esquema   preconceptual que se presenta en la <a href="#f4">figura 4</a>.   El esquema preconceptual combina informaci&oacute;n de   tipo est&aacute;tico con informaci&oacute;n de tipo din&aacute;mico. Los   elementos que conforman el primer tipo se pueden   leer de manera similar a como se hace en el modelo   entidad-relaci&oacute;n; por ejemplo, se pueden leer los   conceptos &quot;departamento_pedidos&quot; e &quot;inventario&quot; vinculados por la relaci&oacute;n estructural &quot;tiene&quot; como &quot;departamento_pedidos tiene inventario&quot;. Los elementos que constituyen la parte din&aacute;mica son aquellos que poseen implicaciones (flechas gruesas); en este caso, la lectura se realiza desde el primer concepto unido a una relaci&oacute;n din&aacute;mica que a su vez es origen de una implicaci&oacute;n y se contin&uacute;a con los dem&aacute;s elementos. Por ejemplo, en el diagrama se puede leer: &quot;cuando asistente recibe pedido, entonces departamento_pedidos verifica cantidad_existente y luego asistente consulta pago&quot;. Los condicionales (rombos) se leen como relaciones causa-efecto y son de tipo din&aacute;mico; por ejemplo, se puede leer &quot;si pago.estado=no_autorizado, entonces departamento_pedidos rechaza pedido&quot;.</p>     <p align="center"><a name="f4"><img src="img/revistas/eia/n10/n10a08f4.gif" /></a></p>     <p>En la <a href="#t2">tabla 2</a> se muestra paso a paso la aplicaci&oacute;n   de las reglas de transformaci&oacute;n para el caso de estudio; la tabla 2 consta de la porci&oacute;n del esquema   preconceptual, los elementos identificados   del diagrama de secuencias y las reglas aplicadas.   Adem&aacute;s, de las reglas aplicadas en la tabla 2, la   regla 9 permite identificar la secuencia de los mensajes   recibe(), verifica_CANTIDAD_EXISTENTE() y  consulta().</p>     <p>Finalmente, en la <a href="#f5">figura 5</a> se puede observar   el diagrama de secuencias obtenido al ejecutar la   transformaci&oacute;n. En este diagrama &quot;asistente&quot; es   un actor, &quot;departamento_pedidos&quot;, &quot;pedido&quot;, &quot;articulo&quot;   y &quot;pago&quot; son clases de objetos y las flechas   representan los diferentes mensajes que se env&iacute;an   los diferentes objetos para realizar la transacci&oacute;n representada por la secuencia.</p>     <p align="center"><a name="t2"><img src="img/revistas/eia/n10/n10a08t2.gif" /></a></p>     <p align="center"><a name="f5"><img src="img/revistas/eia/n10/n10a08f5.gif" /></a></p> </font>     <p><font size="3" face="Verdana"><b>6. CONCLUSIONES Y TRABAJO FUTURO</b></font></p>  <font face="Verdana" size="2">     <p>En este art&iacute;culo se present&oacute; un m&eacute;todo que,   adem&aacute;s de facilitar la interacci&oacute;n con el interesado   en el proceso de desarrollo empleando los esquemas   preconceptuales, define las reglas de transformaci&oacute;n   autom&aacute;tica entre dichos esquemas y el diagrama de   secuencias, que permite representar la interacci&oacute;n entre los diferentes objetos de un sistema.</p>     <p>Los principales aportes para destacar son los  siguientes:</p>     ]]></body>
<body><![CDATA[<p>- Se parte de una representaci&oacute;n del dominio   del interesado (esquema preconceptual), que   se puede ver como un intermediario en la relaci&oacute;n   analista-interesado. Adem&aacute;s, con la au-   tomatizaci&oacute;n   introducida en la obtenci&oacute;n del   diagrama de secuencias se reduce la ambig&uuml;edad   que generan interesados y analistas, quienes   s&oacute;lo participan en la construcci&oacute;n del esquema   preconceptual, valid&aacute;ndolo o corrigi&eacute;ndolo en   cualquier momento. Una vez generado el esquema   preconceptual, ni el analista ni el interesado intervienen en la obtenci&oacute;n del diagrama de secuencias.</p>     <p>- Se defini&oacute; un conjunto de reglas heur&iacute;sticas de   transformaci&oacute;n entre los esquemas preconceptuales   y el diagrama de secuencia UML 2.1.1.   Algunas reglas se adaptaron de trabajos previos   para el diagrama de comunicaci&oacute;n (que presenta   algunas similitudes con el de secuencias),   aunque la mayor&iacute;a de ellas se proponen en este   art&iacute;culo. Esas reglas identifican los principales   elementos del diagrama de secuencias definidos   en el est&aacute;ndar UML 2.1.1, incluyendo los   fragmentos combinados, de gran utilidad en el modelado din&aacute;mico del sistema.</p>     <p>- Se realiz&oacute; la inclusi&oacute;n de un nuevo elemento   (&quot;ventana&quot;) en la especificaci&oacute;n de los esquemas   preconceptuales, con el fin de facilitar la conversi&oacute;n expuesta en este art&iacute;culo.</p>     <p>Como trabajo futuro se pueden plantear los  siguientes &iacute;tems:</p>     <p>- Establecer reglas de transformaci&oacute;n adicionales   que permitan obtener los elementos faltantes   del diagrama de secuencias del est&aacute;ndar UML   2.1.1. Particularmente, se requieren reglas para   otros elementos como la muerte de los objetos o los fragmentos combinados <i>break y loop</i>.</p>     <p>- Combinar las reglas aqu&iacute; definidas con reglas   de ingenier&iacute;a inversa para tratar de definir un   m&eacute;todo para obtener c&oacute;digo fuente desde lenguaje natural.</p>     <p>- Avanzar en el estudio de la obtenci&oacute;n del   diagrama de secuencias a partir del lenguaje natural y no de un lenguaje controlado.</p>     <p>- Poner a disposici&oacute;n de analistas expertos los   casos de estudio y m&eacute;todo planteados, con el   fin de realizar comparaciones de los resultados obtenidos.</p> </font>     <p><font size="3" face="Verdana"><b>REFERENCIAS</b></font></p>  <font face="Verdana" size="2">      <!-- ref --><p>Ambler, S. (2005). The elements of UML 2.0 style. Cambridge  University Press, New York.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000122&pid=S1794-1237200800020000800001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>De Lara, J. and Vangheluwe, H. (2002). AToM3: A tool for   multi-formalism and meta-modelling. Proceedings of   the Fifth International Conference on Fundamental   Approaches to Software Engineering, London (England). pp. 174-188.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000123&pid=S1794-1237200800020000800002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>De Lara, J.; Vangheluwe, H. and Alfonseca, M. (2003).   Using meta-modelling and graph-grammars to create   modelling environments. Electronic Notes in Theoretical Computer Science, 72(3): 36-50.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000124&pid=S1794-1237200800020000800003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>De Lara, J.; Guerra, E. and Vangheluwe, H. (2004). Metamodelling,   graph transformation and model checking   for the analysis of hybrid systems. Lecture Notes in Computer Science, 3062:292-298.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000125&pid=S1794-1237200800020000800004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>D&iacute;az, I.; Moreno, L.; Fuentes, I. and Pastor, O. (2005). Integrating   natural language techniques in OO-method. Lecture Notes in Computer Science, 3406:560-571.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000126&pid=S1794-1237200800020000800005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Feijs, L.M.G. (2000). Natural language and message sequence   chart representation of use cases. Information and Software Technology, 42(9):633-647.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000127&pid=S1794-1237200800020000800006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Fliedl, G.; Kop, Ch.; Mayerthaler, W., Mayr, H. C. and   Winkler, Ch. (2002). The NIBA workflow: From textual   requirements specifications to UML-schemata. Proceedings   of the ICSSEA&#39;2002 International Conference   &quot;Software &amp; Systems Engineering and their Applications&quot;, Paris (France).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000128&pid=S1794-1237200800020000800007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Fowler, M. and Scott, K. (1997). UML distilled: applying the   standard object modeling language. Addison-Wesley Series Editors, Essex.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000129&pid=S1794-1237200800020000800008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Fowler, M. and Scott, K. (2003). UML distilled: a brief guide   to the standard object modeling language, 3rd ed. Addison- Wesley Professional, Essex.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000130&pid=S1794-1237200800020000800009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Harmain, H. M. and Gaizauskas, R. (2000). CM-Builder: an   automated NL-based CASE tool. Proceedings of the   Fifteenth IEEE International Conference on Automated Software Engineering. Grenoble (France). pp. 45-53.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000131&pid=S1794-1237200800020000800010&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Li, L. (1999). A semi-automatic approach to translating use   cases to sequence diagrams. Technology of Object-Oriented Languages and Systems, Jul.1999:184-193.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000132&pid=S1794-1237200800020000800011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Li, L. (2000). Translating use cases to sequence diagrams.   Proceedings of the Fifteenth IEEE International Conference   on Automated Software Engineering. Grenoble (France). pp. 293-296.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000133&pid=S1794-1237200800020000800012&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Mich, L. (1996). NL-OOPS: From natural language to   object oriented requirements using the natural language   processing system LOLITA. Journal of Natural Language Engineering, 2(2):161-187.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000134&pid=S1794-1237200800020000800013&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Mich, L. and Garigliano, R. (2002). NL-OOPS: A requirements   analysis tool based on natural language processing.   Proceedings of the 3rd International Conference on Data Mining. Bologna (Italy). pp. 321-330.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000135&pid=S1794-1237200800020000800014&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><font size="2" face="Verdana">Objetc Management Group (OMG). (2007). Unified modeling   language specification. Version 2.1.1. <a href="http://www.omg.org" target="_blank">http://www.omg.org/uml /20-09-08</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=000136&pid=S1794-1237200800020000800015&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Overmyer, S.; Lavoie, B. and Rambow, O. (2001). Conceptual   modeling analysis using LIDA. Proceedings of the   23rd International Conference on Software Engineering, Toronto (Canada). pp. 401-410.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000137&pid=S1794-1237200800020000800016&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Pressman, R. (2005). Software Engineering: a practitioner&#39;s approach, 6th ed. McGraw-Hill, NewYork.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000138&pid=S1794-1237200800020000800017&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Rountev, A.; Kagan, S. and Sawin, J. (2005). Coverage   criteria for testing of object interactions in sequence   diagrams. Lecture Notes in Computer Sciences 3442:282-297.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000139&pid=S1794-1237200800020000800018&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Torres, A. (1993). Modelamiento y metamodelamiento de   la incertidumbre en problemas de ingenier&iacute;a. Revista de Ingenier&iacute;a Universidad de los Andes 4:29-36.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000140&pid=S1794-1237200800020000800019&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Zapata, C. and Arango, F. (2005). Los modelos verbales y su   utilizaci&oacute;n en la elaboraci&oacute;n de esquemas conceptuales: una revisi&oacute;n cr&iacute;tica. Revista EAFIT. 41(137):77-95.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000141&pid=S1794-1237200800020000800020&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Zapata, C.; Gelbukh, A. and Arango, F. (2006a). Pre-conceptual   schemas: a conceptual-graph-like knowledge   representation for requirements elicitation. Lecture Notes in Computer Sciences, 4293:27-37.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000142&pid=S1794-1237200800020000800021&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Zapata, C.; Gelbukh, A. y Arango, F. (2006b). UN-Lencep:   obtenci&oacute;n autom&aacute;tica de diagramas UML a partir de un   lenguaje controlado. Memorias del 3er Taller de Tecnolog&iacute;as   del Lenguaje Humano, Encuentro Nacional de Ciencias de la Computaci&oacute;n, San Luis Potos&iacute; (M&eacute;xico).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000143&pid=S1794-1237200800020000800022&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Zapata, C. (2007). Definici&oacute;n de un esquema preconceptual   para la obtenci&oacute;n autom&aacute;tica de esquemas   conceptuales   de UML. Tesis doctoral, Universidad Nacional de Colombia. Medell&iacute;n.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000144&pid=S1794-1237200800020000800023&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Zapata, C.; Tamayo, P. and Arango, F. (2007). Conversion   of pre-conceptual schema into use case diagrams by using AToM<sup>3</sup>. Revista DYNA, 74(153):237-251.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000145&pid=S1794-1237200800020000800024&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Zapata, C.; Ochoa, O. y V&eacute;lez, C. (2008). Un m&eacute;todo de   ingenier&iacute;a inversa de c&oacute;digo Java hacia diagramas de   secuencias de UML 2.0. Revista Escuela de Ingenier&iacute;a de Antioquia, 9:31-42.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000146&pid=S1794-1237200800020000800025&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> ]]></body><back>
<ref-list>
<ref id="B1">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ambler]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
</person-group>
<source><![CDATA[The elements of UML 2.0 style.]]></source>
<year>2005</year>
<publisher-loc><![CDATA[New York. ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B2">
<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-modelling]]></source>
<year>2002</year>
<conf-name><![CDATA[Fifth International Conference on Fundamental Approaches to Software Engineering]]></conf-name>
<conf-loc>London </conf-loc>
<page-range>174-188</page-range></nlm-citation>
</ref>
<ref id="B3">
<nlm-citation citation-type="journal">
<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>
<name>
<surname><![CDATA[Alfonseca]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Using meta-modelling and graph-grammars to create modelling environments.]]></article-title>
<source><![CDATA[Electronic Notes in Theoretical Computer Science]]></source>
<year>2003</year>
<volume>72</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>36-50</page-range></nlm-citation>
</ref>
<ref id="B4">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[De Lara]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Guerra]]></surname>
<given-names><![CDATA[E.]]></given-names>
</name>
<name>
<surname><![CDATA[Vangheluwe]]></surname>
<given-names><![CDATA[H.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Metamodelling, graph transformation and model checking for the analysis of hybrid systems.]]></article-title>
<source><![CDATA[Lecture Notes in Computer Science]]></source>
<year>2004</year>
<volume>3062</volume>
<page-range>292-298</page-range></nlm-citation>
</ref>
<ref id="B5">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Díaz]]></surname>
<given-names><![CDATA[I.]]></given-names>
</name>
<name>
<surname><![CDATA[Moreno]]></surname>
<given-names><![CDATA[L.]]></given-names>
</name>
<name>
<surname><![CDATA[Fuentes]]></surname>
<given-names><![CDATA[I.]]></given-names>
</name>
<name>
<surname><![CDATA[Pastor]]></surname>
<given-names><![CDATA[O.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Integrating natural language techniques in OO-method.]]></article-title>
<source><![CDATA[Lecture Notes in Computer Science]]></source>
<year>2005</year>
<volume>3406</volume>
<page-range>560-571</page-range></nlm-citation>
</ref>
<ref id="B6">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Feijs]]></surname>
<given-names><![CDATA[L.M.G.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Natural language and message sequence chart representation of use cases.]]></article-title>
<source><![CDATA[Information and Software Technology]]></source>
<year>2000</year>
<volume>42</volume>
<numero>9</numero>
<issue>9</issue>
<page-range>633-647</page-range></nlm-citation>
</ref>
<ref id="B7">
<nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Fliedl]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
<name>
<surname><![CDATA[Kop]]></surname>
<given-names><![CDATA[Ch]]></given-names>
</name>
<name>
<surname><![CDATA[Mayerthaler]]></surname>
<given-names><![CDATA[W]]></given-names>
</name>
<name>
<surname><![CDATA[Mayr]]></surname>
<given-names><![CDATA[H. C]]></given-names>
</name>
<name>
<surname><![CDATA[Winkler]]></surname>
<given-names><![CDATA[Ch]]></given-names>
</name>
</person-group>
<source><![CDATA[The NIBA workflow: From textual requirements specifications to UML-schemata]]></source>
<year>2002</year>
<conf-name><![CDATA[ International Conference "Software & Systems Engineering and their Applications]]></conf-name>
<conf-date>2002</conf-date>
<conf-loc>Paris </conf-loc>
</nlm-citation>
</ref>
<ref id="B8">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Fowler]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Scott]]></surname>
<given-names><![CDATA[K]]></given-names>
</name>
</person-group>
<source><![CDATA[UML distilled: applying the standard object modeling language]]></source>
<year>1997</year>
<publisher-loc><![CDATA[^eEssex Essex]]></publisher-loc>
<publisher-name><![CDATA[Addison-Wesley Series Editors]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B9">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Fowler]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Scott]]></surname>
<given-names><![CDATA[K]]></given-names>
</name>
</person-group>
<source><![CDATA[UML distilled: a brief guide to the standard object modeling language]]></source>
<year>2003</year>
<edition>3rd ed</edition>
<publisher-loc><![CDATA[^eEssex Essex]]></publisher-loc>
<publisher-name><![CDATA[Addison- Wesley Professional]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B10">
<nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Harmain]]></surname>
<given-names><![CDATA[H. M.]]></given-names>
</name>
<name>
<surname><![CDATA[Gaizauskas]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
</person-group>
<source><![CDATA[CM-Builder: an automated NL-based CASE tool]]></source>
<year>2000</year>
<conf-name><![CDATA[Fifteenth International Conference on Automated Software Engineering]]></conf-name>
<conf-loc>Grenoble </conf-loc>
<page-range>45-53</page-range></nlm-citation>
</ref>
<ref id="B11">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Li]]></surname>
<given-names><![CDATA[L.]]></given-names>
</name>
</person-group>
<source><![CDATA[A semi-automatic approach to translating use cases to sequence diagrams: Technology of Object-Oriented Languages and Systems]]></source>
<year>1999</year>
<page-range>184-193</page-range></nlm-citation>
</ref>
<ref id="B12">
<nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Li]]></surname>
<given-names><![CDATA[L.]]></given-names>
</name>
</person-group>
<source><![CDATA[Translating use cases to sequence diagrams]]></source>
<year>2000</year>
<conf-name><![CDATA[Fifteenth International Conference on Automated Software Engineering]]></conf-name>
<conf-loc>Grenoble </conf-loc>
<page-range>293-296</page-range></nlm-citation>
</ref>
<ref id="B13">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Mich]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[NL-OOPS: From natural language to object oriented requirements using the natural language processing system LOLITA]]></article-title>
<source><![CDATA[Journal of Natural Language Engineering]]></source>
<year>1996</year>
<volume>2</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>161-187</page-range></nlm-citation>
</ref>
<ref id="B14">
<nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Mich]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[Garigliano]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
</person-group>
<source><![CDATA[NL-OOPS: A requirements analysis tool based on natural language processing.]]></source>
<year>2002</year>
<conf-name><![CDATA[3rd International Conference on Data Mining]]></conf-name>
<conf-loc>Bologna </conf-loc>
<page-range>321-330</page-range></nlm-citation>
</ref>
<ref id="B15">
<nlm-citation citation-type="">
<source><![CDATA[Objetc Management Group (OMG)]]></source>
<year>2007</year>
</nlm-citation>
</ref>
<ref id="B16">
<nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Overmyer]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Lavoie]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[Rambow]]></surname>
<given-names><![CDATA[O]]></given-names>
</name>
</person-group>
<source><![CDATA[Conceptual modeling analysis using LIDA]]></source>
<year>2001</year>
<conf-name><![CDATA[23rd International Conference on Software Engineering]]></conf-name>
<conf-loc>Toronto </conf-loc>
<page-range>401-410</page-range></nlm-citation>
</ref>
<ref id="B17">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Pressman]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<source><![CDATA[Software Engineering: a practitioner"s approach]]></source>
<year>2005</year>
<edition>6th ed</edition>
<publisher-loc><![CDATA[NewYork ]]></publisher-loc>
<publisher-name><![CDATA[McGraw-Hill]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B18">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Rountev]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
<name>
<surname><![CDATA[Kagan]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[Sawin]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Coverage criteria for testing of object interactions in sequence diagrams]]></article-title>
<source><![CDATA[Lecture Notes in Computer Sciences]]></source>
<year>2005</year>
<volume>3442</volume>
<page-range>282-297</page-range></nlm-citation>
</ref>
<ref id="B19">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Torres]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Modelamiento y metamodelamiento de la incertidumbre en problemas de ingeniería]]></article-title>
<source><![CDATA[Revista de Ingeniería]]></source>
<year>1993</year>
<volume>4</volume>
<page-range>29-36</page-range></nlm-citation>
</ref>
<ref id="B20">
<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[Arango]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Los modelos verbales y su utilización en la elaboración de esquemas conceptuales: una revisión crítica]]></article-title>
<source><![CDATA[Revista EAFIT]]></source>
<year>2005</year>
<volume>41</volume>
<numero>137</numero>
<issue>137</issue>
<page-range>77-95</page-range></nlm-citation>
</ref>
<ref id="B21">
<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[Gelbukh]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Arango]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Pre-conceptual schemas: a conceptual-graph-like knowledge representation for requirements elicitation]]></article-title>
<source><![CDATA[Lecture Notes in Computer Sciences]]></source>
<year>2006</year>
<volume>4293</volume>
<page-range>27-37</page-range></nlm-citation>
</ref>
<ref id="B22">
<nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Zapata]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[Gelbukh]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Arango]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
</person-group>
<source><![CDATA[UN-Lencep: obtención automática de diagramas UML a partir de un lenguaje controlado]]></source>
<year>2006</year>
<conf-name><![CDATA[3er Taller de Tecnologías del Lenguaje Humano, Encuentro Nacional de Ciencias de la Computación]]></conf-name>
<conf-loc>San Luis Potosí </conf-loc>
</nlm-citation>
</ref>
<ref id="B23">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Zapata]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
</person-group>
<source><![CDATA[Definición de un esquema preconceptual para la obtención automática de esquemas conceptuales de UML]]></source>
<year>2007</year>
</nlm-citation>
</ref>
<ref id="B24">
<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[Tamayo]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Arango]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Conversion of pre-conceptual schema into use case diagrams by using AToM³]]></article-title>
<source><![CDATA[Revista DYNA]]></source>
<year>2007</year>
<volume>74</volume>
<numero>153</numero>
<issue>153</issue>
<page-range>237-251</page-range></nlm-citation>
</ref>
<ref id="B25">
<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[Ochoa]]></surname>
<given-names><![CDATA[O]]></given-names>
</name>
<name>
<surname><![CDATA[Vélez]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[Un método de ingeniería inversa de código Java hacia diagramas de secuencias de UML 2.0]]></article-title>
<source><![CDATA[Revista Escuela de Ingeniería de Antioquia]]></source>
<year>2008</year>
<volume>9</volume>
<page-range>31-42</page-range></nlm-citation>
</ref>
</ref-list>
</back>
</article>
