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 :
Fichier de ressources du langage objet Java 5.0 - étend la métaclasse Component avec plusieurs niveaux de critères afin de modéliser différentes formes d'EJB.
Fichier de ressources du langage de processus BPEL4WS 1.1 - étend la métaclasse Event via des stéréotypes pour modéliser des événements Compensation, Fault et Timer
Fichier de ressources SGBD MSSQLSRV2005 - utilise des objets étendus stéréotypés afin de modéliser les agregates, les assemblies et autres objets spécifiques à SQL Server
En ajoutant ou sous-classifiant de nouveaux types d'objet :
Métaclasses (Profile) – pour sous-classifier des objets.
Stéréotypes (Profile) [métaclasses et stéréotypes uniquement] – pour sous-classifier les objets
Critères (Profile) – pour évaluer les conditions permettant de sous-classifier les objets.
Objets, sous-objets et liens étendus (Profile) – pour créer de nouvelles catégories d'objet.
En fournissant de nouvelles façons de voir les connexions entre les objets :
En ajoutant de nouvelles propriétés aux objets :
Attributs étendus (Profile) – pour fournir des métadonnées supplémentaires.
Collections et compositions étendues (Profile) – pour permettre de lier manuellement des objets.
Collections calculées (Profile) – pour automatiser la liaison des objets.
Formulaires (Profile) – pour afficher des onglets de propriétés ou des boîtes de dialogue personnalisés.
Symboles personnalisés (Profile) – pour aider à identifier visuellement les objets.
En ajoutant des contraintes et des règles de validation aux objets :
Vérifications personnalisées (Profile) – pour tester les données.
Gestionnaires d'événement (Profile) – pour appeler des méthodes lorsqu'elles sont déclenchées par un événement.
En exécutant des commandes sur les objets :
Méthodes (Profile) – pour être appelées par d'autres extensions de profil telles que des commandes de menus ou des boutons de formulaires (écrits en VBScript).
Menus (Profile) [pour les métaclasses et les stéréotypes uniquement] – pour personnaliser les menus PowerAMC.
En générant des objets de nouvelles façons :
Templates et fichiers générés (Profile) – pour personnaliser la génération.
Transformations et profils de transformation (Profile) – pour automatiser les changements des objets à la génération ou à la demande.
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 :
Class est une métaclasse. Les métaclasses proviennent du métamodèle PowerAMC, et apparaissent toujours à la racine, immédiatement sous la catégorie Profile.
MonCritère est un critère qui affine la métaclasse Class. Les classes qui remplissent le critère peuvent être présentées et traitées différemment des autres classes.
MonStéréotype est un stéréotype qui affine la métaclasse Class. Les classes ayant le stéréotype MonStéréotype peuvent être présentées et traitées différemment des autres classes.
AutreCritère est un critère qui affine encore plus les classes portant le stéréotype MonStéréotype. Les classes ayant le stéréotype ET qui remplissent le critère peuvent être présentées et traitées différemment des classes qui on seulement le stéréotype.
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
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é.