Перерахунок діаграми класів UML


145

Я моделюю схему класів. Атрибут класу - це перерахування. Як я моделюю це? Зазвичай ви робите щось подібне:

- name : string

Але як це зробити з перерахунком?

Відповіді:


198

Їх просто показали так:

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

А потім просто мати зв'язок між цим і вашим класом.


16
Перерахування насправді працюють як типи даних, ніж класи в UML, тому асоціації, як правило, не відображаються більше, ніж були б, якщо ви оголосили атрибут типу Integer. Якщо у вашому інструменті моделювання є явна підтримка перерахувань, ви повинні використовувати це та використовувати лише позначення стереотипу Class + <<переліку>> як запасний варіант.
Том Морріс

Не могли б ви сказати, де я можу знайти <<перерахунок>> стереотип для ArgoUML?
Тимофей

@Tim ArgoUML має першокласну підтримку для перерахувань, тому не потрібно використовувати стереотип
Том Морріс

<<enumeration>>насправді це не стереотип, а ключове слово. На жаль, автори UML не зробили жодної візуальної диференціації.
qwerty_so

68

Якщо у вашому інструменті моделювання 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.