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 |
cpp_generalization |
Generalización |
GeneralizationKind |
Enumeración |
cpp_struct |
Clase |
|
Booleano con un valor por omisión de falso |
cpp_union |
Clase |
isAnonymousUnion |
Booleano con un valor por omisión de falso |
cpp_typedef |
Clase |
ImplementationType |
Cadena de caracteres |
cpp_dependency |
Dependencia |
isInclusionInHeader |
Booleano con un valor por omisión de falso |
cpp_friend |
Dependencia |
|
Booleano con un valor por omisión de falso |
cpp_namespace |
Paquete, Modelo |
NamespaceName |
Cadena de caracteres |
cpp_operation |
Operación |
isInline, isVirtual, isFriend |
Booleano con un valor por omisión de falso |
cpp_constructor |
Operación |
isExplicit, isInline |
Booleano con un valor por omisión de falso |
cpp_copy_constructor |
Operación |
isExplicit, isInline |
Booleano con un valor por omisión de falso |
cpp_destructor |
Operación |
isVirtual, isInline |
Booleano con un valor por omisión de falso |
cpp_assignment |
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 (cpp_struct, cpp_union, cpp_typedef): La transformación crea un solo objeto con independencia del número de estereotipos que se aplique. La transformación da prioridad a cpp_typedef. Si no se aplica cpp_typedef y se aplican simultáneamente los estereotipos cpp_struct y cpp_union, la transformación genera una struct C++ sin operaciones estándares.
· Dependencia de UML (cpp_dependency, cpp_friend): 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 (cpp_operation, cpp_constructor, cpp_copy_constructor, cpp_destructor, cpp_assignment): 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 cpp_constructor,
o cpp_copy_constructor,
o cpp_destructor,
o cpp_assignment,
o cpp_operation