Wissen kompakt: Die UML (Unified Modeling Language) ist eine standardisierte, grafische Modellierungssprache zur Spezifikation, Dokumentation und Visualisierung von Systemen.

UML Definition

Die Unified Modeling Language – meist als UML abgekürzt – ist eine grafische Modellierungssprache zur Spezifikation, Dokumentation und Visualisierung von Software-Systemen. Sie bietet verschiedene Diagrammtypen für die Analyse von Strukturen, die Bestimmung von Objektinteraktionen und das Verhaltensdesign von Systemen.

Die Idee der Unified Modeling Language geht auf Grady Booch, James Rumbaugh und Ivar Jacobson zurück, die verschiedene, auf definierte Anwendungsbereiche spezialisierte, objektorientierte Methoden zu einem konsolidierten Ansatz entwickelten. Der Ansatz der “drei Amigos”, die für das Unternehmen Rational Rose arbeiteten, wurde schnell zu einem Quasistandard. Die Object Management Group (OMG) griff den Ansatz auf und veröffentlichte 1997 die UML Version 1.1. Aktuell ist UML Version 2.5.1, veröffentlicht von der OMG im Dezember 2017.¹  Die Version 2.4.1 ist von der ISO genormt (ISO/EEC 19505).

UML - eine standardisierte, grafische Modellierungssprache

UML Diagrammtypen und Diagramme

Die UML 2.5 umfasst insgesamt 14 Diagramme, die in drei Gruppen bzw. Diagrammtypen unterteilt sind:

  1. Strukturdiagramme,
  2. Verhaltensdiagramme und
  3. Interaktionsdiagramme.

Als Strukturdiagramme werden alle Diagramme bezeichnet, die eine statische Komponente eines Systems modellieren, bei der sich zwar die Daten aber nicht die Strukturen der Elemente und ihrer Beziehungen untereinander verändern. In einem Verhaltensdiagramm werden einzelne Aspekte eines Systems, die Reihenfolge von Prozessen und deren Veränderungen zur Laufzeit visualisiert. Und Interaktionsdiagramme visualisieren das interaktive Verhalten eines Systems und somit den Fluss an Informationen in einem System.

Die Vielfalt der Diagramme ermöglicht die praktische Verwendung über alle Phasen einer Entwicklung hinweg; UML-Diagramme können bspw. für die Anforderungsdokumentation, den Entwurf einer Softwarearchitektur, die technische Dokumentation oder mit entsprechender Werkzeugunterstützung für die Implementierung von Systemen genutzt werden.

Folgende Strukturdiagramme gibt es:

  • Klassendiagramm,
  • Objektdiagramm,
  • Kompositionsstrukturdiagramm,
  • Komponentendiagramm,
  • Verteilungsdiagramm und
  • Paketdiagramm.

In Klassendiagrammen werden Klassen und die Beziehungen zwischen Klassen als Assoziation, Aggregation, Komposition oder Generalisierung modelliert. Ein Objektdiagramm beschreibt eine konkrete Instanz eines Klassendiagramms zu einem definierten Zeitpunkt. Ein Kompositionsstrukturdiagramm zeigt die interne Struktur eines Classifiers und visualisiert die Konfiguration der Elemente, die gemeinsam das Verhalten des Classifiers bestimmen. Ein Komponentendiagramm stellt Struktur und Beziehung zwischen verschiedenen Komponenten eines Systems dar. Das Verteilungsdiagramm modelliert die physische Verteilung von Artefakten auf Knoten (Hardware und Software). Und das Paketdiagramm wird verwendet, um eine Gruppe von Modellelementen – den Paketen – und die Abhängigkeiten zwischen den Paketen eines Modells darzustellen.

Folgende Verhaltensdiagramme gibt es:

Ein Anwendungsfalldiagramm visualisiert das Verhalten eines Systems aus Anwendersicht. Es zeigt Anwendungsfälle mit ihren Beziehungen zu anderen Anwendungsfällen und zu anderen Systemen. Mit Aktivitätsdiagrammen wird der Ablauf von Aktivitäten, Prozessen in Systemen oder Geschäftsabläufen dargestellt und mit Zustandsdiagramm eine Folge von erlaubten Zuständen visualisiert, die ein Objekt im Lebenszyklus einnehmen kann.

