UML-Klassendiagramm-Aufzählung

145

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

- name : string

Aber wie macht man das mit einer Aufzählung?

Martijn
quelle

Antworten:

198

Sie werden einfach so gezeigt:

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

Und dann haben Sie einfach eine Assoziation zwischen dem und Ihrer Klasse.

James B.
quelle
16
Aufzählungen funktionieren in UML eher wie Datentypen als wie Klassen. Daher werden Zuordnungen normalerweise nicht mehr angezeigt als wenn Sie ein Attribut vom Typ Integer deklarieren würden. Wenn Ihr Modellierungswerkzeug Aufzählungen explizit unterstützt, sollten Sie diese verwenden und bei Bedarf nur die Stereotypnotation Klasse + << Aufzählung >> als Fallback verwenden.
Tom Morris
Können Sie sagen, wo ich das Stereotyp << Aufzählung >> für ArgoUML finden kann?
Timofey
@ Tim ArgoUML hat erstklassige Unterstützung für Aufzählungen, so dass das Stereotyp nicht verwendet werden muss
Tom Morris
<<enumeration>>Eigentlich ist es kein Stereotyp, sondern ein Schlüsselwort. Leider haben die UML-Autoren keine visuelle Differenzierung vorgenommen.
qwerty_so
68

Wenn Ihr UML-Modellierungswerkzeug die Angabe einer Aufzählung unterstützt, sollten Sie diese verwenden. Dies ist wahrscheinlich einfacher und verleiht Ihrem Modell eine stärkere Semantik. Optisch ist das Ergebnis einer Klasse mit einem <<enumeration>>Stereotyp sehr ähnlich , aber im UML-Metamodell ist eine Aufzählung tatsächlich ein separater (Meta-) Typ.

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

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

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

Wenn Sie ArgoEclipse oder ArgoUML verwenden, gibt es in der Symbolleiste ein Pulldown-Menü, in dem Sie zwischen Datentyp, Aufzählung, Signal usw. auswählen können, mit dem Sie Ihre eigenen Aufzählungen erstellen können. Das Fach, das normalerweise Attribute enthält, kann dann mit EnumerationLiterals für die Werte Ihrer Aufzählung gefüllt werden.

Hier ist ein Bild eines etwas anderen Beispiels in ArgoUML: Geben Sie hier die Bildbeschreibung ein

Tom Morris
quelle
7
Danke für den ArgoUML Screenshot.
Petri Tuononen
1

Normalerweise modellieren Sie die Aufzählung selbst als Klasse mit dem enumStereotyp

Annakata
quelle