Diagrammes de profil UML
Comment étendre UML lui-même. Stéréotypes, valeurs marquées et flèche d'extension - le mécanisme derrière chaque «entity», «service» et «microservice» que vous avez vu sur un diagramme.
6 min de lectureUML 2.5.130 sur 35
La réponse courte
- Chaque guillemet que vous avez vu sur un diagramme - entity, service, microservice - a été défini quelque part par un profil.
- Les stéréotypes ajoutent du sens, les valeurs marquées ajoutent des données. Un stéréotype service définissant une étiquette SLA permet à un composant de porter un SLA concret.
- La flèche d'extension est ce qui lie un stéréotype à une métaclasse. Étendre Class signifie qu'il s'applique aux classes et à rien d'autre.
- Définissez un profil quand vous voulez que les outils agissent sur une annotation. Une note est invisible pour tous les outils ; un stéréotype fait partie du modèle.
01Ce qu'il montre#
Un diagramme de profil, c'est UML décrivant une extension de lui-même. C'est le seul diagramme du langage dont le sujet est le langage, ce qui explique qu'il semble différent des treize autres et que la plupart des gens n'en dessinent jamais.
Vous en avez presque certainement utilisé le résultat. Chaque fois que vous avez vu «entity», «service», «controller» ou «microservice» sur une boîte de classe, vous regardiez un stéréotype appliqué. Un diagramme de profil est l'endroit où ce stéréotype est défini : son nom, ce à quoi il peut être attaché, et les propriétés supplémentaires qu'il porte.
02La notation#
| Élément | Notation | Ce que cela signifie |
|---|---|---|
| Métaclasse | boîte, «metaclass» | Un élément d'UML lui-même - Class, Component, Association. Ce que vous étendez. |
| Stéréotype | boîte, «stereotype» | Le nouveau concept que vous ajoutez au langage. |
| Extension | Trait plein, triangle pleincôté métaclasse. « Ce stéréotype peut être appliqué à ce genre d'élément. » | |
| Valeur marquée | un attribut sur le stéréotype | Une propriété supplémentaire que l'application du stéréotype vous donne - slo: Duration. |
| Profil | paquetage, «profile» | Le paquetage qui regroupe un ensemble de stéréotypes pour qu'ils s'appliquent ensemble. |
| «apply» | D'un paquetage vers un profil : tout ce qui est ici peut employer ces stéréotypes. |
03Quand il vous en faut vraiment un#
Soyez honnête sur le seuil. Utiliser un stéréotype ne demande aucun profil : «entity» sur une boîte communique parfaitement à un lecteur humain sans que rien soit formellement défini. Vous avez besoin d'un diagramme de profil quand le stéréotype doit signifier quelque chose pour une machine.
Cela arrive dans trois situations. Quand un outil doit valider le modèle - refuser d'appliquer «microservice» à une association, ou exiger que chacun déclare un SLO. Quand du code ou des documents sont générés depuis le modèle et que le générateur se ramifie sur le stéréotype. Et quand toute une industrie s'est accordée sur un vocabulaire : SysML, MARTE, SoaML et consorts sont tous des profils UML, et ils sont la raison principale de l'existence du mécanisme.
04Garder un profil utile#
À utiliser quand
- Un outil doit valider ou générer à partir du stéréotype, pas seulement l'afficher
- Il vous faut des données structurées en plus sur les éléments - propriétaire, SLO, classification
- Vous adoptez un profil standard comme SysML que quelqu'un d'autre a déjà défini
- La même poignée de concepts métier revient sur beaucoup de diagrammes et d'équipes
Préférer autre chose quand
- Un ou deux stéréotypes employés comme simples étiquettes visuelles - écrivez-les, c'est tout
- Les concepts que vous ajoutez existent déjà dans ArchiMate ou un autre langage
- Personne ne maintiendra le profil une fois partie la personne qui l'a écrit
- Vous étendez UML pour éviter d'apprendre la partie d'UML qui le couvre déjà
Un bon profil est petit. Cinq à dix stéréotypes, chacun de sens évident et avec au plus deux valeurs marquées, appliqués de façon cohérente, valent bien mieux que quarante dont personne ne se souvient. Et chaque valeur marquée que vous ajoutez est un champ que quelqu'un devra renseigner sur chaque élément, pour toujours : faites donc en sorte que chacune mérite sa place.
Un avertissement pratique sur la portabilité : les profils sont la partie d'UML qui voyage le plus mal entre outils. Les définitions de stéréotypes survivent à un aller-retour XMI bien moins fidèlement que les éléments de modèle ordinaires, et les valeurs marquées arrivent souvent en chaînes non typées, ou pas du tout. Si votre modèle doit circuler entre outils, gardez le profil aussi petit que vous pouvez le supporter.
En une ligne chacun
- 01Le seul diagramme UML dont le sujet est UML lui-même.
- 02Un stéréotype étend une métaclasse ; la flèche est un trait plein à triangle PLEIN.
- 03Le triangle creux de la généralisation signifie autre chose, et c'est l'erreur habituelle.
- 04Les valeurs marquées sont les propriétés supplémentaires qu'apporte l'application du stéréotype.
- 05Vous n'avez besoin d'un profil formel que si un outil doit agir sur le stéréotype.
- 06Gardez les profils petits - c'est aussi la partie d'un modèle qui s'exporte le moins fidèlement.
05Questions fréquentes#
Qu'est-ce qu'un stéréotype en UML ?
Une extension nommée d'un élément UML existant, écrite entre guillemets français : entity, service, controller. Cela permet de spécialiser le langage pour un domaine sans inventer de notation nouvelle, et chacun de ceux que vous avez vus a été défini quelque part par un profil.
Qu'est-ce qu'une valeur marquée ?
Une propriété ajoutée à un élément par un stéréotype. Un stéréotype service peut définir une étiquette SLA ; l'appliquer à un composant permet à celui-ci de porter une valeur de SLA concrète. Les valeurs marquées sont la façon dont un profil ajoute des données, comme les stéréotypes sont la façon dont il ajoute du sens.
Qu'est-ce que la relation d'extension ?
La flèche allant d'un stéréotype vers la métaclasse qu'il étend, tracée en trait plein avec un triangle plein. C'est elle qui rend un stéréotype applicable à un type d'élément précis : étendre Class signifie qu'il s'applique aux classes et à rien d'autre.
Quand définir un profil plutôt que d'écrire des notes ?
Quand la même annotation revient assez souvent pour que vous vouliez que les outils agissent dessus : la valider, filtrer par elle, ou la transformer à l'export. Une note est invisible pour tous les outils ; un stéréotype fait partie du modèle à part entière.
Dans cette série
- 01Qu'est-ce que UML ?
- 02Symboles UML
- 03Choisir un diagramme
- 04Diagrammes de classes
- 05Exemples de diagrammes de classes
- 06Dessiner un diagramme de classes
- 07Symboles du diagramme de classes
- 08Diagrammes de séquence
- 09Exemples de diagrammes de séquence
- 10Dessiner un diagramme de séquence
- 11Diagrammes de cas d'utilisation
- 12Exemples de cas d'utilisation
- 13Diagrammes d'activité
- 14Exemples d'activité
- 15Diagrammes états-transitions
- 16Exemples d'états-transitions
- 17Diagrammes de composants
- 18Exemples de composants
- 19Dessiner un diagramme de composants
- 20Symboles de composants
- 21Diagrammes de déploiement
- 22Exemples de déploiement
- 23Diagrammes d'objets
- 24Diagrammes de paquetages
- 25Diagrammes de structure composite
- 26Diagrammes de communication
- 27Séquence vs communication
- 28Diagrammes de temps
- 29Diagrammes globaux d'interaction
- 30Diagrammes de profil
- 31UML avec l'IA
- 32Exemple e-commerce
- 33Exemple bancaire
- 34Exemple microservices
- 35Exemple AWS
À lire aussi
Fondamentaux
Diagrammes de structure
Diagrammes de structure
Diagrammes de structure
Pratique de la modélisation
Diagrammes de comportement