2016-05-11 11 views
9

Ich möchte ein UML-Diagramm mit Java-Aufzählungen (enum) erstellen, die ein oder mehrere Attribute haben, aber ich bin verwirrt, wie es geht.UML-Modellierungsaufzählung mit Attributen

Zum Beispiel könnte eine Enumeration wie folgt erklärt werden:

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

Ohne die Attribute, ist es einfach:

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

Aber wie modellieren Sie es elegant mit Attributen? Sollte es so sein?

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

fand ich nur dieses Beispiel here, aber das nutzt die String-Klasse als Enum-Namen-Attribute. Ich denke, das sollte anders sein als die Verwendung von public enum ohne Angabe der Enum-Namen Datentypen.

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

Vielen Dank für Ihre Antworten.

Antwort

4

Ich glaube nicht, dass Sie die Attributwerte für jedes der Aufzählungsliterale in UML modellieren können.
EA verwendet die folgende Notation für eine Aufzählung, die Attribute hat: ähnlich zu verwalten

enter image description here

Sie können entweder Dokument die Attribute Werte irgendwo in den Notizen von jeder wörtlichen, oder Sie können verwenden, um eine Excel-Datei oder etwas diese Daten.
Oft müssen Sie die anfänglichen Werte nur zur Entwurfszeit angeben, da sie sich zur Laufzeit ändern können. Es macht also wenig Sinn, diese Werte in Ihrem Modell zu belassen, wenn Sie nicht sicher sein können, dass sie korrekt sind.

+0

ich denken würde, dass, wenn die endgültigen Werte (Konstanten) für den Bau der gebraucht werden - durch die Definition konstant - Aufzählung, würden sie wurden im Klassendiagramm irgendwie gezeigt. Aber ich vertraue deinem Urteil darüber. Vielen Dank. – BBerry

-1

Sie können die offizielle Dokumentation http://www.omg.org/spec/UML/2.5 verwenden, um Ihre Klassen formell zu beschreiben. In 11.4.4 Abschnitt finden Sie einige Beispiele wie diese finden:

Example 1

+0

Ich sehe nicht, dass es sich um eine Enumeration mit endgültigen Attributen handelt, die automatisch im Enum-Konstruktor verwendet werden, um die Konstante zu erstellen. Meine Frage war ziemlich spezifisch. – BBerry

Verwandte Themen