web-dev-qa-db-fra.com

Diagramme de classe UML enum

Je modélise un diagramme de classes. Un attribut d'une classe est une énumération. Comment puis-je modéliser cela? Normalement, vous faites quelque chose comme ça:

- name : string

Mais comment fait-on cela avec un enum?

135
Martijn

Ils sont simplement montrés comme ceci:

_______________________
|   <<enumeration>>   |
|    DaysOfTheWeek    |
|_____________________|
| Sunday              |
| Monday              |
| Tuesday             |
| ...                 |
|_____________________|

Et puis juste avoir une association entre cela et votre classe.

176
James B

Si votre outil de modélisation UML prend en charge la spécification d’une énumération, vous devez l’utiliser. Ce sera probablement plus facile à faire et cela donnera à votre modèle une sémantique plus forte. Visuellement, le résultat sera très similaire à une classe avec un <<enumeration>> Stéréotype, mais dans le métamodèle UML, une énumération est en réalité un type (méta) distinct.

+---------------------+
|   <<enumeration>>   |
|    DayOfTheWeek     |
|_____________________|
| Sunday              |
| Monday              |
| Tuesday             |
| ...                 |
+---------------------+

Une fois qu'il est défini, vous pouvez l'utiliser comme type d'attribut, comme vous le feriez avec un type de données ou en nommant l'une de vos propres classes.

+---------------------+
|        Event        |
|_____________________|
| day : DayOfTheWeek  |
| ...                 |
+---------------------+

Si vous utilisez ArgoEclipse ou ArgoUML, un menu déroulant de la barre d’outils permet de sélectionner le type de données, l’énumération, le signal, etc., ce qui vous permettra de créer vos propres énumérations. Le compartiment qui contient normalement des attributs peut ensuite être rempli avec EnumerationLiterals pour les valeurs de votre énumération.

Voici une image d'un exemple légèrement différent dans ArgoUML: enter image description here

61
Tom Morris

En règle générale, vous modélisez l'énumération en tant que classe avec le stéréotype enum

1
annakata