2016-05-11 30 views
9

Bir veya daha fazla özniteliğe sahip Java numaralandırmalarını (enum) içeren bir UML diyagramı oluşturmak istiyorum, ancak bunun nasıl yapılacağı konusunda kafam karıştı.Özniteliklerle UML modelleme numaralandırma

Örneğin bir enum böyle ilan edilerek: özelliklerden olmadan

public enum Enumeration_type { 

    LITERAL_A("attr1_value", attr2_value, attr3_value), 
    LITERAL_B("attr1_value", attr2_value, attr3_value); 

    final String attr1; 
    final type_1 attr2 = initial_value_1; 
    final type_2 attr3; 

    Enumeration_type(String attr1, type_1 attr2, type_2 attr3) { 
     this.attr1_value = attr1; 
     this.attr2_value = attr2; 
     this.attr3_value = attr3; 
    } 
} 

, bu kolaydır:

+--------------------+ 
| <<enumeration> | 
| Enumeration_type | 
+--------------------+ 
| LITERAL_A   | 
| LITERAL_B   | 
+--------------------+ 

Ama nasıl zarif özellikleri ile modellik mı? Böyle mi olmalı?

+-----------------------------------------------------+ 
| <<enumeration>>         | 
| Enumeration_type         | 
+-----------------------------------------------------+ 
| attr1: String          | 
| attr2: type_1 = initial_value_1     | 
| attr2: type_2          | 
+-----------------------------------------------------+ 
| LITERAL_A("attr1_value", attr2_value, attr3_value) | 
| LITERAL_B("attr1_value", attr2_value, attr3_value) | 
+-----------------------------------------------------+ 

Sadece bu örnek here bulundu, ancak bu String sınıfı enum adları gibi özelliklerini kullanır. Bence, enum ad veri türlerini belirtmeden public enum kullanımından farklı olmalı.

+-----------------------------------------+ 
| <<enumeration>>      | 
|  CarType       | 
+-----------------------------------------+ 
| +sedan : String = SEDAN    | 
| +liftback : String = LIFTBACK   | 
| +stationWagon : String = STATION_WAGON | 
+-----------------------------------------+ 

Yanıtlarınız için çok teşekkür ederim.

cevap

4

UML'deki numaralandırma değişmezlerinin her biri için özellik değerlerini modelleyebileceğinizi düşünmüyorum.
EA özellikleri olan bir numaralandırma için aşağıdaki notasyonu kullanır:

enter image description here

Sen nitelikleri değerleri yerde her notlarında ya belge değişmezi veya yönetmek için bir excel dosyası veya benzer bir şey kullanabilirsiniz edebilirsiniz bu veriler.
Çoğunlukla, yalnızca başlangıç ​​değerlerini çalışma zamanında değişebileceğinden tasarım zamanında sağlamanız gerekir. Dolayısıyla, bu değerleri modelinize dahil etmek için doğru olmayacağına güvenemeyeceğiniz çok şey yoktur.

+0

ben düşünürdüm, nihai değerleri (sabitler) yapımı için gerekli eğer - çözünürlüklü sabit tarafından - numaralandırma, yapabilirler Bir şekilde sınıf diyagramında gösterilmiştir. Ama bu konuda yargılarına güveniyorum. Teşekkür ederim. – BBerry

-1

Sınıflarınızı resmi bir şekilde tanımlamak için resmi belgeleri http://www.omg.org/spec/UML/2.5 kullanabilirsiniz. 11.4.4 bölümünde böyle bazı örnekler bulacaksınız:

Example 1

+0

Son özniteliklerle bir numaralandırma olmanın, sabit oluşturmak için enum yapıcısında otomatik olarak kullanıldığını görmüyorum. Benim sorum oldukça belirgindi. – BBerry