Folgende Interaktionsdiagramme gibt es:

  • Sequenzdiagramm,
  • Kommunikationsdiagramm,
  • Timing-Diagramm und
  • Interaktionsübersichtsdiagramm.

Ein Sequenzdiagramm beschreibt wie Objekte und ihre Instanzen Informationen in einer bestimmten Reihenfolge austauschen. Das Kommunikationsdiagramm – in früheren UML Versionen noch als Kollaborationsdiagramm bezeichnet – beleuchtet ausgewählte Nachrichten, mit denen die zeitliche Abfolge der Kommunikation zwischen den Objekten erfolgt. Ein Timing-Diagramm zeigt miteinander interagierende Objekte während einer definierten Zeitspanne. Und ein Interaktionsübersichtsdiagramm verbindet Aktivitäten und Abläufe, um erlaubte Interaktionen zwischen Elementen mit Entscheidungen und Informationsflüssen darzustellen.

Darüber hinaus kennt die Unified Modeling Language auch ein Diagramm zur Metamodellierung:

  • Profildiagramm

Das Profildiagramm wird auf der Metamodellebene zur Visualisierung von benutzerdefinierten Stereotypen, Eigenschaftswerten und Randbedingungen verwendet.

Vorteile und Nachteile der Unified Modeling Language

Die Anwendung der Unified Modeling Language bietet einige Vorteile, hat aber ggf. auch einige Nachteile in der Praxis. Hier finden Sie einige Vorteile:

  • Die Modellierungssprache ist vielseitig und flexibel einsetzbar. Sie eignet sich bspw. zur Spezifikation, Visualisierung oder Dokumentation von Systemen oder Software. Und sie lässt sich unabhängig von Branchen oder Industrien und in allen Phasen einer Entwicklung nutzen.
  • Jedes Diagramm bietet passende Elemente, mit denen sich spezifische Informationen und Zusammenhänge erarbeiten und darstellen lassen. Durch die Spezialisierung bietet jedes Diagramm für sich bereits einen Nutzen bzw. Mehrwert.
  • Die Verwendung der Modellierungssprache führt idealerweise zum besseren Verständnis des zu entwickelnden oder zu dokumentierenden Systems und kann zur Reduzierung möglicher Kosten bspw. während der Implementierungs- oder Wartungsphase beitragen.
  • Idealerweise fördert die Modellierungssprache auch die Zusammenarbeit aller Anwender wie bspw. Softwarearchitekten und Softwareentwickler, Business Analysten, Projektmanager oder Produktmanager.
  • Die Unified Modeling Language bietet nicht nur eine grafische Sicht auf ein System, sondern beinhaltet auch ein Format, um Modelle oder Diagramme zwischen verschiedenen Werkzeugen austauschen zu können. Auch das erhöht die Flexibilität in der Anwendung.
  • Und last but not least unterstützen verschiedene Werkzeuge das Transformieren von fachlichen UML-Modellen in technische Modelle mit anschließender Code-Generierung; das sogenannte Model-Driven Development.

Folgende Kritik² wird unter anderem geäußert:

  • Die Dokumentation der UML 2.5 ist mit 794 Seiten sehr umfangreich. Auch wenn frühere Versionen noch umfangreicher waren, das sind viele Seiten mit vielen Informationen. Zusätzlich gehen die Meinungen auseinander, ob sich die Dokumentation einfach lesen und verstehen lässt.
  • Es gibt keine Formel zur Bestimmung einer sinnvollen Anzahl von Diagrammen zur Beschreibung und Visualisierung von Zusammenhängen einer System- oder Softwareentwicklung. Und es gibt auch keine ideale Anzahl von Diagrammelementen pro Diagramm; mit steigendem Umfang eines Diagramms geht oftmals die Übersichtlichkeit und Lesbarkeit verloren. Für denjenigen, der ein Diagramm erstellt, ist es vermutlich einfach, Zusammenhänge nachzuvollziehen. Lesen Sie aber ein umfangreiches Diagramm zum ersten Mal, kann es leicht passieren, dass Sie nicht alle Informationen erfassen können.
  • Auch wenn sich die Unified Modeling Language in zahlreichen Bereichen nutzen lässt, so wird sie vorwiegend zur Dokumentation und eher selten für die Entwicklung von Software oder Systemen genutzt. In der Folge entstehen Diagramme ohne produktiven Wert für die Entwicklung.
  • In der Praxis veralten Diagramme häufig, da sie bei neuen Informationen oder Weiterentwicklungen nicht entsprechend gepflegt werden. Darüber hinaus können sich Diagramme widersprechen, sofern sie “lediglich gezeichnet” und nicht mit datenbankbasierten Tools erstellt werden.

