La transformación de UML en Java transforma las especificaciones de UML 2.0 en clases Java. La transformación puede utilizarse para generar un proyecto Java a partir de las especificaciones de UML 2.0. También puede aplicarse la transformación con posterioridad a la creación inicial para fusionar los modelos UML actualizados con el código Java existente.
El procedimiento siguiente muestra el uso más sencillo de la transformación en Java.
Para transformar un modelo UML en Java:
1. Vaya a la perspectiva de modelado.
2. En la vista Explorador de modelos, pulse el botón derecho del ratón sobre una clase UML (por ejemplo, Clase1).
3. Pulse en Transformar > Ejecutar transformación > UML2 en Java.
4. Se abre el diálogo Ejecutar transformación. Pulse el botón Crear contenedor de destino.
5. Se abre el diálogo Proyecto Java nuevo. Especifique simple
en el campo Nombre de proyecto y pulse en Finalizar.
6. En el diálogo Ejecutar transformación pulse en Finalizar.
El proyecto Java nuevo contiene un paquete por omisión que contiene la clase Java nueva: Clase1.
La transformación también puede realizar otras funciones, más complejas, como, por ejemplo, alterar temporalmente los nombres sin modificar el modelo de origen, sustituir el objeto UML por una visualización, fusionar los cambios del modelo UML y del origen de Java y validar el modelo UML para comprobar si existen problemas de transformación.
UML | Java |
Paquete | Paquete Java con el mismo nombre* |
Paquete <<perspectiva>> estereotipado | Omitido |
Paquete con palabra clave <<Análisis>> o <<análisis>> | Omitido |
Clase | Clase Java con el mismo nombre* y la misma visibilidad |
(Clase) Propiedad isLeaf | La clase Java es "final" si se establece como verdadero |
(Clase) Propiedad isAbstract | La clase Java es "abstracta" si se establece como verdadero |
(Clase) Generalización | La clase Java "amplía" la superclase especificada |
Implementación | La clase Java "implementa" la interfaz especificada |
Interfaz | Interfaz Java con el mismo nombre* y la misma visibilidad |
(Interfaz) Generalización | La interfaz Java "amplía" la interfaz especificada |
Operación | Método Java con el mismo nombre* y la misma visibilidad |
(Operación) Propiedad isStatic | El método Java es "estático" si se establece como verdadero |
(Operación) Propiedad isAbstract | El método Java es "abstracto" si se establece como verdadero |
(Operación) Propiedad isLeaf | El método Java es "final" si se establece como verdadero |
(Operación) con el mismo nombre que su clase | Constructor de Java |
(Operación) <<creación>> estereotipada | Constructor de Java |
Parámetro | Parámetro Java con el mismo nombre* |
(Parámetro) Propiedad de tipo | El parámetro Java tiene el tipo especificado, que puede ser otra clase o un tipo primitivo |
(Parámetro) Propiedad de dirección | El método Java tiene un "tipo de <parámetro> de retorno" si se establece en "return"; en caso contrario, añade "<tipo de parámetro> <nombre de parámetro>" a la signatura del método |
(Parámetro) Propiedad de multiplicidad | Consulte la tabla siguiente que contiene información sobre la multiplicidad |
Propiedad | Campo Java con el mismo nombre* y la misma visibilidad |
(Propiedad) Propiedad isStatic | El campo Java es "estático" si se establece como verdadero |
(Propiedad) Propiedad isLeaf | El campo Java es "final" si se establece como verdadero |
(Propiedad) Propiedad de tipo | El campo Java tiene el tipo especificado que puede ser otra clase o un tipo primitivo |
(Propiedad) Propiedad de multiplicidad | Consulte la tabla siguiente que contiene información sobre la multiplicidad |
* Algunos caracteres no son válidos en identificadores de Java (como, por ejemplo, los espacios). La transformación en Java sustituye automáticamente los caracteres no válidos por un subrayado (_) para crear un identificador válido. Esta sustitución puede provocar conflictos de nombres que impidan que la transformación genere clase e interfaces duplicadas. Puede utilizarse la característica de validación para detectar estos problemas. Para evitar estos temas de sustitución, cambie el nombre de los elementos o utilice la característica de correlación para especificar un nombre alternativo que no modifique el modelo de origen.
Tipos Java para propiedades y parámetros
Multiplicidad UML | Tipo Java generado |
0..1 | Atributo, puntero o referencia (por ejemplo, cadena de caracteres) |
1 | Atributo (por ejemplo, cadena de caracteres) |
N (N > 1) | Matriz (por ejemplo, cadena de caracteres[]) |
1..*, * o x..y | Recopilación, consulte la tabla siguiente |
Recopilaciones Java para 1..*, * o multiplicidades x..y
Propiedad isOrdered | Propiedad isUnique | Tipo Java generado |
Verdadero | Verdadero | java.util.SortedSet |
Verdadero | Falso | java.util.List |
Falso | Verdadero | java.util.Set |
Falso | Falso | java.util.Collection |
Al pulsar en Crear modelo de correlación, la transformación en Java crea un modelo de correlación que es un modelo independiente que tiene un artefacto para cada elemento transformable. El artefacto hace referencia al elemento transformable original y tiene el mismo nombre. Para especificar un nombre alternativo para el elemento original, escriba un nombre nuevo en la propiedad de nombre de archivo del artefacto. Si no se cambia la propiedad de nombre de archivo del artefacto, la transformación genera el elemento con el nombre por omisión del artefacto. Si se especifican nombres alternativos para un paquete, los nombres alternativos afectan a todos los clasificadores de este paquete (a menos que el clasificador especifique un nombre completo). La tabla siguiente muestra ejemplos de nombres alternativos.
Origen de UML | Nombre de archivo del artefacto de correlación | Java generado |
"Paquete1" | "" | "Paquete1" |
"Paquete2" | "com.ibm.test" | "com.ibm.test" |
"Clase1" en Paquete1 | "" | Paquete1.Clase1 |
"Interfaz1" en Paquete2 | "ITestable" | com.ibm.test.ITestable |
"Clase2" en Paquete2 | "com.ibm.test.Testable" | com.ibm.test.Testable |
Para utilizar un modelo de correlación, realice los pasos siguientes:
1. Vaya a la perspectiva de modelado.
2. En la vista Explorador de modelos, pulse sobre un modelo UML.
3. En la barra de menús, pulse en Modelado > Transformaciones > Configurar transformaciones.
4. Cree una transformación de UML2 en Java nueva (por ejemplo, denomine la transformación Utilizar correlación.
5. En la página de correlación, pulse en Utilizar modelo de correlación.
6. Pulse sobre el modelo de correlación que ha creado antes y pulse en Ejecutar.
Cuando se ejecuta la transformación, ésta utiliza los nombres alternativos que se hayan especificado en el modelo de correlación.