2009-01-05 121 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