2016-03-30 10 views
1

Ich bin verwirrt über die Kardinalität/Multiplizität beim Entwurf von Klassendiagrammen. Meine Haupt Verwirrung ist, wenn 1 --- * Beziehung darzustellen. Für Passagiere und Sitzplätze wird der Passagier zum Beispiel einem Sitzplatz zugeteilt, wobei der Sitzplatz einem Passagier bei A POINT IN TIME zugewiesen werden kann, aber über einen Zeitraum seines Bestehens kann er vielen Passagieren zugeteilt werden.OOAD Klärung der Multiplizität oder Kardinalität

Also sollte der Sitz ---> Beifahrer 1-1 oder 1- * sein?

Antwort

1

Fassen wir zusammen:

  • An einem genauen Zeitpunkt:
    • jeder Passenger wird genau einem Seat (1) zugeordnet werden. Offene Frage: Existiert die Passenger bereits vor der Zuweisung (d. H. 1 oder 0..1)?
    • jeder Seat kann man Passenger zugeordnet haben, aber es kann auch leer bleiben (so 0..1)
  • über ihre Lebensdauer:
    • jeder Passenger können viele Sitze zugeteilt wurden (eine pro Flug)
    • jeder Seat kann viele Passenger zugewiesen haben.

Schlussfolgerungen: die Beziehung zwischen Seat und Passenger ist *-* (viele zu viele)

+0

Danke Christopher. Wann müssen wir überlegen, ob es über einen bestimmten Zeitraum oder zu einer bestimmten Zeit ist? Ist es eine Frage an den Kunden, wie ich sie fragen muss, nach der Sie über einen bestimmten Zeitraum oder zu einem bestimmten Zeitpunkt suchen? Oder sollte es immer für jedes Design sein, das du über einen bestimmten Zeitraum hinweg in Betracht ziehst? – avatar

+0

Es hängt von den Bedürfnissen Ihrer Kunden ab. Sie müssen ihm also Fragen stellen, die Ihnen helfen zu klären. Hissen Sie nicht, Fragen unter verschiedenen Blickwinkeln zu stellen. Zum Beispiel: Will er/sie die Geschichte der Sitzplatzzuteilung zurückfinden? Erwartet er/sie, dass Sitze im Voraus vergeben werden können (ein Passagier könnte dann Sitze für mehrere Reisen reservieren)? Gibt es gesetzliche Anforderungen (Zurückfinden der Sitze im Falle einer Strafverfolgungsuntersuchung)? und so weiter ... Das wirkliche Leben ist voller vieler Beziehungen – Christophe

+0

Danke Christopher – avatar

-1

Alles hängt was Sie Modell.

  • Wenn wir eine Buchung pro Strecke sind die Modellierung wird es ein Seat 1 --- 0..1
    Passagier sein.
  • Wenn wir eine Buchung pro Reise modellieren und nur eine Anzahl von Sitzen pro Klasse haben (aber ein bestimmter Platz ist nicht zugewiesen), kann SeatClass 1 --- 0..SeatClass.availableSeats Passenger sein.
  • Wenn wir ein System zur Analyse des Passagierverhaltens modellieren (z. B. , um den besten Sitzplatz für einen bestimmten Passagier zu bieten), wird es ein Passagier 1 <> --- * Sitz sein.
  • Wenn wir ein System modellieren, um die Sitzbenutzung zu analysieren, kann es sein Seat 1 <> --- * Passagier.

usw.

ich viele andere Möglichkeiten vorstellen können.

Die Idee ist, Sie modellieren ein bestimmtes System und Sie müssen bestimmte Geschäftsanforderungen darstellen. Die Vielfältigkeit wird davon abhängen. Als Faustregel gilt, dass Sie an einer Situation zu einem bestimmten Zeitpunkt interessiert sind (beachten Sie, dass Sie in meinen beiden letzten Beispielen eine Geschichte von Sitzplatzzuordnungen zu einem Zeitpunkt behandeln).

Also meine Schlussfolgerung ist: Es gibt keine einfache Antwort.