2013-07-18 19 views
18

Ich möchte noch einmal wissen und für alle, wie UML Mächtigkeiten schreiben, da ich sehr oft über sie zu diskutieren hatte (so Beweise und Quellen sind sehr willkommen :)Wie * wirklich * UML-Kardinalitäten schreiben?

Wenn ich das erklären will ein Mother können mehrere haben Child ren aber ein Child man hat und nur ein Mother, sollte ich schreiben:

Mother * ---------- 1 Child 

Oder

Mother 1 ---------- * Child 

?

+0

Wenn Sie bereits mit der ** Merise ** -Notation vertraut sind, tut UML das Gegenteil für die Kardinalitäten. Daher wäre Ihr erstes Beispiel in einem Merise-Diagramm korrekt. – Attila

Antwort

19

die zweite Mutter 1 ----------------- 1 .. * Kinder

Sie würden viele Beispiele in den UML specification für alle Figur in Bezug auf dem finden Abstract Syntax ...

1

Viele Menschen haben diese Frage, wenn sie mit beginnen UML, vor allem, wenn sie von einer anderen Schreibweise kommen, wo die Namen immer im Uhrzeigersinn gelesen werden, unabhängig davon, welches Ende der Leitung auf sie sind. Das ist wirklich verwirrend!

Red Beard ist korrekt, obwohl die UML-Spezifikation nicht explizit angibt, wo Informationen zum Zuordnungsende (d. H. Name und Multiplizität) geschrieben werden, bedeutet dies an mehreren Stellen. Beispielsweise zeigen die 7,11 (zeigt Attribute) und 7.12 sind entsprechende Eigenschaft Notationen (unidirektional Assoziationen mit Assoziationsenden neben den Pfeilspitzen angezeigt); die Vielfalt geht also tatsächlich neben den Typ der Eigenschaft.

Eine Möglichkeit, wie ich mich erinnern kann, welches Ende welche Multiplizität hat, ist ein unidirektionaler Graph von Instanzen und schreibe die Zahl neben den Pfeilspitzen, die auf das Ziel zeigen.

BTW, sollten Sie beschreibende Association Endnamen verwenden. Diese werden häufig in Attributnamen in Java, Elementnamen in XSD usw. umgewandelt. Zum Beispiel in Java, vielleicht hat die Mutter-Klasse ein „Kinder“ Attribute vom Typ „Set <Child>“. Wenn Sie sie nicht nennen, werden Sie oft unerwünschte Standardnamen erhalten.

11

Natürlich hat Red Beard Recht, die richtige Antwort ist die zweite.

Wie für einen Tipp dies für das Erinnern, rate ich in Englisch zu denken: Sie sagen, „Ein Kind ONE Mutter hat“, und in diesem Satz wie in UML, ONE ist neben Mutter geschrieben. Relativ einfach.