2016-05-11 18 views
9

Javaの列挙型(enum)を持つUML図を作成したいと思いますが、これには1つ以上の属性がありますが、どのように行うのか混乱しています。属性を持つUMLモデリング列挙

例えば列挙型は次のように宣言することができます。

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

しかし、どのようにエレガントな属性でそれをモデル化します:属性がなければ

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; 
    } 
} 

、それは簡単ですか?それはこのようなものでしょうか?

+-----------------------------------------------------+ 
| <<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) | 
+-----------------------------------------------------+ 

私はこの例のみhereを見つけたが、それは列挙名としてStringクラス属性を使用しています。私は、enum名のデータ型を指定せずにpublic enumの使用法と異なるはずです。

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

ありがとうございました。

答えて

4

UMLの各列挙リテラルの属性値をモデル化することはできません。
EAは属性を持つ列挙のために以下の表記を使用しています:

enter image description here

あなたはどこかに、各リテラルのノート内の属性値を文書化するか、またはあなたが管理するために、Excelファイルまたは類似のものを使用することができますそのデータ。
多くの場合、実行時に変更される可能性があるため、設計時に初期値を指定する必要があります。したがって、モデルが正しいと信頼できない場合は、モデル内にその値を保持することはあまりありません。

+0

は、私が思うだろう、最終的な値(定数)を構築するために必要とされている場合は、その - 定義定数で - 列挙、彼らは希望何らかの形でクラス図に示されています。しかし、私はあなたの判断を信じています。ありがとうございました。 – BBerry

-1

正規のドキュメントhttp://www.omg.org/spec/UML/2.5を使用して、クラスを正式な方法で記述することができます。 11.4.4セクションでは、このようないくつかの例があります:

Example 1

+0

最終的な属性を持つ列挙型ではありませんが、列挙型のコンストラクタで定数を作成するために自動的に使用されます。私の質問はかなり具体的でした。 – BBerry

関連する問題