Diagramme de classe UML enum
Question
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 une énumération?
La solution
Ils sont simplement affichés comme ceci:
_______________________
| <<enumeration>> |
| DaysOfTheWeek |
|_____________________|
| Sunday |
| Monday |
| Tuesday |
| ... |
|_____________________|
Et ensuite, créez une association entre cela et votre classe.
Autres conseils
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) séparé.
+---------------------+
| <<enumeration>> |
| DayOfTheWeek |
|_____________________|
| Sunday |
| Monday |
| Tuesday |
| ... |
+---------------------+
Une fois celui-ci défini, vous pouvez l'utiliser comme type d'attribut, comme vous le feriez avec un type de données ou le nom de l'une de vos propres classes.
+---------------------+
| Event |
|_____________________|
| day : DayOfTheWeek |
| ... |
+---------------------+
Si vous utilisez ArgoEclipse ou ArgoUML, il existe un menu déroulant dans la barre d’outils qui sélectionne le type de données, l’énumération, le signal, etc. 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 photo d'un exemple légèrement différent dans ArgoUML:
En règle générale, vous modélisez l'énumération en tant que classe avec le enum
stéréotype