La transformation utilise le profil "C++ Transformation" pour transmettre des informations sur les modèles qui ne sont pas facilement disponibles en langage UML. Le profil inclut les stéréotypes suivants :
Stéréotype |
Applicable à |
Attributs |
Type |
cpp_type |
Paramètre, Propriété |
isMutable, qualifiant (Chaîne), InitializerKind (Enumération) |
Booléen avec faux comme valeur par défaut |
cpp_generalization |
Généralisation |
GeneralizationKind |
Enumération |
cpp_struct |
Classe |
|
Booléen avec faux comme valeur par défaut |
cpp_union |
Classe |
isAnonymousUnion |
Booléen avec faux comme valeur par défaut |
cpp_typedef |
Classe |
ImplementationType |
Chaîne |
cpp_dependency |
Dépendance |
isInclusionInHeader |
Booléen avec faux comme valeur par défaut |
cpp_friend |
Dépendance |
|
Booléen avec faux comme valeur par défaut |
cpp_namespace |
Package, Modèle |
NamespaceName |
Chaîne |
cpp_operation |
Opération |
isInline, isVirtual, isFriend |
Booléen avec faux comme valeur par défaut |
cpp_constructor |
Opération |
isExplicit, isInline |
Booléen avec faux comme valeur par défaut |
cpp_copy_constructor |
Opération |
isExplicit, isInline |
Booléen avec faux comme valeur par défaut |
cpp_destructor |
Opération |
isVirtual, isInline |
Booléen avec faux comme valeur par défaut |
cpp_assignment |
Opération |
isInline |
Booléen avec faux comme valeur par défaut |
Vous ne devez pas appliquer plusieurs stéréotypes de transformation C++ à un objet UML. L'application de stéréotypes multiples a les effets suivants :
· Classe UML (cpp_struct, cpp_union, cpp_typedef) : la transformation crée uniquement un objet, quels que soient les stéréotypes que vous appliquez. La transformation donne la priorité à cpp_typedef. Si le stéréotype cpp_typedef n'est pas appliqué et si vous appliquez à la fois les stéréotypes cpp_struct et cpp_union, la transformation génère une fonction struct C++ sans opération standard.
· Dépendance UML (cpp_dependency, cpp_friend) : si vous appliquez les deux stéréotypes, la transformation traite les deux stéréotypes et crée une relation "friend" et une dépendance.
· Opération UML (cpp_operation, cpp_constructor, cpp_copy_constructor, cpp_destructor, cpp_assignment) : la transformation crée seulement un objet, peu importe le nombre de stéréotypes que vous appliquez aux opérations. La liste suivante affiche la priorité des stéréotypes, du plus haut au plus bas :
o cpp_constructor,
o cpp_copy_constructor,
o cpp_destructor,
o cpp_assignment,
o cpp_operation