Ich bin verwirrt über die Verwendung von Verknüpfungen mit Java Enums in UML-Klassendiagrammen. Derzeit modelliere ich ein System mit einer Auto Klasse, die einige Eigenschaften hat. Einige sind auch Aufzählungen, wie FuelKind oder CarBrand:Assoziationen zu Java-Enums in UML-Klassendiagrammen modellieren
Es gehen zu viele Autos in der Datenbank (Car ist eine JPA-Entität) sein, und ich frage selbst, das ist die beste Verbindung und Kardinalität zu FuelKind und CarBrand.
Meine Gedanken bis jetzt:
- Enum-Instanzen auf ihre eigenen instanziiert sind, so hängen sie nicht technisch auf Car. Auch nicht-technisch enthalten diese Enums alle verfügbaren "Auswahlmöglichkeiten", so dass es keine strenge Abhängigkeit gibt. Es kann also keine Kompositionsaggregation zwischen ihnen sein.
- One Auto hat eine CarBrand und eine FuelKind. Aber von der anderen Seite: Hat eine Marke oder Kraftstoffart ein Auto oder mehrere Autos? Logischerweise können mehrere Autos von Mercedes oder Benzin fahren sein. Technisch gesehen hat eine Enum-Instanz jedoch keine Verbindung zu einem oder mehreren Autos.
Haben Sie einige Vorschläge und Gedanken, wie Sie dieses Problem lösen können?
Danke, geklärt Ihre Antwort ziemlich gut, dass die Situation. Interessant ist auch, dass es zwei separate Assoziationen für zwei Attribute geben würde, die man vorher nie gesehen hat. Zur Klarstellung denke ich, dass die Attributbenennung für mich ausreichend ist. – jverhoelen
Zu sagen "Sie können beides, wenn es hilft, Dinge zu klären" ist wie zu sagen "Sie können Ihr Diagramm durcheinander bringen, wenn es hilft". Es ist verwirrend und entmutigt, eine Assoziation sowohl mit einer Eigenschaft als auch mit einer Assoziation auszudrücken (Ende). –
Sie * können * Ihr Diagramm durcheinander bringen, wenn es hilft. UML ist eine Art Dokumentation, keine Religion. Was in einer bestimmten Situation richtig ist, hängt von mehreren Faktoren ab, einschließlich der Zielgruppe. Wenn * du * die Zielgruppe ist, könnten Sie verwirrt sein, und wenn * I * die Zielgruppe ist, könnte ich sagen, dass sie überflüssig ist. Wenn das Modell jedoch von Personen gelesen werden soll, die Java, aber nicht UML kennen, kann das Verwenden beider Stile gleichzeitig das Lesen des Diagramms erleichtern, aber es führt nicht zu Verwirrung, da sie wissen, dass in Java zwei Attribute nicht denselben Namen haben können. – Uffe