UML permet de modéliser des applications orientées objet, mais ses concepts sont suffisamment génériques pour être utilisés dans d’autres domaines.
Par exemple, les diagrammes de classes, qui permettent en principe de ne modéliser que la partie statique d’une application orientée objet, peuvent être utilisés à d’autres fins:
notamment pour modéliser
des métamodèles.
Ils peuvent même être employés (sans utiliser tous les concepts qu’ils proposent) pour modéliser des structures de bases de données.
Le problème est : qu’il devient dès lors de plus en plus difficile en regardant un modèle de savoir s’il modélise une application objet, un métamodèle, une base de données ou autre chose.
La solution
l’OMG a standardisé le concept de profil UML.
Un profil est un ensemble de techniques et de mécanismes permettant d’adapter UML à un domaine particulier.
Cette adaptation est dynamique, c’est-à-dire qu’elle ne modifie en rien le métamodèle UML et qu’elle peut se faire sur n’importe quel modèle UML.
Les profils UML mettent en jeu le concept central de stéréotype.
Un stéréotype est une sorte d’étiquette nommée que l’on peut coller sur n’importe quel élément d’un modèle UML.
Lorsqu’un stéréotype est collé sur un élément d’un modèle, le nom du stéréotype définit la nouvelle signification de l’élément.
Par exemple:
coller un stéréotype nommé "Sécurisé" sur une classe UML signifie que la classe en question n’est plus une simple classe UML mais qu’elle est une classe sécurisée, c’est-à-dire dont les accès sont restreints par mot de passe.
Utiliser un profil consiste donc à coller sur un modèle UML un ensemble de stéréotypes.
D’un point de vue graphique, un stéréotype se représente sous la forme d’une chaîne de caractères contenant le nom du stéréotype encadré de guillemets.
Si le stéréotype est collé sur une classe, cette chaîne de caractères doit apparaître au-dessus du nom de la classe
Utilisation d’un stéréotype sur une classe
le concept de profil ne peut fonctionner que si l’ensemble des stéréotypes utilisés est partagé par les différents intervenants manipulant les modèles.
Dans l’exemple du stéréotype "Sécurisé", il faut que tous les intervenants connaissent ce stéréotype ainsi que sa signification
Pour faire face à cela, l’OMG a défini des profils standards.
Ces profils définissent un ensemble de stéréotypes et expliquent leur signification en langage naturel.
D’autres organismes de standardisation, tels que le JCP (Java Community Process), proposent eux aussi des profils standards.
L’intérêt principal des profils est qu’il est possible de leur associer des traitements Spécifiques du domaine couvert par le profil.
ces traitements permettent de rendre les modèles UML profilés beaucoup plus productifs que les modèles UML simples, car ceux-ci disposent d’informations supplémentaires grâce aux stéréotypes.
UML2.0 Superstructure facilite la création de nouveaux profils en simplifiant la définition des concepts de profils et de stéréotypes dans le métamodèle.
La partie du métamodèle UML2.0 qui contient les métaclasses relatives aux profils.
Dans ce métamodèle, la métaclasse Profile hérite de la métaclasse Package.
Cela signifie que les définitions de nouveaux profils sont maintenant considérées comme étant des packages.
La métaclasse Stereotype hérite de son côté de la métaclasse Class. Cela signifie que les définitions de stéréotypes sont considérées comme étant des classes UML.
Le nom de la classe correspond au nom du stéréotype.
la métaclasse Stereotype est reliée à la métaclasse Class via la métaclasse Extension, qui hérite de la métaclasse Association,
et la métaclasse ExtensionEnd, qui hérite de la métaclasse Property.
Cela signifie qu’un stéréotype apporte une extension de signification à une classe.
les classes étendues par des stéréotypes doivent être des métaclasses d’un métamodèle
Si nous reprenons notre exemple de profil de test.
Nous constatons que les stéréotypes "TestSuite" et "TestCase " sont liés non à des classes normales mais à des métaclasses (Class et Operation).
Après ces présentations, il est plus facile de comprendre pourquoi l’OMG préconise l’utilisation d’UML2.0 Superstructure pour élaborer les PIM puisque :
les modèles UML2.0 Superstructure permettent de modéliser les applications orientées objet indépendamment des plates-formes sur lesquelles elles s’exécutent.
C’est en cela que les modèles UML2.0 Superstructure sont pérennes.
Grâce aux profils, il est possible d’appliquer UML2.0 Superstructure à des domaines autres que la modélisation d’applications orientées objet.