webentwicklung-frage-antwort-db.com.de

Ternäre UML-Assoziation

Momentan habe ich Probleme, ternäre Assoziationen in UML zu verstehen. Ich bekomme die binären, aber ich bin nicht sicher, wie die Multiplizität auf ternären funktioniert. Ich mache Übungen, die ich von meiner Universität bekommen habe, die aktuelle geht so:

Eine Abteilung kann viele Produkte verkaufen, aber nur an einen Markt. Auf einem Markt darf ein Produkt nur von einer Abteilung verkauft werden.

 enter image description here

Ich habe in verschiedenen Quellen gelesen, wie ich über ein Paar der beiden Klassen nachdenken soll. Ich versuche nicht, die Vielzahl herauszufinden, aber mein Gehirn versteht es einfach nicht. Hilf mir, Kenobi zu überfluten, du bist meine einzige Hoffnung.

7
Heeiman

Es scheint eine gewisse Unklarheit in der Spezifikation von Multiplizitäten für ternäre Assoziationen zu geben. Siehe auch dieses Papier

Aber ich verstehe es so:

Die Multiplizität sagt etwas darüber aus, wie oft eine Instanz in diesen Assoziationen für ein bestimmtes Tupel verknüpfter Instanzen vorhanden sein kann.

Betrachten Sie als Beispiel die folgende (traditionelle) Familie  enter image description here
Ich würde das verstehen als

In jeder Familie muss es einen Vater, eine Mutter und null oder mehr Kinder geben.

Wenn wir das auf Ihren Fall anwenden, komme ich zu so etwas:

 enter image description here
Ich verstehe das als

Für jedes Angebot muss es genau einen Markt, eine Abteilung und ein oder mehrere Produkte geben

Das scheint mehr oder weniger alle Ihre Einschränkungen zu erfüllen

  • Ein Produkt kann nur einem Markt von einer Abteilung angeboten werden
  • Eine Abteilung kann mehrere Produkte anbieten, aber ein Produkt kann nur einem Markt angeboten werden

Ich denke nicht, dass es wasserdicht ist, aber wie das Papier bereits sagte, verfügt UML nicht über genügend Werkzeuge, um ein wasserdichtes Design mit den Vielfältigkeiten allein an den Enden zu erstellen. Aus gutem Grund sollten Ihre Einschränkungen auch als UML-Einschränkungen modelliert werden.

Haftungsausschluss: Ternäre Assoziationen eignen sich sehr gut für akademische Diskussionen, werden aber in der (IT-) Branche nicht wirklich eingesetzt, wahrscheinlich weil sie so schwer zu verstehen sind.

5
Geert Bellekens

Diese unspezifische ternäre Assoziation sagt nur, dass Sie Beziehungen haben, in denen

  • Market steuert Department-Product,
  • Department steuert Market-Product und
  • Product steuert Department-Market.

Es gibt keine Aussage darüber, wie die einzelnen Klassen die beiden anderen steuern.

Die UML-Spezifikation definiert den ternären Operator nicht im Detail. Die Verwendung dieses Elements scheint also auf eigenes Risiko zu sein. Sie könnten OMG für die Verwendung beschuldigen, aber nicht mehr definieren als

Jede Assoziation kann als Raute (größer als ein Abschlusszeichen auf einer Linie) mit einer durchgezogenen Linie für jedes Assoziationsmitglied gezeichnet werden. Anschließend wird die Raute mit dem Klassifikator des Endtyps verbunden. Eine Assoziation mit mehr als zwei Enden kann nur auf diese Weise gezeichnet werden.

und ein einzelnes Beispiel in einem Bild auf S. 202.

Die einfache Assoziationsklasse

 enter image description here

sagt Ihnen, dass die Product zwischen Department und Market liegt, wobei die Multiplizität 1 angibt, dass es nur eine Market für eine Department gibt. So hört sich Ihre Anforderung an.

N.B. Es macht wenig Sinn, Haare nach den Anforderungen zu spalten, also "gibt es eine Product ohne eine Market". Dies sind Details, die mit Domain-Spezialisten besprochen werden müssen, bevor sie in einem Modell festgelegt werden.

2
Thomas Kilian

Das Modell in der Antwort von Geert Bellekens ist richtig, aber seine Erklärung ist verwirrend. Die ternäre Assoziation "Angebot" mit ihren Multiplizitäten (Kardinalitätsbeschränkungen) kann durch die Aussage nicht erklärt werden

Für jedes Angebot muss es genau einen Markt, eine Abteilung und ein oder mehrere Produkte geben

sondern indem ich das sage

  • eine Kombination aus Abteilung und Produkt ist mit genau einem Markt verbunden
  • eine Kombination aus Markt und Produkt ist genau einer Abteilung zugeordnet
0
Gerd Wagner