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?

Antworten:


198

Sie werden einfach so gezeigt:

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

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


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


7
Danke für den ArgoUML Screenshot.
Petri Tuononen

1

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.