Altova UModel 2024

Transformar modelos UML

Inicio Anterior Inicio Siguiente

Puede transformar cualquier paquete de UML de un lenguaje de modelado en otro. Esta transformación convierte todos los elementos relevantes del lenguaje de origen al lenguaje de llegada: clases, interfaces, atributos, operaciones, generalizaciones, etc. Los lenguajes de origen y de destino pueden ser cualesquiera de entre los que son compatibles con UModel (C++, C#, Java, VB.NET, UML, además de bases de datos y esquemas XML).

 

Una transformación conlleva un modelo "fuente" (es decir, el paquete que quiere transformar) y un modelo "meta" (paquete de destino). Como puede que el paquete de destino ya contenga elementos, puede realizar la transformación de un modelo de dos maneras:

 

1.Sobrescribir los cambios del modelo de origen en el de destino

2.Combinar los cambios del modelo de origen en el de destino

 

(Si el destino es un paquete nuevo, entonces no importa si los cambios se sobrescriben o se combinan al transformar el modelo por primera vez.)

 

Si el modelo de origen contiene diagramas de clases, existe la opción de transformarlos en el modelo de destino (esto se aplica a C#, Java, VB.NET y UML). Los diagramas que existen en el modelo de destino se actualizan conforme a la configuración de la transformación. Es decir, los elementos de los diagramas del modelo de origen sobrescribirán o se combinarán con los del modelo de destino.
 

Durante la transformación un cuadro de diálogo asistente le permitirá escoger si quiere asignar cada uno de los tipos de datos del lenguaje de origen con un tipo de datos en el lenguaje de destino. Si omite este paso, UModel usará asignaciones predeterminadas. Las asignaciones de tipos de datos también pueden cambiarse más tarde, pero en ese caso deberá volver a efectuar la transformación para que se reflejen los cambios en el modelo de destino.

 

Al realizar transformaciones de modelos, UModel hará los siguientes cambios automáticamente:

 

si en el modelo de origen se ha aplicado el estereotipo UML «create» a una operación de clase, en el modelo de destino (C++, C#, Java, VB.NET) el estereotipo aplicado será «constructor» y viceversa: si una operación tiene es estereotipo «constructor» en C++, C#, Java o VB.NET, la misma operación tendrá el estereotipo «create» en el modelo UML de destino.

si el modelo de destino es una BD, una propiedad "id" del modelo de origen se convertirá en una clave principal o foránea del tipo de datos correspondiente en el modelo de destino.

 

UModel permite actualizar continuamente los modelos transformados. Esto significa que puede trabajar en el modelo de origen y efectuar la transformación tantas veces como sea necesario para mantener el modelo de destino al día con el modelo de origen. La transformación de modelos también se puede configurar para que se ejecute de forma automática (véase Configuración de la transformación).

Para transformar un modelo:

1.Abra el proyecto de UModel que contiene el paquete que hará de modelo de origen.

2.En el menú Proyecto haga clic en Transformación de modelos.

3.Seleccione el paquete de origen (el que quiere transformar a un lenguaje distinto) y haga clic en Siguiente.

4.Seleccione un paquete de destino y haga clic en siguiente (para colocar todos los elementos en un paquete de destino nuevo, marque la casilla Transformar en un paquete nuevo).

5.Escoja el tipo de transformación (por ejemplo, Java a C#). El resto de ajustes se explican en Configuración de la transformación.

6.Ahora tiene dos opciones:

a.Para llevar a cabo la transformación con las asignaciones predeterminadas haga clic en Finalizar.

b.Para revisar las asignaciones antes de la transformación haga clic en Aceptar, cambie las asignaciones de datos como desee y haga clic en Finalizar.

 

Cuando una transformación se efectúa con éxito se genera automáticamente un nuevo diagrama de paquetes llamado "Transformación de modelos desde <paquete de origen> a <paquete de destino>". El diagrama se genera en el paquete de destino. La imagen siguiente ilustra el paquete de origen, el paquete de destino, la relación de dependencia entre ambos y una lista de valores etiquetados.

um_transform_cs_to_java08

Diagrama de ejemplo "Transformación de modelo"

Aparte de ilustrar la transformación de un modelo, este diagrama también permite modificar la configuración de la transformación del modelo:

 

1.Haga clic en la relación de dependencia del diagrama (o en la ventana Estructura del modelo que encontrará en Relaciones)

2.Cambie las opciones necesarias desde la ventana Propiedades.

 

También puede hacer doble clic directamente en un valor etiquetado del diagrama para cambiar su valor.

 

Una vez haya terminado de cambiar la configuración, vuelva a efectuar la transformación para actualizar el modelo de destino. Para ello:

 

Haga clic con el botón derecho en la relación de dependencia del diagrama y seleccione Actualizar la transformación de modelos del menú contextual o

Haga clic con el botón derecho en el paquete de origen de la ventana Estructura del modelo y seleccione Actualizar la transformación de modelos del menú contextual.

 

Aquí tiene algunos ejemplos de transformaciones paso a paso:

 

Ejemplo: transformar un modelo Java en un modelo C++

Transformar un modelo C# en un modelo Java

Ejemplo: convertir la estructura de una BD Access en SQLite

© 2017-2023 Altova GmbH