UML-Beziehungstypen: Assoziation, Abhängigkeit, Generalisierung

Was ist eine UML-Beziehung?

Beziehungen in UML werden verwendet, um eine Verbindung zwischen strukturellen, verhaltensbezogenen oder gruppierenden Dingen darzustellen. Es wird auch als Link bezeichnet, der beschreibt, wie zwei oder mehr Dinge während der Ausführung eines Systems miteinander in Beziehung stehen können. Die Arten der UML-Beziehung sind Assoziation, Abhängigkeit, Generalisierung und Realisierung.

Lasst uns sie im Detail studieren

Arten von UML-Klassendiagrammbeziehungen

Beziehungen zwischen UML-Klassendiagrammen

Verein

Es handelt sich um eine Reihe von Links, die Elemente des UML-Modells verbinden. Es definiert auch, wie viele Objekte an dieser Beziehung beteiligt sind.

Abhängigkeit

In einer Abhängigkeitsbeziehung sind, wie der Name schon sagt, zwei oder mehr Elemente voneinander abhängig. Wenn wir in einer solchen Beziehung eine Änderung an einem bestimmten Element vornehmen, ist es wahrscheinlich, dass alle anderen Elemente ebenfalls von der Änderung betroffen sind.

Verallgemeinerung

Man spricht auch von einer Eltern-Kind-Beziehung. Bei der Generalisierung ist ein Element eine Spezialisierung einer anderen allgemeinen Komponente. Es kann dafür eingesetzt werden. Es wird hauptsächlich zur Darstellung von Vererbung verwendet.

Realisierung

In einer Realisierungsbeziehung von UML bezeichnet eine Entität eine Verantwortung, die nicht von ihr selbst implementiert wird, und die andere Entität, die sie implementiert. Dieser Zusammenhang findet sich meist bei Schnittstellen.

Verein

Es handelt sich um eine strukturelle Beziehung, die Objekte darstellt, die mit einem anderen Objekt innerhalb des Systems verbunden oder verknüpft werden können. Auf die Verknüpfungsbeziehung können die folgenden Einschränkungen angewendet werden.

  • {implizit} – Implizite Einschränkungen geben an, dass die Beziehung nicht manifest ist; es basiert auf einem Konzept.
  • {bestellt} – Geordnete Einschränkungen geben an, dass die Menge der Objekte an einem Ende einer Assoziation auf eine bestimmte Weise angeordnet ist.
  • {veränderbar} – Die veränderbare Einschränkung gibt an, dass die Verbindung zwischen verschiedenen Objekten im System je nach Anforderung hinzugefügt, entfernt und geändert werden kann.
  • {addOnly} – Es gibt an, dass die neuen Verbindungen von einem Objekt hinzugefügt werden können, das sich am anderen Ende einer Assoziation befindet.
  • {gefroren} – Es gibt an, dass beim Hinzufügen einer Verbindung zwischen zwei Objekten diese nicht geändert werden kann, solange die eingefrorene Einschränkung für die angegebene Verbindung oder Verbindung aktiv ist.

Wir können auch eine Klasse erstellen, die Assoziationseigenschaften hat; Sie wird als Assoziationsklasse bezeichnet.

Reflexive Assoziation

Die reflexive Assoziation ist eine Unterart der Assoziationsbeziehung in UML. In einer reflexiven Assoziation können die Instanzen derselben Klasse miteinander in Beziehung gesetzt werden. Eine Instanz einer Klasse wird auch als Objekt bezeichnet.

Reflexive Assoziation besagt, dass innerhalb der Objekte derselben Klasse ein Link oder eine Verbindung vorhanden sein kann.

Betrachten wir ein Beispiel einer Klassenfrucht. Die Obstklasse hat zwei Instanzen, z. B. Mango und Apfel. Die reflexive Assoziation besagt, dass eine Verbindung zwischen Mango und Apfel bestehen kann, da es sich um Instanzen derselben Klasse, beispielsweise Obst, handelt.

Gezielte Assoziation

Wie der Name schon sagt, hängt die gerichtete Assoziation mit der Flussrichtung innerhalb der Assoziationsklassen zusammen.

Bei einer gerichteten Assoziation ist der Fluss gerichtet. Die Assoziation von einer Klasse zu einer anderen Klasse erfolgt nur in eine Richtung.

Es wird durch eine durchgezogene Linie mit einer Pfeilspitze gekennzeichnet.

Ejemplo:

Man kann sagen, dass zwischen einem Server und einem Client eine gerichtete Assoziationsbeziehung besteht. Ein Server kann die Anfragen eines Clients verarbeiten. Dieser Fluss ist unidirektional, d. h. er fließt nur vom Server zum Client. Somit kann eine gerichtete Assoziationsbeziehung zwischen Servern und Clients eines Systems bestehen.

Abhängigkeit

Mithilfe einer Abhängigkeitsbeziehung in UML kann man in Beziehung setzen, wie verschiedene Dinge innerhalb eines bestimmten Systems voneinander abhängig sind. Mit Abhängigkeit wird die Beziehung zwischen verschiedenen Elementen in UML beschrieben, die voneinander abhängig sind.

