UML class diagram enum


115

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

- name : string 

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

144

Они просто показали, как это:

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

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

+13

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

  0

Не могли бы вы рассказать, где я могу найти <<enumeration>> стереотип для ArgoUML? 22 янв. 162016-01-22 21:42:47

  0

@Tim ArgoUML имеет поддержку первого класса для Enumerations, поэтому нет необходимости использовать стереотип 12 июл. 162016-07-12 05:34:57


1

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


56

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

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

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

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

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

Вот картина немного другой, например, в ArgoUML: enter image description here

+6

Спасибо за скриншот ArgoUML. 10 май. 122012-05-10 07:32:53