La transformation C++ convertit les éléments de modèle UML
en code C++.
Que peut-on convertir en C++ ?
La
transformation C++ peut convertir les éléments de modèle UML suivants
en code C++.
- Modèle
- Package
- Classe
- Enumération
- Composant
- Artefact
Vous pouvez utiliser des composants et des artefacts
pour organiser les éléments de votre modèle que vous souhaitez convertir en
code C++. La sélection d'un artefact ou d'un composant génère une transformation C++
qui convertit les packages et classes concernés en code C++ lorsque l'une des
relations suivantes existe :
- Un artefact
entretient une relation de manifestation avec des composants et ces composants
ont une relation d'utilisation avec des packages et des classes
- Un artefact entretient une relation de manifestation avec des packages ou
des classes
- Un composant entretient une relation d'utilisation avec des packages et des classes
Conversion d'éléments de modèles en code C++
Le
tableau suivant montre comment la transformation C++ convertit les éléments
de modèle UML suivants en code C++.
| Elément de modèle UML |
C++ |
| Package |
Dossier |
| Classe |
Classe (fichiers .h et.cpp) |
| Relation de généralisation |
Héritage de classe |
| Relation d'association |
Attribut classe |
| Propriété |
Attribut classe |
| Enumération |
Enum (fichier .h) |
| Opération |
Opération |
| Paramètre |
Argument d'opération |
| Relation d'utilisation |
Inclusion |
| Paramètre de canevas |
Paramètre pour classe paramétrée |
| Relation de liaison de canevas |
Classe instanciée (fichier .h) |
Génération d'opérations C++ standard
Les opérations
standard sont des constructeurs, des constructeurs de copie, des destructeurs et
des opérateurs d'affectation. Vous pouvez préciser quelles opérations standard
la transformation C++ génère. Vous pouvez également ajouter un stéréotype, qui
représente l'une des opérations standard, à l'opération d'une classe dans
votre modèle. La transformation C++ applique la visibilité de l'opération UML
aux opérations standard générées, mais elle ignore le nom et les paramètres
de l'opération UML. La transformation C++ génère des opérations
standard pour les unions que vous avez explicitement ajoutées à un
modèle UML.
Diagrammes de visualisation C++
Vous pouvez
générer des diagrammes de visualisation UML au même moment que le code C++
à partir de votre modèle UML. Utilisez les diagrammes de visualisation UML
pour afficher une représentation graphique de votre code C++, que vous pouvez
éditer au niveau graphique ou code. La transformation C++ crée un diagramme
de visualisation UML pour chaque package UML. Le diagramme de visualisation UML
contient les classes, structures, unions et énumérations non imbriquées
que la transformation C++ génère pour le package UML.
Remarque : La génération automatique de diagrammes de visualisation
UML augmente le temps nécessaire pour générer du code C++ et la consommation
de mémoire.
Où sont générés les fichiers de code C++ ?
La
transformation C++ génère des fichiers de code C++ uniquement dans des projets C++
et des dossiers de projet C++.
Noms secondaires des fichiers générés
Vous pouvez
utiliser la fonction de mappage pour indiquer des noms secondaires pour les fichiers que la transformation génère sans modifier le modèle source.
Vous pouvez définir des noms de fichier absolus et relatifs. Les noms de fichier absolus
doivent désigner un projet existant. La transformation crée des
nouveaux répertoires parents. La transformation remplace les
extensions de fichier par des extensions de fichier C++ standard
comme .h ou .cpp.
La transformation base les noms des diagrammes de visualisation UML sur le nom du package qui les contient. Les artefacts de mappage n'affectent pas directement le nommage des
diagrammes de visualisation UML.
La transformation C++ interdit les
caractères suivants dans les noms de répertoire et de fichier de mappage :
- Astérisque (*)
- Point d'interrogation (?)
- Guillemets (")
- Symbole inférieur à (<)
- Symbole supérieur à (>)
- Barre verticale ( | )
Remarque : Les caractères
interdits sont remplacés par un underscore (_) au cours de la transformation.