Stereotypes

  • "binden" – Bind ist eine Einschränkung, die angibt, dass die Quelle die Vorlage an einem Zielspeicherort mithilfe bereitgestellter Parameter oder Werte initialisieren kann.
  • "ableiten" – Es bedeutet, dass der Standort eines Quellobjekts anhand des Zielobjekts berechnet werden kann.
  • «Freund» – Es gibt an, dass die Quelle im Zielobjekt eine eindeutige Sichtbarkeit hat.
  • «instanceOf» – Es gibt an, dass die Instanz eines Zielklassifikators das Quellobjekt ist.
  • «instanziieren» – Es gibt an, dass das Quellobjekt Instanzen eines Zielobjekts erstellen kann.
  • "verfeinern" – Es gibt an, dass das Quellobjekt eine außergewöhnliche Abstraktion aufweist als das Zielobjekt.
  • "verwenden" – Es wird verwendet, wenn Pakete in UML erstellt werden. Das Verwendungsstereotyp beschreibt, dass die Elemente eines Quellpakets auch im Zielpaket vorhanden sein können. Es beschreibt, dass das Quellpaket einige Elemente eines Zielpakets nutzt.
  • "Ersatz" – gibt an, dass der Kunde zur Laufzeit den Lieferanten ersetzen kann.
  • "Zugang" – Es gibt an, dass das Quellpaket auf die Elemente des Zielpakets zugreift was auch als private Zusammenführung bezeichnet wird.
  • "Importieren" – Es gibt an, dass das Ziel die Elemente eines Quellpakets so importieren kann, wie sie darin definiert sind Ziel, das auch als öffentliche Zusammenführung bezeichnet wird.
  • "erlauben" – Gibt an, dass das Quellelement unabhängig von der angegebenen Sichtbarkeit des Lieferanten Zugriff auf das Lieferantenelement hat.
  • "verlängern" – Hilft Ihnen, anzugeben, dass das Ziel das Verhalten des Quellelements erweitern kann.
  • "enthalten" – Ermöglicht Ihnen, das Quellelement anzugeben, das das Verhalten eines anderen Elements an einer bestimmten Position einschließen kann. (dasselbe wie ein Funktionsaufruf in c/c++)
  • "werden" – Es gibt an, dass das Ziel der Quelle mit unterschiedlichen Werten und Rollen ähnelt.
  • "Anruf" – Es gibt an, dass die Quelle eine Zielobjektmethode aufrufen kann.
  • "Kopieren" – Es gibt an, dass das Zielobjekt eine unabhängige Kopie eines Quellobjekts ist.
  • «Parameter» – der Lieferant ist ein Parameter der Kundenoperationen.
  • "schicken" - Der Client ist eine Operation, die dem Lieferanten ein nicht näher spezifiziertes Ziel sendet.

Stereotypen zwischen Staatsmaschinen

  • "schicken" – Gibt an, dass die Quelloperation das Zielereignis sendet.

Verallgemeinerung

Es handelt sich um eine Beziehung zwischen einer allgemeinen Entität und einer einzigartigen Entität, die innerhalb des Systems vorhanden ist.

In einer Generalisierungsbeziehung wird das objektorientierte Konzept genannt Erbschaft kann implementiert werden. Zwischen zwei Objekten, auch Entitäten oder Dinge genannt, besteht eine Generalisierungsbeziehung. In einer Generalisierungsbeziehung ist eine Entität ein übergeordnetes Element und eine andere wird als untergeordnetes Element bezeichnet. Diese Entitäten können durch Vererbung dargestellt werden.

Bei der Vererbung kann ein untergeordnetes Element eines übergeordneten Objekts auf die im übergeordneten Objekt angegebene Funktionalität zugreifen, diese aktualisieren oder erben. Ein untergeordnetes Objekt kann seine Funktionalität zu sich selbst hinzufügen und die Struktur und das Verhalten eines übergeordneten Objekts erben.

Diese Art von Beziehung wird allgemein als Generalisierungsbeziehung bezeichnet.

Stereotype und ihre Zwänge

  • "Implementierung" – Dieses Stereotyp wird verwendet, um darzustellen, dass die untergeordnete Entität von der übergeordneten Entität implementiert wird, indem sie die Struktur und das Verhalten eines übergeordneten Objekts erbt, ohne die Regeln zu verletzen.Note Dieses Stereotyp wird häufig in einem einzigen verwendet Erbschaft.

Die Generalisierungsbeziehung enthält Einschränkungen wie „vollständig“ und „unvollständig“, um zu prüfen, ob alle untergeordneten Entitäten in die Beziehung einbezogen werden oder nicht.

Realisierung

In einer Realisierungsbeziehung von UML bezeichnet eine Entität eine Verantwortung, die nicht von ihr selbst implementiert wird, und die andere Entität, die sie implementiert. Dieser Zusammenhang findet sich meist bei Schnittstellen.

Die Realisierung kann auf zwei Arten dargestellt werden:

  • Verwendung eines kanonische Form
  • Verwenden Jahr ausgelassene Form
Umsetzung in UML
Umsetzung in UML

