<?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>0012-7353</journal-id>
<journal-title><![CDATA[DYNA]]></journal-title>
<abbrev-journal-title><![CDATA[Dyna rev.fac.nac.minas]]></abbrev-journal-title>
<issn>0012-7353</issn>
<publisher>
<publisher-name><![CDATA[Universidad Nacional de Colombia]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S0012-73532007000300027</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[UN MÉTODO PARA EL REFINAMIENTO INTERACTIVO DEL DIAGRAMA DE CLASES DE UML]]></article-title>
<article-title xml:lang="en"><![CDATA[A METHOD FOR INTERACTIVE REFINEMENT OF UML CLASS DIAGRAM]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[M. ZAPATA]]></surname>
<given-names><![CDATA[CARLOS]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[MARY ESTRADA]]></surname>
<given-names><![CDATA[BETSY]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[ARANGO I]]></surname>
<given-names><![CDATA[FERNANDO]]></given-names>
</name>
<xref ref-type="aff" rid="A03"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad Nacional de Colombia Escuela de Sistemas Grupo de Investigación UN-INFO]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<aff id="A02">
<institution><![CDATA[,Universidad Nacional de Colombia Escuela de Sistemas Grupo de Investigación UN-INFO]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<aff id="A03">
<institution><![CDATA[,Universidad Nacional de Colombia Escuela de Sistemas Grupo de Investigación UN-INFO]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>11</month>
<year>2007</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>11</month>
<year>2007</year>
</pub-date>
<volume>74</volume>
<numero>153</numero>
<fpage>253</fpage>
<lpage>266</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_arttext&amp;pid=S0012-73532007000300027&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_abstract&amp;pid=S0012-73532007000300027&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_pdf&amp;pid=S0012-73532007000300027&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[Durante el proceso de elicitación de requisitos se presentan problemas de comunicación entre analistas e interesados que suelen ocasionar pérdidas de requisitos funcionales. Estas pérdidas se aminoran mediante el refinamiento de los esquemas conceptuales, en particular el diagrama de clases de UML. Existen algunos acercamientos al refinamiento del diagrama de clases, pero que no realizan ciclos de interacción con el interesado; otros enfoques realizan refinamiento interactivo del diagrama entidad-relación, un diagrama que no posee toda la información contenida en el diagrama de clases. En este artículo se realiza el refinamiento del diagrama de clases de UML mediante la interacción con el interesado. Para ello, se proponen reglas de completitud que se disparan en lenguaje natural y se emplea un corpus de diagramas de clases para complementar el conocimiento del analista en un determinado dominio. El análisis de completitud propuesto se ilustra con un prototipo en la herramienta UNC-Diagramador y se ejemplifica con un caso de estudio.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[Along the requirements elicitation process, communication problems appear between analysts and stakeholders; usually, these problems cause losing of functional requirements. Refinement of conceptual schemas-particularly class diagram-lessens the impact of these losses. Some approaches to the refinement of class diagram have been proposed, but they do not evidence cycles of interaction with the stakeholder; other approaches show interactive refinement of the Entity-Relationship diagram, which does not have all the information contained in class diagram. In this paper, we propose the refinement of UML class diagram through interaction with stakeholders. To achieve this goal, we propose completeness rules in natural language and the use of a corpus of class diagrams for complementing the analyst knowledge in a specific domain. Finally, we illustrate completeness analysis with a prototype in the UNC-Diagrammer tool and we propose a case study.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[Refinamiento]]></kwd>
<kwd lng="es"><![CDATA[reglas de completitud]]></kwd>
<kwd lng="es"><![CDATA[diagrama de clases de UML]]></kwd>
<kwd lng="es"><![CDATA[corpus de diagramas]]></kwd>
<kwd lng="en"><![CDATA[Refinement]]></kwd>
<kwd lng="en"><![CDATA[Completeness rules]]></kwd>
<kwd lng="en"><![CDATA[UML Class Diagram]]></kwd>
<kwd lng="en"><![CDATA[diagram corpus]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p align="center"><font size="4" face="Verdana, Arial, Helvetica, sans-serif"><b>UN       M&Eacute;TODO   PARA EL REFINAMIENTO INTERACTIVO DEL DIAGRAMA DE CLASES DE UML</b></font></p>      <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>A METHOD FOR INTERACTIVE REFINEMENT OF UML CLASS DIAGRAM</b></font></p>      <p align="center">&nbsp;</p>      <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>CARLOS M. ZAPATA</b>    <br>   Grupo de Investigación UN-INFO. Escuela de Sistemas .Universidad  Nacional de Colombia,<a href="mailto:cmzapata@unal.edu.co">cmzapata@unal.edu.co</a> </font></p>      <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>BETSY MARY ESTRADA</b>    <br>   Grupo de Investigación UN-INFO. Escuela de Sistemas. Universidad  Nacional de Colombia, sede Medellín </font></p>      <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>FERNANDO ARANGO I</b>    <br>   Grupo de Investigación UN-INFO. Escuela de Sistemas. Universidad  Nacional de Colombia, sede Medellín </font></p>     <p align="center">&nbsp;</p>     ]]></body>
<body><![CDATA[<p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Recibido       para revisar enero 15 de 2007, aceptado julio 24 de 2007, versión final   julio 30 de 2007</b></font></p>     <p>&nbsp;</p> <hr>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i><b>RESUMEN: </b></i>Durante     el proceso de elicitación de requisitos se presentan problemas   de comunicación entre analistas e interesados que suelen ocasionar pérdidas de   requisitos funcionales. Estas pérdidas se aminoran mediante el refinamiento de   los esquemas conceptuales, en particular el diagrama de clases de UML. Existen   algunos acercamientos al refinamiento del diagrama de clases, pero que no realizan   ciclos de interacción con el interesado; otros enfoques realizan refinamiento   interactivo del diagrama entidad-relación, un diagrama que no posee toda la información   contenida en el diagrama de clases. En este artículo se realiza el refinamiento   del diagrama de clases de UML mediante la interacción con el interesado. Para   ello, se proponen reglas de completitud que se disparan en lenguaje natural y   se emplea un corpus de diagramas de clases para complementar el conocimiento   del analista en un determinado dominio. El análisis de completitud propuesto   se ilustra con un prototipo en la herramienta UNC-Diagramador y se ejemplifica   con un caso de estudio. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i><b>PALABRAS CLAVE:</b></i> Refinamiento, reglas de completitud,   diagrama de clases de UML, corpus de diagramas. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><i>ABSTRACT: </i></b>Along     the requirements elicitation process, communication problems appear between     analysts and stakeholders; usually, these problems cause losing of functional     requirements. Refinement of conceptual schemas—particularly class diagram—lessens     the impact of these losses. Some approaches to the refinement of class diagram     have been proposed, but they do not evidence cycles of interaction with the     stakeholder; other approaches show interactive refinement of the Entity-Relationship     diagram, which does not have all the information contained in class diagram.     In this paper, we propose the refinement of UML class diagram through interaction     with stakeholders. To achieve this goal, we propose completeness rules in     natural language and the use of a corpus of class diagrams for complementing     the analyst knowledge in a specific domain. Finally, we illustrate completeness     analysis with a prototype in the UNC-Diagrammer tool and we propose a case   study. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><i>KEYWORDS:</i></b> Refinement, Completeness rules, UML Class Diagram, diagram  corpus.</font></p>   <hr>     <p>&nbsp;</p>     <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>1. INTRODUCCIÓN</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Durante el proceso     de elicitación de Requisitos del software se procura la  captura y especificación de requisitos funcionales de los interesados (Leite,  1987). </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Con ello se busca que los esquemas conceptuales reflejen tales requisitos,  y el producto final en realidad satisfaga las necesidades especificadas.</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Sin embargo, en     este proceso se presentan problemas de comunicación entre  los analistas y los interesados, debido a la diferencia de conocimientos entre  ellos: los interesados conocen el dominio del problema (el cual se suele expresar  en lenguaje natural), en tanto que los analistas conocen el lenguaje técnico  de modelamiento. Este problema de comunicación puede ocasionar pérdidas de  requisitos funcionales, que impiden satisfacer las necesidades del interesado  (Zapata y Arango, 2005).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Algunos autores     proponen un chequeo de completitud de esquemas conceptuales como solución al problema de comunicación entre analistas e interesados. Estos  chequeos suelen emplear tres tipos de reglas dependiendo de la información  evaluada sobre el modelo conceptual: las reglas sintácticas, las semánticas  y las pragmáticas (Lindland et. al, 1994, Shanks y Darke, 1998, Krogstie <i>et  al</i>., 1995, Buchholz <i>et al.</i>, 1995).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Sin embargo, aún subsisten dos tipos de problemas:</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En algunos de     los análisis     de completitud propuestos para los esquemas conceptuales no se tiene en cuenta  al interesado.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Una de las propuestas     que interactúa con el interesado realiza el análisis  de completitud para el diagrama entidad-relación, diagrama que no contiene  toda la información suministrada por el diagrama de clases (Buchholz <i>et.  al.</i>, 1995).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En este artículo, se propone un método     para el refinamiento interactivo del diagrama de clases de UML, con los siguientes  elementos:</font></p> <ul>    <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Un conjunto       de reglas de completitud sintáctica, semántica y pragmática para el análisis       de diagramas de clases.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Un corpus que incluye un     conjunto de diagramas de diferentes dominios, con el fin de complementar     la experiencia del analista.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Un diálogo     controlado con el interesado para realizar el refinamiento del diagrama.</font></li>     </ul>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El método se incluyó dentro     de la herramienta UNC-Diagramador (Zapata <i>et  al.</i>, 2006c), actualmente en desarrollo en la Escuela de Sistemas de la  Universidad Nacional de Colombia, y se ejemplifica con un caso de estudio  relacionado con un sistema de solicitud de artículos.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Este artículo tiene la siguiente estructura: en la Sección 2 se define la  completitud de los modelos conceptuales; en la Sección 3 se introducen algunos  trabajos realizados sobre completitud; en la Sección 4 se presenta la herramienta  UNC-Diagramador y el corpus de diagramas; la Sección 5 expone el método propuesto;  en la Sección 6 se ejemplifica el método con un caso de estudio y finalmente  en la Sección 7 se presentan las conclusiones y trabajo futuro.</font></p>     <p>&nbsp;</p>     <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>2. COMPLETITUD DE ESQUEMAS CONCEPTUALES</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La completitud     es uno de los elementos que determina la calidad de los esquemas conceptuales;     se dice que un modelo es completo si contiene toda la información  relevante y correcta del dominio. Cuando se evalúa la completitud de un modelo,  se toman como referencia los requisitos del interesado (Snoeck <i>et al.</i>,  2003). El chequeo de completitud es una tarea difícil, ya que los interesados  no siempre están familiarizados con la estructura de los esquemas conceptuales  (Zowghi y Gervasi, 2003). </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Algunos investigadores (Buchholz <i>et. al</i>., 1995, Moody <i>et al.</i>,  2003, McGregor, 1999, Lindland <i>et al.</i>, 1994, Shanks y Darke, 1998, Krogstie <i>et  al</i>., 1995, Leung y Bolloju 2005, entre otros) han enfocado sus trabajos  en la búsqueda de métodos para la obtención de modelos más completos, ya que  un modelo más completo—especialmente en las primeras fases del proceso de desarrollo  de una pieza de software—puede reducir el costo y tiempo total del producto  final. Los esquemas conceptuales generados en la fase de análisis del proceso  de desarrollo del software son los primeros modelos que ilustran la propuesta  de solución al sistema; por tal razón, mientras más completos sean los modelos  de la fase de análisis en relación con las especificaciones proporcionadas  por el interesado, más apropiado será el sistema informático para las necesidades  detectadas, con menos tiempo y costos invertidos (Lindland <i>et al.</i>, 1994).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El diagrama de     clases de UML muestra los objetos relevantes del dominio del problema, especificando     para cada objeto sus atributos, comportamientos, relaciones y los roles que     desempeña en cada relación. Además, a partir del diagrama de  clases es posible crear la base de datos del sistema (Bergner <i>et al<b>.</b></i>,  1999). Los esfuerzos para lograr la completitud del diagrama de clases cobran  importancia para el diseño del software.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Una vez definidos     los elementos de completitud requeridos por el diagrama de clases, es necesario     utilizar mecanismos que permitan subsanar las incompletitudes identificadas.     Este proceso se suele denominar Refinamiento, el cual, según  D’Souza y Wills (1998), es la realización de una descripción más detallada  a partir de una descripción más abstracta.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para chequear     la completitud de esquemas conceptuales es necesario evaluar una serie de     reglas, que se clasifican según el tipo de información a evaluar  en: sintácticas, semánticas y pragmáticas Lindland <i>et al.</i> (1994). En  la próxima sección se exponen algunas propuestas para evaluar la completitud  de los modelos conceptuales. </font></p>     <p>&nbsp;</p>     ]]></body>
<body><![CDATA[<p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>3. TRABAJOS REALIZADOS PARA EVALUAR LA COMPLETITUD DE DIAGRAMAS</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La mayoría de las propuestas de análisis de completitud  consisten en la evaluación de ciertas características y propiedades deseables  para un diagrama específico. Por lo general, estas características son un listado  de condiciones sintácticas que debe cumplir el diagrama evaluado. La evaluación  se realiza desde tres puntos de vista: el sintáctico el semántico y el pragmático.  Se emplean reglas sintácticas para inspeccionar la notación de cada una de  las partes del diagrama y sus relaciones, tomando en consideración el lenguaje  de modelado; si se quiere saber qué tan fiel y representativa es la información  del esquema conceptual respecto a la información del mundo real, se emplean  las reglas semánticas; por  último, si se requiere incluir información necesaria en el modelo suministrada  por la experiencia del analista y que facilite la interpretación del modelo,  se recurre a las reglas pragmáticas (Lindland <i>et al.</i>, 1994)</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El Object Management     Group (OMG, 2006) presenta las especificaciones sintácticas  y semánticas del lenguaje de modelado UML; en particular, se describe para  cada uno de los elementos de un diagrama de clases, sus relaciones, su notación  y sus representaciones opcionales. Esta especificación permite evaluar qué tan  correcto es un diagrama de clases, verificando si cada uno de los elementos  cumple con la notación y relaciones definidas. Las reglas de sintaxis son las  más elementales a la hora de realizar un análisis de completitud; de hecho,  algunas de ellas son chequeadas de forma implícita por las herramientas CASE  (Computer-Aided Software Engineering), un conjunto de herramientas encargadas  de la creación y edición de diagramas. La mayor desventaja que presenta la  especificación definida para UML es que, aun cuando contiene restricciones  semánticas, no contiene información que permita determinar qué  tan correcto es un diagrama de clases pragmáticamente.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El método para la evaluación     de modelos propuesto por Lindland <i>et al.</i> (1994)  es aplicable a modelos conceptuales de diferentes tipos: modelos de datos,  de procesos y de interacciones, entre otros. En esta propuesta la calidad de  un modelo conceptual se define con base en cuatro componentes: el modelo M—conformado  por el conjunto de declaraciones del dominio que han sido representadas—, el  lenguaje L—caracterizado por las declaraciones posibles según la gramática  del lenguaje de modelado—, el dominio D— definido como el conjunto de declaraciones  correctas y relevantes sobre el dominio del problema— y la interpretación I—lo  que piensan los interesados que expresa el modelo. Este método posee tres categorías  de calidad. (Véase la <a href="#fig01">Figura 1</a>):</font></p> <ul>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Calidad     sintáctica: definida como la relación entre el modelo y el lenguaje, dada por     la ecuación: M/L = &#1092; (No existen declaraciones incluidas en el modelo     que no sean parte del conjunto de declaraciones del lenguaje).</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Calidad     semántica: se entiende como la relación entre el modelo y el dominio, dada     por las ecuaciones M/D = &#1092; (No hay declaraciones del modelo que no sean     correctas y relevantes en el dominio) y D/M = &#1092; (No hay declaraciones     correctas y relevantes sobre el dominio que no estén incluidas en el modelo);     estas ecuaciones evalúan la validez y completitud del modelo respectivamente.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Calidad     pragmática: relaciona el modelo y la interpretación que pueda darse al modelo;     esta relación está dada por las ecuaciones M/I = &#1092; (No hay declaraciones     en el modelo que no estén dentro del conjunto de interpretaciones que el interesado     hace del modelo) y I/M = &#1092; (No existen interpretaciones del interesado     que no estén en el conjunto de declaraciones del modelo).</font></li>     </ul>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig01"></a><img src="/img/revistas/dyna/v74n153/a27fig01.gif">    <br>   Figura 1.</b> Marco de calidad de  modelos conceptuales    ]]></body>
<body><![CDATA[<br>  <b>Figure 1.</b> Quality Framework  for Conceptual Models</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Este trabajo proporciona     un marco de referencia para evaluar la calidad de los modelos conceptuales     (incluyendo su completitud), pero no propone métodos  para alcanzar la completitud sintáctica, semántica y pragmática de esos modelos.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En cuanto a la     completitud del diagrama entidad-relación, se analizan dos  propuestas diferentes: el proyecto RADD (Buchholz <i>et al.</i>, 1995) y la  evaluación de calidad propuesta por Moody <i>et al. </i>(2003).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El proyecto RADD (Buchholz <i>et al.</i>,     1995), propone una herramienta de diálogo moderado (sistema de preguntas y respuestas) implementada en Prolog,  para capturar el dominio de un sistema y de esta forma hace posible la construcción  del diagrama entidad-relación. El primer paso para el diseño de la base de  datos es la descripción en lenguaje natural (en este caso, Alemán) de la estructura  de la aplicación, realizada por el diseñador. Sobre la descripción del sistema  en lenguaje natural se aplican restricciones semánticas y con esta información  se construye un diseño inicial de la base de datos. Este proyecto plasma el  conocimiento del diseñador en una base de conocimientos, para analizar las  condiciones sintácticas, semánticas y pragmáticas de la entrada en lenguaje  natural y a partir de allí complementar el diseño inicial de la base de datos  del sistema informático en consideración. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Moody <i>et al. </i>(2003)     realizan un experimento para la evaluación de la  calidad en los diagramas entidad-relación. El experimento se realizó con 192  analistas, con conocimientos en calidad de modelos, y se utilizaron diversas  técnicas cualitativas y cuantitativas para evaluar diagramas entidad-relación  desde el punto de vista sintáctico, semántico y pragmático. El objetivo del  experimento era determinar si la evaluación era confiable y si era probable  su uso para la evaluación de modelos de información en la práctica.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El trabajo con     el diagrama entidad-relación deja de lado elementos importantes  que se encuentran presentes en el diagrama de clases, tales como las operaciones,  que podrían ser susceptibles de análisis de completitud. Además, el experimento  de Moody <i>et al. </i>(2003) se basa en el conocimiento de los analistas y  por ello no define explícitamente reglas para lograr la completitud de dicho  diagrama.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Leung y Bolloju  (2005) realizan un estudio enfocado a identificar los errores frecuentemente  cometidos por analistas principiantes en la elaboración de esquemas conceptuales.  En este estudio, los analistas desarrollan diagramas de clases para un dominio  dado. Al final, se presentan los errores cometidos agrupados en diferentes  categorías: errores sintácticos, semánticos y pragmáticos. Entre los principales  errores encontrados se pueden mencionar: falta de nombres y cardinalidades  para algunas asociaciones, cardinalidades invertidas y pérdida de clases, atributos,  operaciones y asociaciones respecto al dominio del problema suministrado.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Aunque esta  lista de errores provee un punto de partida útil para entender y mejorar la  calidad en el modelado conceptual, no se propone un mecanismo para disminuir  tales errores en el proceso de elaboración de esquemas conceptuales.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">McGregor  (1999) propone una técnica para realizar pruebas de calidad sobre modelos de  las fases de análisis y diseño del proceso de desarrollo del software. Además,  reutiliza, refina y extiende la técnica para la realización de pruebas de código  fuente. La técnica propuesta permite verificar el proceso de creación de los  modelos y la validación de los mismos con base en los requisitos del proyecto.  Según McGregor (1999), la completitud del diagrama de clases se alcanza cuando  la información contenida en el modelo es suficiente para poner en ejecución  las interfaces y para definir las pre y post condiciones de los métodos en  el código fuente. Por lo tanto, para chequear la completitud es necesario tener  como entradas el diagrama de clases, los requisitos, las interfaces y el código  fuente; no todos estos elementos se encuentran completamente definidos en la  fase de análisis del proceso de desarrollo de software.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Bergner <i>et  al.</i> (1999) proponen el refinamiento del diagrama de clases a través de  interfaces estructuradas. En el proceso de refinamiento se crea un diagrama  de clases en la fase de diseño con base en el diagrama obtenido en la fase  de análisis. Con tales diagramas puede suceder que: </font></p> <ul>    ]]></body>
<body><![CDATA[<li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Algunas     clases de la fase de análisis se conservan en la fase de diseño. </font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Algunas     clases de la fase de análisis se pueden perder en la fase de diseño.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Algunas     clases, atributos, operaciones y asociaciones se unen o se separan en la     fase de diseño.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Se     generan nuevas clases, atributos, operaciones y relaciones en la fase de     diseño.</font></li>     </ul>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Las primeras  tres acciones están contenidas en la fase inicial del proceso de diseño; esta  fase se centra en el desarrollo de un diagrama orientado a las especificaciones  del usuario, dejando de lado los requisitos técnicos. La última acción está  contenida en la segunda fase del proceso de diseño, donde se considera la infraestructura  técnica que proporciona detalles de implementación. Las plantillas propuestas  por esta metodología de refinamiento son utilizadas para capturar detalles  de implementación sobre atributos, operaciones y relaciones. El diligenciamiento  de tales plantillas es responsabilidad del usuario. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El refinamiento  propuesto por Bergner <i>et al.</i> (1999) sólo automatiza el paso de la fase  de diseño a la obtención del código. Además, las plantillas que se diligencian  para automatizar el refinamiento contemplan información de carácter técnico,  que en general no es del conocimiento del interesado.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Egyed (2002) presenta     una abstracción automatizada de un diagrama de clases,  basada en un conjunto de reglas y un algoritmo que describe la utilización  de tales reglas. Define el proceso de abstracción como la simplificación de  modelos, eliminando los detalles innecesarios en un nivel más abstracto. Inicialmente  presenta tres tipos de refinamiento: lógico, físico y basado en objetivos,  para explicar la necesidad del proceso de abstracción y para demostrar porqué la  agrupación de clases no es suficiente para lograr la abstracción de un diagrama  de clases. El refinamiento lógico consiste en agregar detalles a un conjunto  de elementos de software; el refinamiento físico convierte sistemas de software  en subsistemas, componentes, paquetes, clases y por último en líneas de código;  en el refinamiento basado en objetivos los requerimientos son refinados en  diseño o implementación. En el proceso de abstracción propuesto, se identifican  patrones de entrada para un diagrama de clases en la fase de diseño y, de acuerdo  con su información semántica, se relaciona con un patrón de salida más sencillo.  Las reglas propuestas para lograr la abstracción del diagrama de clases son  del tipo:</font></p>     <blockquote>       <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>GeneralizaciónDerecha-Clase-AsociaciónDerecha =&gt; AsociaciónDerecha</i></font></p> </blockquote>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Significa que     una generalización que apunta hacia una clase y una asociación  que sale de dicha clase se puede reemplazar con una asociación que va de la  clase hija hasta la clase a la cual apuntaba la asociación inicial. (Véase  la <a href="#fig02">Figura 2</a>).</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig02"></a><img src="/img/revistas/dyna/v74n153/a27fig02.gif">    <br>   Figura 2</b>.     Un ejemplo de reglas de abstracción.    <br>     <b>Figure 2</b>. An example of abstraction  rules.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La abstracción es el proceso inverso al refinamiento, lo que en general requiere  que se posea el modelo refinado para obtener el modelo abstracto, lo cual en  las fases iniciales de desarrollo del software no es posible. Por lo tanto,  el trabajo de Egyed (2002) proporciona un punto de referencia para la identificación  de posibles reglas para el proceso de refinamiento.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Teniendo en cuenta     las definiciones para cada tipo de reglas, se puede concluir que es posible     evaluar las reglas sintácticas directamente sobre el esquema  conceptual; sin embargo, las reglas semánticas y pragmáticas requieren información  adicional que simule la experiencia acumulada del analista. En el caso de la  propuesta que se presenta en este artículo, esa experiencia se simulará mediante  una interacción entre las herramientas UNC-Corpus y UNC-Diagramador, que se  describen en la sección siguiente.</font></p>     <p>&nbsp;</p>     <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>4. UNC-CORPUS Y UNC-DIAGRAMADOR</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>4.1</b> <b>UNC-Corpus    <br> </b>UNC-Corpus es una herramienta que actualmente   está desarrollando el grupo  de Ingeniería de Software de la Escuela de Sistemas de la Universidad Nacional.  Esta aplicación está diseñada para almacenar la información de diferentes diagramas  en una base de datos relacional, de la cual se muestra el diagrama entidad-relación  en la <a href="#fig03">Figura 3</a>. En esta Figura, las entidades “diagrama”, “primitiva” y </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">“relación” poseen la información de los elementos que hacen parte de los diagramas  de clases, casos de uso y máquina de estados, y se podría ampliar para registrar  otros tipos de diagramas. Los diagramas se construyen inicialmente en la herramienta  CASE Poseidon®  y se exporta en un archivo en formato XMI al UNC-Corpus, el cual almacena la información en las siguientes entidades:</font></p> <ul>       ]]></body>
<body><![CDATA[<li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">“contexto”     contiene el nombre del dominio sobre el cual están definidos los diagramas.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">“archivo”     posee el nombre del archivo en formato XMI que da origen a la información.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">“instancia”     es el nombre del conjunto de diagramas que se van a cargar en UNC-Corpus.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">“instanciaxArchivo”,     “instanciaPrimitiva” e “instanciaRelación” contienen la información específica     de cada uno de los diagramas, discriminada por sus diferentes elementos.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">“modoConsulta”     es una entidad que permite almacenar diferentes consultas en SQL para acceder     luego a la información contenida en el UNC-Corpus.</font></li>     </ul>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig03"></a><img src="/img/revistas/dyna/v74n153/a27fig03.gif">    <br>   Figura 3</b>.     Diseño de la base  de datos del UNC-Corpus    <br>  <b>Figure 3</b>. UNC-Corpus database  design</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Específicamente, para el diagrama de clases se extraen las siguientes primitivas:  clases, atributos, operaciones, parámetros de entrada y de retorno de las operaciones  y tipos de datos. Algunas de las relaciones entre primitivas almacenadas en  el corpus son: agregación, composición, dependencia y generalización que son  relaciones entre clases; también existen las relaciones “tiene atributo” y  “tiene operación” que son relaciones entre clase-atributo y clase-operación  respectivamente.</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En el contexto     de este artículo, el UNC-Corpus se empleará para simular la  experiencia del analista, extrayendo información semántica y pragmática de  un dominio específico.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>4.2 UNC-Diagramador    <br> </b>El Grupo de Ingeniería de Software de la Escuela de Sistemas viene desarrollando  una herramienta CASE denominada UNC-Diagramador. El entorno seleccionado para  el desarrollo es .NET con el lenguaje C#; para la parte gráfica se utiliza  el Microsoft Visio®.El UNC-Diagramador se basa, para su funcionamiento, en  los denominados esquemas preconceptuales (Zapata <i>et al.</i>, 2006a) y el  UN-Lencep (Universidad Nacional de Colombia-Lenguaje Controlado para la Especificación  de Esquemas Preconceptuales) (Zapata <i>et al.</i>, 2006b). Los Esquemas Preconceptuales  son grafos que representan los diferentes elementos de la descripción verbal suministrada por el interesado sobre un sistema (véase la <a href="#fig04">Figura 4</a>).</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig04"></a><img src="/img/revistas/dyna/v74n153/a27fig04.gif">    <br>   Figura 4</b>.     Especificación Básica  de los Esquemas Preconceptuales    <br>  <b>Figure 4</b>.Basic specification  of the Pre-conceptual Schemes </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El proceso realizado     por el UNC-Diagramador se esquematiza en la <a href="#fig05">Figura 5</a> y se describe de la     siguiente manera: el UNC-Diagramador recibe como entrada un archivo con expresiones     en UN-Lencep y a partir de él obtiene los Esquemas  Preconceptuales. Posteriormente, aplicando las reglas de transformación, permite  obtener de manera automática tres diagramas de UML: Clases, Comunicación y  Máquina de estados (Zapata <i>et al.</i>, 2006b).</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig05"></a><img src="/img/revistas/dyna/v74n153/a27fig05.gif">    <br>   Figura       5</b>. Especificaci&oacute;n B&aacute;sica de UN&ndash;Lencep y su traducci&oacute;n       a Esquemas Preconceptuales    <br>  <b>Figure 5</b>. Basic specification of UN-Lencep and traslation to Pre-conceptual Schemes </font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En el contexto   de este artículo, el UNC-Corpus se empleará para simular la   experiencia del analista, revisando los diagramas almacenados en su base de   datos, con el fin de complementar la información semántica y pragmática de   un dominio específico.</font></p>     <p>&nbsp;</p>     <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>5. REGLAS QUE PERMITEN EVALUAR LA COMPLETITUD DE ESQUEMAS CONCEPTUALES</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En la Sección 2 se definió la completitud a partir de tres puntos de vista:  sintáctico, semántico y pragmático. En esta Sección se definen las reglas para  la evaluación de la completitud y se muestra su implementación en el UNC-Diagramador,  empleando el lenguaje C#. Para el punto de vista sintáctico, el resultado de  la aplicación de las reglas es un conjunto de archivos de texto que contiene  los nombres de los elementos que no cumplen con las reglas; para el punto de  vista semántico y pragmático, estos archivos se retoman para realizar las comparaciones  necesarias con el UNC-Corpus y generar un diálogo interactivo con el interesado.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>5.1 Reglas       Sintácticas       de Completitud    <br> </b>Desde el punto de vista sintáctico, se procura que el diagrama elaborado cumpla  con las notaciones establecidas para cada uno de sus elementos y las relaciones  entre ellos. Cada modelo específico utiliza un conjunto definido de símbolos,  siguiendo unas reglas de su sintaxis; el cumplimiento de estas reglas determina  si la representación de un diagrama es correcta (Lindland <i>et al.</i>, 1994,  Shanks y Darke, 1998). Algunas de estas reglas son chequeadas por el lenguaje  de modelado utilizado al graficar tal diagrama. Para evaluar la completitud  del diagrama de clases en relación con su sintaxis, se incluyen algunas de  las reglas y restricciones sintácticas expresadas en la especificación de UML  para tal diagrama (OMG, 2006, Lange, 1999). Las reglas sintácticas que se consideran para esta propuesta son:</font></p> <ul type=disc>      <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Toda clase posee atributos heredados o propios.</font></li>     </ul>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i> ownedAttribute : Property</i></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Hace referencia     al atributo poseído por una clase. Los atributos son  una de las características de las clases.</font></p> <ul type=disc>      ]]></body>
<body><![CDATA[<li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Toda clase posee operaciones heredadas o propias.</font></li>     </ul>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>ownedOperation : Operation</i></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Hace referencia     a la operación poseída por una clase. Las operaciones  son una de las características de las clases.</font></p> <ul type=disc>      <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Toda relación (asociación o dependencia) posee una etiqueta. La flecha  de una asociación o dependencia se etiqueta con un nombre (véase la <a href="#fig06">Figura  6</a>).</font></li>     </ul>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig06"></a><img src="/img/revistas/dyna/v74n153/a27fig06.gif">    <br>   Figura 6</b>.     Símbolos para representar  una dependencia entre dos elementos (Tomada de OMG, 2006)    <br>  <b>Figure 6</b>. Symbols for representing  a dependency between two elements (Taken from OMG, 2006).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La implementación de la regla “Toda clase posee atributos heredados o propios” se  basa en un conteo que se realiza sobre todas las clases del diagrama y que  entrega un mensaje de error cuando el conteo es igual a cero. El código en  C# es el siguiente: </font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>if (clase.Atributos.Count&lt;= 0)</i></font></p>     <blockquote>       <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i> {archivodescripciones.WriteLine(&quot;El     concepto &quot; + clase.Nombre + &quot; no tiene características definidas&quot;);    <br>     archivo2.WriteLine(clase.Nombre);     }</i></font></p> </blockquote>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>if (here.Inicio.Atributos.Count&lt;=  0)</i></font></p>     <blockquote>       <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i> { if (here.Fin.Atributos.Count&lt;=     0)    <br>     {archivodescripciones.WriteLine(here.Inicio.Nombre     + &quot; que es un ejemplo de &quot; + here.Fin.Nombre + &quot; no tiene     atributos&quot;);    <br>     archivo2.WriteLine(here.Inicio.Nombre);</i></font></p> </blockquote>       <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>} }</i></font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">A través de otro conteo sobre las clases, se verifica que toda clase tenga  operaciones propias o heredadas. La implementación de la regla en C# es la  siguiente:</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>if (clase.Operaciones.Count&lt;= 0)</i></font></p>     <blockquote>       <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>{archivodescripciones.WriteLine(&quot;El     concepto &quot; + clase.Nombre + &quot; no tiene funcionalidad definida&quot;);    <br>   archivo3.WriteLine(clase.Nombre);     }</i></font></p> </blockquote>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>if (here.Inicio.Operaciones.Count&lt;=  0)</i></font></p>     <blockquote>       <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>{if (here.Fin.Operaciones.Count&lt;=     0)</i></font></p>       <blockquote>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>{archivodescripciones.WriteLine(here.Inicio.Nombre       + &quot; que es un ejemplo de &quot; + here.Fin.Nombre + &quot; no tiene       operaciones&quot;);    ]]></body>
<body><![CDATA[<br>   archivo3.WriteLine(here.Inicio.Nombre);     } }</i></font></p>   </blockquote> </blockquote>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>5.2 Reglas       Semánticas       De Completitud    <br> </b>Las reglas semánticas miden qué tan fiel es el esquema conceptual en relación  con el significado del modelo verbal. Si un modelo contiene elementos que no  tienen correspondencia con la problemática del sistema modelado, entonces se  dice que este modelo es inválido; en caso contrario, se dice que el modelo  está incompleto (Krogstie <i>et al</i>., 1995, Lindland <i>et al.</i>, 1994).  Teniendo en cuenta los resultados del experimento de Leung y Bolloju (2005),  se seleccionaron las siguientes reglas semánticas para evaluar la completitud de un diagrama de clases:</font></p> <ul type=disc>      <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Cada concepto relevante del dominio debe corresponder a una clase o atributo  del diagrama de clases</font></li>      <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Cada relación funcional del dominio debe corresponder a una relación entre  clases del diagrama o a una operación de clase.</font></li>      <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Cada relación de generalización debe ir de la clase “padre” a la clase “hijo”.</font></li>      <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Cada relación de agregación y composición debe ir de la clase “parte” a  la clase “todo”.</font></li>      <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Toda clase posee atributos y operaciones de acuerdo con el dominio.</font></li>     </ul>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En el proceso     de elaboración de los diagramas esquematizado en la <a href="#fig05">Figura     5</a>,  la generación del diagrama de clases parte del discurso en UN-Lencep y emplea  las reglas de transformación definidas en Zapata <i>et al.</i> (2006a). Por  ello, el cumplimiento de las reglas semánticas de completitud está  a cargo del UNC-Diagramador en su proceso de generación, sin que por ello haya  que definir reglas de completitud adicionales.</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>5.3 Reglas       Pragmáticas       De Completitud    <br> </b>El tercer grupo de reglas, las   pragmáticas, incluye información que surge  de la experiencia del analista y que facilita la interpretación del modelo.  Las reglas pragmáticas que se consideran en esta propuesta emplean el UNC-Corpus, para revisar los diagramas de clases allí existentes y obtener:</font></p> <ul>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Atributos     y Operaciones para las clases pertenecientes al diagrama y que se encuentren     en el UNC-Corpus.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Etiquetas     para relaciones sin nombre en el diagrama evaluado</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Clases     relacionadas y nombre de relaciones para una clase desconectada en el diagrama     evaluado</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> La     orientación de las generalizaciones, agregaciones y composiciones del diagrama     evaluado</font></li>     </ul>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para cada regla     de completitud pragmática, se define una consulta a realizar  sobre el UNC-Corpus. Por ejemplo, si existe en el diagrama evaluado una clase  que no tiene atributos ni propios, ni heredados, se buscan en la base de datos  del UNC-Corpus todos los atributos para dicha clase. Tomando como base el diagrama  entidad-relación de la <a href="#fig03">Figura 3</a>, se emplean las entidades <i>instanciaRelación,  instanciaPrimitiva </i>e<i> instancia</i>, con el fin de determinar todos los  elementos de las primitivas del tipo “clase”  (identificadas con el número 3) y que poseen una relación “tiene atributo”  (identificada con el número 6). En <i>nombre_de_clase</i> va cada una de las  clases que no cumplen la regla. La consulta SQL que permite sugerir atributos  a las clases que no posean ninguno, es la siguiente:</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>select instancia.nombre,       instanciarelacion.idinstanciaprimitivahijo</i>    <br>     <i>from instancia, instanciarelacion</i>    ]]></body>
<body><![CDATA[<br>     <i>where instanciarelacion.idrelacion=6 and instanciarelacion.idinstanciaprimitivapadre=</i></font></p>     <blockquote>       <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>(select idinstanciaprimitiva</i>    <br>     <i>from instanciaprimitiva</i>    <br>     <i>where idprimitiva=3 and idinstancia=</i></font></p>       <blockquote>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>(select           idinstancia    <br>   from instancia    <br>   where nombre=’nombre_de_clase’)    <br>   and instancia.idinstancia=</i></font></p>         ]]></body>
<body><![CDATA[<blockquote>           <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>(select             instanciaprimitiva.idinstancia    <br>       from instanciaprimitiva    <br>       where idinstanciaprimitiva=idinstanciaprimitivahijo))</i></font></p>     </blockquote>   </blockquote> </blockquote>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">De forma similar,     se define la consulta para sugerir operaciones a las clases que no las tengan,     sólo que en este caso el número 7 corresponde a la relación “tiene  operación”. Para las clases que no tienen operaciones la consulta SQL es:</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>select instancia.nombre, instanciarelacion.idinstanciaprimitivahijo  from instancia, instanciarelacion where instanciarelacion.idrelacion=7 and  instanciarelacion.idinstanciaprimitivapadre=(select idinstanciaprimitiva  from instanciaprimitiva where idprimitiva=3 and idinstancia=(select idinstancia  from instancia where nombre='nombre_de_clase')and instancia.idinstancia=(select  instanciaprimitiva.idinstancia from instanciaprimitiva where idinstanciaprimitiva=idinstanciaprimitivahijo))</i></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>5.4 Proceso       De Aplicación       De Las Reglas    <br> </b>El proceso que siguen en UNC-Diagramador   las consultas implementadas a partir de las reglas de completitud mencionadas, se puede sintetizar así:</font></p> <ul>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Cada regla genera un archivo     de texto plano que contiene un listado de elementos del diagrama de clases     que disparan la regla.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Estos archivos       se envían     al UNC-Corpus junto con la consulta SQL definida para cada regla.</font></li>       ]]></body>
<body><![CDATA[<li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> El UNC-Corpus       devuelve la información almacenada en su base de datos de acuerdo con los     datos enviados por el UNC-Diagramador. </font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> El UNC-Diagramador       despliega algunas interfaces donde solicita información adicional al interesado con base     en la información arrojada por el UNC-Corpus.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> La información       ingresada por el interesado es convertida en expresiones de UN-Lencep y     agregada al archivo UN-Lencep del diagrama evaluado.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> A partir de       este archivo se obtiene el esquema preconceptual aumentado con los elementos       que se aceptan y luego se realiza la generación automática de un diagrama de clases más     completo que el anterior.</font></li>     </ul>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>5.5 Comparación       Con El Estado Del Arte    <br> </b>La solución incluida en el UNC-Diagramador y que hace uso de la información  consignada en el UNC-Corpus posee las siguientes diferencias con los trabajos analizados en la Sección 3:</font></p> <ul>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Esta solución se encarga de la completitud     del diagrama de clases, que en general posee algunos elementos que no posee     el diagrama entidad-relación, que se trabaja en RADD (Buchholz <i>et al.</i>,     1995) y Moody <i>et al.</i> (2003).</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> A diferencia       de OMG (2006) y Leung y Bolloju (2005), el entorno propuesto considera     reglas pragmáticas.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> El entorno       propuesto sólo requiere el     diagrama que se va a refinar, y en esta característica supera el trabajo de     McGregor (1999) y Egyed (2002), quienes requieren mayor información para realizar     el chequeo de completitud. En el caso de McGregor (1999) se requiere una expresión     textual de los requisitos y el código fuente de la aplicación. En el caso     de Egyed (2002) se requieren tanto el diagrama por refinar como el diagrama     refinado.</font></li>       ]]></body>
<body><![CDATA[<li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Lindland <i>et al.</i> (1994), McGregor     (1999), Leung y Bolloju (2005) y Bergner <i>et al. </i>(1999) son trabajos     dirigidos al diagrama de clases, pero que no implementan el esquema de completitud     que definen, a diferencia del que se presenta en este artículo, que se ha     incorporado en la herramienta CASE UNC-Diagramador.</font></li>     </ul>     <p>&nbsp;</p>     <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>6. CASO DE ESTUDIO</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Algunas reglas     de completitud propuestas en la Sección 5 se evalúan sobre  un diagrama de clases, utilizando las herramientas UNC-Diagramador y UNC-Corpus.  Para el ejemplo, se parte de una especificación en UN-Lencep que arroja el  diagrama de clases de un sistema de solicitud de artículos, tal como se muestra  en la <a href="#fig07">Figura 7</a>.</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig07"></a><img src="/img/revistas/dyna/v74n153/a27fig07.gif">    <br>   Figura       7</b>. Diagrama de clases resultante    <br>  <b>Figure 7</b>. Resulting class diagram</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En esta Sección, se ilustra el uso de las reglas sintácticas “toda clase tiene   atributos propios o heredados” y “toda clase tiene operaciones propias o heredadas”.   Utilizando el UNC-Diagramador y el UNC-Corpus se ejemplifican además, la regla   semántica   “Toda clase posee atributos y operaciones de acuerdo con el dominio” y las   reglas pragmáticas que permiten obtener los atributos y operaciones de las   clases para el diagrama evaluado.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para el diagrama     seleccionado, las clases que disparan las reglas sintácticas  ejemplificadas se muestran en las <a href="#fig08">Figuras 8</a> y <a href="#fig09">9</a>. El conjunto de incompletitudes  sintácticas se resumen en el archivo descripciones que aparece en la <a href="#fig10">Figura  10</a>.</font></p>     ]]></body>
<body><![CDATA[<p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b> <a name="fig08"></a><img src="/img/revistas/dyna/v74n153/a27fig08.gif">    <br>   Figura       8</b>. Clases que no cumplen la regla &ldquo;toda clase tiene atributos       propios o heredados&rdquo;    <br>       <b>Figure 8.</b>Non-fulfilling classes for the rule &ldquo;all class have its own or inherited attributes&rdquo;</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b> <a name="fig09"></a><img src="/img/revistas/dyna/v74n153/a27fig09.gif">    <br>   Figura       9</b>. Clases que no cumplen la regla &ldquo;toda clase tiene operaciones       propias o heredadas&rdquo;    <br>    <b>Figure 9. </b>Non-fulfilling classes for the rule &ldquo;all class have its own or inherited operations&rdquo;</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig10"></a><img src="/img/revistas/dyna/v74n153/a27fig10.gif">    <br>   Figura       10</b>. Archivo de incompletitudes sint&aacute;cticas    <br>       <b>Figure 10</b>. Syntactic incompleteness file</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Las clases del   diagrama son enviadas al UNC-Corpus junto con la consulta SQL definida para   cada regla. El UNC-Corpus envía una respuesta al UNC-Diagramador,   el cual la presenta en una interfaz donde el interesado puede seleccionar la   información que completará el diagrama de clases inicial. En esta primera parte,   la interfaz muestra los atributos de las clases almacenadas en el corpus, cuyos   nombres coinciden con el de las clases del diagrama de clases evaluado (véase   la <a href="#fig11">Figura 11</a>). De igual forma, una segunda interfaz muestra las operaciones   de las clases almacenadas en el corpus cuyos nombres coinciden con el de las   clases del diagrama evaluado (Véase la <a href="#fig12">Figura 12</a>).</font></p>     ]]></body>
<body><![CDATA[<p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig11"></a><img src="/img/revistas/dyna/v74n153/a27fig11.gif">    <br>   Figura       11</b>. Resultados de la b&uacute;squeda de atributos en UNC-Corpus, para       las clases con problemas de completitud.    <br>     <b>Figure 11</b>. Results of the search for attributes in UNC-Corpus related  to incomplete classes</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig12"></a><img src="/img/revistas/dyna/v74n153/a27fig12.gif">    <br>   Figura       12</b>. Resultados de la b&uacute;squeda de operaciones en UNC-Corpus,       para las clases con problemas de completitud.    <br>     <b>Figure 12</b>. Results of the search for operations in UNC-Corpus related to incomplete classes</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">A partir de estas   interfaces, el interesado puede seleccionar la información   faltante. Por cada elemento seleccionado se envía una frase al archivo UN-Lencep   del diagrama evaluado. Si el elemento seleccionado es un atributo, entonces   la frase tendrá la siguiente estructura:</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>“ST nombre_de_clase tiene nombre_de_atributo”</i></font></p>       <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">donde ST significa frase estructural</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Si se selecciona     el atributo identificación para la clase solicitud, la frase  enviada será:</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>“ST solicitud tiene identificacion”</i></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Ahora, por cada     operación seleccionada de la segunda interfaz es necesario  preguntar al interesado por quién es realizada. Para esta regla, la frase enviada  al archivo UN-Lencep es de la forma:</font></p>       <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>“RD quién_realiza_la_operación nombre_de_operación  nombre_de_clase”</i></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">donde RD significa relación dinámica.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Si se selecciona     la operación     consultar estado para la clase solicitud, aparece la interfaz mostrada en     la <a href="#fig13">Figura 13</a>. Los actores se toman de un archivo de texto generado por UNC-Diagramador     que contiene los actores que puede identificar del esquema preconceptual  generado.</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><a name="fig13"></a><img src="/img/revistas/dyna/v74n153/a27fig13.gif">    <br>   Figura13</b>.     Interfaz para que el interesado seleccione el actor de la operaci&oacute;n    <br>     <b>Figure 13</b>. Interface for selecting the operation&rsquo;s actor by stakeholder</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Una vez el interesado     define el actor de la operación se envía al UN-Lencep  la frase:</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>“RD secretaria consultar_estado solicitud”</i></font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">A partir del archivo     UN-Lencep y del esquema preconceptual se elabora un diagrama de clases más  completo, donde aparecen los elementos seleccionados por el interesado. </font></p>     <p>&nbsp;</p>     <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>7. CONCLUSIONES Y FUTUROS TRABAJOS</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En este artículo se propone un método para el refinamiento interactivo del  diagrama de clases de UML, basado en un análisis de completitud compuesto por  reglas sintácticas, semánticas y pragmáticas, implementadas en el UNC-Diagramador;  se usa también información de diferentes dominios almacenada en la aplicación  UNC-Corpus.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El método desarrollado se presenta como una solución al problema de incompletitudes  en esquemas conceptuales generado por las deficiencias de comunicación entre  usuarios y analistas. La interacción con el interesado es una ventaja de este  método, pues él mismo suministra la información faltante, después de presentarle  las posibles omisiones del modelo en un lenguaje familiar.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Otros trabajos     sobre completitud de modelos conceptuales presentan marcos que reflejan la     noción de completitud a través de un listado de características  deseadas para el modelo, pero no definen un método para alcanzar tal completitud,  o trabajan sobre la completitud de otros diagramas que no contienen toda la  información del diagrama de clases de UML.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Como trabajo futuro     se plantea la implementación de las reglas de completitud  propuestas en este artículo y que aún no han sido codificadas. Vale la pena  además abordar el tema de completitud y refinamiento interactivo de otros esquemas  conceptuales diferentes al diagrama de clases.</font></p>     <p>&nbsp;</p>     <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>8. AGRADECIMIENTOS</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Este artículo se realizó en el marco del proyecto de Investigación “CONSTRUCCIÓN  AUTOMATICA DE ESQUEMAS CONCEPTUALES A PARTIR DE LENGUAJE NATURAL” financiado  por la DIME (Dirección de Investigación de la Sede Medellín–Universidad Nacional  de Colombia).</font></p>     ]]></body>
<body><![CDATA[<p>&nbsp;</p>     <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>REFERENCIAS</b></font></p>     <!-- ref --><p>   <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b> [1]</b> BERGNER, K.; RAUSCH, A.; SIHLING, M.; VILBIG, A. Structuring and Refinement of Class Diagrams. Proceedings of the 32nd Hawaii International Conference on System Sciences. Alemania. 1999     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000245&pid=S0012-7353200700030002700001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>[2]</b> BUCHHOLZ, E., CYRIAKS, H., DÜSTERHÖFT, A., MEHLAN, H. Y THALHEIM,   B. Applying a Natural Language Dialogue Tool for Designing Databases. Proceedings   of the First International Workshop on Applications of Natural Language to   Databases. 15p. 1995.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000246&pid=S0012-7353200700030002700002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>[3]</b> D’SOUZA, D. Y WILLS, A. Objects, Components, and Frameworks with   UML: The Catalysis(SM) Approach. Addison Wesley, 1998. 816 p.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000247&pid=S0012-7353200700030002700003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>[4]</b> EGYED, A. Automated abstraction of class diagrams. ACM Trans. Softw. Eng. Methodol. 11(4): 449-491 (2002)    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000248&pid=S0012-7353200700030002700004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>[5]</b> LANGE, C; CHAUDRON, M. An Empirical Assessment of Completeness in UML Designs. 1999.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000249&pid=S0012-7353200700030002700005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>[6]</b> LEITE J., “A survey on requirements analysis”. Advanced Software   Engineering Project Technical Report RTP-071. Department of Information and   Computer Science. University of California at Irvine. 1987.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000250&pid=S0012-7353200700030002700006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>[7]</b> LEUNG, F., BOLLOJU, N. Analyzing the Quality of Domain Models Developed by Novice Systems Analysts. Proceedings of the 38th Hawaii International Conference on System Sciences. 2005     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000251&pid=S0012-7353200700030002700007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>[8]</b> KROGSTIE, J., LINDLAND O. Y SINDRE, G. “Towards a Deeper Understanding of Quality in Requirements Engineering”,   CAISE 1995, Jyvaskyla, Finland , pp. 82-95, 1995.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000252&pid=S0012-7353200700030002700008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>[9]</b> LINDLAND, O.I., SINDRE, G. AND SØLVBERG, A. Understanding quality   in conceptual modelling, IEEE Software, Vol. 11, No. 2, March 1994, 42-49.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000253&pid=S0012-7353200700030002700009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>[10]</b> MCGREGOR J. Using Guided Inspection to Validate UML Models. Santa Barbara, California. 1999     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000254&pid=S0012-7353200700030002700010&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>[11]</b> MOODY, D.L. SINDRE, G. BRASETHVIK, T. SOLVBERG, A. " Evaluating the quality of information models: empirical testing of a conceptual model quality framework" Software   Engineering, 2003. Proceedings. 25th International Conference, pp. 295- 305,   2003.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000255&pid=S0012-7353200700030002700011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>[12]</b> Object Management Group. OMG Unified Modeling Language Specification. Object Management Group. Available: <a href="http://www.omg.org/UML/" target="ventana">http://www.omg.org/UML/</a>. [Citado 30 de Noviembre de 2006].    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000256&pid=S0012-7353200700030002700012&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>[13]</b> SHANKS, G. AND DARKE, P. Understanding Metadata and Data Quality in a Data Warehouse, Australian Computer Journal (November). 1998.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000257&pid=S0012-7353200700030002700013&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>[14]</b> SNOECK, M., MICHIELS, C. AND DEDENE, G. Consistency by Construction: The Case of MERODE. Conceptual Modeling for Novel Application Domains, in: Lecture Notes in Computer Science, Volume 2814, p 105-117. Berlin: Springer. Septiembre 2003     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000258&pid=S0012-7353200700030002700014&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>[15]</b> ZAPATA, C. M., ARANGO, F. Los modelos verbales en lenguaje natural   y su utilización en la elaboración de esquemas conceptuales para el desarrollo de software: una revisión crítica.   Revista EAFIT. Vol 41, 2005, No 137, pag 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=000259&pid=S0012-7353200700030002700015&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>[16]</b> ZAPATA, C. M., GELBUKH, A. Y ARANGO, F. “Pre-conceptual Schema:   a UML Isomorphism for Automatically Obtaining UML Conceptual Schemas”, Research in Computing Science: Advances in Computer Science and Engineering, Vol. 19, 2006a, pp. 3–13.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000260&pid=S0012-7353200700030002700016&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>[17]</b> ZAPATA, C. M., GELBUKH, A. Y ARANGO, F. UN–Lencep: Obtención Automática de Diagramas UML a partir de un Lenguaje Controlado. Memorias del Taller de Tecnologías del lenguaje del Encuentro Nacional de Computación, San Luis Potosí, México,   2006b.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000261&pid=S0012-7353200700030002700017&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>[18]</b> ZAPATA, C. M., GELBUKH, A. Y ARANGO, F. Pre-conceptual Schema: A Conceptual-Graph-Like Knowledge Representation for Requirements Elicitation. Lecture Notes in Computer Science, Vol. 4293, 2006c, pp. 17-27     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000262&pid=S0012-7353200700030002700018&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>[19]</b> ZOWGHI, D., GERVASI, V. On the Interplay Between Consistency, Completeness,   and Correctness in Requirements Evolution. Elsevier Science. 1 April 2003.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000263&pid=S0012-7353200700030002700019&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[BERGNER]]></surname>
<given-names><![CDATA[K.]]></given-names>
</name>
<name>
<surname><![CDATA[RAUSCH]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
<name>
<surname><![CDATA[SIHLING]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
<name>
<surname><![CDATA[VILBIG]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Structuring and Refinement of Class Diagrams]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the 32nd Hawaii International Conference on System Sciences]]></conf-name>
<conf-date>1999</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[BUCHHOLZ]]></surname>
<given-names><![CDATA[E.]]></given-names>
</name>
<name>
<surname><![CDATA[CYRIAKS]]></surname>
<given-names><![CDATA[H.]]></given-names>
</name>
<name>
<surname><![CDATA[DÜSTERHÖFT]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
<name>
<surname><![CDATA[MEHLAN]]></surname>
<given-names><![CDATA[H.]]></given-names>
</name>
<name>
<surname><![CDATA[THALHEIM]]></surname>
<given-names><![CDATA[B.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Applying a Natural Language Dialogue Tool for Designing Databases]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the First International Workshop on Applications of Natural Language to Databases]]></conf-name>
<conf-date>1995</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[D’SOUZA]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
<name>
<surname><![CDATA[WILLS]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
</person-group>
<source><![CDATA[Objects, Components, and Frameworks with UML: The Catalysis(SM) Approach]]></source>
<year>1998</year>
<publisher-name><![CDATA[Addison Wesley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[EGYED]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Automated abstraction of class diagrams]]></article-title>
<source><![CDATA[ACM Trans. Softw. Eng. Methodol]]></source>
<year>2002</year>
<volume>11</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>449-491</page-range></nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[LANGE]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[CHAUDRON]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[An Empirical Assessment of Completeness in UML Designs]]></article-title>
<source><![CDATA[]]></source>
<year>1999</year>
</nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[LEITE]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
</person-group>
<source><![CDATA[A survey on requirements analysis]]></source>
<year>1987</year>
</nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[LEUNG]]></surname>
<given-names><![CDATA[F.]]></given-names>
</name>
<name>
<surname><![CDATA[BOLLOJU]]></surname>
<given-names><![CDATA[N.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Analyzing the Quality of Domain Models Developed by Novice Systems Analyst]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the 38th Hawaii International Conference on System Sciences]]></conf-name>
<conf-date>2005</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[KROGSTIE]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[LINDLAND]]></surname>
<given-names><![CDATA[O.]]></given-names>
</name>
<name>
<surname><![CDATA[SINDRE]]></surname>
<given-names><![CDATA[G.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Towards a Deeper Understanding of Quality in Requirements Engineering]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ CAISE 1995]]></conf-name>
<conf-date>1995</conf-date>
<conf-loc>Jyvaskyla </conf-loc>
</nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[LINDLAND]]></surname>
<given-names><![CDATA[O.I.]]></given-names>
</name>
<name>
<surname><![CDATA[SINDRE]]></surname>
<given-names><![CDATA[G.]]></given-names>
</name>
<name>
<surname><![CDATA[SØLVBERG]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Understanding quality in conceptual modelling]]></article-title>
<source><![CDATA[IEEE Software]]></source>
<year>Marc</year>
<month>h </month>
<day>19</day>
<volume>11</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>42-49</page-range></nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MCGREGOR]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Using Guided Inspection to Validate UML Models]]></article-title>
<source><![CDATA[]]></source>
<year>1999</year>
</nlm-citation>
</ref>
<ref id="B11">
<label>11</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MOODY]]></surname>
<given-names><![CDATA[D.L.]]></given-names>
</name>
<name>
<surname><![CDATA[SINDRE]]></surname>
<given-names><![CDATA[G.]]></given-names>
</name>
<name>
<surname><![CDATA[BRASETHVIK]]></surname>
<given-names><![CDATA[T.]]></given-names>
</name>
<name>
<surname><![CDATA[SOLVBERG]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Evaluating the quality of information models: empirical testing of a conceptual model quality framework]]></article-title>
<source><![CDATA[Software Engineering]]></source>
<year>2003</year>
<conf-name><![CDATA[ Proceedings. 25th International Conference]]></conf-name>
<conf-loc> </conf-loc>
<page-range>295- 305</page-range></nlm-citation>
</ref>
<ref id="B12">
<label>12</label><nlm-citation citation-type="">
<collab>Object Management Group</collab>
<source><![CDATA[Unified Modeling Language Specification]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B13">
<label>13</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[SHANKS]]></surname>
<given-names><![CDATA[G.]]></given-names>
</name>
<name>
<surname><![CDATA[DARKE]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Understanding Metadata and Data Quality in a Data Warehouse]]></article-title>
<source><![CDATA[Australian Computer Journal]]></source>
<year>(Nov</year>
<month>em</month>
<day>be</day>
</nlm-citation>
</ref>
<ref id="B14">
<label>14</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[SNOECK]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
<name>
<surname><![CDATA[MICHIELS]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
<name>
<surname><![CDATA[DEDENE]]></surname>
<given-names><![CDATA[G.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Consistency by Construction: The Case of MERODE. Conceptual Modeling for Novel Application Domains]]></article-title>
<source><![CDATA[Computer Science]]></source>
<year>Sept</year>
<month>ie</month>
<day>mb</day>
<volume>2814</volume>
<page-range>105-117</page-range><publisher-loc><![CDATA[Berlin ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B15">
<label>15</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>
</person-group>
<article-title xml:lang="es"><![CDATA[Los modelos verbales en lenguaje natural y su utilización en la elaboración de esquemas conceptuales para el desarrollo de software: 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="B16">
<label>16</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="es"><![CDATA[Pre-conceptual Schema: a UML Isomorphism for Automatically Obtaining UML Conceptual Schemas”,]]></article-title>
<source><![CDATA[Research in Computing Science: Advances in Computer Science and Engineering]]></source>
<year>2006</year>
<month>a</month>
<volume>19</volume>
<page-range>3-13</page-range></nlm-citation>
</ref>
<ref id="B17">
<label>17</label><nlm-citation citation-type="confpro">
<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="es"><![CDATA[UN-Lencep: Obtención Automática de Diagramas UML a partir de un Lenguaje Controlado]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Memorias del Taller de Tecnologías del lenguaje del Encuentro Nacional de Computación]]></conf-name>
<conf-date>2006b</conf-date>
<conf-loc>San Luis Potosí </conf-loc>
</nlm-citation>
</ref>
<ref id="B18">
<label>18</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>
<month>c</month>
<volume>4293</volume>
<page-range>17-27</page-range></nlm-citation>
</ref>
<ref id="B19">
<label>19</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[ZOWGHI]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
<name>
<surname><![CDATA[GERVASI]]></surname>
<given-names><![CDATA[V.]]></given-names>
</name>
</person-group>
<source><![CDATA[On the Interplay Between Consistency, Completeness, and Correctness in Requirements Evolution]]></source>
<year>1 Ap</year>
<month>ri</month>
<day>l </day>
<publisher-name><![CDATA[Elsevier Science]]></publisher-name>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
