UML sınıf diyagramı enum


145

Bir sınıf diyagramı modelleniyorum. Bir sınıfın niteliği bir numaralandırmadır. Bunu nasıl modelleyebilirim? Normalde böyle bir şey yaparsınız:

- name : string

Ama bunu bir numaralandırma ile nasıl yapar?

Yanıtlar:


198

Basitçe şöyle gösterilir:

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

Ve sonra sadece bununla sınıfın arasında bir ilişki kur.


16
Numaralandırmalar aslında UML'deki Sınıflardan ziyade Veri Türleri gibi çalışır, bu nedenle genellikle İlişkilendirmeler, Tamsayı türünde bir öznitelik bildirdiğinizde olduğundan daha fazla gösterilmez. Modelleme aracınız numaralandırmalar için açık bir desteğe sahipse, bunu kullanmalı ve gerekirse yalnızca Class + <<enumeration>> stereotip gösterimini yedek olarak kullanmalısınız.
Tom Morris

ArgoUML için <<umum>> stereotipini nerede bulabileceğimi söyleyebilir misiniz?
Timofey

@Tim ArgoUML, Numaralandırmalar için birinci sınıf desteğe sahiptir, bu yüzden klişeyi kullanmaya gerek yoktur
Tom Morris

<<enumeration>>aslında bir klişe değil, bir anahtar kelime. Maalesef UML yazarları görsel bir ayrım yapmadılar.
qwerty_so

68

UML modelleme aracınız bir Numaralandırma belirtme desteğine sahipse bunu kullanmalısınız. Yapması daha kolay olacak ve modelinize daha güçlü anlambilim sağlayacaktır. Görsel olarak sonuç, <<enumeration>>Stereotipli bir Sınıfa çok benzer , ancak UML metamodelinde bir Numaralandırma aslında ayrı (meta) bir tiptir.

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

Bir kez tanımlandıktan sonra, tıpkı bir Datatype veya kendi Sınıflarınızdan birinin adı gibi bir Nitelik türü olarak kullanabilirsiniz.

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

ArgoEclipse veya ArgoUML kullanıyorsanız, araç çubuğunda kendi Numaralandırmalarınızı oluşturmanıza olanak tanıyan Veri Türü, Numaralandırma, Sinyal vb. Arasından seçim yapan bir açılır menü bulunur. Normalde Öznitelikler içeren bölmeye, numaralandırmanızın değerleri için EnumerationLiterals yerleştirilebilir.

İşte ArgoUML'da biraz farklı bir örneğin resmi: resim açıklamasını buraya girin


7
ArgoUML ekran görüntüsü için teşekkürler.
Petri Tuononen

1

Tipik olarak, enumun kendisini enumstereotiple bir sınıf olarak modellersiniz

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.