Im obigen Diagramm realisieren Kontogeschäftsregeln die Schnittstelle IRuleAgent.

Arten der Realisierung

  1. Kanonische Form: In einer Realisierungsbeziehung von UML wird die kanonische Form verwendet, um Schnittstellen im gesamten System zu realisieren. Es verwendet ein Schnittstellenstereotyp, um eine Schnittstelle zu erstellen, und eine Realisierungsbeziehung wird verwendet, um die jeweilige Schnittstelle zu realisieren. In kanonischer Form wird die Realisierungsbeziehung durch die gestrichelte gerichtete Linie mit einer großen offenen Pfeilspitze dargestellt. Im obigen Diagramm wird die Schnittstelle Iruleagent mithilfe eines Objekts namens „Account Business Rules“ realisiert.
  2. Elided Form Realisierung in der UML-Klassendiagramm kann auch mit einer elidierten Form angezeigt werden. In einer elidierten Form wird die Schnittstelle mit einem Kreis bezeichnet, der auch als Lollipop-Notation bezeichnet wird. Wenn diese Schnittstelle mit irgendetwas realisiert wird, was im System vorhanden ist, erzeugt sie eine elidierte Struktur. Im obigen Diagramm wird die Schnittstelle Iruleagent mit einer elidenten Form bezeichnet, die durch acctrule.dll realisiert wird.

Zusammensetzung

Es handelt sich nicht um eine Standard-UML-Beziehung, sie wird jedoch dennoch in verschiedenen Anwendungen verwendet.

Die zusammengesetzte Aggregation ist ein Untertyp der Aggregationsbeziehung mit folgenden Merkmalen:

  • es handelt sich um eine wechselseitige Assoziation zwischen den Objekten.
  • Es handelt sich um eine Ganz/Teil-Beziehung.
  • Wenn ein Verbund gelöscht wird, werden alle anderen damit verbundenen Teile gelöscht.

Die zusammengesetzte Aggregation wird als binäre Assoziation beschrieben, die am Aggregatende (gesamten Ende) mit einer gefüllten schwarzen Raute verziert ist.

Komposition in UML

Komposition in UML

Ein Ordner ist eine Struktur, die n Dateien enthält. Ein Ordner wird verwendet, um die darin enthaltenen Dateien zu speichern. Jeder Ordner kann mit einer beliebigen Anzahl von Dateien verknüpft sein. In einem Computersystem ist jede einzelne Datei Teil von mindestens einem Ordner innerhalb des Dateiorganisationssystems. Dieselbe Datei kann auch Teil eines anderen Ordners sein, dies ist jedoch nicht zwingend. Wenn eine Datei aus dem Ordner entfernt wird, bleibt der Ordner davon unberührt, während die mit dieser bestimmten Datei verbundenen Daten zerstört werden. Wenn ein Löschvorgang für den Ordner ausgeführt wird, wirkt sich dies auch auf alle im Ordner vorhandenen Dateien aus. Alle mit dem Ordner verknüpften Dateien werden automatisch zerstört, sobald der Ordner aus dem System entfernt wird.

Diese Art von Beziehung wird in UML als zusammengesetzte Aggregationsbeziehung bezeichnet.

Anhäufung

An Anhäufung ist ein Subtyp einer Assoziationsbeziehung in UML. Aggregation und Zusammensetzung sind beide Arten von Assoziationsbeziehungen in UML. Eine Aggregationsbeziehung kann in einfachen Worten beschrieben werden als „ein Objekt einer Klasse kann die Objekte einer anderen Klasse besitzen oder darauf zugreifen.“

In einer Aggregationsbeziehung bleibt das abhängige Objekt im Gültigkeitsbereich einer Beziehung, auch wenn das Quellobjekt zerstört wird.

Betrachten wir ein Beispiel für ein Auto und ein Rad. Ein Auto braucht ein Rad, um richtig zu funktionieren, aber ein Rad braucht nicht immer ein Auto. Es kann auch mit dem Fahrrad, Fahrrad oder anderen Fahrzeugen verwendet werden, jedoch nicht mit einem bestimmten Auto. Hier ist das Radobjekt auch ohne das Autoobjekt sinnvoll. Eine solche Art von Beziehung wird als Aggregationsbeziehung bezeichnet.

Zusammenfassung

  • Durch Beziehungen in UML kann eine Sache mit anderen Dingen innerhalb des Systems in Beziehung gesetzt werden.
  • Assoziationen, Abhängigkeiten, Generalisierungen und Realisierungsbeziehungen werden durch UML definiert.
  • Eine Kompositionsbeziehung kann auch verwendet werden, um darzustellen, dass ein Objekt jeweils nur Teil einer Komposition sein kann.
  • Mit Assoziation wird beschrieben, dass ein Objekt mit einem anderen Objekt verknüpft werden kann.
  • Abhängigkeit bedeutet, dass Objekte voneinander abhängig sein können.
  • Eine Erkenntnis ist eine sinnvolle Beziehung zwischen Klassifikatoren.
  • Generalisierung wird auch als Eltern-Kind-Beziehung bezeichnet.