Diagram kelas UML enum

145

Saya memodelkan diagram kelas. Atribut suatu kelas adalah enumerasi. Bagaimana saya memodelkan ini? Biasanya Anda melakukan sesuatu seperti ini:

- name : string

Tetapi bagaimana seseorang melakukan ini dengan enum?

Martijn
sumber

Jawaban:

198

Mereka hanya ditampilkan seperti ini:

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

Dan kemudian hanya memiliki hubungan antara itu dan kelas Anda.

James B
sumber
16
Pencacahan sebenarnya berfungsi lebih seperti Datatypes daripada Kelas di UML, jadi biasanya Asosiasi tidak ditampilkan lebih dari yang seharusnya jika Anda mendeklarasikan atribut bertipe Integer. Jika alat pemodelan Anda memiliki dukungan eksplisit untuk enumerasi, Anda harus menggunakannya dan hanya menggunakan notasi stereotipe Kelas + <<enumerasi>> sebagai cadangan jika diperlukan.
Tom Morris
Bisakah Anda memberi tahu di mana saya dapat menemukan <<enumeration>> stereotip untuk ArgoUML?
Timofey
@Tim ArgoUML memiliki dukungan kelas satu untuk Pencacahan, jadi tidak perlu menggunakan stereotip
Tom Morris
<<enumeration>>sebenarnya bukan stereotip tetapi kata kunci. Sayangnya penulis UML tidak membuat diferensiasi visual.
qwerty_so
68

Jika alat pemodelan UML Anda memiliki dukungan untuk menentukan Pencacahan, Anda harus menggunakannya. Ini kemungkinan akan lebih mudah dilakukan dan itu akan memberikan semantik model Anda lebih kuat. Secara visual hasilnya akan sangat mirip dengan Kelas dengan <<enumeration>>Stereotype, tetapi dalam metamodel UML, sebuah Enumerasi sebenarnya adalah tipe yang terpisah (meta).

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

Setelah didefinisikan, Anda dapat menggunakannya sebagai jenis Atribut sama seperti Anda menggunakan Datatype atau nama salah satu Kelas Anda sendiri.

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

Jika Anda menggunakan ArgoEclipse atau ArgoUML, ada menu pull-down pada bilah alat yang memilih antara Datatype, Enumeration, Signal, dll yang memungkinkan Anda membuat Enumerasi sendiri. Kompartemen yang biasanya berisi Atribut kemudian dapat diisi dengan EnumerationLiterals untuk nilai-nilai enumerasi Anda.

Berikut gambar contoh yang sedikit berbeda di ArgoUML: masukkan deskripsi gambar di sini

Tom Morris
sumber
7
Terima kasih untuk tangkapan layar ArgoUML.
Petri Tuononen
1

Biasanya Anda memodelkan enum itu sendiri sebagai kelas dengan enumstereotip

annakata
sumber