Перечень классов UML
Вопрос
Я моделирую диаграмму классов. Атрибутом класса является перечисление. Как мне смоделировать это? Обычно вы делаете что-то вроде этого:
- name : string
Но как это сделать с помощью перечисления?
Решение
Они просто показаны так:
_______________________
| <<enumeration>> |
| DaysOfTheWeek |
|_____________________|
| Sunday |
| Monday |
| Tuesday |
| ... |
|_____________________|
А потом просто свяжите это с вашим классом.
Другие советы
Если ваш инструмент моделирования UML поддерживает указание перечисления, вы должны его использовать. Это, вероятно, будет легче сделать, и это даст вашей модели более сильную семантику. Визуально результат будет очень похож на класс со стереотипом <<enumeration>>
, но в метамодели UML перечисление фактически является отдельным (мета) типом.
+---------------------+
| <<enumeration>> |
| DayOfTheWeek |
|_____________________|
| Sunday |
| Monday |
| Tuesday |
| ... |
+---------------------+
После того, как он определен, вы можете использовать его как тип атрибута, так же как и тип данных или имя одного из ваших собственных классов.
+---------------------+
| Event |
|_____________________|
| day : DayOfTheWeek |
| ... |
+---------------------+
Если вы используете ArgoEclipse или ArgoUML, на панели инструментов есть выпадающее меню, в котором можно выбрать тип данных, перечисление, сигнал и т. д., что позволит вам создавать собственные перечисления. Отсек, который обычно содержит атрибуты, может быть затем заполнен EnumerationLiterals для значений вашего перечисления.
Вот изображение немного другого примера в ArgoUML:
Обычно вы сами моделируете перечисление как класс со стереотипом enum