<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>0012-7353</journal-id>
<journal-title><![CDATA[DYNA]]></journal-title>
<abbrev-journal-title><![CDATA[Dyna rev.fac.nac.minas]]></abbrev-journal-title>
<issn>0012-7353</issn>
<publisher>
<publisher-name><![CDATA[Universidad Nacional de Colombia]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S0012-73532006000200014</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[TRANSFORMACIÓN DEL MODELO DE CLASES UML A Oracle9i® BAJO LA DIRECTIVA MDA: UN CASO DE ESTUDIO]]></article-title>
<article-title xml:lang="en"><![CDATA[TRANSFORMATION FROM UML CLASS MODEL TO ORACLE9i® USING THE MDA GUIDELINES : A STUDY CASE]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[ARANGO]]></surname>
<given-names><![CDATA[FERNANDO]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[GÓMEZ]]></surname>
<given-names><![CDATA[MARÍA CLARA]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[ZAPATA]]></surname>
<given-names><![CDATA[CARLOS M.]]></given-names>
</name>
<xref ref-type="aff" rid="A03"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad Nacional de Colombia, sede Medellín Grupo de Investigación UN-INFO ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<aff id="A02">
<institution><![CDATA[,Universidad Nacional de Colombia, sede Medellín Grupo de Investigación UN-INFO ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<aff id="A03">
<institution><![CDATA[,Universidad Nacional de Colombia, sede Medellín Grupo de Investigación UN-INFO ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>07</month>
<year>2006</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>07</month>
<year>2006</year>
</pub-date>
<volume>73</volume>
<numero>149</numero>
<fpage>165</fpage>
<lpage>179</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_arttext&amp;pid=S0012-73532006000200014&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_abstract&amp;pid=S0012-73532006000200014&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_pdf&amp;pid=S0012-73532006000200014&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[La Arquitectura Orientada a Modelos (MDA) es la propuesta de refinamiento de la OMG orientada a la generación automática de código a partir de los Modelos UML de Sistemas Independientes de la Plataforma de Implementación. En este trabajo se presenta una metodología para transformar el Modelo de Clases UML a un Modelo UML Dependiente de la Plataforma Oracle9i®, siguiendo los lineamientos básicos presentados por esta arquitectura y utilizando a UML como lenguaje de modelado a través de todos los pasos de dicha transformación. Inicialmente las reglas de transformación del Modelo de Clases de UML al Modelo Objeto-Relacional soportado por Oracle9i® son recopiladas en Español y adaptadas a nivel de metamodelo, para lo cual fue necesario elaborar un metamodelo simplificado de la plataforma Oracle9i®. Este conjunto de reglas se hace automatizable al expresarlas en un formalismo lógico, que sea fácilmente ejecutable por una herramienta CASE que soporte un lenguaje formal. Finalmente, se aplican las reglas de refinamiento formalizadas al Modelo de Clases de un Caso Práctico de estudio obteniendo como resultado, un Modelo UML instancia del Metamodelo de la Plataforma Oracle9i®. Los aspectos del Modelo de Clases en los que se hace énfasis en la transformación son las invariantes y reglas de derivación de atributos definidas en el lenguaje formal OCL, así como las relaciones de asociación, composición y generalización entre Clases.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[Model Driven Architecture (MDA) is the OMG refinement proposal directed to the automatic code generation from UML implementation platform independent models. This work presents a methodology for transforming UML Class Model to UML Platform Dependent Model for Oracle9i®, following the basic ideas proposed by MDA and using the UML language as the modeling language in the transformation process. Initially, transformation rules from UML class model to the relational-object model supported by Oracle9i® are collected in spanish and adapted to metamodel level; to achieve it, it was necessary to elaborate a simplified Oracle9i® platform metamodel. This set of rules becomes automatizable when is expressed in a logical formalism, that is expected to be executed by a supporting formal language CASE tool. Finally, the formalized refinement rules are applied to UML class model from a practical study case, obtaining as a result an UML Model instance of Oracle9i® platform metamodel. Class Model aspects in which emphasize the transformation are the invariants and derivation rules of attributes defined in the OCL formal language, as well as the association, composition and generalization relationships between classes.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[Ingeniería del Software]]></kwd>
<kwd lng="es"><![CDATA[MDA]]></kwd>
<kwd lng="es"><![CDATA[Refinamiento]]></kwd>
<kwd lng="es"><![CDATA[UML 2.0]]></kwd>
<kwd lng="es"><![CDATA[OCL]]></kwd>
<kwd lng="es"><![CDATA[Oracle9i®]]></kwd>
<kwd lng="es"><![CDATA[herramientas CASE]]></kwd>
<kwd lng="es"><![CDATA[formalismo lógico]]></kwd>
<kwd lng="es"><![CDATA[Metamodelos]]></kwd>
<kwd lng="en"><![CDATA[Software Engineering]]></kwd>
<kwd lng="en"><![CDATA[MDA]]></kwd>
<kwd lng="en"><![CDATA[Refinement]]></kwd>
<kwd lng="en"><![CDATA[UML 2.0]]></kwd>
<kwd lng="en"><![CDATA[OCL]]></kwd>
<kwd lng="en"><![CDATA[Oracle9i®]]></kwd>
<kwd lng="en"><![CDATA[CASE tools]]></kwd>
<kwd lng="en"><![CDATA[Logic formalism]]></kwd>
<kwd lng="en"><![CDATA[Metamodels]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p align="center"><b>TRANSFORMACIÓN DEL MODELO DE CLASES UML A Oracle9i&reg; BAJO LA DIRECTIVA MDA: UN CASO DE ESTUDIO</b></p>     <p align="center"><b>TRANSFORMATION FROM UML CLASS MODEL TO ORACLE9i&reg; USING THE MDA GUIDELINES : A STUDY CASE</b></p>     <p align="center"><b>FERNANDO ARANGO</b>     <br>    <i>Grupo de Investigación UN-INFO. Universidad Nacional de Colombia, sede Medellín.</i></p>     <p align="center"><b>MARÍA CLARA GÓMEZ</b>    <br>    <i>Grupo de Investigación UN-INFO. Universidad Nacional de Colombia, sede Medellín.</i></p>     <p align="center"><b>CARLOS M. ZAPATA</b>    <br>    <i>Grupo de Investigación UN-INFO. Universidad Nacional de Colombia, sede Medellín.</i></p>     <p align="center"> Recibido para revisar 6 de Abril de 2005, aceptado 29 de Agosto de 2005, versión final 18 de Octubre de 2005</p>     <p> <b>RESUMEN: </b>La Arquitectura Orientada a Modelos (MDA) es la propuesta de refinamiento de la OMG orientada a la generación automática de código a partir de los Modelos UML de Sistemas Independientes de la Plataforma de Implementación. En este trabajo se presenta una metodología para transformar el Modelo de Clases UML a un Modelo UML Dependiente de la Plataforma Oracle9i&reg;, siguiendo los lineamientos básicos presentados por esta arquitectura y utilizando a UML como lenguaje de modelado a través de todos los pasos de dicha transformación. </p>     ]]></body>
<body><![CDATA[<p>Inicialmente las reglas de transformación del Modelo de Clases de UML al Modelo Objeto-Relacional soportado por Oracle9i&reg; son recopiladas en Español y adaptadas a nivel de metamodelo, para lo cual fue necesario elaborar un metamodelo simplificado de la plataforma Oracle9i&reg;.  Este conjunto de reglas se hace automatizable al expresarlas en un formalismo lógico, que sea fácilmente ejecutable por una herramienta CASE que soporte un lenguaje formal. Finalmente, se aplican las reglas de refinamiento formalizadas al Modelo de Clases de un Caso Práctico de estudio obteniendo como resultado, un Modelo UML instancia del Metamodelo de la Plataforma Oracle9i&reg;. Los aspectos del Modelo de Clases en los que se hace énfasis en la transformación son las invariantes y reglas de derivación de atributos definidas en el lenguaje formal OCL, así como las relaciones de asociación, composición y generalización entre Clases.</p>     <p><b>PALABRAS CLAVE: </b>Ingeniería del Software, MDA, Refinamiento, UML 2.0, OCL, Oracle9i&reg;, herramientas CASE, formalismo lógico y Metamodelos.</p>     <p><b>ABSTRACT: </b>Model Driven Architecture (MDA) is the OMG refinement proposal directed to the automatic code generation from UML implementation platform independent models. This work presents a methodology for transforming UML Class Model to UML Platform Dependent Model for Oracle9i&reg;, following the basic ideas proposed by MDA and using the UML language as the modeling language in the transformation process.</p>     <p>Initially, transformation rules from UML class model to the relational-object model supported by Oracle9i&reg; are collected in spanish and adapted to metamodel level; to achieve it, it was necessary to elaborate a simplified Oracle9i&reg; platform metamodel. This set of rules becomes automatizable when is expressed in a logical formalism, that is expected to be executed by a supporting formal language CASE tool. Finally, the formalized refinement rules are applied to UML class model from a practical study case, obtaining as a result an UML Model instance of Oracle9i&reg; platform metamodel. Class Model aspects in which emphasize the transformation are the invariants and derivation rules of attributes defined in the OCL formal language, as well as the association, composition and generalization relationships between classes.</p>     <p><b>KEY WORDS: </b>Software Engineering, MDA, Refinement, UML 2.0, OCL, Oracle9i&reg;, CASE tools, Logic formalism and Metamodels.</p>     <p><b>1. INTRODUCCIÓN</b></p>     <p>La Ingeniería de Software concibe actualmente el proceso de desarrollo de sistemas como una construcción sucesiva de modelos que inicialmente describen el dominio de aplicación hasta llegar a modelos  de la solución en los que se incluyen aspectos técnicos de la plataforma de implementación elegida. En este proceso, los modelos obtenidos al final de cada fase del desarrollo alcanzan un mayor nivel de detalle que los construidos en la fase anterior.  Es así como el desarrollo de sistemas informáticos se entiende como un proceso de refinamiento sucesivo de modelos, definiendo refinamiento como “una descripción detallada de algo que conforma a otra descripción (su abstracción)” [1].</p>     <p>Los Modelos del Sistema producto de las fases de definición y análisis, en particular, deben ser refinados para incorporarles los elementos propios de la plataforma tecnológica de implantación durante la fase de diseño. </p>     <p>La propuesta de refinamiento del Object Management Group (OMG) [2] es  la “Arquitectura Orientada a Modelos”, o MDA, que plantea tres aspectos fundamentales:</p> <ul>       <li>	Separación de la especificación de los requisitos de un sistema de los aspectos técnicos asociados con su implementación en una plataforma particular. En otras palabras, se pasa de uno o varios Modelos del Sistema “independientes de la plataforma de implementación”, obtenidos en la fase de análisis, a un Modelo “dependiente de la plataforma de implementación” elegida, como producto de la fase de diseño. </li>       ]]></body>
<body><![CDATA[<li>Uso de UML como lenguaje único de modelamiento a través de todo el proceso     de refinamiento de modelos. Así, tanto los modelos independientes de la plataforma     como los dependientes de la plataforma estarán     especificados en este lenguaje.</li>       <li>	Formalización de las reglas de transformación del modelo independiente de la plataforma al modelo dependiente de la plataforma para su posterior automatización. </li>     </ul>     <p>Esta propuesta busca la interoperabilidad entre productos de software, que podrían ejecutarse en cualquier plataforma a la que se pueda efectuar la traducción, a pesar de estar especificados en un lenguaje universal de modelado, diferente del lenguaje de codificación de una plataforma específica.</p>     <p>El Proyecto de Investigación financiado por Colciencias: “Extensiones en Herramientas CASE con énfasis en Formalismos y Reutilización”  tiene como fin la incorporación de mecanismos de refinamiento en la herramienta CASE en desarrollo AR2CA [3] por parte del Grupo de Investigación en Ingeniería de Software de la Universidad EAFIT, así como la identificación de los elementos necesarios para incorporar reglas de refinamiento de modelos en el UN-MetaCASE [4]. En este artículo se presenta un trabajo basado en la propuesta de refinamiento MDA del OMG, que pretende sentar las bases para automatizar la transformación de un Modelo de Clases UML, independiente de la plataforma, a un Modelo UML Dependiente de la Plataforma Oracle9i&reg;.</p>     <p>La estructura del artículo es la siguiente: en la sección 2 se presenta una descripción detallada de la metodología a seguir para llevar a cabo la transformación del Modelo de Clases UML al Modelo UML Dependiente de la Plataforma Oracle9i&reg;; los aspectos relevantes del Metamodelo del Modelo de Clases de UML2.0 utilizado se presentan en la sección 3; el desarrollo del Metamodelo Simplificado de la Plataforma Oracle9i&reg; se presenta en la sección 4; en la sección 5 se presenta la adaptación de las reglas de transformación a nivel de Metamodelos y la aplicación al Caso de estudio y en la sección 6 se presentan las conclusiones y el trabajo futuro.</p>     <p><b>2. METODOLOGÍA</b></p>     <p>Las reglas de transformación o refinamiento de modelos se especifican a nivel de Metamodelos, tal como se muestra en la <a href="#fig01">Figura 1</a>, no sólo para hacerlas más genéricas, sino también por los siguientes motivos:</p> <ul>       <li>	El UN-MetaCASE, actualmente en desarrollo del Grupo de Informática de     la Escuela de Sistemas [4], permite especificar los metamodelos, y expresar     las reglas de refinamiento a este nivel haciendo uso de un lenguaje formal.</li>       <li>El lenguaje de modelamiento que soporta la herramienta CASE AR2CA [3]     es UML y, ya que las reglas de consistencia de Modelos se definen a nivel     del Metamodelo de UML, resulta natural optar por definir las reglas de refinamiento     a este mismo nivel, para aprovechar la implementación en Java del Metamodelo     de Clases UML versión     2.0 en ambos sentidos. </li>     ]]></body>
<body><![CDATA[</ul>     <p><a name="fig01"></a><img src="/img/revistas/dyna/v73n149/a14fig01.gif" border="0"></p>     <p><b>Figura 1.</b> Esquema de Transformación a nivel de Metamodelos.     <br>   <b>Figure 1.</b> Transformation Scheme at Metamodel Level</p>     <p>Se tiene entonces como Metamodelo Fuente el Metamodelo del Modelo de Clases de UML 2.0, especificado por la OMG, y como Metamodelo Destino u Objetivo una versión Simplificada del Metamodelo de la Plataforma Oracle9i&reg;, elaborado específicamente para esta propuesta. </p>     <p>La metodología a seguir para la transformación de modelos definiendo las reglas a nivel de metamodelo será la siguiente:</p> <ol>       <li>Recolección en lenguaje natural de las reglas de transformación del Modelo     de Clases UML al Modelo Objeto-Relacional de Oracle9i&reg;,     a partir de diferentes fuentes. </li>       <li>Estudio y simplificación del Metamodelo Fuente: Metamodelo del Modelo     de Clases de UML2.0, extrayendo sus características más recurrentes en los     diagramas construidos por los analistas de software como los atributos derivados     y las relaciones de asociación, composición y generalización     entre Clases. </li>       <li>Diseño de un Metamodelo simplificado del Sistema Manejador de Bases de     Datos Oracle9i&reg; en el que se especifican las características objeto – relacionales     de las que se saca provecho en la transformación     de modelos. </li>       <li>Selección de un conjunto básico de reglas verbales para transformar el     Modelo de Clases UML al Modelo Objeto-Relacional en las que se contemplan     aspectos del Modelo de Clases como atributos derivados y relaciones de asociación     y generalización     para adaptarlas a nivel del Metamodelo. </li>       ]]></body>
<body><![CDATA[<li>Formalización y aplicación de las reglas seleccionadas al caso práctico     de estudio. Para estas actividades se toma como entrada una instancia del     Metamodelo de Clases de UML, y como salida, se obtiene una instancia del     Metamodelo de Oracle9i&reg; considerablemente cercana a su implementación en     dicha plataforma, expresada también     en UML. </li>     </ol>     <p>En la sección siguiente se introducen los aspectos fundamentales del Metamodelo de UML, con el fin de iniciar el proceso de transformación.</p>     <p><b>3. METAMODELO DE UML</b></p>     <p>UML es el lenguaje unificado de modelamiento propuesto por el OMG  para la especificación de sistemas informáticos [5].  Este lenguaje de propósito general, que puede ser utilizado para la descripción de sistemas de diversos dominios, provee simultáneamente mecanismos de extensión, para que pueda adaptarse de manera óptima a un área de aplicación particular.</p>     <p>Ahora, los metamodelos son modelos que especifican la estructura, semántica y restricciones de una familia de modelos [6].  Por ejemplo, el Metamodelo del Diagrama de Clases UML especifica todos los elementos que puede contener este Diagrama (Clases, Operaciones, Clases de Asociación) y las relaciones que se pueden establecer entre ellos (Asociaciones, Composiciones y Generalizaciones). El Metamodelo de UML está especificado en MOF (Meta Object Facility) [7], que corresponde al lenguaje de metamodelamiento estándar del OMG.  Este metamodelo provee mecanismos de extensión que permiten añadir elementos (como clases y relaciones) si se considera necesario; además, esos mecanismos permiten el uso de perfiles UML que brindan la posibilidad de extender un metamodelo existente con construcciones propias de un dominio particular sin modificar el Metamodelo original de UML [8].</p>     <p>La especificación de la versión más reciente de UML (versión 2.0) incluye el Metamodelo correspondiente a varios de los diagramas que se pueden representar con este lenguaje como son: El Diagrama de Clases, de Transición de Estados y de Actividades [5].</p>     <p>Este artículo se centra en el Metamodelo del Diagrama de Clases, siendo éste último el Modelo Independiente de la plataforma que se va a transformar en un modelo Dependiente de la Plataforma Oracle9i&reg;.  El Metamodelo del diagrama de Clases gira alrededor de la Metaclase Class que describe las características que debe poseer una clase de este Diagrama.  En la <a href="#fig02">Figura 2</a> se presenta la estructura de herencia  de la Metaclase UML Class,  y en la <a href="#fig03">Figura 3</a> todas las relaciones con otras Metaclases del Metamodelo del Diagrama de Clases.</p>     <p><a name="fig02"></a><a href="/img/revistas/dyna/v73n149/a14fig02.gif"><img src="/img/revistas/dyna/v73n149/a14fig02.gif" border="0"></a></p>     <p><b>Figura 2. </b>Estructura de Herencia de la Metaclase Class     ]]></body>
<body><![CDATA[<br>     <b>Figure 2.</b> Inheritance Structure of Metaclass Class.</p>     <p><a name="fig03"></a><img src="/img/revistas/dyna/v73n149/a14fig03.gif" border="0"></p>     <p><b>Figura 3.</b> Relaciones de la Metaclase UML Class     <br>     <b>Figure 3. </b>Relationships of UML Metaclass Class</p>     <p>Dada la complejidad del  Metamodelo del diagrama de Clases de UML, para este   trabajo se toma como Metamodelo Fuente una versión simplificada que incorpora sólo los elementos necesarios para describir la transformación al Modelo Objeto-Relacional. En particular, se describen las Clases, los Atributos, las Operaciones y las diferentes relaciones que se pueden establecer entre las Clases: generalización, asociación, agregación y composición; además de la definición   de invariantes o restricciones sobre los Modelos de Clases [5].</p>     <p>En la <a href="#tab01">Tabla 1</a> se describen los atributos de la Metaclase Class que se tienen en cuenta para la transformación al Modelo Dependiente de la Plataforma Oracle9i&reg; y en la <a href="#fig04">Figura 4</a> se presenta el Metamodelo Simplificado para la Clase UML Class que los contiene.</p>     <p><b><a name="tab01"></a>Tabla 1.</b> Atributos seleccionados de la Metaclase   UML Class     <br>   <b>Table 1. </b>Selected Attributes of UML Metaclass Class</p>     <p><a href="/img/revistas/dyna/v73n149/a14tab01.gif"><img src="/img/revistas/dyna/v73n149/a14tab01.gif" border="0"></a></p>     <p><a name="fig04"></a><img src="/img/revistas/dyna/v73n149/a14fig04.gif" border="0"></p>     ]]></body>
<body><![CDATA[<p><b>Figura 4.</b> Metamodelo Simplificado de la Metaclase UML Class     <br>   <b>Figure 4.</b> Simplified Metamodel of UML Metaclass Class</p>     <p><b>4. METAMODELO DE Oracle9i&reg;</b></p>     <p>La especificación de las reglas de transformación de un Modelo de Clases Independiente de la plataforma, a un Modelo Dependiente de esta plataforma, exige la utilización de un Metamodelo que especifique un conjunto de características básicas soportadas por la plataforma; en este artículo se emplea Oracle9i&reg; [9] como Metamodelo de llegada para la aplicación de las reglas de refinamiento. Este Metamodelo representa adecuadamente las características de la plataforma de las que se desea tomar ventaja en el proceso de traducción. Las características objeto-relacionales más relevantes que se describen en el metamodelo simplificado de Oracle9i&reg; son:</p> <ul>       <li>Tipos definidos por el usuario: El usuario puede definir sus tipos de datos     complejos y asignarlos a columnas o tablas dentro del esquema de la base de   datos. </li>       <li>Generalización entre Tipos: Definición de relaciones de generalización     entre tipos creados por el usuario, de tal manera que el tipo específico     hereda todos los atributos y funciones definidas para el tipo general, tal     como lo establece la teoría de orientación     a objetos.</li>       <li>Tipos Colección: Se tiene nuevos tipos de datos que permiten almacenar     varios elementos de un tipo dado, bien sea predefinido dentro de Oracle o     creado por el usuario. Estos tipos de datos son los arreglos o Varray y las     Tablas Anidadas. Esta característica en particular, hace posible la definición     de atributos multivaluados y se convierte en una opción a tener en cuenta     al momento de decidir la implementación     de asociaciones entre Clases con cardinalidad muchos.</li>         <li>	Referenciación de Tipos: El tipo de una columna de una tabla puede ser     una referencia a un tipo creado por el usuario asociado a otra tabla de la     misma     base de Datos. </li>     </ul>     <p>El Metamodelo simplificado de Oracle9i&reg; que se elaboró para este trabajo está conformado por un Diagrama de Clases que especifica sus componentes fundamentales, tales como Tablas, Columnas, Tipos y Vistas, entre otros.  El Diagrama, que se muestra en la <a href="#fig05">Figura 5</a>, va acompañado por una explicación relativa a sus Metaclases y sus atributos siguiendo el mismo esquema de definición del  Metamodelo de UML 2.0. Las reglas de consistencia de la especificación Oracle9i&reg; se pudieron expresar por medio del (Meta) diagrama de clases, definiéndolas en el lenguaje OCL [10] como restricciones.</p>     ]]></body>
<body><![CDATA[<p><a name="fig05"></a><img src="/img/revistas/dyna/v73n149/a14fig05.gif" border="0"></p>     <p><b>Figura 5.</b> Diagrama de Tablas Oracle9i&reg;     <br>     <b>Figure 5. </b>Oracle9i&reg; Tables Diagram </p>     <p>En el Diagrama de la <a href="#fig05">Figura 5</a> se describe una tabla como una asociación lógica   de atributos o columnas, que posee un nombre y es de tipo abstracto.</p>     <p>Ahora, esta metaclase Tabla se especializa en las metaclases Vista y Tabla Persistente.  La primera hace referencia a un elemento de Oracle9i&reg; que agrupa un conjunto de atributos de una o varias tablas, mientras que una Tabla Persistente implica una agrupación no sólo lógica sino también física del conjunto de atributos comunes de una entidad del dominio, es decir, exige almacenamiento permanente dentro de la base de datos.  Una instancia de la Metaclase Tabla Persistente posee un conjunto de atributos o columnas (atributo_tabla) y también puede tener restricciones asociadas (restricción_tabla) a uno o varios de sus atributos, que corresponden a sus reglas de cálculo o derivación.</p>     <p>Restricción       <br>   Las columnas que corresponden al valor del atributo clave_candidata  de la Metaclase Tabla Persistente deben ser únicas y obligatorias.    <br> context Tabla Persistente inv: self.clave_candidata->forAll(c I c.obligatorio and c.unico)</p>     <p><b>5. ADAPTACIÓN Y APLICACIÓN DE LAS REGLAS DE TRANSFORMACIÓN</b></p>     <p>Las reglas de transformación del Modelo de Clases UML a una especificación en Oracle9i&reg; inicialmente fueron planteadas verbalmente con base en las planteadas en otros trabajos [11], [12], [13], [14], [15] y [16]. Una vez planteadas, estas reglas se deben expresar a nivel meta de tal forma que, al aplicarlas sobre cualquier Modelo de Clases, instancia del Metamodelo de Clases de UML, dicho modelo se transforme en una instancia del Metamodelo de Oracle9i&reg;. En la <a href="#fig06">Figura 6</a> se presenta un esquema general de la transformación.</p>     ]]></body>
<body><![CDATA[<p><a name="fig06"></a><img src="/img/revistas/dyna/v73n149/a14fig06.gif" border="0"></p>     <p><b>Figura 6.</b> Esquema de la Transformación de Modelos para el Caso de Estudio     <br>   <b>Figure 6.</b> Model Transformation Scheme for the Case Study</p>     <p>La estrategia seguida para  especificar en el  nivel meta las reglas de transformación, consistió en seleccionar un pequeño subconjunto de ellas y aplicarlas primero manualmente al Modelo de Clases del Caso de estudio, visto como una instancia del metamodelo UML,  para transformarlo en una especificación Oracle9i&reg;, vista como una instancia de su metamodelo.</p>     <p>Este ejercicio permite identificar:</p> <ol>       <li>Correspondencias entre las Clases del Metamodelo Fuente y Destino.</li>       <li>Atributos de las Metaclases Fuente cuyos valores determinan los valores     de los atributos de las clases destino correspondientes.</li>     </ol>     <p>A partir de estos dos criterios se pueden adaptar las  reglas  de transformación  llevándolas al nivel Meta y finalmente expresarlas en un formalismo lógico. </p>     <p>Las reglas seleccionadas se orientan a la transformación de cinco elementos básicos del Modelo de Clases de UML:</p> <ul>       ]]></body>
<body><![CDATA[<li>Clases </li>       <li>Invariantes </li>       <li>Atributos Derivados </li>       <li>Asociaciones, incluyendo la relación de composición </li>       <li>Generalización </li>     </ul>     <p>En la <a href="#fig07">Figura 7</a> se ilustra la Clase  UML “Materia” que hace parte del Modelo de Clases del Caso de Estudio que corresponde al Sistema de Registro de asignaturas por parte de los estudiantes de una Universidad.</p>     <p><a name="fig07"></a><img src="/img/revistas/dyna/v73n149/a14fig07.gif" border="0"></p>     <p><b>Figura 7.</b> Clase UML Materia     <br>   <b>Figure 7.</b> UML Class Subject</p>     ]]></body>
<body><![CDATA[<p>La correspondencia entre cada elemento de esta porción del Modelo de Clases y las clases del Metamodelo de UML2.0 de la que son instancias se presentan gráficamente en el Diagrama de Objetos de la Clase UML Materia (véase <a href="#fig08">Figura 8</a>).  Por ejemplo, de acuerdo con la <a href="#fig07">Figura 7</a> la Clase UML Materia posee cuatro atributos: código, nivel, clasificable y reemplazada; cada uno de ellos corresponde a una instancia de la Metaclase UML Property tal como se observa en el Diagrama de Objetos correspondiente.</p>     <p><a name="fig08"></a><img src="/img/revistas/dyna/v73n149/a14fig08.gif" border="0"></p>     <p><b>Figura 8.</b> Diagrama de Objetos de la Clase UML Materia     <br>   <b>Figure 8. </b>Object Diagram for UML Class Subject</p>     <p>A continuación se describen algunas de las reglas que fueron aplicadas a esta porción del Modelo de Clases para transformarlo en una instancia del metamodelo de la Plataforma Oracle9i&reg;, junto con el planteamiento detallado de su proceso de adaptación a nivel de Metamodelo y posterior formalización. </p>     <p><b>Transformación de Clases a Tablas</b></p>     <p><b>Regla Verbal:</b> <i>Todas las clases no abstractas de un Modelo de Clases se convierten en tablas de un Modelo Objeto-Relacional.</i></p>     <p>Estudiando los atributos de la Metaclase UML Class (véase <a href="#tab01">Tabla     1</a>) se encuentra que, para transformar una instancia de la Metaclase UML Class a una instancia de la Metaclase Oracle Tabla Persistente (véase <a href="#fig05">Figura 5</a>), la regla de transformación debe verificar que:</p> <ol>       <li>El atributo isAbstract de la instancia de la clase a transformar debe     ser falso.</li>       <li>La instancia de la Metaclase UML Class que se quiere transformar no     participa en ninguna relación de generalización, ni como Clase general ni     como especialización de otra clase, porque la herencia entre Clases en Oracle9i&reg;,     en el marco de este trabajo, se maneja tomando ventaja de la generalización     entre tipos creados por el usuario. Por esta razón el atributo generalization     de la Metaclase UML Class no puede tener asociado ningún     valor.</li>     ]]></body>
<body><![CDATA[</ol>     <p>A partir del Metamodelo Simplificado de la <a href="#fig04">Figura 4</a> para la instancia de la Metaclase UML Class con nombre Materia se obtiene la <a href="#tab02">Tabla 2</a>.</p>     <p><b><a name="tab02"></a>Tabla 2.</b> Evaluación de la Clase UML Class       <br>   <b>Table 2.</b> Evaluation of UML Class Class</p>     <p><img src="/img/revistas/dyna/v73n149/a14tab02.gif" border="0"></p>     <p>La Clase UML “Materia” cumple con las condiciones 1 y 2, transformándose en una instancia de la Metaclase Oracle Tabla Persistente (véase <a href="#fig05">Figura 5</a>), conservando el mismo nombre, como se indica en la <a href="#tab03">Tabla 3</a>.</p>     <p><b><a name="tab03"></a>Tabla 3.</b> Evaluación de la Clase Tabla Persistente.       <br>   <b>Table 3.</b> Evaluation of Class Persistent Table.</p>     <p><img src="/img/revistas/dyna/v73n149/a14tab03.gif" border="0"></p>     <p>La aplicación manual de esta regla de transformación permite identificar qué atributos de la instancia de la Metaclase UML Class son relevantes para la transformación y llegar a la siguiente expresión de esta regla a nivel de Metamodelo: <i> Toda instancia de la Metaclase UML Class, que no participe en ninguna relación de generalización se transforma en una instancia de la Metaclase Oracle  Tabla Persistente si su atributo isAbstract es falso, conservando el mismo nombre. </i></p>     ]]></body>
<body><![CDATA[<p>En términos de Diagramas de Objetos la aplicación de esta regla a la Clase UML Materia arroja como resultado una instancia de la Metaclase Oracle Tabla Persistente llamada “Materia” tal como se observa en la <a href="#fig09">Figura 9</a>.</p>     <p><a name="fig09"></a><img src="/img/revistas/dyna/v73n149/a14fig09.gif" border="0"></p>     <p><b>Figura 9. </b>Correspondencia entre las Metaclases y las Instancias.       <br>   <b>Figure 9.</b> Correspondence between Metaclasses and Instances.</p>     <p>Finalmente, una vez expresada la regla a nivel de Metamodelo se lleva a un formalismo lógico equivalente haciendo uso de la teoría de conjuntos: </p>     <p><img src="/img/revistas/dyna/v73n149/a14eq01.gif"></p>     <p><b>Transformación de Atributos a Columnas</b></p>     <p><b>Regla Verbal: </b><i>Los atributos de una Clase se transforman en columnas de la Tabla Correspondiente en el Modelo Objeto-Relacional. </i></p>     <p>Es importante mencionar que en esta nueva especificación de UML las asociaciones entre clases se establecen a partir de atributos que pertenecen a las Clases o a las Asociaciones según la navegabilidad de las mismas, es decir, el concepto de rol en los extremos de las asociaciones se modela igual que un atributo. En consecuencia, para transformar una propiedad o atributo de una Clase en una columna de una Tabla en el Modelo Objeto – Relacional es necesario verificar que la propiedad pertenezca a una Clase y no a una asociación entre clases.</p>     <p>A nivel de Metamodelo esto implica que el atributo association de la Metaclase Property no toma ningún valor, es decir, la propiedad debe pertenecer a la Clase y no participar en ninguna relación de asociación. En el ámbito de Oracle9i&reg; los atributos de la Metaclase Oracle “Atributo Estructural” a la que se llevan las propiedades que no participan en ninguna asociación se presentan en la Tabla.</p>     ]]></body>
<body><![CDATA[<p>Partiendo ahora del Metamodelo de UML y de Oracle9i&reg;, en la <a href="#tab05">Tabla     5</a> se presentan los valores de los atributos relevantes de la Metaclase UML Property para las instancias código y reemplazada (véase <a href="#fig04">Figura 4</a>) así como los valores de los atributos de las instancias de la Metaclase Oracle Atributo Estructural a la que se llega por la aplicación de esta regla.</p>     <p><b><a name="tab04"></a>Tabla 4.</b> Atributos de la Metaclase Oracle “Tabla Persistente”       <br>   <b>Table 4.</b> Attributes of the Oracle Metaclass “Persistent Table”</p>     <p><a href="/img/revistas/dyna/v73n149/a14tab04.gif"><img src="/img/revistas/dyna/v73n149/a14tab04.gif" border="0"></a></p>     <p><b><a name="tab05"></a>Tabla 5. </b>Atributos de las Metaclases UML “Property” y Oracle “Atributo Estructural”       <br>   <b>Table 5.</b> Attributes of Metaclasses “Property” and “Structural Attribute”</p>     <p><img src="/img/revistas/dyna/v73n149/a14tab05.gif" border="0"></p>     <p>A nivel de Metamodelo la regla se expresaría así: </p>     <p><i>Todas las instancias de la Metaclase UML Property que pertenecen a una Clase y no participan en ninguna relación de asociación se convierten en instancias de la Metaclase Oracle Atributo Estructural pertenecientes a la instancia de la Metaclase Oracle Tabla Persistente, que mapea la clase a la que pertenecen,  y conservan el mismo nombre. </i></p>     <p>La especificación formal de esta regla exige el uso de pre y postcondiciones como restricciones que se deben cumplir  antes y después de la aplicación de regla respectivamente.</p>     ]]></body>
<body><![CDATA[<p><img src="/img/revistas/dyna/v73n149/a14eq02.gif"></p>     <p>En la precondición de esta regla se utiliza la notación t=f(c) para indicar que t es una instancia de una Clase del Metamodelo de Oracle que se obtiene a partir de la aplicación de la función de mapeo <i>f</i> a una instancia de una Metaclase UML c. Esta función de mapeo estará conformada por una o varias reglas de transformación.</p>     <p>Una vez se conoce el procedimiento de adaptación de las reglas a nivel de Metamodelo la siguiente regla se enunciará a nivel de Metamodelo junto con su equivalente en lógica:</p>     <p><i>Toda restricción asociada a una Clase UML corresponde a una instancia de la Metaclase UML Constraint (véase <a href="#fig04">Figura 4</a>) y se transforma en una instancia de la Metaclase Oracle Restricción_Tabla (véase <a href="#fig05">Figura 5</a>) asociada a la instancia de Tabla Persistente correspondiente, conservando el mismo nombre. </i></p>     <p><img src="/img/revistas/dyna/v73n149/a14eq03.gif"></p>     <p>Como resultado de la aplicación de estas reglas a la porción de Modelo de Clases presentada en la <a href="#fig04">Figura 4</a> se obtienen: el diagrama de objetos (<a href="#fig10">Figura 10</a>), donde se observa la correspondencia de cada elemento de este Diagrama con las Clases del Metamodelo de Oracle9i&reg; que instancian, y su correspondiente Diagrama UML Dependiente de la Plataforma Oracle9i&reg; (<a href="#fig11">Figura 11</a>).</p>     <p><a name="fig10"></a><img src="/img/revistas/dyna/v73n149/a14fig10.gif" border="0"></p>     <p><b>Figura 10.</b> Diagrama de Objetos de la Metaclase Oracle Tabla Persistente        <br> <b>Figure 10.</b> Object Diagram of Oracle Metaclass Persistent Table</p>     <p><a name="fig11"></a><img src="/img/revistas/dyna/v73n149/a14fig11.gif" border="0"></p>     ]]></body>
<body><![CDATA[<p><b>Figura 11.</b> Diagrama UML Dependiente de la Plataforma Oracle9i para la Tabla Materia       <br>   <b>Figure 11.</b> UML Oracle9i Platform Dependient Diagram of the Table Subject</p>     <p>En el Diagrama UML Dependiente de la Plataforma Oracle9i&reg; (<a href="#fig11">Figura 11</a>) Los símbolos [CP] y [CC] denotan a una columna de una tabla en Oracle como clave primaria y clave candidata respectivamente y no fueron especificados dentro del Metamodelo como notación sino elegidos como convención en el contexto del trabajo. Posteriormente en el Metamodelo de Oracle9i&reg; pueden añadirse aspectos de notación además de los estructurales presentados en la Sección 4.</p>     <p>En la <a href="#fig10">Figura 10</a> los atributos de la Metaclase Tabla  Persistente cuyo valor corresponde a instancias de otras metaclases, (vinculados en asociaciones), que van acompañados por líneas punteadas son producto de las decisiones de diseño y las reglas para obtenerlas se describen de manera detallada a continuación:</p>     <p><b>Elección de la clave primaria de la Tabla Persistente</b></p>     <p><i> Todas las instancias de la Metaclase UML Property que pertenecen a una Clase y cumplen con ser: únicas, obligatorias, no derivadas y no participar en ninguna asociación se constituyen en claves candidatas para la instancia de Tabla Persistente que mapea la Clase correspondiente. Entre estas propiedades, que se transforman en Columnas Oracle,  para cada Tabla Persistente es necesario seleccionar como mínimo una para que se constituya en su  identificador o clave primaria. </i></p>     <p>Dicha decisión se deja al criterio del modelador del sistema, ya que la regla automatizable determina únicamente cuáles instancias de la Metaclase Atributo Estructural pueden desempeñar ese rol.</p>     <p>La instancia  o instancias de Atributo Estructural elegidas son los valores del atributo  clave_primaria  de la Metaclase Oracle Tabla Persistente que las posee (véase <a href="#fig05">Figura 5</a>).</p>     <p><img src="/img/revistas/dyna/v73n149/a14eq04.gif"></p>     <p><b>Implementación de columnas derivadas de Oracle por medio de Triggers</b></p>     ]]></body>
<body><![CDATA[<p>La regla de derivación de una columna se implementa en Oracle por medio de un Trigger que verifica o calcula su expresión asociada y pertenece a la instancia de la Metaclase Oracle  Tabla Persistente poseedora del atributo o columna derivada. </p>     <p>En la <a href="#tab06">Tabla 6</a> se presentan los atributos de la Metaclase Oracle Trigger observados en la <a href="#fig05">Figura 5</a>.</p>     <p><b><a name="tab06"></a>Tabla 6</b>. Atributos de la Metaclase Oracle Trigger     <br>   <b>Table 6</b>. Attributes of Oracle Metaclass Trigger</p>     <p><img src="/img/revistas/dyna/v73n149/a14tab06.gif" border="0"></p>     <p>Para este caso se asume el disparo del trigger después de insertar un registro en la tabla, con la cual se asocia a través de su atributo tabla.</p>     <p>El tiempo y la acción que dispara el trigger, por tratarse de un atributo derivado, se asume que es antes de insertar un registro o actualizar el valor de dicho atributo en la instancia de Tabla Persistente; sin embargo, esta decisión exige un análisis más detallado de la regla de derivación que está por fuera del alcance del trabajo. </p>     <p><img src="/img/revistas/dyna/v73n149/a14eq05.gif" ></p>     <p><b>6. CONCLUSIONES Y TRABAJO FUTURO</b></p>     <p>El estudio y aplicación de los conceptos fundamentales que soportan el refinamiento en la Arquitectura Orientada a Modelos, propuesta por el OMG, permitió determinar una estrategia adecuada para incorporar el refinamiento de modelos a las herramientas CASE UN-MetaCASE y AR2CA que consiste en definir las reglas de mapeo a nivel de los Metamodelos Fuente y Objetivo, facilitando su formalización y automatización posterior. </p>     ]]></body>
<body><![CDATA[<p>Ahora, la aplicación manual de un conjunto básico de reglas al Modelo de Clases del Caso de Estudio mostró que su especificación en un formalismo lógico constituye una alternativa directa para su posterior automatización en el marco de una herramienta CASE, independientemente de la plataforma objetivo. La formalización de las reglas bien podría realizarse en OCL [10], que es un estándar más cercano al OMG y se constituye en un trabajo futuro que podría derivarse de este artículo.</p>     <p>La apropiación de la estrategia de refinamiento de modelos propuesta por el OMG, para llevar Modelos Generales de un dominio de aplicación a modelos del mismo dominio orientados a una plataforma dada, sugiere la posibilidad de generar código en una plataforma a partir de su definición formal, empleando para ello los metamodelos correspondientes. Así, se podría pensar a futuro en desarrollar herramientas para la  generación automática de código que reciba como entradas el Metamodelo del Modelo Independiente de la plataforma y la especificación formal de la plataforma en la que se desea obtener una codificación parcial del Sistema modelado.</p>     <p>Por otro lado, se verificó experimentalmente en el Modelo de Clases UML del Caso de estudio, que la utilización de OCL para la definición de invariantes y reglas de derivación de  atributos, además de añadir semántica al modelo, es una alternativa para facilitar su automatización o semi-automatización en una plataforma dada. En el caso de Oracle9i&reg;, se plantea la construcción de un traductor de OCL a PL/SQL para lograr que la transformación comprenda no sólo aspectos estructurales sino también aspectos dinámicos del Modelo de Clases UML. En lo que tiene que ver con los métodos de las Clases, resultaría interesante expresarlos en OCL en términos de pre y postcondiciones  para la generación parcial de código PL/SQL en Oracle9i&reg; o en cualquier otra plataforma, aspecto que no fue contemplado en esta etapa del trabajo.</p>     <p>En general, la transformación de un Modelo de Clases a un modelo dependiente de la plataforma requiere la elección de la manera como se van a implementar aspectos semánticos de modelado de UML, tales como relaciones de agregación y generalización entre clases, atributos derivados e invariantes, entre otros. Naturalmente, existen varias alternativas de implementación posible para estos aspectos y la elección de la opción más adecuada constituye un problema de optimización que será objeto de un trabajo posterior. </p>     <p>Como trabajos futuros a partir de esta exploración inicial de la Arquitectura Orientada a Modelos se tiene:</p> 	<ul> 	      <li>Afinamiento de la formalización de las reglas de transformación para que puedan ser aplicadas automáticamente 	    en la herramienta UN-MetaCASE. </li> 	      <li>Desarrollo de un traductor de OCL a PL/SQL  como alternativa para incorporar 	    aspectos dinámicos del Modelo de Clases a la generación de código, mas allá de 	    la definición del “esqueleto de los métodos”, 	    como ocurre actualmente en las herramientas CASE tradicionales. </li> 	      <li>Aplicación de los lineamientos básicos propuestos por MDA para transformar 	    Modelos Independientes de la Plataforma a Modelos dependientes de otras 	    plataformas (.NET, J2EE) garantizando interoperabilidad a través de la existencia 	    de un lenguaje único de modelado que se puede extender con terminología 	    propia de cualquier plataforma orientada a objetos. </li> 	      <li>Ampliación  del enfoque propuesto para el refinamiento de modelos a otros 	    modelos UML de entrada como el Diagrama de Transición de Estados  y el Diagrama 	    de Colaboración. </li> 	      <li>Construcción de un Perfil UML  como “puente” entre el Metamodelo Origen 	    y Destino que facilite la especificación de las reglas de transformación 	    entre modelos [8], [17].</li>     ]]></body>
<body><![CDATA[</ul>     <p><b>AGRADECIMIENTOS</b></p>     <p>Este artículo se realizó dentro del marco del proyecto 479  de COLCIENCIAS denominado “Extensiones en herramientas CASE con énfasis en formalismos y reutilización”</p>     <!-- ref --><p><b>REFERENCIAS BIBLIOGRAFICAS</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000186&pid=S0012-7353200600020001400001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>[2] Object Management Group. Disponible en: <a href="http://www.omg.org">http://www.omg.org</a> [Citado 12 de Noviembre de 2004]    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000187&pid=S0012-7353200600020001400002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br> [3] ANAYA, RAQUEL. AR2CA: Una Herramienta para la Construcción de componentes reutilizables a través de niveles de refinamiento. Memorias de 3das Jornadas Iberoamericanas de Ingeniería de Requisitos y Ambientes de Software IDEAS2000, 2000.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000188&pid=S0012-7353200600020001400003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>[4] ARANGO, F. Áreas y Líneas de Investigación, Grupo de Investigación en Informática  Universidad Nacional de Colombia Sede Medellín.2003     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000189&pid=S0012-7353200600020001400004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>[5]  Unified Modeling Language: Superestructure versión 2.0. OMG Final Adopted Specification,2002.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000190&pid=S0012-7353200600020001400005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>[6]  MELLOR J., SCOTT K., UHL A., Y WEISE D. “MDA Distilled: Principles of Model-Driven Architecture”.Addison Wesley. 2002     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000191&pid=S0012-7353200600020001400006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>[7]  Meta Object Facility (MOF) Specification. OMG Document: formal/2002-04-03, 2003.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000192&pid=S0012-7353200600020001400007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>[8]  FUENTES L., VALLECILLO A . , Using UML Profiles:A case study. Workshop on Automating Object-Oriented Software Development Methods. 2002     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000193&pid=S0012-7353200600020001400008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>[9]  Oracle Technology Network. Disponible en: <a href="http://www.otn.oracle.com">http://www.otn.oracle.com</a> [Citado 12 de Noviembre de 2004]    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000194&pid=S0012-7353200600020001400009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br> [10] UML2.0 OCL Specification. OMG Final Adopted Specification.2002     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000195&pid=S0012-7353200600020001400010&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>[11] DUITAMA, J. FREDDY. “Transformación Automática de Especificaciones expresadas bajo un Paradigma Objetual al Esquema Relacional”. Tesis de Maestría Universidad Nacional, Sede Medellín, 1998.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000196&pid=S0012-7353200600020001400011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>[12] DORSEY P. , HUDICKA R. “Oracle 8 Diseño de Bases de Datos con UML” . Mc Graw-Hill. México. 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=000197&pid=S0012-7353200600020001400012&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>[13]  DIETRICH S. , URBAN S.  Using UML Class Diagram for a Comparative Analysis of Relational, Object-Oriented, and Object-Relational Database Mappings. Arizona State University. 2002     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000198&pid=S0012-7353200600020001400013&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>[14] MOK W. Y. , PAPER D. , On Transformations from UML Models to Object – Relational Databases. 34th Hawaii International Conference on System Sciences.2001     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000199&pid=S0012-7353200600020001400014&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>[15] CHENNAMANENI R., GRANT E.S. Comparison and Evaluation of Methodologies for Transforming UML Models to Object-Relational Databases. University of North Dakota. 2002     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000200&pid=S0012-7353200600020001400015&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>[16] CAVERO J., MARCOS E. Y VELA B. A methodological Approach for Object-Relational Database Design using UML . Informatik- Forschung und Entwicklung. 2004     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000201&pid=S0012-7353200600020001400016&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>[17] BORDELEAU F., ZAMORA J. P., Defining UML Profiles and Model Mappings in the context of MDA. Worshop on Model-Driven Embedded Systems. Washington. 2003     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000202&pid=S0012-7353200600020001400017&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[DSOUZA]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
<name>
<surname><![CDATA[WILLIS]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
</person-group>
<source><![CDATA[Objects, Components and Frameworks with UML: The Catalysis Approach]]></source>
<year>1999</year>
<publisher-name><![CDATA[Addison Wesley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="">
<article-title xml:lang="en"><![CDATA[Object Management Group]]></article-title>
<source><![CDATA[]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[ANAYA]]></surname>
<given-names><![CDATA[RAQUEL]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[AR2CA: Una Herramienta para la Construcción de componentes reutilizables a través de niveles de refinamiento]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[3 Jornadas Iberoamericanas de Ingeniería de Requisitos y Ambientes de Software IDEAS2000]]></conf-name>
<conf-date>2000</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[ARANGO]]></surname>
<given-names><![CDATA[F.]]></given-names>
</name>
</person-group>
<collab>Universidad Nacional de Colombia Sede Medellín</collab>
<source><![CDATA[Áreas y Líneas de Investigación]]></source>
<year>2003</year>
</nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="">
<source><![CDATA[Unified Modeling Language: Superestructure versión 2.0. OMG Final Adopted Specification]]></source>
<year>2002</year>
</nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MELLOR]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[SCOTT]]></surname>
<given-names><![CDATA[K.]]></given-names>
</name>
<name>
<surname><![CDATA[UHL]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
<name>
<surname><![CDATA[Y WEISE]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<source><![CDATA[MDA Distilled: Principles of Model-Driven Architecture]]></source>
<year>2002</year>
<publisher-name><![CDATA[Addison Wesley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="">
<source><![CDATA[Meta Object Facility (MOF) Specification.: OMG Document: formal]]></source>
<year>2003</year>
</nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[FUENTES]]></surname>
<given-names><![CDATA[L.]]></given-names>
</name>
<name>
<surname><![CDATA[VALLECILLO]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Using UML Profiles:A case study.]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Workshop on Automating Object-Oriented Software Development Methods]]></conf-name>
<conf-date>2002</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="">
<article-title xml:lang="en"><![CDATA[Oracle Technology Network]]></article-title>
<source><![CDATA[]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="">
<source><![CDATA[UML2.0 OCL Specification.: OMG Final Adopted Specification]]></source>
<year>2002</year>
</nlm-citation>
</ref>
<ref id="B11">
<label>11</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[DUITAMA, J.]]></surname>
<given-names><![CDATA[FREDDY]]></given-names>
</name>
</person-group>
<source><![CDATA[Transformación Automática de Especificaciones expresadas bajo un Paradigma Objetual al Esquema Relacional]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B12">
<label>12</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[DORSEY]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
<name>
<surname><![CDATA[HUDICKA]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
</person-group>
<source><![CDATA[Oracle 8 Diseño de Bases de Datos con UML]]></source>
<year>1999</year>
<publisher-name><![CDATA[Mc Graw-Hill]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B13">
<label>13</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[DIETRICH]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[URBAN]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
</person-group>
<source><![CDATA[Using UML Class Diagram for a Comparative Analysis of Relational, Object-Oriented, and Object-Relational Database Mappings]]></source>
<year>2002</year>
<publisher-name><![CDATA[Arizona State University]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B14">
<label>14</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MOK]]></surname>
<given-names><![CDATA[W. Y.]]></given-names>
</name>
<name>
<surname><![CDATA[PAPER]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[On Transformations from UML Models to Object  Relational Databases]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[34 International Conference on System Sciences]]></conf-name>
<conf-date>2001</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B15">
<label>15</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[CHENNAMANENI]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
<name>
<surname><![CDATA[GRANT]]></surname>
<given-names><![CDATA[E.S.]]></given-names>
</name>
</person-group>
<source><![CDATA[Comparison and Evaluation of Methodologies for Transforming UML Models to Object-Relational Databases]]></source>
<year>2002</year>
<publisher-name><![CDATA[University of North Dakota]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B16">
<label>16</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[CAVERO]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[MARCOS]]></surname>
</name>
<name>
<surname><![CDATA[VELA]]></surname>
<given-names><![CDATA[B.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A methodological Approach for Object-Relational Database Design using UML]]></article-title>
<source><![CDATA[Informatik- Forschung und Entwicklung]]></source>
<year>2004</year>
</nlm-citation>
</ref>
<ref id="B17">
<label>17</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[BORDELEAU]]></surname>
<given-names><![CDATA[F.]]></given-names>
</name>
<name>
<surname><![CDATA[ZAMORA]]></surname>
<given-names><![CDATA[J. P.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Defining UML Profiles and Model Mappings in the context of MDA.]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Worshop on Model-Driven Embedded Systems]]></conf-name>
<conf-date>2003</conf-date>
<conf-loc>Washington </conf-loc>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
