<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>1794-1237</journal-id>
<journal-title><![CDATA[Revista EIA]]></journal-title>
<abbrev-journal-title><![CDATA[Revista EIA]]></abbrev-journal-title>
<issn>1794-1237</issn>
<publisher>
<publisher-name><![CDATA[Escuela de ingenieria de Antioquia]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S1794-12372010000100011</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[UNA MIRADA CONCEPTUAL A LA GENERACIÓN AUTOMÁTICA DE CÓDIGO]]></article-title>
<article-title xml:lang="en"><![CDATA[A CONCEPTUAL APPROACH TO AUTOMATIC GENERATION OF CODE]]></article-title>
<article-title xml:lang="pt"><![CDATA[UMA ABORDAGEM CONCEITUAL À GERAÇÃO AUTOMÁTICA DE CÓDIGO]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Zapata]]></surname>
<given-names><![CDATA[Carlos Mario]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Chaverra]]></surname>
<given-names><![CDATA[John Jairo]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad Nacional de Colombia  ]]></institution>
<addr-line><![CDATA[Medellín ]]></addr-line>
<country>Colombia</country>
</aff>
<aff id="A02">
<institution><![CDATA[,Universidad Nacional de Colombia  ]]></institution>
<addr-line><![CDATA[Medellín ]]></addr-line>
<country>Colombia</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>07</month>
<year>2010</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>07</month>
<year>2010</year>
</pub-date>
<numero>13</numero>
<fpage>155</fpage>
<lpage>169</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_arttext&amp;pid=S1794-12372010000100011&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_abstract&amp;pid=S1794-12372010000100011&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_pdf&amp;pid=S1794-12372010000100011&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[Existen varios métodos de desarrollo de software que impulsan la generación automática de código. Para tal fin se utilizan las herramientas CASE (Computer-Aided Software Engineering) convencionales, pero aún están muy distantes de ser un proceso automático y muchas de estas herramientas se complementan con algunos trabajos que se alejan de los estándares de modelado. En este artículo se presentan una conceptualización de los trabajos relacionados con la generación automática de código, a partir de la representación del discurso en lenguaje natural o controlado o de esquemas conceptuales, y un sumario gráfico de los conceptos fundamentales en este tema, tras la revisión de varios proyectos relacionados. Así, se concluye que la generación automática de código suele partir de representaciones de la solución del problema y no desde la representación del dominio. Además, estos puntos de partida son de difícil comprensión para el cliente, lo que impide que se tenga una validación en etapas previas del desarrollo.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[Automated code generation is fostered by several software development methods. This generation is often supplied by well-known CASE (Computer-Aided Software Engineering) tools. However, automation is still so far and some CASE tools are complemented by non-standard modeling projects. In this paper, we conceptualize projects related to automated code generation, starting from discourse representations in either controlled or natural language, or in conceptual schemas. In this way, we present a graphical summary of crucial concepts related to this issue, by means of a state-of-the-art review. We conclude that automated code generation usually begins from solution-based representations of the problem instead of domain-based representations. Also, we summarize that these starting points are misunderstood by the client and this situation leads to poor validation in early stages of software development lifecycle.]]></p></abstract>
<abstract abstract-type="short" xml:lang="pt"><p><![CDATA[Existem vários métodos de desenvolvimento de software que impulsionam a geração automática de código. Para tal fim se utilizam as ferramentas CASE (Computer-Aided Software Engineering) convencionais, mas ainda estão muito distantes de ser um processo automático e muitas destas ferramentas se complementam com alguns trabalhos que se afastam dos standards de modelado. Neste artigo se apresentan uma conceitualização dos trabalhos relacionados com a geração automática de código, a partir da representação do discurso em linguagem natural ou controlada ou de esquemas conceptuais, e um sumário gráfico dos conceitos fundamentais neste tema, depois da revisão de vários projetos relacionados. Assim, se conclui que a geração automática de código costuma partir de representações da solução do problema e não desde a representação do domínio. Além disso, estes pontos de partida são de difícil compreensão para o cliente, o que impede que se tenha uma validação em períodos prévios do desenvolvimento.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[herramientas CASE]]></kwd>
<kwd lng="es"><![CDATA[lenguaje controlado]]></kwd>
<kwd lng="es"><![CDATA[regla heurística]]></kwd>
<kwd lng="es"><![CDATA[especificaciones formales]]></kwd>
<kwd lng="es"><![CDATA[generación automática de código]]></kwd>
<kwd lng="en"><![CDATA[CASE tools]]></kwd>
<kwd lng="en"><![CDATA[controlled language]]></kwd>
<kwd lng="en"><![CDATA[heuristic rule]]></kwd>
<kwd lng="en"><![CDATA[formal specs]]></kwd>
<kwd lng="en"><![CDATA[automated code generation]]></kwd>
<kwd lng="pt"><![CDATA[ferramentas CASE]]></kwd>
<kwd lng="pt"><![CDATA[linguagem controlada]]></kwd>
<kwd lng="pt"><![CDATA[regra heurística]]></kwd>
<kwd lng="pt"><![CDATA[especificações formais]]></kwd>
<kwd lng="pt"><![CDATA[geração automática de código]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[  <font face="Verdana" size="2"></font>     <p align="center">&nbsp;</p>     <p align="center"><font size="4" face="Verdana"><b>UNA MIRADA CONCEPTUAL A LA GENERACI&Oacute;N   AUTOM&Aacute;TICA DE C&Oacute;DIGO</b></font></p> <font face="Verdana" size="2">     <p align="center">&nbsp;</p> </font>     <p align="center"><font size="3" face="Verdana"><b>A CONCEPTUAL APPROACH TO AUTOMATIC GENERATION OF CODE</b></font></p> <font face="Verdana" size="2">     <p align="center">&nbsp;</p>     <p align="center"><font size="3" face="Verdana"><b>UMA ABORDAGEM CONCEITUAL &Agrave; GERA&Ccedil;&Atilde;O AUTOM&Aacute;TICA DE C&Oacute;DIGO </b></font></p>      <p align="center">&nbsp;</p>     <p><b> Carlos Mario Zapata*,   John Jairo Chaverra**</b></p>     <p>* Ingeniero Civil, Mag&iacute;ster en Ingenier&iacute;a de Sistemas, Doctor en Ingenier&iacute;a con &eacute;nfasis en Sistemas y Profesor Asociado,   Universidad Nacional de Colombia. L&iacute;der del grupo de investigaci&oacute;n en Lenguajes Computacionales. Medell&iacute;n, Colombia. <a href="mailto:cmzapata@unal.edu.co">cmzapata@unal.edu.co</a></p>     ]]></body>
<body><![CDATA[<p>  ** Ingeniero y Mag&iacute;ster en Ingenier&iacute;a de Sistemas. Integrante del grupo de investigaci&oacute;n en Lenguajes Computacionales,   Universidad Nacional de Colombia. Medell&iacute;n, Colombia. <a href="mailto:jjchaver@unal.edu.co">jjchaver@unal.edu.co</a></p>     <p>Art&iacute;culo recibido 3-II-2010. Aprobado 9-VI-2010</p>     <p>  Discusi&oacute;n abierta hasta diciembre de 2010</p> <hr /> <font size="3"><b>RESUMEN</b></font>     <p>  Existen varios m&eacute;todos de desarrollo de software que impulsan la generaci&oacute;n autom&aacute;tica de c&oacute;digo. Para tal   fin se utilizan las herramientas CASE (Computer-Aided Software Engineering) convencionales, pero a&uacute;n est&aacute;n muy   distantes de ser un proceso autom&aacute;tico y muchas de estas herramientas se complementan con algunos trabajos   que se alejan de los est&aacute;ndares de modelado. En este art&iacute;culo se presentan una conceptualizaci&oacute;n de los trabajos   relacionados con la generaci&oacute;n autom&aacute;tica de c&oacute;digo, a partir de la representaci&oacute;n del discurso en lenguaje   natural o controlado o de esquemas conceptuales, y un sumario gr&aacute;fico de los conceptos fundamentales en este   tema, tras la revisi&oacute;n de varios proyectos relacionados. As&iacute;, se concluye que la generaci&oacute;n autom&aacute;tica de c&oacute;digo   suele partir de representaciones de la soluci&oacute;n del problema y no desde la representaci&oacute;n del dominio. Adem&aacute;s,   estos puntos de partida son de dif&iacute;cil comprensi&oacute;n para el cliente, lo que impide que se tenga una validaci&oacute;n en   etapas previas del desarrollo.</p> </font>     <p>  <font size="3" face="Verdana"><b>PALABRAS CLAVE:</b></font><font size="2" face="Verdana"> herramientas CASE; lenguaje controlado; regla heur&iacute;stica; especificaciones formales;   generaci&oacute;n autom&aacute;tica de c&oacute;digo.</font></p> <font face="Verdana" size="2"> <hr /> </font>     <p><font size="3" face="Verdana"><b>ABSTRACT</b></font></p> <font face="Verdana" size="2">     <p>  Automated code generation is fostered by several software development methods. This generation is often   supplied by well-known CASE (Computer-Aided Software Engineering) tools. However, automation is still so far   and some CASE tools are complemented by non-standard modeling projects. In this paper, we conceptualize projects related to automated code generation, starting from discourse representations in either controlled or   natural language, or in conceptual schemas. In this way, we present a graphical summary of crucial concepts   related to this issue, by means of a state-of-the-art review. We conclude that automated code generation usually   begins from solution-based representations of the problem instead of domain-based representations. Also, we   summarize that these starting points are misunderstood by the client and this situation leads to poor validation in   early stages of software development lifecycle.</p> </font>     <p><font size="2" face="Verdana"><b><font size="3">KEY WORDS:</font></b> CASE tools; controlled language; heuristic rule; formal specs; automated code generation.</font></p> <font face="Verdana" size="2"> <hr /> </font>     <p><font size="3" face="Verdana"><b>RESUMO</b></font></p> <font face="Verdana" size="2">     <p>  Existem v&aacute;rios m&eacute;todos de desenvolvimento de software que impulsionam a gera&ccedil;&atilde;o autom&aacute;tica de c&oacute;digo.   Para tal fim se utilizam as ferramentas CASE (Computer-Aided Software Engineering) convencionais, mas ainda   est&atilde;o muito distantes de ser um processo autom&aacute;tico e muitas destas ferramentas se complementam com alguns   trabalhos que se afastam dos standards de modelado. Neste artigo se apresentan uma conceitualiza&ccedil;&atilde;o dos trabalhos   relacionados com a gera&ccedil;&atilde;o autom&aacute;tica de c&oacute;digo, a partir da representa&ccedil;&atilde;o do discurso em linguagem   natural ou controlada ou de esquemas conceptuais, e um sum&aacute;rio gr&aacute;fico dos conceitos fundamentais neste   tema, depois da revis&atilde;o de v&aacute;rios projetos relacionados. Assim, se conclui que a gera&ccedil;&atilde;o autom&aacute;tica de c&oacute;digo   costuma partir de representa&ccedil;&otilde;es da solu&ccedil;&atilde;o do problema e n&atilde;o desde a representa&ccedil;&atilde;o do dom&iacute;nio. Al&eacute;m disso,   estes pontos de partida s&atilde;o de dif&iacute;cil compreens&atilde;o para o cliente, o que impede que se tenha uma valida&ccedil;&atilde;o em per&iacute;odos pr&eacute;vios do desenvolvimento.</p> </font>     ]]></body>
<body><![CDATA[<p>  <font size="2" face="Verdana"><b><font size="3">PALAVRAS C&Oacute;DIGO: </font></b>ferramentas CASE; linguagem controlada; regra heur&iacute;stica; especifica&ccedil;&otilde;es formais;   gera&ccedil;&atilde;o autom&aacute;tica de c&oacute;digo.</font></p> <font face="Verdana" size="2"> <hr /> </font>     <p><font size="3" face="Verdana"> <b>1. INTRODUCCI&Oacute;N</b></font></p> <font face="Verdana" size="2">     <p>  Existen varios m&eacute;todos de desarrollo de software   que impulsan la generaci&oacute;n autom&aacute;tica de   c&oacute;digo. Para tal fin, los analistas vienen utilizando   con mayor frecuencia las herramientas CASE convencionales,   pero estas herramientas a&uacute;n est&aacute;n muy   distantes de tener un proceso autom&aacute;tico (Zapata,   Ruiz y Villa, 2007). Aunque el proceso es semiautom&aacute;tico,   persisten errores debido a la interpretaci&oacute;n   subjetiva del dominio que debe realizar el analista.   Adem&aacute;s, muchas de estas herramientas CASE se   complementan con algunos trabajos que se alejan de   los est&aacute;ndares de modelado. Esos trabajos se pueden agrupar en cuatro categor&iacute;as.</p>     <p>  Existe un primer grupo que se centra en las   especificaciones formales como punto de partida, para lograr la generaci&oacute;n autom&aacute;tica del c&oacute;digo de   una aplicaci&oacute;n. En este grupo existe un subgrupo   que complementa sus propuestas con desarrollo de   herramientas CASE, las cuales parten de discursos   en lenguaje natural o controlado para la generaci&oacute;n   de esquemas conceptuales. Algunas de estas   herramientas son: NL-OOPS, LIDA, CM-Builder y   RADD. Estas herramientas s&oacute;lo generan parte de   una aplicaci&oacute;n (los esquemas conceptuales), pero   a&uacute;n no se ligan con las herramientas CASE convencionales   para generar el c&oacute;digo correspondiente.   Otro grupo de proyectos genera c&oacute;digo desde esquemas   conceptuales, pero lo hacen para lenguajes   espec&iacute;ficos y tambi&eacute;n se afecta con los problemas   de consistencia que pueden acarrear los esquemas   conceptuales de partida. Un tercer grupo, adem&aacute;s   de generar la estructura b&aacute;sica del c&oacute;digo, genera las interfaces gr&aacute;ficas de usuario (GUI). Por &uacute;ltimo,   existe un grupo que genera la estructura b&aacute;sica   de la aplicaci&oacute;n y adem&aacute;s genera el cuerpo de los   m&eacute;todos, pero muchos de estos proyectos acuden a   procesos predefinidos, tales como <i>log-in</i> y funciones   para crear o eliminar usuarios.</p>     <p>  En este art&iacute;culo se presenta una mirada   conceptual de la obtenci&oacute;n autom&aacute;tica de c&oacute;digo   fuente a partir de discursos en lenguaje natural o   controlado o esquemas conceptuales, empleando   para ello la siguiente estructura: en la secci&oacute;n 2 se   define el marco te&oacute;rico que agrupa los conceptos de   este dominio; en la secci&oacute;n 3 se presentan algunos   de los trabajos representativos en el tema; en la secci&oacute;n   4 se determinan los principales problemas que   quedan a&uacute;n por resolver; finalmente, en la secci&oacute;n 5   se presentan las conclusiones y el trabajo futuro que se puede derivar de este art&iacute;culo.</p> </font>     <p>  <font size="3" face="Verdana"><b>2. MARCO TE&Oacute;RICO</b></font></p> <font face="Verdana" size="2">     <p><b>  2.1 Lenguaje controlado</b></p>     <p>  Subconjunto del lenguaje natural en el que,   generalmente, se puede restringir ya sea el vocabulario,   la estructura o ambos (Zapata, Gelbukh y   Arango, 2006). En el contexto de este art&iacute;culo, se   emplean para establecer unas condiciones iniciales   para la generaci&oacute;n del c&oacute;digo, que permitan una transici&oacute;n suave hacia el c&oacute;digo fuente.</p>     <p><b> 2.2 Lenguaje de programaci&oacute;n</b></p>     <p>  Sistema notacional para describir conceptos   en una forma legible para la m&aacute;quina (Zapata, Ruiz   y Villa, 2007). Un lenguaje de programaci&oacute;n es el   fundamento para el c&oacute;digo que se genera. En el   art&iacute;culo se mencionan varios lenguajes de programaci&oacute;n, como C, C++, Java y PHP.</p>     ]]></body>
<body><![CDATA[<p><b><i>  2.3 </i>UML<i> (Unified Modeling Language)</i></b></p>     <p>  Lenguaje de modelado gr&aacute;fico para visualizar,   especificar, construir y documentar los elementos   que forman un sistema software orientado a objetos   (Jacobson, Booch y Rumbaugh, 1999). En la generaci&oacute;n   autom&aacute;tica de c&oacute;digo, cumple en la actualidad   un papel fundamental, pues permite a los analistas   expresar las necesidades en un lenguaje que, aunque t&eacute;cnico, se acerca al formalismo.</p>     <p><b>  2.4 Herramienta CASE (<i>Computer-   Aided Software Engineering</i>)</b></p>     <p>  Conjunto de aplicaciones inform&aacute;ticas que   dan asistencia a los analistas y desarrolladores,   durante todo el ciclo de vida del software. Estas herramientas   se destinan a aumentar la productividad   y reducir costos en tiempo y dinero (Burkhard y   Jenster, 1989). Son importantes porque muchas de   ellas contienen como una opci&oacute;n la generaci&oacute;n de   c&oacute;digo, aunque en la actualidad lo hacen de forma incompleta, como se explica en la secci&oacute;n 3.</p> </font>     <p><font size="3" face="Verdana"><b> 3. GENERACI&Oacute;N AUTOM&Aacute;TICA   DE C&Oacute;DIGO</b></font></p> <font face="Verdana" size="2">     <p>  En esta secci&oacute;n se discuten los principales   proyectos relacionados con la generaci&oacute;n autom&aacute;tica   de c&oacute;digo. Se categorizan de acuerdo con las deficiencias identificadas.</p>     <p><b>  3.1 Lenguaje controlado o   especificaciones formales   como punto de partida</b></p>     <p>  La generaci&oacute;n autom&aacute;tica de c&oacute;digo a partir   de las especificaciones formales determina dos grupos   importantes. Uno en la parte acad&eacute;mica, donde   se definen conjuntos de reglas, y el otro grupo en el   cual se vienen desarrollando herramientas CASE como apoyo al proceso.</p>     <p>  Gomes, Moreira y D&eacute;harbe (2007) y Mammar   y Laleau (2006) proponen una metodolog&iacute;a para   la generaci&oacute;n autom&aacute;tica de c&oacute;digo en lenguaje   C a partir de especificaciones formales, utilizando   el M&eacute;todo-B. Este m&eacute;todo provee un formalismo   para el refinamiento de las especificaciones y se estructura en m&oacute;dulos que se clasifican de acuerdo   con su nivel de abstracci&oacute;n: m&aacute;quina, refinamiento e implementaci&oacute;n.</p>     <p>  Peckham y MacKellar (2001) proponen un   lenguaje natural controlado y unas plantillas para la   especificaci&oacute;n de casos de uso. Estos autores apoyan   el desarrollo de software con una herramienta para   la generaci&oacute;n de procesos algebraicos a partir de los casos de uso.</p>     ]]></body>
<body><![CDATA[<p>  Ramkarthik y Zhang (2006) definen un conjunto   de reglas para generar la estructura b&aacute;sica de una   aplicaci&oacute;n en Java, tomando como punto de partida   las especificaciones escritas en subconjunto de objetos Z (notaci&oacute;n para las especificaciones formales).</p>     <p>  Gangopadhyay (2001) propone una herramienta   CASE para la obtenci&oacute;n del diagrama   entidad-relaci&oacute;n a partir de un lenguaje controlado.   Esta herramienta emplea un diagrama de dependencias   conceptuales como representaci&oacute;n intermedia   a partir del lenguaje controlado y un parser basado   en una red de transici&oacute;n aumentada (una especie   de diagrama de m&aacute;quina de estados) para el procesamiento de las diferentes palabras.</p>     <p>  Un segundo grupo se enfoca en el desarrollo   de herramientas CASE, las cuales permiten mejorar   el proceso de generaci&oacute;n de c&oacute;digo. Entre ellas, se   encuentran NL-OOPS (Natural Language Object-   Oriented Production System), LIDA (<i>Linguistic Assistant   for Domain Analysis</i>), CM-Builder (<i>Class Model   Builder</i>), RADD (<i>Rapid Application and Database   Development</i>) y NIBA. NL-OOPS es una herramienta   CASE basada en un sistema de procesamiento   del lenguaje natural denominado LOLITA (<i>Largescale   Object-based Linguistic Interactor, Translator and   Analyser</i>), el cual contiene una serie de funciones   para el an&aacute;lisis del lenguaje natural (Mich, 1999).   NL-OOPS entrega como resultado una versi&oacute;n   preliminar del diagrama de clases de OMT. LIDA   es una herramienta CASE que analiza el texto en   lenguaje natural y hace una clasificaci&oacute;n en tres categor&iacute;as   gramaticales: sustantivos, verbos y adjetivos   (Overmyer, Lavoie y Rambow, 2001); con esta informaci&oacute;n,   el analista debe asignar a cada categor&iacute;a,   manualmente, un elemento del diagrama de clases y,   de esta manera, LIDA permite trazar este diagrama.   CM-Builder es una herramienta CASE que permite   la elaboraci&oacute;n del diagrama de clases a partir de   textos en ingl&eacute;s, utilizando como modelo intermedio   una red sem&aacute;ntica (Harmain y Gaizauskas, 2000).   RADD es una herramienta CASE que se enfoca en   la obtenci&oacute;n del diagrama entidad-relaci&oacute;n a partir   de un lenguaje controlado. Adem&aacute;s, emplea una &quot;herramienta de di&aacute;logo moderado&quot; que posibilita la comunicaci&oacute;n con el dise&ntilde;ador de la base de datos en lenguaje natural (Buchholz y D&uuml;sterh&ouml;ft, 1994). NIBA busca la elaboraci&oacute;n de diferentes diagramas UML (especialmente clases y actividades, aunque se podr&iacute;an obtener otros como secuencias y comunicaci&oacute;n), empleando un conjunto de esquemas intermedios que denominaron KCPM -<i>Klagenfurt   Conceptual Predesign Model</i>- (Fliedl y Weber, 2002).   KCPM posee formas diferentes de representaci&oacute;n del   conocimiento para diferentes diagramas de UML.   NIBA, adem&aacute;s de generar los diferentes diagramas UML, genera el c&oacute;digo fuente en C++.</p>     <p><b>  3.2 Esquemas conceptuales   como punto de partida</b></p> </font>    <p><font size="2" face="Verdana">  El diagrama de clases se utiliza, con frecuencia,   como punto de partida cuando se pretende   generar autom&aacute;ticamente el c&oacute;digo fuente de una   aplicaci&oacute;n. Es com&uacute;n que se genere un c&oacute;digo fuente   muy semejante, pues se obtiene la estructura b&aacute;sica   de las clases con sus atributos y el encabezado de   los m&eacute;todos. Mu&ntilde;et&oacute;n, Zapata y Arango (2007), Pilitowski   y Derezinska (2007), Regep y Kordon (2000)   y Gessenharter (2008) definen reglas heur&iacute;sticas, con   el fin de obtener el c&oacute;digo fuente de una aplicaci&oacute;n   a partir del diagrama de clases. Adem&aacute;s de la estructura   b&aacute;sica del c&oacute;digo, Mu&ntilde;et&oacute;n, Zapata y Arango   (2007) y Regep y Kordon (2000) complementan   el c&oacute;digo resultante, tomando como referencia el diagrama de m&aacute;quina de estados.</font></p> <font face="Verdana" size="2">    <p>Together (Borland, 2006), Rose (IBM, 2009) y   Fujaba (Fujaba, 2009; Geiger y Z&uuml;ndorf, 2006) son   herramientas CASE que, adem&aacute;s de la estructura   b&aacute;sica, complementan el c&oacute;digo con el comportamiento   de los objetos. En Together se logra con el   diagrama de secuencias y en Fujaba con los story   diagrams. Estos diagramas surgen de la combinaci&oacute;n   del diagrama de actividades con el diagrama   de comunicaci&oacute;n. Otra herramienta que permite la   generaci&oacute;n de c&oacute;digo es ONME -<i>Olivanova Model</i>   <i>Execution</i>- (Care Technologies, 2010), que parte de   una serie de diagramas del lenguaje de modelado   OO-Method para realizar c&oacute;digo completamente   funcional, aunque con la participaci&oacute;n de programadores humanos.</p>     <p>  Otros autores prefieren tomar como punto de   partida el diagrama de colaboraci&oacute;n (en la actualidad   diagrama de comunicaci&oacute;n), con el objeto de   construir una parte sustancial de la funcionalidad y   evitar p&eacute;rdida de informaci&oacute;n. Engels <i>et al</i>. (1999)   definen un conjunto de reglas sobre este diagrama, a   fin de obtener c&oacute;digo en lenguaje de programaci&oacute;n   Java. Samuel, Mall y Kanth (2007) lo utilizan para   generar casos de prueba, formar un &aacute;rbol de predicados y, sobre este &aacute;rbol, aplicar las reglas definidas.</p>     <p>  Las redes de Petri tambi&eacute;n se utilizan mucho   cuando se quiere abordar la generaci&oacute;n autom&aacute;tica   de c&oacute;digo. Normalmente, se utilizan con el fin de   que el cliente pueda comprender la descripci&oacute;n de   dominio y pueda realizar una validaci&oacute;n en tiempo   real. Yao y He (1997), Mortensen (1999, 2000) y   Chachkov   y Buchs (2001) definen un conjunto de   reglas para la conversi&oacute;n a c&oacute;digo en cualquier lenguaje de programaci&oacute;n objetual.</p>     <p>  Groher y Schulze (2003), Beier y Kern (2002),   Mu&ntilde;et&oacute;n, Zapata y Arango (2007) y Bennett, Cooper   y Dai (2009) proponen una serie de reglas heur&iacute;sticas   que permiten generar autom&aacute;ticamente c&oacute;digo   orientado a aspectos. Para tal fin, Groher y Schulze   (2003) y Beier y Kern (2002) utilizan como punto   de partida el diagrama de clases para representar   los aspectos como un paquete en UML, y Mu&ntilde;et&oacute;n,   Zapata y Arango (2007) utilizan los denominados   esquemas preconceptuales. Bennett, Cooper y Dai   (2009), aparte de las reglas heur&iacute;sticas, desarrollaron un <i>framework</i> que apoya el proceso.</p>     <p>  G&eacute;nova, Ruiz del Castillo y Llorens (2003) analizan   los principios de la relaci&oacute;n entre los diagramas   UML y el c&oacute;digo fuente de una aplicaci&oacute;n, prestando   especial atenci&oacute;n a la multiplicidad, la navegabilidad   y la visibilidad. A partir de los principios analizados,   definieron una serie de reglas y una herramienta para generar autom&aacute;ticamente el c&oacute;digo.</p>     ]]></body>
<body><![CDATA[<p>  En Nassar <i>et al</i>. (2009) se propone una herramienta   llamada VUML que apoya el proceso de   an&aacute;lisis y dise&ntilde;o. El objetivo principal es almacenar   y entregar informaci&oacute;n de acuerdo con el punto de   vista del usuario. VUML apoya el cambio din&aacute;mico   de las vistas y ofrece mecanismos para describir la   dependencia entre las vistas. Estos autores definen   un conjunto de reglas en ATL, las cuales se aplican   al diagrama de clases para obtener autom&aacute;ticamente el c&oacute;digo fuente.</p>     <p>  Una de las herramientas m&aacute;s consolidadas en   el mercado es GeneXus, de la compa&ntilde;&iacute;a Artech. En   GeneXus se obtiene un prototipo totalmente funcional,   dise&ntilde;a y crea de modo autom&aacute;tico una base de   datos en la tercera forma normal, como se propone   en la teor&iacute;a de bases de datos relacionales, a partir   de simples diagramas que representan el punto de   vista del cliente. Seg&uacute;n Artech (2010), GeneXus es   una herramienta basada en el conocimiento, cuyo   objetivo es ayudar a los analistas de sistemas para   implementar aplicaciones en menos tiempo y con   la mayor rapidez posible y ayudar a los usuarios en todo el ciclo de vida de las aplicaciones</p>     <p><b> 3.3 Generaci&oacute;n de interfaces   de usuario</b></p>     <p>  Lozano <i>et al</i>. (2002), Ramos, Montero y Molina   (2002), Almendros-Jim&eacute;nez e Iribarne (2005) y   Kantorowitz, Lyakas y Myasqobsky (2003) proponen   un entorno para el desarrollo de interfaces gr&aacute;ficas de usuario basado en modelos, en el marco del   desarrollo de software orientado a objetos. Para tal   fin, emplean los casos de uso y el an&aacute;lisis de tareas.   As&iacute;, proponen un modelo de interfaz que incluye,   adem&aacute;s, la generaci&oacute;n de diagramas para representar   los diferentes aspectos de la interfaz gr&aacute;fica y   permite generarla de forma autom&aacute;tica a partir de los diagramas definidos.</p>     <p>  Elkoutbi, Khriss y Keller (1999) y Elkoutbi y Keller   (2000) desarrollaron una herramienta CASE que   soporta la obtenci&oacute;n de interfaces de usuario a partir   de escenarios, generando una especificaci&oacute;n formal   del sistema en la forma de diagramas de transici&oacute;n   de estados. Esta especificaci&oacute;n se incluye dentro de   un entorno de ejecuci&oacute;n, pudiendo animar cada   uno de los prototipos. Los escenarios se describen   mediante <i>message sequence charts</i>, enriquecidos con   informaci&oacute;n referente a la interfaz de usuario. A partir   de estos, se genera un formulario por caso de uso y un modelo de navegaci&oacute;n entre formularios.</p>     <p>  Genova (Genera, 2009) es un m&oacute;dulo de   extensi&oacute;n para Rational Rose. A partir de diagramas   UML, Genova permite construir modelos de di&aacute;logo   y de presentaci&oacute;n de modo parcial, que representan   la interfaz de usuario como un &aacute;rbol de composici&oacute;n   de AIO (<i>abstract interaction object</i>) (Bodart y Vanderdonckt, 1996).</p>     <p>  Cool:Plex es una herramienta utilizada para el   dise&ntilde;o de aplicaciones cliente-servidor, que se basa   en el diagrama entidad-relaci&oacute;n extendido para la   especificaci&oacute;n est&aacute;tica del sistema. Cool:Plex usa componentes   y patrones de dise&ntilde;o que se traducen en la fase de generaci&oacute;n de c&oacute;digo (Gamma <i>et al</i>. 1995).</p>     <p>  Panach <i>et al</i>. (2008) permiten la elaboraci&oacute;n   de interfaces gr&aacute;ficas de usuario tomando como base   la arquitectura basada en modelos (MDA, por sus   siglas en ingl&eacute;s), partiendo del modelo de tareas de   las metodolog&iacute;as de desarrollo web y pasando por la construcci&oacute;n de &aacute;rboles de metas.</p>     <p>  Tambi&eacute;n existen las herramientas RAD (<i>Rapid   Application Development</i>), entre las cuales se destacan:   Visual Basic (Microsoft, 2009), <i>Power Builder</i>   (Sybase, 2010), Delphi (CodeGear, 2009), <i>Macromedia     Flash y Macromedia Dreamweaver</i> (Adobe, 2010).   En estas herramientas, la construcci&oacute;n de la interfaz   de usuario es muy r&aacute;pida, ya que un IDE (<i>Eclipse o     Visual Studio.Net</i>) apoya el proceso. Las interfaces se   construyen mediante el paradigma WYSIWYG (<i>What     you see is what you get</i>), eligiendo los componentes   de la interfaz de usuario seg&uacute;n su necesidad. De   esta manera, la calidad y la validaci&oacute;n de la interfaz dependen de la experiencia del dise&ntilde;ador.</p>     <p>  Varias de estas herramientas s&oacute;lo permiten   dise&ntilde;ar la vista est&aacute;tica; otras de las herramientas   hacen el proceso dependiente del lenguaje, como   es el caso de Genova (Genera, 2009), por ser una   extensi&oacute;n de Rational Rose. Los modelos de di&aacute;logo   se almacenan separados de los diagramas UML, lo   cual puede ocasionar errores de consistencia. Las   dem&aacute;s propuestas parten desde modelos de la soluci&oacute;n   del problema y, por lo general, estos modelos   no son de f&aacute;cil comprensi&oacute;n para el cliente, lo cual impide que se tenga una validaci&oacute;n en tiempo real.</p>     ]]></body>
<body><![CDATA[<p><b> 3.4 Generaci&oacute;n del cuerpo   de los m&eacute;todos</b></p>     <p>  Com&uacute;nmente, cuando se quiere generar el   cuerpo de los m&eacute;todos de las clases en una aplicaci&oacute;n   orientada a objetos, se toma como punto de partida el   diagrama de clases, con el fin de generar la estructura   b&aacute;sica del c&oacute;digo y luego el m&eacute;todo se complementa   con el diagrama de secuencias. Usman, Nadeem y   Kim (2008, 2009) y Pilitowski y Derezinska (2007) desarrollaron   una herramienta que, adem&aacute;s de generar   la estructura b&aacute;sica del c&oacute;digo y de agregar el comportamiento   de los objetos a partir del diagrama de   secuencias, hace un complemento con el diagrama   de actividades. Long <i>et al</i>. (2005), adem&aacute;s de generar   el c&oacute;digo b&aacute;sico y complementar el c&oacute;digo con el   diagrama de secuencias, proponen un algoritmo para   comprobar la coherencia de los diagramas. De igual   forma, desarrollan un algoritmo para generar c&oacute;digo   rCOS (<i>Relational Calculus of Object Systems</i>) a partir del diagrama de clases, verificando consistencia con   el de secuencias. rCOS es un lenguaje orientado a   objetos que soporta orientaci&oacute;n sem&aacute;ntica y c&aacute;lculo   de refinamiento. Por el contrario, Niaz y Tanaka   (2003, 2004, 2005) no complementan el cuerpo de   los m&eacute;todos con el diagrama de secuencias, sino con   el diagrama de m&aacute;quinas de estados de UML. Los   estados se representan como objetos y cada objeto define el comportamiento asociado con el estado.</p>     <p>  En la <a href="img/revistas/eia/n13/n13a11tab1.gif" target="_blank">tabla 1</a> se presenta un an&aacute;lisis objetivo   de las siguientes caracter&iacute;sticas: (1) intervenci&oacute;n   del analista; (2) punto de partida; (3) generaci&oacute;n de   diagramas; (4) generaci&oacute;n de interfaces de usuario;   (5) tipificaci&oacute;n de atributos; (6) persistencia con base   de datos; (7) generaci&oacute;n de procesos; (8) lenguaje   de programaci&oacute;n, para todos los trabajos analizados en el marco de este art&iacute;culo.</p>     <p>Empleando un esquema preconceptual   (Zapata, Gelbukh y Arango, 2006), que permite   la representaci&oacute;n del conocimiento en cualquier   dominio, se presenta una s&iacute;ntesis adicional de esta   revisi&oacute;n en la <a href="img/revistas/eia/n13/n13a11fig1.gif" target="_blank">figura 1</a>. Con esta representaci&oacute;n se   fundamentan los problemas, las conclusiones y   trabajo futuro que se proponen en la secci&oacute;n 4 y 5 respectivamente.</p> </font>     <p><font size="3" face="Verdana"><b>4. PROBLEMAS POR RESOLVER</b></font></p> <font face="Verdana" size="2">     <p>  A continuaci&oacute;n se discuten los problemas   recurrentes en la generaci&oacute;n autom&aacute;tica de c&oacute;digo, cuyos trabajos se presentaron en la secci&oacute;n previa.</p>     <p><b> 4.1 Intervenci&oacute;n del analista</b></p>     <p>  La mayor&iacute;a de los trabajos requieren una   alta participaci&oacute;n del analista, con el fin de tomar   decisiones de dise&ntilde;o pertinentes a la generaci&oacute;n   de c&oacute;digo, las cuales se deber&iacute;an automatizar. La   generaci&oacute;n autom&aacute;tica de c&oacute;digo procura aliviar la   carga del analista. As&iacute;, se busca optimizar el tiempo   de desarrollo y minimizar los posibles errores, tambi&eacute;n   buscando que el analista se centre m&aacute;s en el an&aacute;lisis subjetivo del dominio.</p>     <p><b>  4.2 Punto de partida</b></p>     <p>  En la mayor&iacute;a de los trabajos relacionados   con la generaci&oacute;n autom&aacute;tica de c&oacute;digo, se suelen   utilizar, como punto de partida, algunos de los   diagramas UML (clases, actividades, secuencias). Si   bien este punto de partida permite la generaci&oacute;n   autom&aacute;tica de c&oacute;digo, s&oacute;lo se puede hacer despu&eacute;s   de un an&aacute;lisis subjetivo del problema, lo cual requiere   tiempo y puede tener impl&iacute;citos errores de an&aacute;lisis.   Si se procura la generaci&oacute;n autom&aacute;tica de c&oacute;digo   a partir de las etapas tempranas de desarrollo, se   deber&iacute;a hacer desde la descripci&oacute;n del problema y no desde la soluci&oacute;n como tal.</p>     ]]></body>
<body><![CDATA[<p><b> 4.3 Validaci&oacute;n en tiempo real</b></p>     <p>  La mayor&iacute;a de los trabajos utilizan los esquemas   conceptuales como punto de partida para la   generaci&oacute;n de c&oacute;digo. Muchos de estos esquemas   no los interpreta f&aacute;cilmente el cliente, lo cual impide   una validaci&oacute;n suya en las etapas iniciales al   desarrollo. Es necesario tener dicha validaci&oacute;n, con   el fin de que el proceso sea transparente. Para esto   se tiene una alternativa en el lenguaje natural como punto de partida.</p> </font>     <p><font size="3" face="Verdana"><b>  5. CONCLUSIONES Y TRABAJO   FUTURO</b></font></p> <font face="Verdana" size="2">     <p>  En el ciclo de vida del software cada vez toma   m&aacute;s fuerza la generaci&oacute;n autom&aacute;tica de los diferentes   esquemas conceptuales y de c&oacute;digo, dado que se reduce el tiempo de desarrollo y, por lo tanto, los   costos en los que se incurre durante el proceso. Tambi&eacute;n   se minimizan los errores que pueda cometer   el analista generados en la interpretaci&oacute;n subjetiva   del dominio que debe realizar. Adem&aacute;s, se busca   una mayor interacci&oacute;n con el cliente, de tal modo   que se pueda tener una validaci&oacute;n en tiempo real.</p>     <p>  En este art&iacute;culo se analiz&oacute; el problema de la   generaci&oacute;n autom&aacute;tica y semiautom&aacute;tica de c&oacute;digo,   a partir de lenguaje natural o esquemas conceptuales.   Este an&aacute;lisis permite identificar los siguientes   problemas: (1) se suele partir de representaci&oacute;n de   la soluci&oacute;n y no de la representaci&oacute;n del problema;   (2) a&uacute;n se requiere una alta participaci&oacute;n del analista   para la toma de decisiones que deber&iacute;an ser   autom&aacute;ticas; (3) aunque algunos proyectos generan   interfaces de usuario, la persistencia con la base de datos a&uacute;n es un tema por explorar.</p>     <p>  A partir de la evaluaci&oacute;n realizada, se pueden sugerir algunos temas de investigaci&oacute;n tales como:</p>     <p>  &bull; Representar el dominio de un problema en   lenguaje controlado que ofrezca caracter&iacute;sticas   para la identificaci&oacute;n de elementos de los esquemas   conceptuales y el c&oacute;digo fuente, con la intenci&oacute;n de automatizar el proceso.</p>     <p>&bull; Definir reglas heur&iacute;sticas que permitan representar   los elementos de un lenguaje controlado   en c&oacute;digo fuente, esquemas conceptuales y documentaci&oacute;n de una aplicaci&oacute;n.</p>     <p>&bull; Definir reglas heur&iacute;sticas que permitan la identificaci&oacute;n   de los elementos de c&oacute;digo fuente y los elementos de los diferentes esquemas conceptuales</p>     <p> &bull; Desarrollar una herramienta CASE que automatice   el proceso desde la toma de requisitos   hasta la generaci&oacute;n de c&oacute;digo y su respectiva documentaci&oacute;n, a partir de un lenguaje controlado.</p> </font>     ]]></body>
<body><![CDATA[<p>  <font size="3" face="Verdana"><b>AGRADECIMIENTOS</b></font></p> <font face="Verdana" size="2">     <p>  Este trabajo se financi&oacute; parcialmente con   fondos de la Vicerrector&iacute;a de Investigaci&oacute;n de la   Universidad Nacional de Colombia, mediante el   proyecto de investigaci&oacute;n &quot;Transformaci&oacute;n semiautom&aacute;tica   de los esquemas conceptuales, generados en UNC-Diagramador, en prototipos funcionales&quot;.</p> </font>     <p>  <font size="3" face="Verdana"><b>REFERENCIAS</b></font></p> <font face="Verdana" size="2"> </font>     <!-- ref --><p><font size="2" face="Verdana">  Adobe System. Macromedia, (consultado el 20 de febrero de 2010) Disponible en: <a href="http://www.macromedia.com" target="_blank">http://www.macromedia.com</a></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000086&pid=S1794-1237201000010001100001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><font size="2" face="Verdana">  Artech. Advanced Reserarch &amp; Technology. &quot;Visi&oacute;n general   de GeneXus&quot;, (consultado el 5 de junio de 2010) Disponible en: <a href="http://www.genexus.com" target="_blank">http://www.genexus.com/portal/agxppdwn.aspx?2,70,1070,O,S,0,22790%3bS%3b1%3b2315.</a></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000087&pid=S1794-1237201000010001100002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Almendros-Jim&eacute;nez, J. e Iribarne, L. (2005). &quot;Designing   GUI components from UML use cases&quot;. Proceedings   12th IEEE International Conference and Workshops   on the Engineering of Computer-Based Systems (ECBS&acute;05), Greenbelt, Maryland, April, pp. 210-217.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000088&pid=S1794-1237201000010001100003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Beier, G. and Kern, M. (2002). &quot;Aspects in UML models   from a code generation perspective&quot;. 2nd <i>Workshop   on Aspect-Oriented Modeling with UML, UML</i> 2002, Dresden, September 30.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000089&pid=S1794-1237201000010001100004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Bennett, J.; Cooper, K. and Dai, L. (2009). &quot;Aspect-oriented   model-driven skeleton code generation: A graph-based   transformation approach&quot;. <i>Science of Computer Programming</i>, , Vol. 75, No. 8 (Aug.), pp. 689-725.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000090&pid=S1794-1237201000010001100005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Bodart, F. and Vanderdonckt, J. (1996). &quot;Widget standardisation   through abstract interaction objects&quot;. Proceedings   of 1st International Conference on Applied Ergonomics ICAE&acute;96, West Lafayette, May, pp. 300-305.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000091&pid=S1794-1237201000010001100006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><font size="2" face="Verdana">  Borland Software Corporation. Together, Borland Together   Architect, (consultado el 25 de agosto de 2009) Disponible en: <a href="http://www.borland.com" target="_blank">http://www.borland.com/us/products/together/index.html.</a></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000092&pid=S1794-1237201000010001100007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Buchholz, E. and D&uuml;sterh&ouml;ft, A. (1994). &quot;Using natural   language for database design&quot;. Proceedings Deutsche   Jahrestagung f&uuml;r K&uuml;nstliche Intelligenz, Saarbr&uuml;cken, September, pp. 18-26.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000093&pid=S1794-1237201000010001100008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Burkhard, D. and Jenster, P. (1989). &quot;Applications of   computer-aided software engineering tools: survey of   current and prospective users&quot;. <i>ACM SIGMIS Database</i>, vol. 20, No. 3, pp. 28-37.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000094&pid=S1794-1237201000010001100009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><font size="2" face="Verdana">Care Technologies (consultado el 6 de junio de 2010)   Disponible en: <a href="http://www.care-t.com" target="_blank">http://www.care-t.com</a>.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000095&pid=S1794-1237201000010001100010&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Chachkov, S. and Buchs, D. (2001). &quot;From formal specifications   to ready-to-use software components: the   concurrent object oriented Petri Net approach&quot;. 2nd   International Conference on Application of Concurrency   to System Design (ACSD 2001), Hamilton, June, pp. 99-110.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000096&pid=S1794-1237201000010001100011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><font size="2" face="Verdana">  CodeGear. Delphi, (consultado el 10 de septiembre de   2009) Disponible en: <a href="http://delphi.com" target="_blank">http://delphi.com</a>/</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000097&pid=S1794-1237201000010001100012&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Elkoutbi, M. and Keller, R. (2000). &quot;User interface prototyping   based on UML scenarios and high-level Petri nets&quot;.   <i>Application and Theory of Petri Nets (21 ATPN), Aarhus</i>, June, pp. 166-186.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000098&pid=S1794-1237201000010001100013&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Elkoutbi, M.; Khriss, I. and Keller, R. (1999). &quot;Generating   user interface prototypes from scenarios&quot;. RE&acute;99,   Fourth IEEE International Symposium on Requirements Engineering, Limerick, June, pp. 150-158.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000099&pid=S1794-1237201000010001100014&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Engels, G.; H&uuml;cking, R.; Sauer, S. and Wagner, A. (1999).   &quot;UML collaboration diagrams and their transformation   to Java&quot;. Proceedings of the Second IEEE International   Conference on the Unified Modeling Language (UML99), Fort Collins, October, vol. 1723, pp. 473-488.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000100&pid=S1794-1237201000010001100015&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Fliedl, G. and Weber, G. (2002). &quot;Niba-Tag. A tool for analyzing   and preparing German texts&quot;. <i>Management Information Systems, Bologna</i>, vol. 6 (Sep.), pp. 331-337.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000101&pid=S1794-1237201000010001100016&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><font size="2" face="Verdana">  Fujaba. University of Paderborn, Software Engineering   Group. Fujaba Tool Suite, (consultado el 3 de agosto de 2009) Disponible en: <a href="http://wwwcs.uni-paderborn.de" target="_blank">http://wwwcs.uni-paderborn.de/cs/Fujaba/index.html</a></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000102&pid=S1794-1237201000010001100017&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Gamma, E.; Helm, R.; Johnson, R and Vlissides, J. Design   Patterns:<i> Elements of Reusable Object-Oriented Software</i>. Reading: Addison Wesley, 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=000103&pid=S1794-1237201000010001100018&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Gangopadhyay, A. (2001). &quot;Conceptual modeling from   natural language functional specifications&quot;. <i>Artificial   Intelligence in Engineering</i>, vol. 15, No. 2 (April), pp. 207-218.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000104&pid=S1794-1237201000010001100019&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Geiger, L. and Z&uuml;ndorf, A. (2006). &quot;TOOL modeling with   Fujaba&quot;. <i>Electronic Notes in Theoretical Computer Science</i>, vol. 148, No. 1, pp. 173-186.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000105&pid=S1794-1237201000010001100020&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><font size="2" face="Verdana">  Genera. Genova 7.0, (consultado el 20 de noviembre   de 2009) Disponible en: <a href="http://www.genera.no" target="_blank">http://www.genera.no/2052/tilkunde/0904/default.asp</a></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000106&pid=S1794-1237201000010001100021&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  G&eacute;nova, G.; Ruiz del Castillo, C. and Llorens, J. (2003).   &quot;Mapping UML associations into Java code&quot;. <i>Journal     of Object Technology</i>, vol. 2, No. 5 (Sep.-Oct.), pp. 135-162.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000107&pid=S1794-1237201000010001100022&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Gessenharter, D. (2008). &quot;Mapping the UML2 semantics   of associations to a Java code generation model&quot;. <i>Proceedings   of the 11<sup>th</sup> International Conference on Model   Driven Engineering Languages and Systems</i>, Toulouse, pp. 813-827.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000108&pid=S1794-1237201000010001100023&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Gomes, B. E. G.; Moreira, A. M. and D&eacute;harbe, D. (2007).   &quot;Developing Java card applications with B&quot;. <i>Electronic     Notes in Theoretical Computer Science</i>, vol. 184, pp. 81-96.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000109&pid=S1794-1237201000010001100024&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Groher, I. and Schulze, S. (2003). &quot;Generating aspect code   from UML models&quot; The 4th AOSD Modeling with UML Workshop, Massachusetts.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000110&pid=S1794-1237201000010001100025&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Harmain, H. and Gaizauskas, R. (2000). &quot;CM-Builder: an   automated NL-based CASE tool&quot;. Proceedings of the   Fifteenth IEEE International Conference on Automated Software Engineering (ASE&acute; 00), Grenoble. pp. 45-53.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000111&pid=S1794-1237201000010001100026&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><font size="2" face="Verdana">  IBM Corporation. Rational Rose Architect, (consultado el 5 de octubre de 2009) Disponible en: <a href="http://www-306.ibm.com" target="_blank">http://www-306.ibm.com/software/awdtools/architect/swarchitect/index.html</a></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000112&pid=S1794-1237201000010001100027&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Jacobson, I.; Booch, G. and Rumbaugh, J. <i>The unified software   development process.</i> Reading: Addison-Wesley. 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=000113&pid=S1794-1237201000010001100028&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Kantorowitz, E.; Lyakas, A. and Myasqobsky, A. (2003).   &quot;Use case-oriented software architecture&quot;. Proceedings   of Workshop 11, Correctness of Model-based Software Composition (ECOOP&acute;2003), Darmstadt, June.&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=S1794-1237201000010001100029&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Long, Q.; Liu, Z.; Li, X. and Jifeng, H. (2005). &quot;Consistent   code generation from UML models&quot;. <i>Australian   Software Engineering Conference (ASWEC).</i> Brisbane, pp. 23-30.&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=S1794-1237201000010001100030&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Lozano, M.; Gonz&aacute;lez, P.; Ramos, I.; Montero, F. y Pascual,   J. (2002). &quot;Desarrollo y generaci&oacute;n de interfaces de   usuario a partir de t&eacute;cnicas de an&aacute;lisis de tareas y casos de uso&quot; <i>Inteligencia Artificial</i>, vol. 6, No. 16, pp. 83-91.&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=S1794-1237201000010001100031&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Mammar, A. and Laleau, R.. (2006). &quot;From a B formal   specification to an executable code: application to the   relational database domain&quot;. <i>Information and Software   Technology</i>, vol. 48, No. 4, pp. 253-279.&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=S1794-1237201000010001100032&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Mich, L. (1999). &quot;NL-OOPS: From natural language to   object oriented requirements using the natural language   processing system LOLITA&quot;. <i>Journal of Natural   Language Engineering</i>. Cambridge University Press, vol. 2. No. 2, pp. 161-187.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000118&pid=S1794-1237201000010001100033&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><font size="2" face="Verdana">  Microsoft. Visual Basic, (consultado el 10 de agosto de   2009). Disponible en: <a href="http://msdn.microsoft.com" target="_blank">http://msdn.microsoft.com/es-co/default.aspx.</a></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000119&pid=S1794-1237201000010001100034&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Mortensen, K. H. (1999). &quot;Automatic code generation   from coloured Petri nets for an access control system&quot;.   Second Workshop on Practical Use of Coloured Petri   Nets, Aarhus, October, pp. 41-58.&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=S1794-1237201000010001100035&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Mortensen, K. H. (2000). &quot;Automatic code generation   from coloured Petri nets for an access control system&quot;.   <i>Lecture Notes in Computer Science</i>, vol. 1825 (June), pp. 367-386.&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=S1794-1237201000010001100036&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Mu&ntilde;et&oacute;n, A.; Zapata, C. M. y Arango, F. (2007). &quot;Reglas   para la generaci&oacute;n autom&aacute;tica de c&oacute;digo definidas   sobre metamodelos simplificados de los diagramas de   clases, secuencias y m&aacute;quina de estados de UML 2.0&quot;. <i>Dyna</i>, vol. 74, No. 153, pp. 267-283.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000122&pid=S1794-1237201000010001100037&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Nassar, M.; Anwar, A.; Ebersold, S.; Elasri, B.; Coulette, B.   and Kriouile, A. (2009). &quot;Code generation in VUML profile:   A model driven approach&quot;. IEEE/ACS International   Conference on Computer Systems and Applications, Rabat, May, pp. 412-419.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000123&pid=S1794-1237201000010001100038&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Niaz, I. A. and Tanaka, J. (2003). &quot;Code generation from   UML statecharts&quot;. Proceedings 7th IASTED International   Conference on Software Engineering and Application SEA, Marina Del Rey, November, pp. 315-321.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000124&pid=S1794-1237201000010001100039&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Niaz, I. and Tanaka, J. (2004). &quot;Mapping UML statecharts to   Java code&quot;. Proceedings IASTED International Conference   on Software Engineering (SE 2004), Innsbruck, February, pp. 111-116.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000125&pid=S1794-1237201000010001100040&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Niaz, I. and Tanaka, J. (2005). &quot;An object-oriented approach   to generate Java code from UML Statecharts&quot;.   <i>International Journal of Computer &amp; Information Science</i>, vol. 6, No. 2 (June), pp. 315-321.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000126&pid=S1794-1237201000010001100041&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Overmyer, S. P.; Lavoie, B. and Rambow, O. (2001).   &quot;Conceptual modeling through linguistic analysis using   LIDA&quot;. <i>Proceedings of ICSE</i>, <i>Washington, DC, pp</i>. <i>401-410</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000127&pid=S1794-1237201000010001100042&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Panach, J.; Espa&ntilde;a, S.; Pederiva, I. and Pastor, O. (2008).   &quot;Capturing interaction requirements in a model transformation   technology based on MDA&quot;. <i>Journal of Universal Computer Science</i>, vol. 14, No. 9, pp. 1480-1495.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000128&pid=S1794-1237201000010001100043&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Peckham, J. and MacKellar, B. (2001). &quot;Generating code   for engineering design systems using software patterns&quot;.   <i>Artificial Intelligence in Engineering</i>, vol. 15. No 2, pp. 219-226.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000129&pid=S1794-1237201000010001100044&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Pilitowski, P. and Derezinska, A. (2007). &quot;Code generation   and execution framework for UML 2.0 classes and state   machines&quot;. <i>Innovations and Advanced Techniques in   Computer and Information Sciences and Engineering</i>, pp. 421-427.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000130&pid=S1794-1237201000010001100045&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Ramos, I.; Montero, F. y Molina, J. P. (2002). &quot;Desarrollo y   generaci&oacute;n de interfaces de usuario a partir de t&eacute;cnicas   de an&aacute;lisis de tareas y casos de uso&quot;. <i>Revista Iberoamericana</i>, vol. 16, pp. 83-91.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000131&pid=S1794-1237201000010001100046&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Ramkarthik, S. and Zhang, C. (2006). &quot;Generating Java   skeletal code with design contracts from specifications   in a subset of object Z&quot;. 5th IEEE/ACIS International   Conference on Computer and Information Science,   2006 and 2006 1st IEEE/ACIS International Workshop   on Component-Based Software Engineering, Software   Architecture and Reuse. ICIS-COMSAR 2006, Honolulu, July, pp. 405-411.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000132&pid=S1794-1237201000010001100047&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Regep, D. and Kordon, F. (2000). &quot;Using MetaScribe to   prototype an UML to C++/Ada95 code generator&quot;.   Proceedings of the 11th IEEE International Workshop   on Rapid System Prototyping (RSP 2000), San Diego, June, pp. 128-134.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000133&pid=S1794-1237201000010001100048&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Samuel, P.; Mall, R. and Kanth, P. (2007). &quot;Automatic test   case generation from UML communication diagrams&quot;.   <i>Information and Software Technology</i>, vol. 49, No. 2, pp. 158-171.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000134&pid=S1794-1237201000010001100049&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><font size="2" face="Verdana">  Sybase. Power Builder, (consultado el 4 de junio de 2010) Disponible en: <a href="http://www.mtbase.com" target="_blank">http://www.mtbase.com/productos/desarrollo/powerbuilder.</a></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000135&pid=S1794-1237201000010001100050&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Usman, M.; Nadeem, A. and Kim, T. (2008) &quot;UJECTOR: A   tool for executable code generation from UML models&quot;,   <i>Advanced Software Engineering &amp; its Applications</i>, Hainan Island, December, pp. 165-170.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000136&pid=S1794-1237201000010001100051&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Usman, M. and Nadeem, A. (2009). &quot;Automatic generation   of Java code from UML diagrams using UJECTOR&quot;.   <i>International Journal of Software Engineering and its</i>   Applications (IJSEIA), Daegu, vol. 3, No. 2 (April), pp. 21-37.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000137&pid=S1794-1237201000010001100052&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Yao, W. and He, X. (1997). &quot;Mapping Petri nets to concurrent   programs in CC++&quot;. <i>Information and Software Technology</i>, vol. 39, No. 7, pp. 485-495.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000138&pid=S1794-1237201000010001100053&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Zapata, C. M.; Ruiz, L. M. y Villa, F. A. (2007). &quot;UNC-   -Diagramador una herramientas upper CASE para   la obtenci&oacute;n de diagramas UML desde esquemas   preconceptuales,&quot; <i>Revista Universidad EAFIT</i>, vol. 43, No. 147, pp. 68-80.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000139&pid=S1794-1237201000010001100054&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>  Zapata, C. M.; Gelbukh, A. y Arango, F. (2006) &quot;UN-Lencep:   Obtenci&oacute;n autom&aacute;tica de diagramas UML a partir   de un lenguaje controlado&quot;. Taller de Tecnolog&iacute;as del Lenguaje, San Luis Potos&iacute;, septiembre, pp. 1-6.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000140&pid=S1794-1237201000010001100055&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> ]]></body><back>
<ref-list>
<ref id="B1">
<nlm-citation citation-type="">
<collab>Adobe System</collab>
<source><![CDATA[Macromedia]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B2">
<nlm-citation citation-type="">
<collab>Advanced Reserarch & Technology</collab>
<source><![CDATA["Visión general de GeneXus"]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B3">
<nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Almendros-Jiménez]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Iribarne]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
</person-group>
<source><![CDATA["Designing GUI components from UML use cases".]]></source>
<year>2005</year>
<conf-name><![CDATA[ Proceedings 12th IEEE International Conference and Workshops on the Engineering of Computer]]></conf-name>
<conf-loc>Greenbelt Maryland</conf-loc>
</nlm-citation>
</ref>
<ref id="B4">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Beier]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
<name>
<surname><![CDATA[Kern]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA["Aspects in UML models from a code generation perspective"]]></source>
<year>2002</year>
<publisher-name><![CDATA[2nd Workshop on Aspect-Oriented Modeling with UML, UML]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B5">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bennett]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Cooper]]></surname>
<given-names><![CDATA[K]]></given-names>
</name>
<name>
<surname><![CDATA[Dai]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA["Aspect-oriented model-driven skeleton code generation: A graph-based transformation approach".]]></article-title>
<source><![CDATA[Science of Computer Programming]]></source>
<year>2009</year>
<volume>75</volume>
<numero>8</numero>
<issue>8</issue>
<page-range>689-725</page-range></nlm-citation>
</ref>
<ref id="B6">
<nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bodart]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Vanderdonckt]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA["Widget standardisation through abstract interaction objects".]]></source>
<year>1996</year>
<conf-name><![CDATA[ Proceedings of 1st International Conference on Applied Ergonomics ICAE´96]]></conf-name>
<conf-loc> </conf-loc>
<page-range>300-305</page-range></nlm-citation>
</ref>
<ref id="B7">
<nlm-citation citation-type="">
<collab>Borland Software Corporation</collab>
<source><![CDATA[Together, Borland Together Architect]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B8">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Buchholz]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
<name>
<surname><![CDATA[Düsterhöft]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA["Using natural language for database design".]]></source>
<year>1994</year>
<page-range>18-26</page-range><publisher-loc><![CDATA[Saarbrücken ]]></publisher-loc>
<publisher-name><![CDATA[Proceedings Deutsche Jahrestagung für Künstliche Intelligenz]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B9">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Burkhard]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Jenster]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA["Applications of computer-aided software engineering tools: survey of current and prospective users".]]></article-title>
<source><![CDATA[ACM SIGMIS Database]]></source>
<year>1989</year>
<volume>20</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>28-37</page-range></nlm-citation>
</ref>
<ref id="B10">
<nlm-citation citation-type="">
<source><![CDATA[Care Technologies]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B11">
<nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Chachkov]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Buchs]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<source><![CDATA["From formal specifications to ready-to-use software components: the concurrent object oriented Petri Net approach".]]></source>
<year>2001</year>
<conf-name><![CDATA[ 2nd International Conference on Application of Concurrency to System Design (ACSD 2001)]]></conf-name>
<conf-loc> </conf-loc>
<page-range>99-110</page-range></nlm-citation>
</ref>
<ref id="B12">
<nlm-citation citation-type="">
<collab>CodeGear</collab>
<source><![CDATA[Delphi]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B13">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Elkoutbi]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Keller]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA["User interface prototyping based on UML scenarios and high-level Petri nets".]]></article-title>
<source><![CDATA[Application and Theory of Petri Nets]]></source>
<year>2000</year>
<numero>21 ATPN</numero>
<issue>21 ATPN</issue>
<page-range>166-186</page-range></nlm-citation>
</ref>
<ref id="B14">
<nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Elkoutbi]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Khriss]]></surname>
<given-names><![CDATA[I]]></given-names>
</name>
<name>
<surname><![CDATA[Keller]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<source><![CDATA["Generating user interface prototypes from scenarios".]]></source>
<year>1999</year>
<conf-name><![CDATA[ RE´99, Fourth IEEE International Symposium on Requirements Engineering, Limerick]]></conf-name>
<conf-loc> </conf-loc>
<page-range>150-158</page-range></nlm-citation>
</ref>
<ref id="B15">
<nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Engels]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
<name>
<surname><![CDATA[Hücking]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Sauer]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Wagner]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA["UML collaboration diagrams and their transformation to Java".]]></source>
<year>1999</year>
<volume>1723</volume>
<conf-name><![CDATA[ Proceedings of the Second IEEE International Conference on the Unified Modeling Language (UML99), Fort Collins]]></conf-name>
<conf-loc> </conf-loc>
<page-range>473-488</page-range></nlm-citation>
</ref>
<ref id="B16">
<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[Weber]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA["Niba-Tag. A tool for analyzing and preparing German texts"]]></article-title>
<source><![CDATA[Management Information Systems, Bologna]]></source>
<year>2002</year>
<volume>6</volume>
<page-range>331-337</page-range></nlm-citation>
</ref>
<ref id="B17">
<nlm-citation citation-type="">
<collab>University of Paderborn^dSoftware Engineering Group</collab>
<source><![CDATA[Fujaba Tool Suite]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B18">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Gamma]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
<name>
<surname><![CDATA[Helm]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Johnson]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Vlissides]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[Design Patterns: Elements of Reusable Object-Oriented Software.]]></source>
<year>1995</year>
<publisher-name><![CDATA[Reading: Addison Wesley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B19">
<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>
<numero>2</numero>
<issue>2</issue>
<page-range>207-218</page-range></nlm-citation>
</ref>
<ref id="B20">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Geiger]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[Zündorf]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA["TOOL modeling with Fujaba".]]></article-title>
<source><![CDATA[Electronic Notes in Theoretical Computer Science]]></source>
<year>2006</year>
<volume>148</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>173-186</page-range></nlm-citation>
</ref>
<ref id="B21">
<nlm-citation citation-type="">
<collab>Genera</collab>
<source><![CDATA[Genova 7.0]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B22">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Génova]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
<name>
<surname><![CDATA[Ruiz del Castillo]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[Llorens]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA["Mapping UML associations into Java code".]]></article-title>
<source><![CDATA[Journal of Object Technology]]></source>
<year>2003</year>
<volume>2</volume>
<numero>5</numero>
<issue>5</issue>
<page-range>135-162</page-range></nlm-citation>
</ref>
<ref id="B23">
<nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Gessenharter]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<source><![CDATA["Mapping the UML2 semantics of associations to a Java code generation model".]]></source>
<year>2008</year>
<conf-name><![CDATA[ Proceedings of the 11th International Conference on Model Driven Engineering Languages and Systems, Toulouse]]></conf-name>
<conf-loc> </conf-loc>
<page-range>813-827</page-range></nlm-citation>
</ref>
<ref id="B24">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Gomes, B]]></surname>
<given-names><![CDATA[E. G]]></given-names>
</name>
<name>
<surname><![CDATA[Moreira]]></surname>
<given-names><![CDATA[A. M]]></given-names>
</name>
<name>
<surname><![CDATA[Déharbe]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA["Developing Java card applications with B".]]></article-title>
<source><![CDATA[Electronic Notes in Theoretical Computer Science]]></source>
<year>2007</year>
<volume>184</volume>
<page-range>81-96</page-range></nlm-citation>
</ref>
<ref id="B25">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Groher]]></surname>
<given-names><![CDATA[I]]></given-names>
</name>
<name>
<surname><![CDATA[Schulze]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
</person-group>
<source><![CDATA["Generating aspect code from UML models"]]></source>
<year>2003</year>
<publisher-loc><![CDATA[^eMassachusetts Massachusetts]]></publisher-loc>
<publisher-name><![CDATA[The 4th AOSD Modeling with UML Workshop]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B26">
<nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Harmain]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
<name>
<surname><![CDATA[Gaizauskas]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<source><![CDATA["CM-Builder: an automated NL-based CASE tool".]]></source>
<year>2000</year>
<conf-name><![CDATA[ Proceedings of the Fifteenth IEEE International Conference on Automated Software Engineering (ASE´ 00)]]></conf-name>
<conf-loc> </conf-loc>
<page-range>45-53</page-range><publisher-name><![CDATA[Grenoble]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B27">
<nlm-citation citation-type="">
<collab>IBM Corporation</collab>
<source><![CDATA[Rational Rose Architect]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B28">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Jacobson]]></surname>
<given-names><![CDATA[I]]></given-names>
</name>
<name>
<surname><![CDATA[Booch]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
<name>
<surname><![CDATA[Rumbaugh]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[The unified software development process]]></source>
<year>1999</year>
<publisher-name><![CDATA[Reading: Addison-Wesley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B29">
<nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kantorowitz]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
<name>
<surname><![CDATA[Lyakas]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Myasqobsky]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA["Use case-oriented software architecture".]]></source>
<year>2003</year>
<conf-name><![CDATA[ Proceedings of Workshop 11, Correctness of Model-based Software Composition (ECOOP´2003)]]></conf-name>
<conf-loc> </conf-loc>
<publisher-name><![CDATA[Darmstadt]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B30">
<nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Long]]></surname>
<given-names><![CDATA[Q]]></given-names>
</name>
<name>
<surname><![CDATA[Liu]]></surname>
<given-names><![CDATA[Z]]></given-names>
</name>
<name>
<surname><![CDATA[Li]]></surname>
<given-names><![CDATA[X]]></given-names>
</name>
<name>
<surname><![CDATA[Jifeng]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
</person-group>
<source><![CDATA["Consistent code generation from UML models".]]></source>
<year>2005</year>
<conf-name><![CDATA[ Australian Software Engineering Conference (ASWEC)]]></conf-name>
<conf-loc> </conf-loc>
<page-range>23-30</page-range><publisher-name><![CDATA[Brisbane]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B31">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Lozano]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[González]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Ramos]]></surname>
<given-names><![CDATA[I]]></given-names>
</name>
<name>
<surname><![CDATA[Montero]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Pascual]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA["Desarrollo y generación de interfaces de usuario a partir de técnicas de análisis de tareas y casos de uso"]]></article-title>
<source><![CDATA[Inteligencia Artificial]]></source>
<year>2002</year>
<volume>6</volume>
<numero>16</numero>
<issue>16</issue>
<page-range>83-91</page-range></nlm-citation>
</ref>
<ref id="B32">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Mammar]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Laleau]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA["From a B formal specification to an executable code: application to the relational database domain".]]></article-title>
<source><![CDATA[Information and Software Technology]]></source>
<year>2006</year>
<volume>48</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>253-279</page-range></nlm-citation>
</ref>
<ref id="B33">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Mich]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA["NL-OOPS: From natural language to object oriented requirements using the natural language processing system LOLITA".]]></article-title>
<source><![CDATA[Journal of Natural Language Engineering]]></source>
<year>1999</year>
<volume>2</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>161-187</page-range><publisher-name><![CDATA[Cambridge University Press]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B34">
<nlm-citation citation-type="">
<collab>Microsoft</collab>
<source><![CDATA[Visual Basic]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B35">
<nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Mortensen]]></surname>
<given-names><![CDATA[K. H]]></given-names>
</name>
</person-group>
<source><![CDATA["Automatic code generation from coloured Petri nets for an access control system".]]></source>
<year>1999</year>
<conf-name><![CDATA[ Second Workshop on Practical Use of Coloured Petri Nets]]></conf-name>
<conf-loc> </conf-loc>
<page-range>41-58</page-range><publisher-name><![CDATA[Aarhus]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B36">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Mortensen]]></surname>
<given-names><![CDATA[K. H]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA["Automatic code generation from coloured Petri nets for an access control system".]]></article-title>
<source><![CDATA[Lecture Notes in Computer Science]]></source>
<year>2000</year>
<volume>1825</volume>
<page-range>367-386</page-range></nlm-citation>
</ref>
<ref id="B37">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Muñetón]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<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["Reglas para la generación automática de código definidas sobre metamodelos simplificados de los diagramas de clases, secuencias y máquina de estados de UML 2.0"]]></article-title>
<source><![CDATA[Dyna]]></source>
<year>2007</year>
<volume>74</volume>
<numero>153</numero>
<issue>153</issue>
<page-range>267-283</page-range></nlm-citation>
</ref>
<ref id="B38">
<nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Nassar]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Anwar]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Ebersold]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Elasri]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[Coulette]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[Kriouile]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA["Code generation in VUML profile: A model driven approach".]]></source>
<year>2009</year>
<conf-name><![CDATA[ IEEE/ACS International Conference on Computer Systems and Applications]]></conf-name>
<conf-loc> </conf-loc>
<page-range>412-419</page-range><publisher-name><![CDATA[Rabat]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B39">
<nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Niaz]]></surname>
<given-names><![CDATA[I. A]]></given-names>
</name>
<name>
<surname><![CDATA[Tanaka]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA["Code generation from UML statecharts".]]></source>
<year>2003</year>
<conf-name><![CDATA[ Proceedings 7th IASTED International Conference on Software Engineering and Application SEA]]></conf-name>
<conf-loc> </conf-loc>
<page-range>315-321</page-range><publisher-name><![CDATA[Marina Del Rey]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B40">
<nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Niaz]]></surname>
<given-names><![CDATA[I]]></given-names>
</name>
<name>
<surname><![CDATA[Tanaka]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA["Mapping UML statecharts to Java code".]]></source>
<year>2004</year>
<conf-name><![CDATA[ Proceedings IASTED International Conference on Software Engineering (SE 2004)]]></conf-name>
<conf-loc> </conf-loc>
<page-range>111-116</page-range><publisher-name><![CDATA[Innsbruck]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B41">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Niaz]]></surname>
<given-names><![CDATA[I]]></given-names>
</name>
<name>
<surname><![CDATA[Tanaka]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA["An object-oriented approach to generate Java code from UML Statecharts".]]></article-title>
<source><![CDATA[International Journal of Computer & Information Science]]></source>
<year>2005</year>
<volume>6</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>315-321</page-range></nlm-citation>
</ref>
<ref id="B42">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Overmyer]]></surname>
<given-names><![CDATA[S. P]]></given-names>
</name>
<name>
<surname><![CDATA[Lavoie]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[Rambow]]></surname>
<given-names><![CDATA[O]]></given-names>
</name>
</person-group>
<source><![CDATA["Conceptual modeling through linguistic analysis using LIDA".]]></source>
<year>2001</year>
<page-range>401-410</page-range><publisher-loc><![CDATA[Washington^eDC DC]]></publisher-loc>
<publisher-name><![CDATA[Proceedings of ICSE]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B43">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Panach]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[España]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Pederiva]]></surname>
<given-names><![CDATA[I]]></given-names>
</name>
<name>
<surname><![CDATA[Pastor]]></surname>
<given-names><![CDATA[O]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA["Capturing interaction requirements in a model transformation technology based on MDA".]]></article-title>
<source><![CDATA[Journal of Universal Computer Science]]></source>
<year>2008</year>
<volume>14</volume>
<numero>9</numero>
<issue>9</issue>
<page-range>1480-1495</page-range></nlm-citation>
</ref>
<ref id="B44">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Peckham]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[MacKellar]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA["Generating code for engineering design systems using software patterns".]]></article-title>
<source><![CDATA[Artificial Intelligence in Engineering]]></source>
<year>2001</year>
<volume>15</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>219-226</page-range></nlm-citation>
</ref>
<ref id="B45">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Pilitowski]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Derezinska]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA["Code generation and execution framework for UML 2.0 classes and state machines".]]></source>
<year>2007</year>
<page-range>421-427</page-range><publisher-name><![CDATA[Innovations and Advanced Techniques in Computer and Information Sciences and Engineering]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B46">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ramos]]></surname>
<given-names><![CDATA[I]]></given-names>
</name>
<name>
<surname><![CDATA[Montero]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Molina]]></surname>
<given-names><![CDATA[J. P]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA["Desarrollo y generación de interfaces de usuario a partir de técnicas de análisis de tareas y casos de uso"]]></article-title>
<source><![CDATA[Revista Iberoamericana]]></source>
<year>2002</year>
<volume>16</volume>
<page-range>83-91</page-range></nlm-citation>
</ref>
<ref id="B47">
<nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ramkarthik]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Zhang]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
</person-group>
<source><![CDATA["Generating Java skeletal code with design contracts from specifications in a subset of object Z"]]></source>
<year>2006</year>
<conf-name><![CDATA[ 5th IEEE/ACIS International Conference on Computer and Information Science, 2006 and 2006 1st IEEE/ACIS International Workshop on Component-Based Software Engineering, Software Architecture and Reuse.]]></conf-name>
<conf-date>2006</conf-date>
<conf-loc> </conf-loc>
<page-range>405-411</page-range><publisher-loc><![CDATA[Honolulu ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B48">
<nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Regep]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Kordon]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
</person-group>
<source><![CDATA["Using MetaScribe to prototype an UML to C++/Ada95 code generator"]]></source>
<year>2000</year>
<conf-name><![CDATA[ Proceedings of the 11th IEEE International Workshop on Rapid System Prototyping (RSP 2000)]]></conf-name>
<conf-loc> </conf-loc>
<page-range>128-134</page-range><publisher-loc><![CDATA[San Diego ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B49">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Samuel]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Mall]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Kanth]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA["Automatic test case generation from UML communication diagrams"]]></article-title>
<source><![CDATA[Information and Software Technology]]></source>
<year>2007</year>
<volume>49</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>158-171</page-range></nlm-citation>
</ref>
<ref id="B50">
<nlm-citation citation-type="">
<collab>Sybase</collab>
<source><![CDATA[Power Builder]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B51">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Usman]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Nadeem]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Kim]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
</person-group>
<source><![CDATA["UJECTOR: A tool for executable code generation from UML models"]]></source>
<year>2008</year>
<page-range>165-170</page-range><publisher-loc><![CDATA[Hainan Island ]]></publisher-loc>
<publisher-name><![CDATA[Advanced Software Engineering & its Applications]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B52">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Usman]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Nadeem]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA["Automatic generation of Java code from UML diagrams using UJECTOR".]]></article-title>
<source><![CDATA[International Journal of Software Engineering and its Applications (IJSEIA), Daegu]]></source>
<year>2009</year>
<volume>3</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>21-37</page-range></nlm-citation>
</ref>
<ref id="B53">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Yao]]></surname>
<given-names><![CDATA[W]]></given-names>
</name>
<name>
<surname><![CDATA[He]]></surname>
<given-names><![CDATA[X]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA["Mapping Petri nets to concurrent programs in CC++".]]></article-title>
<source><![CDATA[Information and Software Technology]]></source>
<year>1997</year>
<volume>39</volume>
<numero>7</numero>
<issue>7</issue>
<page-range>485-495</page-range></nlm-citation>
</ref>
<ref id="B54">
<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[Ruiz]]></surname>
<given-names><![CDATA[L. M]]></given-names>
</name>
<name>
<surname><![CDATA[Villa]]></surname>
<given-names><![CDATA[F. A]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA["UNC- -Diagramador una herramientas upper CASE para la obtención de diagramas UML desde esquemas preconceptuales,"]]></article-title>
<source><![CDATA[Revista Universidad EAFIT]]></source>
<year>2007</year>
<volume>43</volume>
<numero>147</numero>
<issue>147</issue>
<page-range>68-80</page-range></nlm-citation>
</ref>
<ref id="B55">
<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>
<source><![CDATA["UN-Lencep: Obtención automática de diagramas UML a partir de un lenguaje controlado".]]></source>
<year>2006</year>
<page-range>1-6</page-range><publisher-loc><![CDATA[San Luis Potosí ]]></publisher-loc>
<publisher-name><![CDATA[Taller de Tecnologías del Lenguaje]]></publisher-name>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
