In diesem Beitrag und in dem Video 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.
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.
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.
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.
Implementiert werden Assoziationsklassen allerdings anders. Denn bei der Implementierung wird die Assoziationsklasse zu einer „richtigen“ Klasse.
Studyflix vernetzt: Hier ein Video aus einem anderen Bereich
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.
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.
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.
Assoziationen, wie die in unserem Beispiel lassen sich implementieren, indem wir im Konstruktor zwar einen Rang anlegen, diesen aber noch nicht initialisieren.
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!
Unified Modeling Language — häufigste Fragen
(ausklappen)
Unified Modeling Language — häufigste Fragen
(ausklappen)-
Was ist ein UML-Diagramm?Ein UML-Diagramm ist eine grafische Darstellung, mit der man Teile eines Softwaresystems als Modell beschreibt, ohne sich auf eine bestimmte Programmiersprache festzulegen. UML-Diagramme helfen dabei, Anforderungen, Strukturen und Beziehungen so zu visualisieren, dass alle Beteiligten dasselbe Verständnis haben.
-
Was ist ein Klassendiagramm?Ein Klassendiagramm ist ein UML-Diagramm, das die Klassen eines Systems mit ihren Attributen und Operationen sowie die Beziehungen zwischen den Klassen zeigt. Man nutzt es, um die Struktur eines objektorientierten Designs festzuhalten und daraus abzuleiten, wie Klassen im Code zusammenhängen.
-
Ist UML eine Programmiersprache?UML ist keine Programmiersprache, sondern eine Modellierungssprache. UML wird verwendet, um Software grafisch zu beschreiben, zum Beispiel mit Klassendiagrammen und Beziehungen zwischen Klassen, bevor oder während man den eigentlichen Code in einer Sprache wie Java schreibt.
-
Was sind die Nachteile von UML?Nachteile von UML entstehen vor allem durch zusätzlichen Aufwand: Modelle zu erstellen und aktuell zu halten kostet Zeit und kann bei kleinen Projekten unverhältnismäßig sein. Uneinheitliche oder zu detaillierte Diagramme können außerdem Missverständnisse erzeugen, wenn Beteiligte dieselbe Notation unterschiedlich interpretieren.
Nach Beantwortung speichern wir deine Antwort, um Studyflix zu verbessern. Mehr dazu erfährst du in unserer Datenschutzerklärung.
Softwareentwicklung verstehen
Die Unified Modeling Language ist eine Standardsprache für Modelle in der Softwareentwicklung. Du beschreibst Systeme mit Diagrammen und hältst fest, welche Teile es gibt und wie sie zusammenhängen. So erkennst du schneller, welche Struktur im Code dahintersteckt und wie sich Änderungen durch das System ziehen. Weitere Videos dazu findest du in unserem Informatikbereich.