Der unterschied zwischen abhängigkeit und gerichtete assoziation

11

Die kurze Antwort ist: wie jede spezifische Quell-sprachkonstrukt vertreten sein sollte, in der UML ist nicht genau definiert. Dies wäre Teil eines standardisierten UML-Profil für die Sprache in Frage, diese sind aber leider nur wenige und weit zwischen. Lange Antwort folgt.

In deinem Beispiel, ich fürchte, ich würde sagen "weder noch", nur schwierig zu sein. A hat eine member-variable vom Typ B, damit die Beziehung tatsächlich eine aggregation oder eine Komposition... Oder eine gerichtete Assoziation. In der UML wird eine gerichtete Assoziation mit einem benannten Ziel-Rolle ist semantisch gleichwertig zu einem Attribut mit dem entsprechenden Namen.

Der unterschied zwischen abhängigkeit und gerichtete assoziation

Als Faustregel gilt, es ist eine aggregation, wenn b wird initialisiert in A's Konstruktor; es ist eine Komposition, wenn es auch zerstört wird in B's destructor (shared lifecycle). Wenn weder gilt, es ist ein Attribut /gerichtete Assoziation.

Wenn b war nicht eine member-variable in A, und die lokale variable b war nicht operatoed auf (keine Methoden genannt wurden), dann würde ich darstellen, wie eine Abhängigkeit: A muss B, aber es muss nicht ein Attribut von diesem Typ.

Aber f() tatsächlich ruft eine Methode definiert, die in B. Dies macht mir die richtige Beziehung zu <<use>>, das ist eine spezielle form der Abhängigkeit.

Schließlich, eine (ungerichtete) der Verein ist die schwächste form der Verbindung zwischen zwei Klassen, und aus diesem Grund Neige ich dazu, Sie nicht zu verwenden, bei der Beschreibung der source-Konstrukte. Wenn ich das mache, ich in der Regel verwenden Sie Sie, wenn es keine direkten Quellcode Beziehungen, aber die beiden Klassen sind noch irgendwie im Zusammenhang. Ein Beispiel HIERFÜR könnte eine situation, wo die beiden sind verantwortlich für unterschiedliche Teile der gleichen größeren Algorithmus, sondern ein Dritter-Klasse verwendet wurden.

InformationsquelleAutor Uffe

Was ist eine gerichtete Assoziation?

Eine gerichtete Assoziation gibt den Steuerungsfluss von einem Klassifikationsmerkmal zu einem anderen (z. B. von einem Akteur zu einem Anwendungsfall) an. Ein solcher Steuerungsfluss bedeutet, dass nur eines der Assoziationsenden die Navigierbarkeit angibt.

Welche Assoziationen gibt es?

Als reflexiv bezeichnet man eine Assoziation, wenn eine Verbindung zwischen den Objekten einer Klasse besteht. In der UML gibt es im Grund drei Typen von Assoziationen - die Assoziation selbst, die Aggregation und die Komposition.

Welche Beziehungstypen gibt es im UML Diagramm?

Im Produkt können Sie verschiedene UML-Beziehungen verwenden, um die Struktur zwischen Modellelementen zu definieren. Beispiele für Beziehungen umfassen Assoziationen, Abhängigkeiten, Generalisierungen, Realisierungen und Übergänge.

Was ist eine Assoziation in Java?

Eine Assoziation beschreibt eine Beziehung zwischen zwei oder mehr Classifiern, im häufigsten Fall eine Verbindung zwischen genau zwei Klassen. Assoziationen definieren dabei eine Beziehung auf Typebene.