Extension de vos modèles à l'aide de profils

Tous les fichiers de ressources PowerAMC contiennent une catégorie Profile située directement sous la racine. Un profil est un mécanisme d'extension UML, qui est utilisé pour étendre un métamodèle pour une cible particulière.

Les profils sont utilisés dans PowerAMC pour ajouter des métadonnées supplémentaires aux objets et créer de nouveaux types de liens entre eux, en sous-divisant les types d'objet (via les stéréotypes et critères), en personnalisant les symboles, les menus et formulaires et en modifiant les résultats de la génération. Par exemple :


Vous pouvez étendre le métamodèle en procédant comme suit :

Vous pouvez visualiser et éditer le profil dans un fichier de ressource en ouvrant ce dernier dans l'Editeur de ressources et en développant la catégorie Profile racine. Vous pouvez ajouter des extensions à une métaclasse (un type d'objet, telle que Class dans un MOO ou Table dans un MPD), ou à un stéréotype ou critère, qui a été précédemment défini sur une métaclasse :



Dans l'exemple ci-dessus :


Les extensions sont héritées, ainsi les extensions d'une métaclasses sont disponibles pour ses enfants stéréotypés, et par celles auxquelles s'applique le critère.



Ainsi, dans l'exemple ci-avant, les classes ayant le stéréotype MonStéréotype ont l'attribut étendu Attribut_5, tandis que ceux qui ont ce stéréotype ET remplissent le critère AutreCritère ont l'attribut Attribut_4 et l'attribut Attribut_5

Remarque :

Etant donné que vous pouvez attacher plusieurs fichiers de ressources à un modèle, (par exemple, un langage cible et une ou plusieurs définitions étendues de modèle), vous pouvez créer des conflits, dans lesquels plusieurs extensions (par exemple, deux définitions de stéréotype) ont été définies sur la même métaclasse dans des fichiers de ressources séparés. En cas de conflit, l'extension de définition étendue de modèle prévaut généralement. Lorsque deux définitions étendues de modèle sont en conflit, celle située en début de liste se voit accorder la priorité.