Esta transformación utiliza el perfil de "transformación en C++" para transmitir información acerca del modelo que todavía no está disponible en UML. El perfil incluye los estereotipos siguientes:
Estereotipo |
Aplicable a |
Atributos |
Tipo |
tipo_cpp |
Parámetro, Propiedad |
isMutable, qualifier (cadena de caracteres), InitializerKind (enumeración) |
Booleano con un valor por omisión de falso |
generalización_cpp |
Generalización |
GeneralizationKind |
Enumeración |
struct_cpp |
Clase |
|
Booleano con un valor por omisión de falso |
unión_cpp |
Clase |
isAnonymousUnion |
Booleano con un valor por omisión de falso |
typedef_cpp |
Clase |
ImplementationType |
Cadena de caracteres |
dependencia_cpp |
Dependencia |
isInclusionInHeader |
Booleano con un valor por omisión de falso |
amigo_cpp |
Dependencia |
|
Booleano con un valor por omisión de falso |
espacio_nombres_cpp |
Paquete, Modelo |
NamespaceName |
Cadena de caracteres |
operación_cpp |
Operación |
isInline, isVirtual, isFriend |
Booleano con un valor por omisión de falso |
constructor_cpp |
Operación |
isExplicit, isInline |
Booleano con un valor por omisión de falso |
constructor_copia_cpp |
Operación |
isExplicit, isInline |
Booleano con un valor por omisión de falso |
destructor_cpp |
Operación |
isVirtual, isInline |
Booleano con un valor por omisión de falso |
asignación_cpp |
Operación |
isInline |
Booleano con un valor por omisión de falso |
No debería aplicarse más de un estereotipo de transformación en C++ a un objeto UML. Al aplicar varios estereotipos, se obtienen los efectos siguientes:
· Clase UML (struct_cpp, unión_cpp, typedef_cpp): La transformación crea un solo objeto con independencia del número de estereotipos que se aplique. La transformación da prioridad a typedef_cpp. Si no se aplica typedef_cpp y se aplican simultáneamente los estereotipos struct_cpp y unión_cpp, la transformación genera una struct C++ sin operaciones estándares.
· Dependencia de UML (dependencia_cpp, amigo_cpp): Si se aplican los dos estereotipos, la transformación procesa los dos estereotipos y crea una relación de "amigo" y una dependencia.
· Operación UML (operación_cpp, constructor_cpp, constructor_copia_cpp, destructor_cpp, asignación_cpp): La transformación crea sólo un objeto con independencia del número de estereotipos que se aplique a las operaciones. La lista siguientes muestra la prioridad de los estereotipos, de la más alta a la más baja:
o constructor_cpp,
o constructor_copia_cpp,
o destructor_cpp,
o asignación_cpp,
o operación_cpp