UML类图枚举

Mar*_*ijn 137 diagram enums uml class

我正在为类图建模.类的属性是枚举.我该如何建模呢?通常你做这样的事情:

- name : string
Run Code Online (Sandbox Code Playgroud)

但是如何使用枚举来做到这一点?

Jam*_*s B 187

它们只是显示如下:

_______________________
|   <<enumeration>>   |
|    DaysOfTheWeek    |
|_____________________|
| Sunday              |
| Monday              |
| Tuesday             |
| ...                 |
|_____________________|
Run Code Online (Sandbox Code Playgroud)

然后在它和你的班级之间建立联系.

  • 枚举实际上更像是数据类型而不是UML中的类,因此,如果您声明属性为Integer类型,则通常不会显示关联.如果您的建模工具明确支持枚举,那么您应该使用它,并且只在必要时才使用Class + << enumeration >>构造型表示法作为后备. (13认同)

Tom*_*ris 62

如果您的UML建模工具支持指定枚举,您应该使用它.它可能会更容易做,它会给你的模型更强的语义.在视觉上,结果将与具有<<enumeration>>Stereotype 的类非常相似,但在UML元模型中,Enumeration实际上是一个单独的(元)类型.

+---------------------+
|   <<enumeration>>   |
|    DayOfTheWeek     |
|_____________________|
| Sunday              |
| Monday              |
| Tuesday             |
| ...                 |
+---------------------+
Run Code Online (Sandbox Code Playgroud)

定义之后,您可以将它用作属性的类型,就像使用数据类型或您自己的类的名称一样.

+---------------------+
|        Event        |
|_____________________|
| day : DayOfTheWeek  |
| ...                 |
+---------------------+
Run Code Online (Sandbox Code Playgroud)

如果您使用的是ArgoEclipse或ArgoUML,工具栏上会有一个下拉菜单,可以在数据类型,枚举,信号等中进行选择,以便您创建自己的枚举.然后,通常包含属性的隔离专区可以使用EnumerationLiterals填充枚举值.

以下是ArgoUML中略有不同的示例: 在此输入图像描述

  • 感谢ArgoUML截图. (7认同)