Vamos a utilizar un caso de Estudio para la implementación de la presente investigación se tiene lo siguiente:
Base de Datos: Tienda de productos. Rubro: Comercio
Lenguaje de Programación: JAVA.
La fuente utilizada por el sistema nos proporcionara el anterior software de gestión de ventas y compras que tiene la empresa junto a los requerimientos obtenidos de entrevistas y métodos complementarios de requerimientos
.
Inicialmente, se obtiene la estructura del sistema en código, lo
cual se hace utilizando el diagrama de clases.
Paso 1 Modelado:
Para lograr esto, se utiliza un modelado con la sintaxis del
lenguaje, la cual se completa con los resultados de las reglas
de transformación. En el modelado se combinan elementos
propios del lenguaje y los consecuentes de las reglas de
transformación,
estos
últimos
reemplazados
por
sus
equivalentes en los modelos UML.
Ilustración 35
77
El Modelo para las clases Java es:
Public class $c.name {
//atributos
$p.visibility $.type.name $p.name;
//operaciones
$o.visibility $o.type.name $o.name
($ownedParameter.type.name $ownedParameter.name)
{
//método
}
}
Paso 2: Instancia.
La siguiente figura es la representación del diagrama de
clases como instancia del metamodelo del diagrama de
clases, correspondiente a las clases Pedido y Cliente.
Ilustración 36
78
Paso 3:
Al aplicar las reglas de transformación para el diagrama de
clases sobre la instancia c3 de la metaclase Class, la cual
hace referencia a la clase Pedido, el código generado para
esta clase, de acuerdo a la plantilla y las relaciones
presentadas en la Tabla1 es:
En la Siguiente tabla veremos cada uno de las operaciones
que hay q usar en cada uno de los casos.
$c.Name Regla Nombre Clase
$p.visibility $p.type.name
Regla atributos propios de la clase
Regla atributos por asociación $p.visibility
$p.type.name($ownedParameter.type.nam e $ownedParameter.type.name)
Regla operaciones propias de la clase
Tabla 4.Operaciones del Metamodelo
Después de haber obtenido cada uno de las instancias y las trasformaciones se coloca en la plantilla
Código en Java de La clase Pedido
Public class Pedido { //atributos
Private String number; Private Cliente cliente; //operaciones
Public void agregarDetalle () { //método
} }
79
DISCUSIÓN DE RESULTADOS.
A continuación se hará una serie de datos de tiempo a través de pruebas hechas para ejecución de tiempo a través de aproximaciones de tiempo.
Según el algoritmo:
Entrada: Diagrama de Clases
Salida: Pseudocódigo del Diagrama de Clases
Primer Paso: Meta Modelado del problema del diagrama de clases en
JAVA……… TA
Segundo Paso: Traducir el Meta modelado por los distintas
Operaciones………TB INICIO
Para cada CLASE de diagrama de clases………TC
Para cada PARTE DEL METAMODELO DE LA CLASE…. TM SI CUMPLE LA REGLA
ENTONCES
Tercer Paso: Instanciar en el Meta modelado para
dar su equivalente en Código JAVA. T1 Fin
Fin FIN
Como el tiempo de a y B son indiferentes para el uso de operaciones entre metamodelos.
O (T)=MAX(A, B, C*M, 1) O (T)=O(C*M)
80
La solución que proponemos nos da un resultado exponencial, en siguientes trabajos se obtendrá información de cómo obtener los tiempos del algoritmo previamente implementado, por el momento el resultado nos da que es un algoritmo, el tiempo depende de un producto de cuantas clases se tenga “O(C)” y dentro de cada clase cuantas partes del metamodelo obtenido se obtendrá a partir de cada clase generada. “O (M)”.
CONCLUSIONES Y RECOMENDACIONES:
6.1. Conclusiones:
El Presente trabajo habla sobre una propuesta computacional que para la transformación de diagramas de clases a código fuente a través de modelados MDA.
Se ha tomado lo mejor de 2 algoritmos “Modelos de Generación Automática de Código” y “Conceptos PSM y técnicas de Mapeo de PIM a PSM” de cada uno se han analizado enfocado para extraer las técnicas de transformación y la forma de modelado de MDA respectivamente para así poder crear una nueva propuesta que se vino desarrollando en el presente trabajo.
Lo complejo del lenguaje unificado de Modelado UML ha hecho que se presente una propuesta de metamodelo para la simplificación del proceso.
6.2. Recomendaciones:
Se recomienda el uso de restricciones a cada uno de los modelos dados, estos se utilizan para saber dónde se originó cada uno de las partes del diagrama, para poder modelar la consistencia solo así se creara una
herramienta confiable y capaz rehacer cada uno de los errores previos de los diagramas.
6.1. Trabajos futuros:
En los siguientes trabajo futuro, se pretende desarrollar una herramienta CASE que incluya el algoritmo generado, los metamodelos comprimidos y las reglas de transformación.
Como se ve solamente al tener el diagrama de clases uno no peude saber cómo actúa el sistema y que relación se tenga para poder convertir todo eso a código. Es por eso que se desea también aplicar lo mismos proceso para los diversos diagramas complementarios del sistema para UML como el diagrama de estados, el diagrama de procesos, máquinas de estados, etc.
81
BIBLIOGRAFÍA
[1] Jonathan, ECU RED, ARQUITECTURA DIRIGIDA POR MODELOS Universidad Central de Ecuador (2009),
[2] ANDRÉS MUÑETÓN, CARLOS M. ZAPATA, FERNANDO ARANGO. 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, DYNA, 267-283. Mayo 05 de 2007, Escuela de Sistemas, Facultad de Minas, Universidad Nacional de Colombia.
[3] Ing. EDUARDO PERALTA SALINAS, MODELADO DE CLASES UML, http://users.dcc.uchile.cl/~psalinas/uml/modelo.html
[4] JUAN PABLO GARCIA BENITEZ, MARCO PARA LA TRANSFORMACIÓN DE MODELOS BASADO EN GRAMÁTICAS DE ATRIBUTOS (Madrid 21 de Junio de 2010).
[5] Rodríguez Vicente, J. (Junio de 2004). Ingeniería de Modelos con MDA. Murcia. [6] UBALDO JOSÉ BONAPARTE, Proyectos UML Diagramas de clases y aplicaciones JAVA en NetBeans 6.9.1, Editorial de la Universidad Tecnológica Nacional – edUTecNe, Facultad Regional Tucumán Universidad Tecnológica Nacional – U.T.N. Argentina
[7] GERMAN SALAZ, EVALUACIÓN Y MEJORA DE LA CALIDAD DE LOSPROCESOS DE MODELOS MDA -> ADMPROCESOS DE MODELOS MDA. ADM BASADOS EN REINGENIERÍA,
[8] Pedro Antonio Fernández Sáez, UN ANÁLISIS CRÍTICO DE LA APROXIMACIÓN MODEL-DRIVEN ARCHITECTURE, Facultad de Informática Universidad Complutense de Madrid. (2009)
82
[9] Luís Eduardo Agudelo González. MARCO DE REFERENCIA PARA LA EVALUACIÓN DE HERRAMIENTAS DE TRANSFORMACIÓN DE MODELOS, UNIVERSIDAD EAFIT MEDELLÍN 2006.
[10] JORGE MARTÍNEZ LADRÓN DE GUEVARA. FUNDAMENTOS DE PROGRAMACIÓN EN JAVA. Editorial EME. ISBN 978-84-96285-36-2. Facultad de Informática. Universidad Complutense de Madrid.
[11] HUGO ALBERTO KOFMAN. MODELOS Y SIMULACIONES EN LA ENSEÑANZA DE LA FISICA. Santiago del Estero 2829, Santa Fe, República Argentina. Facultad de Ingeniería Química de la universidad Nacional del Litoral.