Es gibt eine große Menge an Anbietern von UML Software. Je nach Perspektive kann dies ein Vorteil oder ein Nachteil sein. Einerseits erschwert die große Menge die Auswahl einer zur Situation und dem Unternehmen passenden Software, andererseits ermöglicht es auch die Anwendung der Modellierungssprache für weniger erfahrene Mitarbeiter, da professionelle Software auf die Einhaltung der Notation achtet, Zwischenstände automatisch versioniert oder die Wiederverwendung einzelner Elemente erleichtert.

In manchen Publikationen wird erwähnt, dass selten ganze Systeme modelliert werden. Dies ist aber an sich kein explizierter Nachteil der Unified Modeling Language, im Gegenteil: je nach Einsatzszenario sollen die Ausdrucksmittel punktuell dabei helfen, ein gemeinsames Verständnis zu gewinnen. Wird dies durch einzelne Modelle erreicht, so spricht dies deutlich für den flexiblen Einsatz der der Modellierungssprache. Der vollumfängliche Einsatz sämtlicher Diagramme ist kein Ziel an sich.

Auch die Tatsache, dass die Unified Modeling Language keinen Leitfaden zur Entwicklung von Systemen oder Software beinhaltet oder gar eine Programmiersprache ist, ist weder Vorteil noch Nachteil.

UML Tools

Es gibt eine ganze Reihe von UML Tools, die sich deutlich voneinander unterscheiden. Es gibt kostenlose Programme zum einfachen Zeichnen von Diagrammen und professionelle Lösungen, die auf Basis von Diagrammen Code erzeugen. Manche Tools unterstützen ausgewählte Diagrammtypen, andere bieten die vollumfängliche Unterstützung sämtlicher Diagramme an. Manche nutzen einige wenige Symbole aus dem Fundus einzelner Diagramme, andere sind in der Lage, definierte Elemente in verschiedenen Diagrammen wiederzuverwenden. Manche unterstützen Reverse Engineering oder Roundtrip Engineering, andere eine XMI-Unterstützung.³ Manche Tools sind Client-Server-Anwendungen, andere laufen online im Browser und speichern Daten in einer Cloud. Manche unterstützen den Austausch von Informationen zwischen UML Tools, und andere bieten ein anpassbares Reporting an. Wer sich also für ein UML-Tool interessiert, sollte das Szenario kennen, in dem es eingesetzt werden soll.

Hier finden Sie eine Liste mit UML-Tools:

 

Impuls zum Diskutieren:

Wie wichtig ist es für die Praxis der Modellierung, dass im Abstand von einigen Jahren neue UML Versionen veröffentlicht werden?

Hinweise:

Die Inhalte auf dieser Seite dürfen Sie gerne teilen oder verlinken.

[1] Hier finden Sie die offizielle Dokumentation der OMG Unified Modeling Language Version 2.5
[2] Hier finden Sie weitere Kritik in Form von 13 Reasons for UML’s descent into darkness.
[3] Relativ viele Werkzeuge ermöglichen das Speichern und Exportieren von UML-Modellen im XMI-Format. In der Praxis tun sich aber viele dieser Werkzeuge schwer, die von Tools anderer Hersteller exportierten XMI-Files korrekt zu importieren. Es ist daher empfehlenswert, einen entsprechenden Test durchzuführen.

Wir suchen Softwareentwickler. Berufseinsteigerinnen, Entwickler mit einigen und Expertinnen mit vielen Jahren Erfahrung.

Und hier finden Sie ergänzende Informationen aus unserer Rubrik Wissen kompakt:

Wissen kompakt: Was ist eine Assoziation?

Was ist eine Assoziation?

Wissen kompakt: Was ist eine Komposition?

Was ist eine Komposition?

Wissen kompakt: Was ist eine Aggregation?

Was ist eine Aggregation?