2017-12-01 3 views
-3

Hallo, ich versuche, Diagramme zu erstellen, aber ich bin mir nicht sicher genug, dass meine Meinung ist gut, können Sie mir sagen, was ich ändern sollte, danke.was könnte falsch sein mit dieser uml Beziehungen

nicht sicher auch vielleicht Assoziation? enter image description here

enter image description here

vielleicht Verein?

enter image description here

+0

Erhalten Sie ein Diagramm? weil das nicht klar ist. – granier

+0

So neu erhalten wir das Schema und eine Frage, aber was ist Ihr Kontext und der Zweck des Schemas? Ohne sie könnte es sehr gut oder sehr schlecht sein. Übrigens sind alle Attribute öffentlich: das ist nicht üblich. – granier

+0

Alle Attribute sind öffentlich, weil ich diese Klassen in passagier_train Klasse verwende (um Zugang zu allen Feldern der Klassen zu bekommen) –

Antwort

1

Ich glaube, ich verstehe Ihre Frage, obwohl, wie die Kommentatoren, Ihnen zu erklären versuchen, haben Sie es nicht klar gefragt. Ich glaube, Sie fragen, welche Art von Assoziation Sie zwischen Ihren Klassen verwenden sollten.

Die Zusammensetzungsassoziation, wie Sie teilweise zu verstehen scheinen, bedeutet, dass die Lebensdauer eines Objekts in einer Zusammensetzungsbeziehung von dem Objekt abhängt, von dem es ein Teil ist.

Ihr erstes Diagramm besagt also, dass Ihr Zug aus Haltestellen besteht und dass es daher, wenn es keinen Zug gäbe, keine Haltestellen mehr geben würde. Das ist offensichtlich nicht wahr; andere Züge könnten an den gleichen Haltestellen anhalten. Außerdem wird Ihr Zug wahrscheinlich mit einem "Route" -Objekt assoziiert, das eine Zusammenfassung von mehreren Stopps darstellt. Ich überlasse es Ihnen, die Details zu klären.

Ihr nächstes Diagramm besagt, dass ein Zug (zumindest teilweise) aus Fahrgästen besteht, so dass, wenn der Zug zerstört wird, keine Fahrgäste mehr vorhanden sind. Aber ein Passagier kann die Züge wechseln und weiterhin ein Passagier sein, so dass Sie keine Beziehung zwischen Zug und Passagier haben. Der Passagier fährt Züge, der Zug kann oder darf keine Passagiere haben, also haben Sie eine einfache Assoziation (kein Diamant jeglicher Art).

Schließlich sagt Ihr letztes Diagramm, dass die verfügbaren Routen aus Städten bestehen. Das ist plausibel. Es gibt jedoch auch das Problem, dass eine bestimmte Stadt Mitglied verschiedener Routen sein kann. Wenn dem so ist, kann es besser sein zu sagen, dass eine gegebene Stadt eine Anzahl von damit verbundenen Routen "hat". In diesem Fall würde am Ende der Stadt ein weißer Diamant stehen. Natürlich, wenn Sie das tun, müssen Sie Ihr distance_between Attribut überdenken. Es wäre am besten, eine Klasse distance zu erstellen, die selbst zwei und nur zwei Stadtobjekten zugeordnet ist.

+0

Bob, ich stimme hauptsächlich mit deiner Antwort überein, aber es gibt ein Detail, das meiner Meinung nach nicht ganz korrekt ist. Es ist nicht so, dass ein Fahrgast Züge wechseln oder sogar ohne Zug fahren könnte, dass er keine Komposition sein sollte. Nicht, dass ich das sage, nur dass das nicht der Grund sein sollte, eine Komposition nicht zu verwenden.Im klassischen Fall des Autorad kann ich ein Rad von einem Auto zum nächsten bewegen, und ich kann auch ein Rad lösen und an einem anderen Ort ohne ein Auto speichern. –

+0

@GeertBellekens Wie ich das Autorad Beispiel verstehe, ist es eine Frage des Kontextes. Auto und Rad könnten eine Zusammensetzung in einer Autofabrik und eine Ansammlung in einem Schrottplatz oder einer Serviceabteilung sein. Während es natürlich wahr ist, dass das Rad in der physischen Realität unabhängig vom Auto existieren kann, könnte es in einer Autofabrik wirtschaftlich sinnvoll sein, dass ein logisches Rad nicht unabhängig von einem Auto in irgendeinem Prozesszusammenhang existiert. Das wäre natürlich in einem Schrottplatz-Kontext weniger wahrscheinlich. Alles was gesagt wurde, was denkst du, ist der Grund, dass der Zug-Passagier-Verband keine Zusammensetzung sein sollte? – BobRodes

+0

Zwei Gründe, denke ich. 1. Ich sehe keine semantische ** Ganzteiligkeit ** zwischen Zug und Beifahrer. Ein Zug ist mit einer Anzahl von Passagieren verwandt, aber ich würde niemals sagen, dass ein Zug "aus Fahrgästen besteht". 2. Abhängig davon, wie Sie es modellieren, kann ein Passagier mehrere Zugfahrten machen, so dass er Teil mehrerer Züge sein würde, was gegen die Regeln für eine Komposition verstößt (es kann maximal ein Ganzes geben.) –

Verwandte Themen