2009-01-05 18 views
115

Ich modelliere ein Klassendiagramm. Ein Attribut einer Klasse ist eine Aufzählung. Wie modelliere ich das? Normalerweise tust du so etwas:UML Klassendiagramm enum

- name : string 

Aber wie macht man das mit einer Enum?

Antwort

144

Sie sind einfach so zeigte:

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

Und dann haben nur eine Verbindung zwischen diesem und Ihre Klasse.

+13

Aufzählungen mehr wirklich funktionieren wie Datentypen als Klassen in UML, so typischerweise Verbände sind nicht mehr gezeigt, als sie es wäre, wenn Sie ein Attribut deklariert vom Typ Integer sein. Wenn Ihr Modellierungswerkzeug explizite Unterstützung für Aufzählungen bietet, sollten Sie dies verwenden und nur die Stereotyp-Notation Class + <> als Fallback verwenden, falls erforderlich. –

+0

Können Sie mir sagen, wo ich <> Stereotyp für ArgoUML finden kann? – Tim

+0

@Tim ArgoUML hat erstklassige Unterstützung für Enumerationen, also brauchen Sie den Stereotyp –

1

Typischerweise modellieren Sie die Enum sich als Klasse mit dem enum Klischee

56

Wenn Ihr UML-Modellierungstool die Angabe einer Aufzählung unterstützt, sollten Sie diese verwenden. Es wird wahrscheinlich einfacher zu tun sein und es wird Ihrem Modell eine stärkere Semantik verleihen. Optisch wird das Ergebnis einer Klasse mit einem <<enumeration>> Stereotyp sehr ähnlich sein, aber im UML-Metamodell ist eine Enumeration eigentlich ein separater (Meta) -Typ.

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

Sobald es definiert ist, können Sie es als Typ eines Attributs verwenden können, genau wie würden Sie einen Datentyp oder den Namen eines Ihrer eigenen Klassen.

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

Wenn Sie ArgoEclipse oder ArgoUML verwenden, ein Pull-Down-Menü auf der Symbolleiste gibt es die unter Datentyp auswählt, Enumeration, Signal, etc, das Ihnen erlaubt Ihre eigenen Aufzählungen zu erstellen. Das Fach, das normalerweise Attribute enthält, kann dann mit EnumerationLiterals für die Werte Ihrer Enumeration gefüllt werden.

Hier ist ein Bild von einem etwas anderen Beispiel in ArgoUML: enter image description here

+6

nicht zu benutzen Danke für den Screenshot von ArgoUML. –

Verwandte Themen