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

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

- name : string

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

Сила классов Java: сравнение с языком C
Сила классов Java: сравнение с языком C
Абстракция" - это процесс упрощения сложных сущностей или концепций реального мира с целью их применения в форме программирования. В Java класс...
157
0
231 979
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

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

Ответ принят как подходящий

Их просто показывают так:

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

А затем просто установите связь между этим и вашим классом.

Перечисления на самом деле больше похожи на типы данных, чем на классы в UML, поэтому обычно ассоциации не отображаются больше, чем если бы вы объявили атрибут типа Integer. Если ваш инструмент моделирования имеет явную поддержку перечислений, вы должны использовать это и использовать стереотипную нотацию Class + <<enumeration>> только в качестве запасного варианта, если это необходимо.

Tom Morris 02.02.2012 21:11

Подскажите, где найти стереотип <<enumeration>> для ArgoUML?

Timofey 23.01.2016 00:42

@Tim ArgoUML имеет первоклассную поддержку перечислений, поэтому нет необходимости использовать стереотип

Tom Morris 12.07.2016 08:34
<<enumeration>> на самом деле не стереотип, а ключевое слово. К сожалению, авторы UML не сделали визуальной дифференциации.
qwerty_so 09.05.2018 11:13

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

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

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

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

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

Вот изображение немного другого примера в ArgoUML:

Спасибо за скриншот ArgoUML.

Petri Tuononen 10.05.2012 11:32

Другие вопросы по теме