Video anzeigen

Unified Modeling Language

In diesem Beitrag zeigen wir dir was die Unified Modeling Language ist und wie sie Informatikern hilft, richtig zu programmieren.

Inhaltsübersicht

Graphische Modellierungssprache

Die Unified Modelling Language, kurz UML, dient dazu, Softwaremodelle programmier-sprachenunabhängig darzustellen. Sie sorgt also dafür, dass alle eine Ahnung haben, was sie überhaupt programmieren sollen. Das ist vor allem bei größeren Projekten wichtig, um nicht den Überblick zu verlieren. Es kann dir aber auch bei kleinen Projekten helfen alles besser nachvollziehen zu können.

Und damit du auch weißt, wie du das ganze anstellst, zeigen wir dir hier die einfachsten Elemente.

Elemente der UML

Es gibt verschiedene Arten von Verknüpfungen, die Klassen miteinander in Verbindung setzen, z.B. die Pfeile, die Ober- und Unterklasse verbinden, ist eine davon.

direkt ins Video springen
Ober- und Unterklasse sind über Verknüpfungen verbunden

Eine andere Verbindung sind die Assoziationen. Assoziationen haben immer eine Rolle, eine Multiplizität und einen Namen. Zusätzlich zu diesen festen Eigenschaften, können sie manchmal auch Einschränkungen aufweisen.

direkt ins Video springen
Rolle, Multiplizität und Name

Sie werden immer so benannt, dass die Kombination aus Rolle-Assoziationsname-Rolle einen möglichst natürlichsprachigen Satz ergibt. Stell dir einfach vor, du hast zwei Klassen. Eine Klasse beinhaltet Sportler, die andere Objekte des Typs Wettbewerb. Die Rolle der Sportler in der Assoziation der beiden ist teilnehmer, die der Wettbewerbe ist einfach wettbewerbe.

Dabei kann laut Multiplizität ein Wettbewerb 0 bis unendlich viele Teilnehmer haben. Genauso kann auch ein Sportler an 0 bis unendlich vielen Wettbewerben teilnehmen.

direkt ins Video springen
Assoziation zwischen Sportler und Wettbewerb

Wollen wir nun noch verschiedene Dinge, wie zum Beispiel die Startnummer und den derzeitigen Rang des Sportlers wissen, so brauchen wir dazu eine sogenannte Assoziationsklasse. Diese benutzen wir immer dann, wenn Daten nicht eindeutig einer der assoziierten Klassen zugeordnet werden können.

direkt ins Video springen
Ergänzung einer Assoziationsklasse

Implementiert werden Assoziationsklassen allerdings anders. Denn bei der Implementierung wird die Assoziationsklasse zu einer „richtigen“ Klasse.

direkt ins Video springen
Implementierung der Assoziation

Aggregation, Komposition und Generalisierung

Aber Klassen haben nicht nur gleichwertige Verbindungen. Es gibt auch solche, die eine Rangordnung besitzen, also eine „Teil-von“ oder „besteht-aus-Beziehung“ haben. Diese nennt man Aggregation.

Der Vorteil einer solchen Verbindung liegt darin, dass Objekte Teile von mehreren „Ganzen“ sein können. Allerdings herrscht hier ein Informationsungleichgewicht, wobei zwar das „Ganze“ seine Teile kennt, aber die „Teile“ nicht das Ganze.

direkt ins Video springen
Objekte können Teile von mehreren Ganzen sein

Eine Variation der Aggregation ist die Komposition, bei der das Objekt NUR Teil des Ganzen sein kann. Dies hat zu Folge, dass wir, wenn wir das Ganze löschen, auch die Teile vernichten.

Der Vollständigkeit halber gehen wir hier auch noch auf die Generalisierung ein. Diese ist eine „ist-ein“ bzw. eine „ist-eine-Art-von-Beziehung“, wie du sie bereits aus der Vererbung kennst. Allerdings sind wir auch hier nicht limitiert auf normale Klassen. Um unsere Hierarchie zu vereinfachen, können wir auch abstrakte Klassen einbauen. Aus diesen Klassen werden keine Objekte erzeugt. Ihr Zweck besteht darin, Operationen und Eigenschaften für Unterklassen zur Verfügung zu stellen.

Sie werden mit abstract gekennzeichnet.

direkt ins Video springen
abstract-Klasse

Schnittstelle und Implementierung von Assoziationen

Die letzte Komponente ist die Schnittstelle. Sie ist ein Datentyp, der abstrakte Operationen, aber konstante Klassenattribute besitzt. Sie hat auch keine Objektattribute, denn ihr Zweck besteht darin, von anderen Klassen implementiert zu werden.

Eine Klasse ist in der Lage, mehrere Schnittstellen zu implementieren.

direkt ins Video springen
Implementierung von Schnittstellen

Assoziationen, wie die in unserem Beispiel lassen sich implementieren, indem wir im Konstruktor zwar einen Rang anlegen, diesen aber noch nicht initialisieren.

direkt ins Video springen
Implementierung von Assoziationen

So kannst du auch bei mehrwertigen Assoziationen dasselbe mit einer ArrayList machen. Auch die anderen Verbindungen lassen sich auf diese oder ähnliche Weise implementieren.

Nun weißt du auch was die Unified Modeling Language ist und kannst dein gesamtes Wissen beim Programmieren anwenden. Viel Glück dabei!

Hallo, leider nutzt du einen AdBlocker.

Auf Studyflix bieten wir dir kostenlos hochwertige Bildung an. Dies können wir nur durch die Unterstützung unserer Werbepartner tun.

Schalte bitte deinen Adblocker für Studyflix aus oder füge uns zu deinen Ausnahmen hinzu. Das tut dir nicht weh und hilft uns weiter.

Danke!
Dein Studyflix-Team

Wenn du nicht weißt, wie du deinen Adblocker deaktivierst oder Studyflix zu den Ausnahmen hinzufügst, findest du hier eine kurze Anleitung. Bitte .