UML类图枚举


145

我正在建模一个类图。类的属性是枚举。我该如何建模?通常,您会执行以下操作:

- name : string

但是,如何用枚举做到这一点呢?

Answers:


198

它们只是像这样显示:

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

然后在那和你的班级之间建立联系。


16
枚举实际上比UML中的类更像数据类型,因此,与显示声明为Integer类型的属性相比,通常不显示关联。如果您的建模工具明确支持枚举,则应使用该类,并且仅在必要时使用Class + << enumeration >>构造型表示法作为备用。
汤姆·莫里斯

您能告诉我在哪里可以找到ArgoUML的<<枚举>>原型吗?
Timofey

@Tim ArgoUML对枚举具有一流的支持,因此无需使用构造型
Tom Morris

<<enumeration>>实际上不是刻板印象,而是关键字。不幸的是,UML作者没有任何视觉上的区别。
qwerty_so

68

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

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

定义后,就可以将其用作属性的类型,就像使用数据类型一样,也可以将其用作自己的类之一。

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

如果您使用的是ArgoEclipse或ArgoUML,则工具栏上的下拉菜单可在Datatype,Enumeration,Signal等中进行选择,以创建自己的Enumerations。然后,可以使用EnumerationLiterals填充通常包含属性的隔离专区,以获取枚举的值。

这是ArgoUML中一个稍有不同的示例的图片: 在此处输入图片说明


7
感谢您的ArgoUML屏幕截图。
Petri Tuononen 2012年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.