【发布时间】:2010-09-29 14:27:02
【问题描述】:
我正在建模一个类图。类的属性是枚举。我该如何建模?通常你会这样做:
- name : string
但是如何用枚举做到这一点?
【问题讨论】:
我正在建模一个类图。类的属性是枚举。我该如何建模?通常你会这样做:
- name : string
但是如何用枚举做到这一点?
【问题讨论】:
它们只是这样显示:
_______________________
| <<enumeration>> |
| DaysOfTheWeek |
|_____________________|
| Sunday |
| Monday |
| Tuesday |
| ... |
|_____________________|
然后在它和你的类之间建立一个关联。
【讨论】:
<<enumeration>> 实际上不是刻板印象,而是关键字。不幸的是,UML 作者没有进行任何视觉区分。
如果您的 UML 建模工具支持指定枚举,您应该使用它。它可能会更容易做,它会给你的模型更强的语义。从视觉上看,结果与带有<<enumeration>> Stereotype 的 Class 非常相似,但在 UML 元模型中,Enumeration 实际上是一个单独的(元)类型。
+---------------------+
| <<enumeration>> |
| DayOfTheWeek |
|_____________________|
| Sunday |
| Monday |
| Tuesday |
| ... |
+---------------------+
定义后,您可以将其用作属性的类型,就像使用数据类型或您自己的类的名称一样。
+---------------------+
| Event |
|_____________________|
| day : DayOfTheWeek |
| ... |
+---------------------+
如果您使用 ArgoEclipse 或 ArgoUML,工具栏上有一个下拉菜单,可以在 Datatype、Enumeration、Signal 等之间进行选择,让您可以创建自己的 Enumerations。然后可以使用 EnumerationLiterals 填充通常包含 Attributes 的隔间,以获取您的枚举值。
这是 ArgoUML 中一个稍微不同的示例的图片:
【讨论】:
通常您将枚举本身建模为具有enum 构造型的类
【讨论】: