<?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>0120-6230</journal-id>
<journal-title><![CDATA[Revista Facultad de Ingeniería Universidad de Antioquia]]></journal-title>
<abbrev-journal-title><![CDATA[Rev.fac.ing.univ. Antioquia]]></abbrev-journal-title>
<issn>0120-6230</issn>
<publisher>
<publisher-name><![CDATA[Facultad de Ingeniería, Universidad de Antioquia]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S0120-62302008000200012</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Implementación en C# de las reglas heurísticas de conversión de esquemas preconceptuales a diagramas uml 2.0]]></article-title>
<article-title xml:lang="en"><![CDATA[Heuristic rules for transforming preconceptual schemas into uml 2.0 diagrams: a C# implementation]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Zapata]]></surname>
<given-names><![CDATA[Carlos]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Cardona]]></surname>
<given-names><![CDATA[David]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad Nacional de Colombia, sede Medellín Facultad de Minas Escuela de Sistemas]]></institution>
<addr-line><![CDATA[Medellín ]]></addr-line>
<country>Colombia</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>06</month>
<year>2008</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>06</month>
<year>2008</year>
</pub-date>
<numero>44</numero>
<fpage>119</fpage>
<lpage>136</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_arttext&amp;pid=S0120-62302008000200012&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_abstract&amp;pid=S0120-62302008000200012&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_pdf&amp;pid=S0120-62302008000200012&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[Desde mediados de los años noventa se viene gestando una tendencia que busca la generación automática de esquemas conceptuales de UML a partir de lenguajes controlados, empleando para ello reglas heurísticas de transformación. En esta tendencia, aún subsisten algunos problemas: ambigüedad en las reglas, procesos semiasistidos con alta participación de expertos, dificultades en la representación conjunta de estructura y dinamismo del mundo, generación de un solo diagrama y carencia de implementación de algunos trabajos. En este artículo se emplean los denominados Esquemas Preconceptuales como lenguaje gráfico de representación del dominio de una aplicación de software, y se implementan en C# las reglas de conversión de esos esquemas a diagramas de UML 2.0. La implementación en C# elimina la ambigüedad que podrían contener las reglas y permiten la automatización del proceso sin la mediación de expertos. Finalmente, se muestra mediante un caso de estudio el funcionamiento de un prototipo en C# basado en estas reglas.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[From the mid-nineties, a new path for automatically generating UML conceptual schemas from controlled languages, by means of heuristic rules, has been proposed. This path still exhibit problems to be solved: ambiguity of heuristic rules, semi-automated expert-participation processes, difficulties in representing structural and dynamic features of the domain, focus on only one diagram, and lack of implementation. In this paper, we employ the socalled Pre-conceptual Schemas as a graphical language for representing the domain of a software application; also, we implement in the C# language the conversion rules from Pre-conceptual Schemas into UML 2.0 diagrams. C# implementation avoids ambiguity of some of the conversion rules; furthermore, C# implementation permits process automation without the need of experts. Finally, we show the functionality of C# rule-based prototype by means of a case study.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[Esquema preconceptual]]></kwd>
<kwd lng="es"><![CDATA[diagramas de clases]]></kwd>
<kwd lng="es"><![CDATA[diagramas de comunicación]]></kwd>
<kwd lng="es"><![CDATA[diagramas de máquina de estados]]></kwd>
<kwd lng="es"><![CDATA[UML 2.0]]></kwd>
<kwd lng="es"><![CDATA[reglas de transformación]]></kwd>
<kwd lng="es"><![CDATA[lenguaje de programación C#]]></kwd>
<kwd lng="en"><![CDATA[Pre-conceptual schemas]]></kwd>
<kwd lng="en"><![CDATA[class diagram]]></kwd>
<kwd lng="en"><![CDATA[communication diagram]]></kwd>
<kwd lng="en"><![CDATA[state machine diagram]]></kwd>
<kwd lng="en"><![CDATA[UML 2.0]]></kwd>
<kwd lng="en"><![CDATA[transformation rules]]></kwd>
<kwd lng="en"><![CDATA[C# programming language]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p align="center"><font face="Verdana" size="4"><b>Implementaci&oacute;n en C# de las reglas heur&iacute;sticas de conversi&oacute;n de esquemas preconceptuales a diagramas uml 2.0</b></font></p>       <p align="center"><font face="Verdana" size="4"><b>Heuristic rules for transforming preconceptual schemas into uml 2.0 diagrams: a C# implementation   </b> </font> </p>      <p align="left"><font size="2"><i><font face="Verdana">Carlos Zapata* , David Cardona</font></i> </font></p>     <p><font size="2" face="Verdana">Grupo de Investigaci&oacute;n en Ingenier&iacute;a de Software. Escuela de Sistemas. Facultad de Minas. Universidad Nacional de Colombia, sede Medell&iacute;n. Calle 59A No 63 - 20 Medell&iacute;n - Colombia  </font></p>     <p>&nbsp;</p>     <p>&nbsp;</p> <hr noshade size="1">     <p><font size="3" face="Verdana"><b>Resumen</b> </font></p>     <p><font size="2" face="Verdana">Desde mediados de los a&ntilde;os noventa se viene gestando una tendencia que busca la generaci&oacute;n autom&aacute;tica de esquemas conceptuales de UML a partir de lenguajes controlados, empleando para ello reglas heur&iacute;sticas de transformaci&oacute;n. En esta tendencia, a&uacute;n subsisten algunos problemas: ambig&uuml;edad en las reglas, procesos semiasistidos con alta participaci&oacute;n de expertos, dificultades en la representaci&oacute;n conjunta de estructura y dinamismo del mundo, generaci&oacute;n de un solo diagrama y carencia de implementaci&oacute;n de algunos trabajos. En este art&iacute;culo se emplean los denominados Esquemas Preconceptuales como lenguaje gr&aacute;fico de representaci&oacute;n del dominio de una aplicaci&oacute;n de software, y se implementan en C# las reglas de conversi&oacute;n de esos esquemas a diagramas de UML 2.0. La implementaci&oacute;n en C# elimina la ambig&uuml;edad que podr&iacute;an contener las reglas y permiten la automatizaci&oacute;n del proceso sin la mediaci&oacute;n de expertos. Finalmente, se muestra mediante un caso de estudio el funcionamiento de un prototipo en C# basado en estas reglas.</font></p>     <p><font size="2" face="Verdana"><b>Palabras clave: </b>Esquema preconceptual, diagramas de clases, diagramas de comunicaci&oacute;n, diagramas de m&aacute;quina de estados, UML 2.0, reglas de transformaci&oacute;n, lenguaje de programaci&oacute;n C#. </font></p> <hr noshade size="1">     <p><font size="3" face="Verdana"><b>Abstract </b> </font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana">From the mid-nineties, a new path for automatically generating UML conceptual schemas from controlled languages, by means of heuristic rules, has been proposed. This path still exhibit problems to be solved: ambiguity of heuristic rules, semi-automated expert-participation processes, difficulties in representing structural and dynamic features of the domain, focus on only one diagram, and lack of implementation. In this paper, we employ the socalled Pre-conceptual Schemas as a graphical language for representing the domain of a software application; also, we implement in the C# language the conversion rules from Pre-conceptual Schemas into UML 2.0 diagrams. C# implementation avoids ambiguity of some of the conversion rules; furthermore, C# implementation permits process automation without the need of experts. Finally, we show the functionality of C# rule-based prototype by means of a case study.</font></p>     <p><font size="2" face="Verdana"><b> Keywords:</b>  Pre-conceptual schemas, class diagram, communication diagram, state machine diagram, UML 2.0, transformation rules, C# programming language.</font></p> <hr noshade size="1">     <p>&nbsp;</p>     <p><font size="3" face="Verdana"><b>Introducci&oacute;n</b> </font></p>      <p><font size="2" face="Verdana">Los esquemas conceptuales se suelen emplear para el modelado de los diferentes dominios de aplicaci&oacute;n, con el fin de elaborar posteriormente una aplicaci&oacute;n de software a partir de ellos. Uno de los principales lenguajes para la elaboraci&oacute;n de esquemas conceptuales es el denominado Lenguaje Unificado de Modelado (UML por sus siglas en ingl&eacute;s) creado mediados de los a&ntilde;os noventa &#91;1&#93;. Si bien desde los a&ntilde;os ochenta existen propuestas para generar esquemas conceptuales desde subconjuntos del lenguaje natural &#91;2&#93;, el surgimiento de UML ha motivado el surgimiento de muchos trabajos en esta tendencia, buscando obtener los diagramas de UML de manera autom&aacute;tica o semiautom&aacute;tica. Para lograr ese fin, en los diferentes trabajos se han propuesto reglas heur&iacute;sticas para posibilitar la transformaci&oacute;n de los discursos en lenguaje natural controlado en esquemas conceptuales &#91;2, 3, 4, 5, 6, 7&#93;.</font></p>     <p><font size="2" face="Verdana"> En esta nueva tendencia se han presentado grandes progresos, pero los esfuerzos a&uacute;n se justifican porque los diferentes trabajos realizados exhiben limitaciones tales como:</font></p>     <p><font size="2" face="Verdana"> - Las dificultades para expresar de manera conjunta la estructura y el dinamismo del mundo para la generaci&oacute;n de diferentes tipos de esquemas conceptuales &#91;6, 7&#93;.</font></p>     <p><font size="2" face="Verdana">- La generaci&oacute;n de un &uacute;nico esquema conceptual a partir del discurso, como es el caso del diagrama entidad-relaci&oacute;n &#91;2, 3&#93; o el diagrama de clases &#91;4&#93;. </font></p>     <p><font size="2" face="Verdana">- La ambig&uuml;edad que se presenta en la definici&oacute;n y aplicaci&oacute;n de las reglas heur&iacute;sticas &#91;2&#93;. </font></p>     <p><font size="2" face="Verdana">- La necesidad de asistencia total o parcial en el proceso por parte de expertos, lo cual dificulta la automatizaci&oacute;n total del mismo &#91;3, 4, 5&#93;.</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana">- La carencia de implementaci&oacute;n de algunos de estos trabajos &#91;2, 6&#93;.</font></p>     <p><font size="2" face="Verdana">Como una forma de soluci&oacute;n a estos problemas, en este art&iacute;culo se emplea un trabajo previo del grupo de Investigaci&oacute;n en Ingenier&iacute;a de Software de la Universidad Nacional de Colombia, los denominados'Esquemas Preconceptuales' &#91;8&#93; y el conjunto de reglas definidas para su traducci&oacute;n a tres diagramas de UML (clases, comunicaci&oacute;n y m&aacute;quina de estados), y se define una implementaci&oacute;n de estos elementos en un lenguaje de programaci&oacute;n (en este caso C#). Con los Esquemas Preconceptuales y sus reglas heur&iacute;sticas de transformaci&oacute;n se atacan dos de los problemas mencionados (las dificultades para expresar dinamismo y estructura de manera conjunta y la generaci&oacute;n de &uacute;nicamente un diagrama) y con la implementaci&oacute;n en C# se solucionan los restantes.</font></p>     <p><font size="2" face="Verdana">La estructura de este art&iacute;culo es la siguiente: en la Secci&oacute;n 2, se revisan los trabajos previos para la obtenci&oacute;n de diagramas UML a partir de lenguajes controlados; en la Secci&oacute;n 3, se presentan los Esquemas Preconceptuales y los diagramas de UML que se pueden obtener a partir de ellos; en la Secci&oacute;n 4, se presentan las reglas heur&iacute;sticas que posibilitan el paso de Esquemas Preconceptuales a diagramas de UML y la implementaci&oacute;n en C# de esas reglas; en la Secci&oacute;n 5, se presenta un caso de estudio; finalmente, en las Secciones 6 y 7, se enuncian las conclusiones y el trabajo futuro respectivamente.</font></p>     <p>&nbsp;</p>     <p><font size="3" face="Verdana"><b>Obtenci&oacute;n de esquemas conceptuales a partir de lenguaje natural controlado empleando reglas heur&iacute;sticas</b></font></p>     <p><font size="2" face="Verdana"> Los trabajos previos que procuran la obtenci&oacute;n de esquemas conceptuales a partir de lenguaje natural se pueden clasificar en tres grupos: los que obtienen esquemas conceptuales de tipo relacional, en este caso el diagrama entidad-relaci&oacute;n, los que obtienen especificaciones orientadas a objetos, diferentes de UML, y los que generan diagramas de UML. A continuaci&oacute;n se examinan las ventajas y desventajas de esos trabajos.</font></p>     <p><font size="2" face="Verdana"><b>Reglas heur&iacute;sticas para la obtenci&oacute;n del diagrama Entidad-Relaci&oacute;n</b></font></p>     <p><font size="2" face="Verdana">Chen propuso un conjunto de once (11) reglas heur&iacute;sticas para facilitar la obtenci&oacute;n del modelo E-R (entidad-relaci&oacute;n) a partir de un discurso en lenguaje natural en ingl&eacute;s &#91;2&#93;. M&aacute;s que reglas, como el mismo Chen anota, lo que presenta en su trabajo son sugerencias sobre cu&aacute;les elementos de un discurso pueden ser considerados entidades, relaciones o atributos. Adem&aacute;s, enuncia algunas reglas que permiten la transformaci&oacute;n de ciertas frases del discurso, por ejemplo,'hay 200 empleados en el departamento' se transformar&iacute;a en'departamento tiene 200 empleados', identificando dos posibles entidades (empleado, departamento) y una relaci&oacute;n entre &eacute;stas. El trabajo de Chen presenta algunas desventajas como:</font></p>     <p><font size="2" face="Verdana">- Son reglas de tipo estructural, ya que generan un diagrama estructural como es el E-R, en el cual no se puede representar adecuadamente el dinamismo del mundo. </font></p>     <p><font size="2" face="Verdana">- Algunas reglas son ambiguas entre s&iacute;, por ejemplo una regla puede definir un sustantivo como atributo y simult&aacute;neamente otra lo puede definir como entidad. </font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana">- La aplicaci&oacute;n de las reglas requiere conocimiento del dominio.</font></p>     <p><font size="2" face="Verdana">- Fue s&oacute;lo una propuesta te&oacute;rica que no se lleg&oacute; a implementar.</font></p>     <p><font size="2" face="Verdana">Un segundo trabajo que procura la obtenci&oacute;n del diagrama entidad-relaci&oacute;n es el de Gangopadhyay &#91;3&#93;, el cual pretende obtener el modelo conceptual de una base de datos a partir de una especificaci&oacute;n en lenguaje natural usando la teor&iacute;a de dependencias conceptuales. Su principal desventaja consiste en que define tan s&oacute;lo la estructura y no procura obtener la parte din&aacute;mica; adem&aacute;s, pese a que se realiz&oacute; la implementaci&oacute;n de las reglas, el proceso debe ser asistido por un experto del &aacute;rea, con el fin de determinar adecuadamente las dependencias entre los diferentes conceptos presentes en el discurso. </font></p>     <p><font size="2" face="Verdana"><b>Obtenci&oacute;n de especificaciones orientadas a objetos, previas a UML</b></font></p>     <p><font size="2" face="Verdana"> Bryant &#91;4&#93; busca la especificaci&oacute;n de los requisitos de una aplicaci&oacute;n de software bas&aacute;ndose en las ideas del lenguaje Two-Level Grammar o TLG &#91;9&#93;, usando un proceso iterativo en el cual se va dando una transformaci&oacute;n a partir de lenguaje natural; en este trabajo, se argumenta que este m&eacute;todo permite la obtenci&oacute;n de un dise&ntilde;o completo del sistema e inclusive una implementaci&oacute;n en c&oacute;digo de &eacute;ste usando una herramienta llamada SDE (Entorno de Desarrollo de Especificaciones por sus siglas en ingl&eacute;s). Entre las ventajas de esta propuesta se puede mencionar el hecho de que se obtiene un dise&ntilde;o orientado a objetos del sistema y se genera c&oacute;digo compilable y ejecutable a partir de ese dise&ntilde;o. Sin embargo, este trabajo posee algunas desventajas:</font></p>     <p><font size="2" face="Verdana">- Es necesario que el interesado especifique todos los requisitos del software hasta que'cada funci&oacute;n se haya especificado completamente' &#91;4&#93;, lo que indica que el proceso no puede ser totalmente automatizado, puesto que se requiere la mediaci&oacute;n de un experto del dominio para culminar la especificaci&oacute;n. </font></p>     <p><font size="2" face="Verdana">- La implementaci&oacute;n que se realiz&oacute; de la propuesta cubre &uacute;nicamente aspectos estructurales del dise&ntilde;o orientado a objetos y no se involucra el dinamismo que aportan los diagramas de interacci&oacute;n. </font></p>     <p><font size="2" face="Verdana">Un segundo trabajo en esta direcci&oacute;n &#91;6&#93; busca cerrar la brecha entre la parte ling&uuml;&iacute;stica y los esquemas conceptuales por medio de la l&oacute;gica de predicados y la teor&iacute;a de conjuntos. Este enfoque es un m&eacute;todo formal, lo que le da ventaja sobre muchos otros trabajos que se basan en reglas heur&iacute;sticas, sin embargo tiene algunas dificultades:</font></p>     <p><font size="2" face="Verdana"> - Su enfoque sirve s&oacute;lo c&oacute;mo gu&iacute;a al analista para indicarle c&oacute;mo elaborar los modelos conceptuales, porque no lleg&oacute; a implementarse.</font></p>     <p><font size="2" face="Verdana">- Los modelos conceptuales obtenidos por el analista no siguen la notaci&oacute;n UML. En este trabajo se obtienen el diagrama OMT de Rumbaugh y el diagrama de comportamiento de Martin. Ambos diagramas son precursores del UML.</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana">- Se debe realizar una separaci&oacute;n previa de la parte est&aacute;tica y la parte din&aacute;mica del discurso, antes de la generaci&oacute;n de cada diagrama. Al hacer esto, se puede perder informaci&oacute;n valiosa para los dos diagramas y, consecuentemente, se pueden generar problemas de completitud y consistencia en los diagramas resultantes. </font></p>     <p><font size="2" face="Verdana"><b> Obtenci&oacute;n de diagramas UML a partir de lenguajes controlados</b></font></p>     <p><font size="2" face="Verdana">La propuesta de Konrad y Cheng &#91;5&#93; busca validar un modelo UML a trav&eacute;s del an&aacute;lisis del discurso que le di&oacute; origen; para ello, los autores proponen una formalizaci&oacute;n de las fases de especificaci&oacute;n y an&aacute;lisis. Este proceso tiene varios aspectos positivos, por ejemplo el hecho de que se usen patrones para la validaci&oacute;n de los modelos, que pueden ser reutilizados en futuras validaciones; adem&aacute;s, este proceso se implement&oacute; en una aplicaci&oacute;n de software. Sin embargo, presenta las siguientes desventajas:</font></p>     <p><font size="2" face="Verdana">- Se requiere un experto en m&eacute;todos formales tanto para agregar nuevos patrones como para adaptar los ya existentes a un dominio diferente, lo cual hace que el proceso deba ser asistido y no pueda automatizarse en su totalidad. </font></p>     <p><font size="2" face="Verdana">- No se automatiza la generaci&oacute;n del modelo UML, sino &uacute;nicamente una validaci&oacute;n del mismo. </font></p>     <p><font size="2" face="Verdana">Un segundo ejemplo en esta tendencia lo constituye el proyecto NIBA &#91;7&#93;, que busca definir un proceso autom&aacute;tico para la obtenci&oacute;n de varios diagramas de UML tomando como punto de partida los requisitos del sistema escritos en un lenguaje natural controlado. Para lograr su objetivo, el proyecto NIBA usa un esquema intermedio llamado KCPM (Modelo Conceptual de Predise&ntilde;o de Klagenfurt por sus siglas en ingl&eacute;s) el cual est&aacute; compuesto de diferentes artefactos a partir de los cuales se pueden especificar los aspectos din&aacute;micos y estructurales del sistema. La principal desventaja de este enfoque es que el KCPM no es unificado y posee diferentes artefactos seg&uacute;n el diagrama que se espera obtener. En otras palabras, hay que elaborar unos artefactos para obtener la parte estructural (diagrama de clases, por ejemplo) y otros para la parte din&aacute;mica (diagrama de actividades, por ejemplo), lo cual puede conducir a errores de consistencia y completitud de la informaci&oacute;n que se desprende del discurso.</font></p>     <p><font size="2" face="Verdana">Los esquemas preconceptuales y los diagramas de UML 2.0</font></p>     <p><font size="2" face="Verdana">En la Secci&oacute;n anterior se identificaron varios problemas asociados con la generaci&oacute;n autom&aacute;tica de esquemas conceptuales de UML a partir de un lenguaje controlado; algunos de esos problemas se superan con los denominados Esquemas Preconceptuales &#91;8&#93;, cuyas componentes se pueden visualizar en la <a href="#figura1">Figura 1</a> y tienen los siguientes significados:</font></p>     <p align="center"><font size="2" face="Verdana"><img src="/img/revistas/rfiua/n44/n44a12i01.gif"><a name="figura1" id="figura1"></a> </font></p>     <p><font size="2" face="Verdana"><b>Figura 1</b> S&iacute;mbolos b&aacute;sicos de los Esquemas Preconceptuales</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana">- Los conceptos se suelen asociar con sustantivos. Cada concepto s&oacute;lo puede aparecer una vez en un Esquema Preconceptual. </font></p>     <p><font size="2" face="Verdana">- Las relaciones estructurales son del tipo'es' y'tiene'.</font></p>     <p><font size="2" face="Verdana">- Las relaciones din&aacute;micas son verbos que denotan acciones (tales como'registra','paga','cumple','asigna','suspende','solicita', etc.).</font></p>     <p><font size="2" face="Verdana">- Los condicionales son requisitos que se deben cumplir para que se realice una relaci&oacute;n din&aacute;mica (por ejemplo'usuario.multa&gt;0','recurso.estado=&rsquo;extraviado&rsquo;', etc.). </font></p>     <p><font size="2" face="Verdana">- Las conexiones son v&iacute;nculos entre conceptos y relaciones (din&aacute;micas o estructurales) o entre relaciones y conceptos.</font></p>     <p><font size="2" face="Verdana">- Las implicaciones son v&iacute;nculos del tipo causa- efecto entre relaciones din&aacute;micas o entre condicionales y relaciones din&aacute;micas.</font></p>     <p><font size="2" face="Verdana">- Las referencias son elementos para unir conceptos que se encuentran f&iacute;sicamente distantes en un esquema preconceptual. </font></p>     <p><font size="2" face="Verdana"> Los esquemas preconceptuales se escriben en forma de triadas, que son conjuntos concepto_ fuente-relaci&oacute;n (din&aacute;mica o estructural)-concepto_ destino; por ejemplo'Bibliotecario suspende cuenta' o'Persona tiene nombre'.</font></p>     <p><font size="2" face="Verdana">La forma en que los esquemas preconceptuales resuelven los dos problemas iniciales, que se listaron en la introducci&oacute;n para la generaci&oacute;n autom&aacute;tica de esquemas conceptuales a partir de discursos en lenguaje natural controlado, es la siguiente:</font></p>     <p><font size="2" face="Verdana"> - Estos esquemas permiten la coexistencia de elementos de tipo estructural y de tipo din&aacute;mico en su sintaxis, de forma que el discurso se puede expresar gr&aacute;ficamente de manera cercana a como se har&iacute;a en lenguaje natural controlado. En la <a href="#figura1">Figura 1</a>, los conceptos y las relaciones estructurales permiten definir la parte estructural, en tanto que las relaciones din&aacute;micas, las implicaciones y los condicionales permiten expresar el dinamismo  y el comportamiento de los conceptos. Adem&aacute;s, los Esquemas Preconceptuales se pueden obtener de un discurso expresado en una forma de lenguaje natural controlado, que se denomina UN-Lencep &#91;10&#93;.</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana">- Los esquemas preconceptuales poseen 14 reglas heur&iacute;sticas para la conversi&oacute;n a tres diagramas de UML (y no a un solo diagrama como es el caso de varios de los trabajos analizados), que son los diagramas de clases, comunicaci&oacute;n y m&aacute;quina de estados &#91;11&#93;. En s&iacute;ntesis, los esquemas preconceptuales son una representaci&oacute;n intermedia entre el lenguaje natural y los esquemas conceptuales de UML. La selecci&oacute;n de los diagramas que se pueden obtener a partir de los Esquemas Preconceptuales se debe a las siguientes razones &#91;12&#93;: </font></p>     <p><font size="2" face="Verdana">- El diagrama de clases de UML se usa para describir los tipos de objetos en un sistema y las relaciones entre estos; adem&aacute;s muestra las propiedades y las operaciones de las clases y qu&eacute; restricciones hay para las relaciones entre objetos, lo que permite modelar la parte estructural de un dominio.</font></p>      <p><font size="2" face="Verdana">- El diagrama de comunicaci&oacute;n es un diagrama de interacci&oacute;n que hace &eacute;nfasis en las conexiones entre los objetos de un sistema y la secuencia en que estas conexiones se producen, suministrando una idea del dinamismo del dominio.</font></p>     <p><font size="2" face="Verdana">- El diagrama de m&aacute;quina de estados es una t&eacute;cnica para describir el comportamiento de un objeto del sistema; est&aacute; compuesto principalmente por estados y transiciones, donde una transici&oacute;n lleva al objeto de un estado a otro. En este caso se suministra una idea clara del comportamiento de un objeto.</font></p>      <p><font size="2" face="Verdana">Estas caracter&iacute;sticas&mdash;estructura, dinamismo y comportamiento&mdash;son las recomendadas para analizar en profundidad la especificaci&oacute;n de una aplicaci&oacute;n de software que se pretenda construir &#91;1&#93;.</font></p>     <p>&nbsp;</p>     <p><font size="3" face="Verdana"><b>Implementaci&oacute;n en C# de las reglas de transformaci&oacute;n de esquemas preconceptuales   en diagramas de UML 2.0 </b></font></p>     <p><font size="2" face="Verdana">Los &uacute;ltimos tres problemas listados en la Introducci&oacute;n de este art&iacute;culo se ligan con la manera como se implementan las reglas de transformaci&oacute;n, con el fin de generar los esquemas conceptuales respectivos. En este sentido, las reglas heur&iacute;sticas que acompa&ntilde;an a los Esquemas Preconceptuales tienen una &uacute;nica manera de aplicaci&oacute;n, especialmente porque se expresan en t&eacute;rminos del lenguaje C#, por lo cual eliminan completamente la ambig&uuml;edad. Adem&aacute;s, para su aplicaci&oacute;n no se requiere ning&uacute;n tipo de asistencia de parte del analista o de cualquier otro experto. Finalmente, estas reglas se encuentran implementadas en un prototipo que genera, a partir de un discurso expresado en un Esquema Preconceptual, los diagramas de clases, comunicaci&oacute;n y m&aacute;quina de estados de UML 2.0.</font></p>     <p><font size="2" face="Verdana">Si bien se implementaron en su totalidad las 14 reglas enunciadas por Zapata et al. &#91;11&#93;, por razones de espacio, en la <a href="#tabla1">Tabla 1</a> s&oacute;lo se enuncian algunas de ellas, seguidas por el respectivo c&oacute;digo en C# que las implementa. La nomenclatura de las reglas corresponde al trabajo de Zapata et al. &#91;11&#93;.</font></p>     <p><font size="2" face="Verdana"> <b>Tabla 1 </b>C&oacute;digo en C# de las reglas para la generaci&oacute;n de esquemas UML a partir de esquemas preconceptuales</font></p>     ]]></body>
<body><![CDATA[<p align="center"><font size="2" face="Verdana"><img src="/img/revistas/rfiua/n44/n44a12i02.gif"><a name="tabla1" id="tabla1"></a>    </font></p>     <p align="center"><font size="2" face="Verdana"><img src="/img/revistas/rfiua/n44/n44a12i03.gif">    </font></p>     <p align="center"><font size="2" face="Verdana"><img src="/img/revistas/rfiua/n44/n44a12i04.gif">    </font></p>     <p align="center"><font size="2" face="Verdana"><img src="/img/revistas/rfiua/n44/n44a12i05.gif">    </font></p>     <p align="center"><font size="2" face="Verdana"><img src="/img/revistas/rfiua/n44/n44a12i06.gif">    </font></p>     <p align="center"><font size="2" face="Verdana"><img src="/img/revistas/rfiua/n44/n44a12i07.gif">    </font></p>     <p>&nbsp;</p>     <p>&nbsp;</p>     <p><font size="3" face="Verdana"><b>Caso de estudio</b></font></p>     <p><font size="2" face="Verdana">El prototipo que se construy&oacute; para aplicar las reglas de la secci&oacute;n anterior, utiliza como entrada un Esquema Preconceptual elaborado en Microsoft Visio&trade;, con una plantilla previamente definida, y arroja como resultado un archivo de texto con los elementos identificados para cada uno de los diagramas mencionados. Como caso de estudio se presenta el Esquema Preconceptual de una biblioteca ficticia, el cual se muestra en la <a href="#figura2">figura 2</a>. La <a href="#figura3">figura 3</a> muestra una interfaz gr&aacute;fica deusuario del prototipo. </font></p>     ]]></body>
<body><![CDATA[<p align="center"><font size="2" face="Verdana"><img src="/img/revistas/rfiua/n44/n44a12i08.gif"><a name="figura2" id="figura2"></a>    </font></p>     <p><font size="2" face="Verdana"><b>Figura 2</b> Esquema Preconceptual de una biblioteca ficticia</font></p>     <p><font size="2" face="Verdana">Una vez se ha cargado el Esquema Preconceptual de la <a href="#figura2">Figura 2</a>, el prototipo arroja como resultado un archivo de texto, cuyo contenido es el siguiente: 2</font></p>     <p align="center"><font size="2" face="Verdana"><img src="/img/revistas/rfiua/n44/n44a12i09.gif"><a name="figura3" id="figura3"></a>    </font></p>     <p><font size="2" face="Verdana"><b>Figura 3</b> Interfaz gr&aacute;fica de usuario del prototipo para generar los diagramas de clases, comunicaci&oacute;n y m&aacute;quina de estados a partir de un Esquema Preconceptual dado </font></p>     <p align="center"><font size="2" face="Verdana"><img src="/img/revistas/rfiua/n44/n44a12i10.gif"></font></p>     <p align="center"><font size="2" face="Verdana"><img src="/img/revistas/rfiua/n44/n44a12i11.gif"></font></p>     <p align="center"><font size="2" face="Verdana"><img src="/img/revistas/rfiua/n44/n44a12i12.gif"></font></p>      <p><font size="2" face="Verdana">N&oacute;tese que, adem&aacute;s del diagrama de clases, se generaron tres (3) diagramas de comunicaci&oacute;n y dos (2) diagramas de m&aacute;quina de estados, correspondientes estos &uacute;ltimos a los conceptos'Recurso' y'Usuario'. El prototipo identifica las reglas que puede aplicar de acuerdo con las diferentes triadas que logra identificar en el Esquema Preconceptual; por ejemplo, para la triada'persona tiene nombre' selecciona la regla 4.1.2 y para'usuario solicita recurso' aplica la regla 4.1.5. Para esta &uacute;ltima triada, como tambi&eacute;n pertenece a una implicaci&oacute;n, aplica otra de las reglas que no se describieron en este art&iacute;culo, para identificar'solicita' como un mensaje del diagrama de comunicaci&oacute;n, y luego aplica la regla 4.3.1 para definir el estado'solicitado', perteneciente al diagrama de m&aacute;quina de estados de'Recurso'.  </font></p>     <p><font size="2" face="Verdana">Se debe aclarar que el prototipo genera siempre el mismo conjunto de diagramas de UML para un Esquema Preconceptual dado. Sin embargo, pueden existir muchos Esquemas Preconceptuales que representen el mismo discurso en lenguaje natural. Por ser una forma de lenguaje controlado, los Esquemas Preconceptuales requieren un procesamiento previo, que corre a cargo de los analistas, pero en el cual los interesados en el desarrollo de la aplicaci&oacute;n de software pueden participar activamente; desde el punto de vista del analista, el conocimiento de las reglas de conversi&oacute;n le puede suministrar herramientas de comunicaci&oacute;n con el interesado; desde la perspectiva del interesado, las sugerencias que le haga el analista en t&eacute;rminos de los Esquemas Preconceptuales pueden ser claramente entendidas, y pueden suministrar pistas para corregir frases que puedan presentar ambig&uuml;edad en el discurso. De esta manera, el prototipo implementado contribuye a mejorar la comunicaci&oacute;n entre analistas e interesados, con el fin de mejorar la calidad de los diagramas de UML resultantes. </font></p>     ]]></body>
<body><![CDATA[<p></p>     <p><font size="3" face="Verdana"><b>Conclusiones</b></font></p>     <p><font size="2" face="Verdana">En este art&iacute;culo se present&oacute; un prototipo elaborado en C# que permite la obtenci&oacute;n autom&aacute;tica de tres diagramas UML 2.0 (clases, comunicaci&oacute;n y m&aacute;quina de estados) a partir de un discurso representado mediante los denominados Esquemas Preconceptuales. Las contribuciones principales de este trabajo son:</font></p>     <p><font size="2" face="Verdana">- El interesado no tiene que conocer las reglas de conversi&oacute;n del Esquema Preconceptual en los diagramas de UML mencionados. Tampoco es necesario que conozca los detalles correspondientes a cada uno de los diagramas mencionados. </font></p>     <p><font size="2" face="Verdana">- Al ser un proceso autom&aacute;tico se evitan los errores humanos en la aplicaci&oacute;n de las reglas. En este sentido, el prototipo supera los trabajos previos que requer&iacute;an asistencia por parte del analista en la generaci&oacute;n de los diagramas, los que presentaban reglas ambiguas y los que no estaban implementados. </font></p>     <p><font size="2" face="Verdana">- Si bien es cierto que los diagramas generados est&aacute;n lejos de ser diagramas de dise&ntilde;o, el prototipo presentado permite obtener versiones preliminares de estos diagramas, que puedan servir como insumo para un proceso de refinamiento iterativo de ellos, con la participaci&oacute;n activa de los interesados. </font></p>     <p><font size="2" face="Verdana">- Este prototipo puede servirle al analista para estimar cu&aacute;nta informaci&oacute;n relacionada con el dominio debe recolectar, por ejemplo, si obtiene muchas clases sin atributos, el analista intuir&aacute; que falta informaci&oacute;n del objeto del negocio correspondiente a esa clase. Esta informaci&oacute;n podr&aacute; ser recolectada de manera sencilla, haci&eacute;ndole las preguntas correctas al interesado en un lenguaje entendible para &eacute;l. Por ejemplo, en el caso de estudio, el analista podr&iacute;a preguntar'&iquest;Es cierto que un libro tiene ISBN?' y de esta manera estar&iacute;a expresando la triada'libro tiene ISBN' en forma interrogativa, buscando su validaci&oacute;n por parte del interesado. </font></p>     <p><font size="2" face="Verdana">- Los diagramas obtenidos son consistentes entre s&iacute;. Por ejemplo, se puede notar en el caso de estudio que existe un estado'solicitado' en el diagrama de m&aacute;quina de estados correspondiente a'Recurso', el cual posee un mensaje llamado'solicita()' correspondiente a una comunicaci&oacute;n que llega a la clase de objeto'Recurso' en el diagrama de comunicaci&oacute;n y, a su vez, posee una operaci&oacute;n'solicita()' perteneciente a la clase'Recurso' en el diagrama de clases. En el caso de que el analista estuviera creando cada uno de los diagramas de forma manual o asistida por una herramienta que no realice este tipo de an&aacute;lisis, habr&iacute;a una alta probabilidad de que estas reglas de consistencia no se tuvieran en cuenta al generar los diagramas. </font></p>     <p>&nbsp;</p>     <p><font size="3" face="Verdana"><b>Trabajo futuro</b></font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana">Las l&iacute;neas de trabajo futuro que se pueden desprender del an&aacute;lisis realizado en este art&iacute;culo son: </font></p>     <p><font size="2" face="Verdana">- La integraci&oacute;n del prototipo presentado con un entorno gr&aacute;fico que permita una f&aacute;cil edici&oacute;n tanto de los Esquemas Preconceptuales como de los diagramas UML resultantes.</font></p>     <p><font size="2" face="Verdana">- La definici&oacute;n e implementaci&oacute;n de un conjunto de reglas que le muestren al interesado problemas potenciales de completitud o consistencia, por ejemplo el hecho de que una relaci&oacute;n din&aacute;mica estuviera fuera de un flujo de implicaciones (lo cual genera errores al momento de generar los diagramas). </font></p>     <p><font size="2" face="Verdana">- La identificaci&oacute;n de informaci&oacute;n presente en el Esquema Preconceptual relacionada con otros diagramas UML 2.0 como el diagrama de casos de uso o el diagrama de actividades. </font></p>     <p><font size="2" face="Verdana">- El incremento en la capacidad expresiva del Esquema Preconceptual para expresar interacciones entre relaciones din&aacute;micas diferentes a la implicaci&oacute;n.</font></p>     <p><font size="2" face="Verdana">- La elaboraci&oacute;n de una aplicaci&oacute;n que permita obtener autom&aacute;ticamente un Esquema Preconceptual a partir de una serie de frases en UN-Lencep &#91;10&#93;. </font></p>     <p></p>     <p><font size="3" face="Verdana"><b>Referencias</b></font></p>     <!-- ref --><p><font size="2" face="Verdana">1. OMG.'OMG Unified Modeling Language Specification'. Object Management Group. <a href="http://www.omg.org/UML/" target="_blank">&#91;http://www.omg.org/UML/&#93;</a>. Consultada el 10 de Junio de 2007.</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=000111&pid=S0120-6230200800020001200001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><font size="2" face="Verdana">2. P. Chen.'English Sentence Structure and Entity- Relationship Diagram'. <i>Information Sciences</i>. Vol. 1. 1983. pp. 127-149.</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=000112&pid=S0120-6230200800020001200002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><font size="2" face="Verdana">3. A. Gangopadhyay.'Conceptual modeling from natural language functional specifications'. <i>Artificial Intelligence in Engineering</i>. Vol. 15. 2001. pp. 207- 218.</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=000113&pid=S0120-6230200800020001200003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><font size="2" face="Verdana">4. B. R. Bryant.'Object-Oriented Natural Language Requirements Specification'. 23<sup>rd</sup><i> Austalasian Computer Science Conference</i>. Canberra. 2000. pp. 24-30.</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=000114&pid=S0120-6230200800020001200004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><font size="2" face="Verdana"> 5. S. Konrad, B. H. C. Cheng.'Automated Analysis of Natural Language Properties for UML Models'.<i> Satellite Events at MoDELS 2005 Conference, Lecture Notes in Computer Science.</i> N.&deg; 3844. 2006. pp. 48-57.</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=000115&pid=S0120-6230200800020001200005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><font size="2" face="Verdana">6. N. Juristo, J. Morant, A. Moreno.'A formal approach for generating OO specifications from natural language'. <i>The Journal of Systems and Software</i>. Vol. 48. 1999. pp. 139-153.</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=000116&pid=S0120-6230200800020001200006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><font size="2" face="Verdana">7. G. Fliedl, Ch. Kop, H. Mayr, W. Mayerthaler, Ch. Winkler,'Linguistically Based Requirements Engineering: The Niba-Project', <i>Data Knowledge Engineering.</i> Vol. 35. 1999. pp. 111-120.</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=000117&pid=S0120-6230200800020001200007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><font size="2" face="Verdana">8. C. M. Zapata, A. Gelbukh, F. Arango.'Pre-conceptual Schema: A Conceptual-Graph-Like Knowledge Representation for Requirements Elicitation'. <i>Lecture Notes in Computer Science.</i> Vol. 4293. 2006. pp. 17-27.</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=000118&pid=S0120-6230200800020001200008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><font size="2" face="Verdana">9. A. vanWijngaarden.'Orthogonal design and description of a formal language'.<i> Technical report. Mathematisch Centrum.</i> Amsterdam. 1965. pp. 1-25.</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=000119&pid=S0120-6230200800020001200009&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. M. Zapata, A. Gelbukh, F. Arango.'UN-Lencep: Obtenci&oacute;n Autom&aacute;tica de Diagramas UML a partir de un Lenguaje Controlado'. A. Hern&aacute;ndez, J. L. Zechinelli (Eds.) <i>Avances en la Ciencia de la Computaci&oacute;n</i>. Guanajuato, Mexican Society of Computer Science, 2006. pp. 254-259.</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=000120&pid=S0120-6230200800020001200010&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><font size="2" face="Verdana">11. C. M. Zapata, F. Arango, A. Gelbukh.'Pre-conceptual Schema: a UML isomorphism for automatic obtaining of UML conceptual schemas'.<i> Research in Computing Science: Advances in Computer Science and Engineering.</i> Vol. 19. 2006. pp. 3-13.</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=000121&pid=S0120-6230200800020001200011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><font size="2" face="Verdana">12. M. Fowler. UML Distilled. 3<sup>th</sup> ed. Boston. <i>Pearson Education.</i> 2004. pp. 1-112.</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=000122&pid=S0120-6230200800020001200012&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><p><font size="2" face="Verdana">(Recibido el 20 de junio de 2007. Aceptado el 29 de enero de 2008)</font></p>     <p><font size="2" face="Verdana">   * Autor de correspondencia: tel&eacute;fono: + 57 + 4 + 425 53 74, fax: + 57 + 4 + 425 52 27, correo electr&oacute;nico: <a href="mailto:cmzapata@unalmed.edu.co ">cmzapata@unalmed.edu.co</a>(C. M. Zapata)</font></p>     <p>&nbsp;</p>      ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="book">
<collab>OMG</collab>
<source><![CDATA[OMG Unified Modeling Language Specification]]></source>
<year>10 d</year>
<month>e </month>
<day>Ju</day>
<publisher-name><![CDATA[Object Management Group]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Chen]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[English Sentence Structure and Entity- Relationship Diagram]]></article-title>
<source><![CDATA[Information Sciences]]></source>
<year>1983</year>
<volume>1</volume>
<page-range>127-149</page-range></nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Gangopadhyay]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Conceptual modeling from natural language functional specifications]]></article-title>
<source><![CDATA[Artificial Intelligence in Engineering]]></source>
<year>2001</year>
<volume>15</volume>
<page-range>207- 218</page-range></nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bryant]]></surname>
<given-names><![CDATA[B. R]]></given-names>
</name>
</person-group>
<source><![CDATA[Object-Oriented Natural Language Requirements Specification]]></source>
<year>2000</year>
<edition>23</edition>
<page-range>24-30</page-range><publisher-loc><![CDATA[Canberra ]]></publisher-loc>
<publisher-name><![CDATA[Austalasian Computer Science Conference]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Konrad]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Cheng]]></surname>
<given-names><![CDATA[B. H. C]]></given-names>
</name>
</person-group>
<source><![CDATA[Automated Analysis of Natural Language Properties for UML Models]]></source>
<year>2006</year>
<volume>3844</volume>
<conf-name><![CDATA[ Conference, Lecture Notes in Computer Science]]></conf-name>
<conf-date>2005</conf-date>
<conf-loc> </conf-loc>
<page-range>48-57</page-range></nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Juristo]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
<name>
<surname><![CDATA[Morant]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Moreno]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A formal approach for generating OO specifications from natural language]]></article-title>
<source><![CDATA[The Journal of Systems and Software]]></source>
<year>1999</year>
<volume>48</volume>
<page-range>139-153</page-range></nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="journal">
<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[Mayr]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
<name>
<surname><![CDATA[Mayerthaler]]></surname>
<given-names><![CDATA[W]]></given-names>
</name>
<name>
<surname><![CDATA[Winkler]]></surname>
<given-names><![CDATA[Ch]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Linguistically Based Requirements Engineering: The Niba-Project]]></article-title>
<source><![CDATA[Data Knowledge Engineering]]></source>
<year>1999</year>
<volume>35</volume>
<page-range>111-120</page-range></nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Zapata]]></surname>
<given-names><![CDATA[C. M]]></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 Schema: A Conceptual-Graph-Like Knowledge Representation for Requirements Elicitation]]></article-title>
<source><![CDATA[Lecture Notes in Computer Science]]></source>
<year>2006</year>
<volume>4293</volume>
<page-range>17-27</page-range></nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[vanWijngaarden]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA[Orthogonal design and description of a formal language: Technical report]]></source>
<year>1965</year>
<page-range>1-25</page-range><publisher-loc><![CDATA[Amsterdam ]]></publisher-loc>
<publisher-name><![CDATA[Mathematisch Centrum]]></publisher-name>
</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. M]]></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[UN-Lencep: Obtención Automática de Diagramas UML a partir de un Lenguaje Controlado]]></article-title>
<person-group person-group-type="editor">
<name>
<surname><![CDATA[Hernández]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Zechinelli]]></surname>
<given-names><![CDATA[J. L]]></given-names>
</name>
</person-group>
<source><![CDATA[Avances en la Ciencia de la Computación]]></source>
<year>2006</year>
<page-range>254-259</page-range><publisher-loc><![CDATA[Guanajuato ]]></publisher-loc>
<publisher-name><![CDATA[Mexican Society of Computer Science]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B11">
<label>11</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Zapata]]></surname>
<given-names><![CDATA[C. M]]></given-names>
</name>
<name>
<surname><![CDATA[Arango]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Gelbukh]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Pre-conceptual Schema: a UML isomorphism for automatic obtaining of UML conceptual schemas]]></article-title>
<source><![CDATA[Research in Computing Science: Advances in Computer Science and Engineering]]></source>
<year>2006</year>
<volume>19</volume>
<page-range>3-1</page-range></nlm-citation>
</ref>
<ref id="B12">
<label>12</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Fowler]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[UML Distilled]]></source>
<year>2004</year>
<edition>3</edition>
<page-range>1-112</page-range><publisher-loc><![CDATA[Boston ]]></publisher-loc>
<publisher-name><![CDATA[Pearson Education]]></publisher-name>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
