2009-01-05 162 views
115

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

- name : string 

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

回答

144

他们只是表现出这样的枚举本身建模为一类:

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

然后只是有和类之间的关联。

+13

枚举实际工作更像是数据类型比UML类,因此通常协会没有显示比他们是,如果你宣布一个属性更多是Integer类型的。如果您的建模工具明确支持枚举,那么您应该使用该工具,并且必要时仅使用Class + <>原型符号作为后备。 – 2012-02-02 17:11:03

+0

您能否告诉我在哪里可以找到ArgoUML的原型<>? – Tim 2016-01-22 21:42:47

56

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

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

一旦它被定义,你可以使用它作为一个属性的类型,就像你一个数据类型或名称自己的类之一。

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

如果您使用ArgoEclipse或的ArgoUML,有哪些数据类型中选择工具栏上的下拉菜单,计数,信号等,让您创建自己的枚举。通常包含Attributes的隔离区可以使用EnumerationLiterals填充枚举的值。

这里有一个稍微不同的例子中的ArgoUML图片: enter image description here