Перечисление диаграммы классов UML

Я моделирую диаграмму классов. Атрибут класса - это перечисление. Как мне это моделировать? Обычно вы делаете что-то вроде этого:

- name : string

Но как это сделать с перечислением?

Ответ 1

Они просто отображаются следующим образом:

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

И тогда у вас есть связь между этим и вашим классом.

Ответ 2

Если ваш инструмент моделирования UML имеет поддержку для указания перечисления, вы должны использовать его. Скорее всего, это будет легче сделать, и это придаст вашей модели более сильную семантику. Визуально результат будет очень похож на класс с <<enumeration>> Stereotype, но в метамодели UML перечисление на самом деле является отдельным (мета) типом.

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

Как только он определен, вы можете использовать его как тип атрибута так же, как и тип данных или имя одного из ваших собственных классов.

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

Если вы используете ArgoEclipse или ArgoUML, на панели инструментов отображается раскрывающееся меню, которое выбирает тип данных, перечисление, сигнал и т.д., которые позволят вам создавать собственные перечисления. В отсеке, который обычно содержит атрибуты, может быть заполнено EnumerationLiterals для значений вашего перечисления.

Здесь картина немного другого примера в ArgoUML: enter image description here

Ответ 3

Обычно вы моделируете enum как класс со стереотипом enum