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


149

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

- name : string

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

Ответы:


208

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

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

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


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

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

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

<<enumeration>>на самом деле это не стереотип, а ключевое слово. К сожалению, авторы UML не сделали никаких визуальных различий.
qwerty_so

74

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

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

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

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

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

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


7
Спасибо за скриншот ArgoUML.
Петри Туононен

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.