Archyno
UMLGrundlagen

Was ist UML?

Eine brauchbare Einführung in die Unified Modeling Language: was sie ist, welche vierzehn Diagramme sie definiert, wie diese zusammenpassen und zu welchem man greift. Ohne mehr Geschichtsstunde als nötig.

14 Min. LesezeitUML 2.5.11 von 35

Die kurze Antwort

  • UML ist eine visuelle Sprache mit festgelegter Bedeutung, gepflegt von der OMG. Die aktuelle Fassung ist UML 2.5.1 von 2017.
  • Vierzehn Diagrammarten, aufgeteilt in sieben für Struktur und sieben für Verhalten - und Diagramme sind Sichten auf ein Modell, keine eigenständigen Zeichnungen.
  • Sie müssen nicht alles benutzen. Ein einziges Sequenzdiagramm zu zeichnen, um einen Streit darüber zu klären, wer wen aufruft, ist völlig legitimer UML-Gebrauch - und vermutlich der wertvollste.
  • Lernen Sie zuerst Klassen- und Sequenzdiagramm richtig: zusammen decken sie das meiste ab, was Ihnen je vorgelegt wird.
Die Diagrammtaxonomie von UML 2.5.1. Diagramm teilt sich in Strukturdiagramm und Verhaltensdiagramm. Das Strukturdiagramm hat sieben Arten: Klassen-, Komponenten-, Kompositionsstruktur-, Verteilungs-, Objekt-, Paket- und Profildiagramm. Das Verhaltensdiagramm hat Aktivitäts-, Zustands-, Anwendungsfall- und Interaktionsdiagramm; das Interaktionsdiagramm wiederum Kommunikations-, Interaktionsübersichts-, Sequenz- und Zeitverlaufsdiagramm. Insgesamt vierzehn Diagrammarten.
Die Diagrammtaxonomie von UML 2.5.1. Vierzehn konkrete Diagrammarten und die zwei abstrakten Kategorien, die sie ordnen. Das hohle Dreieck ist UMLs eigener Generalisierungspfeil - ein Sequenzdiagramm ist wirklich eine Art Interaktionsdiagramm.

01Was UML tatsächlich ist#

UML ist eine visuelle Sprache zur Beschreibung von Softwaresystemen. Sie gibt Ihnen einen festen Satz an Formen, Linien und Regeln, damit ein Diagramm, das Sie zeichnen, dasselbe bedeutet für jemanden, der nicht in dem Raum sass, in dem es entstand.

Das ist das gesamte Wertversprechen, und man sollte es deutlich sagen. Ein Kasten mit einem Namen darin ist kein UML. Ein Kasten mit drei Abteilen, ein hohles Dreieck, das auf einen anderen Kasten zeigt, und ein 1..* an einem Linienende ist UML, und es sagt etwas Präzises: Dieser Typ erbt von jenem, und eine Instanz des ersten ist mit mindestens einer des zweiten verbunden. Jeder, der die Notation kennt, liest das identisch. Das ist es, was Sie kaufen.

Gepflegt wird die Sprache von der Object Management Group. Die aktuelle Ausgabe ist UML 2.5.1, veröffentlicht 2017. Sie stammt aus der Arbeit, die Grady Booch, James Rumbaugh und Ivar Jacobson Mitte der Neunziger bei Rational zusammenführten, als das Feld rund fünfzig konkurrierende Notationen hatte und keine Möglichkeit, den Entwurf eines anderen zu lesen. Die OMG übernahm UML 1.1 im Jahr 1997. Version 2.5 war weitgehend Aufräumarbeit: Die Spezifikation war in die Bände „infrastructure“ und „superstructure“ zerfallen, in denen sich kaum jemand zurechtfand, und 2.5 faltete sie zurück in ein Dokument.

02Struktur und Verhalten: die Teilung, die alles ordnet#

Jedes UML-Diagramm beantwortet eine von zwei Fragen. Strukturdiagrammebeantworten „woraus besteht dieses System?“ - die Teile, die Typen, die Maschinen und wie sie angeordnet sind. Sie beschreiben Dinge, die unabhängig von der Zeit wahr sind.

Verhaltensdiagrammebeantworten „was tut dieses System?“ - die Flüsse, die Nachrichten, die Zustände und die Reihenfolge, in der Dinge geschehen. Sie beschreiben Dinge, die nur in einem Moment wahr sind.

Ein Klassendiagramm sagt Ihnen, dass ein Payment einen Betrag und einen Status hat. Ein Zustandsautomat sagt Ihnen, dass eine Zahlung von Authorized nach Captured geht, aber nie umgekehrt. Keines kann das andere ausdrücken, und die meisten echten Fragen brauchen je eines. Wenn Sie merken, dass Sie eine Reihenfolge auf einem Klassendiagramm zeigen wollen, ist das das Signal, ein zweites Diagramm zu zeichnen, statt das erste zu überladen.

Verhalten hat eine zusätzliche Verschachtelungsebene. Vier der sieben Verhaltensdiagramme - Sequenz, Kommunikation, Zeitverlauf und Interaktionsübersicht - sind allesamt Interaktionsdiagramme, vier verschiedene Darstellungen derselben zugrunde liegenden Idee: Beteiligte tauschen Nachrichten aus. Im Prinzip sind sie austauschbar. In der Praxis dominieren Sequenzdiagramme, weil eine senkrechte Zeitachse das Leichteste ist, was sich lesen lässt.

03Die vierzehn Diagramme, je eine Zeile#

Hier ist die gesamte Sprache auf der Ebene von „brauche ich das heute?“. Folgen Sie einem Link, wenn die Antwort ja lautet.

Struktur - woraus das System besteht

  • Klassen

    Typen, ihre Attribute und Operationen, und wie sie zusammenhängen. Das, was jeder zeichnet.

  • Komponenten

    Austauschbare Teile und die Schnittstellen, die sie anbieten und benötigen.

  • Verteilung

    Welches Artefakt auf welchem Knoten läuft, und was die Knoten sind.

  • Objekt

    Eine konkrete Momentaufnahme von Instanzen, zur Prüfung eines Klassenmodells.

  • Paket

    Wie das Modell gruppiert ist, und welche Gruppe von welcher abhängen darf.

  • Kompositionsstruktur

    Das Innere eines Klassifizierers: seine Teile, Ports und die interne Verdrahtung.

  • Profil

    Wie man UML selbst mit Stereotypen erweitert, wenn das Standardvokabular nicht reicht.

Verhalten - was das System tut

  • Anwendungsfall

    Wer das System nutzt und wofür. Umfang, nicht Entwurf.

  • Aktivität

    Fluss, Entscheidungen und Dinge, die parallel passieren. Ein Prozess, präzise.

  • Zustandsautomat

    Die Zustände, in denen ein Objekt sein kann, und die Ereignisse, die es dazwischen bewegen.

  • Sequenz

    Nachrichten zwischen Beteiligten, der Reihe nach, über die Zeit. Das meistgenutzte Verhaltensdiagramm.

  • Kommunikation

    Dieselbe Interaktion wie im Sequenzdiagramm, angeordnet um zu zeigen, wer mit wem spricht.

  • Zeitverlauf

    Zustand gegen eine Zeitachse, wenn es auf die Frist ankommt.

  • Interaktionsübersicht

    Ein Aktivitätsdiagramm, dessen Knoten Interaktionen sind. Die Karte über den Sequenzen.

In der Praxis besteht eine gesunde Mehrheit des realen UML aus vieren davon: Klasse, Sequenz, Anwendungsfall und Aktivität. Die anderen zehn existieren, weil jemand sie brauchte, und drei oder vier davon sind wirklich hervorragend, wenn die Lage es verlangt - ein Zustandsautomat für einen Lebenszyklus, ein Verteilungsdiagramm für ein Infrastruktur-Review. Den Rest können Sie lesen, wenn Sie ihm begegnen, und nie zeichnen.

04Welches Diagramm soll ich zeichnen?#

Gehen Sie von der Frage aus, nicht vom Diagramm. Der Fehler ist, zuerst einen Diagrammtyp zu wählen und dann zu entscheiden, was darauf soll - so landet man bei einem Klassendiagramm mit zweihundert Kästen, das nie jemand gelesen hat.

  • „Wer nutzt das und wofür?“ - Anwendungsfalldiagramm. Umfang und Akteure, bevor es einen Entwurf gibt.
  • „Was sind die Begriffe und wie hängen sie zusammen?“ - Klassendiagramm. Die Standard-Strukturansicht.
  • „Was passiert, wenn jemand auf Bezahlen klickt?“ - Sequenzdiagramm. Reihenfolge der Nachrichten zwischen Beteiligten.
  • „Wie sieht der Prozess aus, samt Verzweigungen?“ - Aktivitätsdiagramm. Fluss mit Entscheidungen und Parallelität.
  • „In welchen Zuständen kann dieses Ding sein?“ - Zustandsdiagramm. Lebenszyklus und erlaubte Übergänge.
  • „Was läuft wo?“ - Verteilungsdiagramm. Knoten, Artefakte, Umgebungen.
  • „Was sind die Dienste und ihre Verträge?“ - Komponentendiagramm. Angebotene und benötigte Schnittstellen.
  • „Wie ist die Codebasis organisiert?“ - Paketdiagramm. Gruppierung und erlaubte Abhängigkeiten.

05Was UML nicht ist#

Es ist kein Prozess. UML sagt nichts darüber, wann man modelliert, wie viel man modelliert oder wer es abnimmt. Es ist eine Notation. Methoden wie RUP wurden darum herum gebaut und werden häufig damit verwechselt; Sie können UML in jedem Prozess einsetzen, auch in gar keinem.

Es ist keine Programmiersprache. UML-Modelle können detailliert genug sein, um Code zu erzeugen, und manche Werkzeuge tun genau das. Die meisten Teams tun es nicht und sollten es nicht. Vollständige Round-Trip-Codegenerierung ist der mit Abstand häufigste Grund, an dem UML-Vorhaben scheitern: Das Modell wird zu einer zweiten, schlechteren Kopie des Quellcodes, die niemand aktualisiert.

Es ist kein Alles-oder-nichts. Es gibt keine Pflicht, alle vierzehn Diagramme zu benutzen oder jede Klasse zu modellieren. Ein einziges Sequenzdiagramm zu zeichnen, um einen Streit darüber zu klären, wer wen aufruft, ist ein völlig legitimer Einsatz von UML und wahrscheinlich sein wertvollster.

Es ist nicht dasselbe wie ArchiMate. Beide sind Modellierungssprachen und überschneiden sich genug, um zu verwirren. UML modelliert Software - Klassen, Komponenten, Nachrichten. ArchiMate modelliert das Unternehmen darum herum - Geschäftsprozesse, Fähigkeiten, Anwendungs- und Technologieschichten. Eine grosse Organisation braucht typischerweise beides, auf verschiedenen Flughöhen.

06Wie viel modellieren#

Die ehrliche Antwort lautet: viel weniger, als die Werkzeuge nahelegen. Ein Modell verdient seinen Platz, wenn es öfter gelesen als bearbeitet wird. Drei Dinge bewirken das zuverlässig.

Modellieren Sie die Teile, die man schwer im Kopf behält. Der Zahlungs-Zustandsautomat mit neun Zuständen und zwei unzulässigen Übergängen ist ein Diagramm wert. Das DTO mit drei Feldern nicht.

Modellieren Sie pro Diagramm auf einer Flughöhe. Das häufigste Versagen eines echten Klassendiagramms ist, Domänenbegriffe und Framework-Installation auf dieselbe Fläche zu mischen. Zwei Diagramme, jedes in sich stimmig, schlagen eines, das technisch vollständig ist.

Modellieren Sie, was Sie behalten werden. Ein Diagramm in einem Foliensatz ist eine Zeichnung mit der Haltbarkeit einer Sitzung, und das ist in Ordnung, solange Sie wissen, dass es das ist. Ein Diagramm im Repository, neben dem Code, den es beschreibt, ist ein Modell - und es braucht jemanden, der es verantwortet.

Dazu greifen, wenn

  • Der Entwurf enthält eine Entscheidung, über die vernünftige Menschen streiten würden
  • Mehr als ein Team muss sich auf eine Schnittstelle oder einen Lebenszyklus einigen
  • Jemand stösst später zu dieser Codebasis und braucht ihre Form
  • Eine Aufsicht, eine Prüfung oder ein Architektur-Review verlangt es schriftlich

Zu etwas anderem greifen, wenn

  • Der Code ist kürzer und klarer, als das Diagramm wäre
  • Sie zeichnen es, um eine Checkliste zu erfüllen, die niemand liest
  • Es würde etwas verdoppeln, das bereits aus dem Quellcode erzeugt wird
  • Der Entwurf ändert sich noch täglich - warten Sie, bis er stillsteht

07Wo anfangen#

Wenn die Notation neu für Sie ist, lesen Sie zuerst den Artikel zum Klassendiagramm. Es trägt den grössten Teil des UML-Vokabulars - Generalisierung, Assoziation, Multiplizität, Komposition - und jedes andere Strukturdiagramm übernimmt diese Zeichen. Lesen Sie dann den Artikel zum Sequenzdiagramm, der dasselbe für das Verhalten leistet.

Diese beiden decken das meiste ab, was Sie je zu lesen bekommen. Alles Übrige in dieser Reihe ist so geschrieben, dass man es an dem Tag aufgreifen kann, an dem man es braucht, in beliebiger Reihenfolge, und jeder Artikel setzt nur diese beiden voraus.

In je einer Zeile

  1. 01UML ist eine Notation mit fester Bedeutung, gepflegt von der OMG; die aktuelle Version ist 2.5.1.
  2. 02Vierzehn Diagrammarten, geteilt in sieben Struktur- und sieben Verhaltensdiagramme - vier der Verhaltensdiagramme sind Interaktionsdiagramme.
  3. 03Diagramme sind Sichten auf ein Modell, keine unabhängigen Zeichnungen.
  4. 04Wählen Sie das Diagramm nach der Frage, die Sie beantwortet brauchen, nicht nach einer Checkliste.
  5. 05Klassen- und Sequenzdiagramme decken die grosse Mehrheit des realen Einsatzes ab; lernen Sie diese beiden zuerst gründlich.

08Häufige Fragen#

Wie viele UML-Diagramme gibt es?

UML 2.5.1 definiert vierzehn Diagrammtypen, aufgeteilt in sieben Strukturdiagramme und sieben Verhaltensdiagramme. Zur Struktur zählen Klassen-, Objekt-, Komponenten-, Verteilungs-, Paket-, Kompositionsstruktur- und Profildiagramm; zum Verhalten Anwendungsfall-, Aktivitäts-, Zustands-, Sequenz-, Kommunikations-, Zeitverlaufs- und Interaktionsübersichtsdiagramm.

Wird UML noch verwendet?

Ja, aber selektiv. Kaum ein Team zeichnet alle vierzehn Typen, doch Klassen-, Sequenz-, Aktivitäts- und Anwendungsfalldiagramme bleiben verbreitet: in Design-Reviews, in regulierten Branchen und überall dort, wo eine Architektur die Leute überleben soll, die sie geschrieben haben.

Was ist der Unterschied zwischen Struktur- und Verhaltensdiagrammen?

Ein Strukturdiagramm zeigt, woraus ein System besteht, und ändert sich über die Zeit nicht: Klassen, Komponenten, Knoten. Ein Verhaltensdiagramm zeigt, was passiert, in welcher Reihenfolge und unter welchen Bedingungen. Steckt in Ihrer Frage ein wann, wollen Sie ein Verhaltensdiagramm.

Welches UML-Diagramm sollte ich zuerst lernen?

Das Klassendiagramm. Es trägt den grössten Teil des UML-Vokabulars, und sechs der übrigen Strukturdiagramme übernehmen seine Notation direkt - wer es richtig lernt, bekommt den Rest fast geschenkt. Das Sequenzdiagramm ist das natürliche zweite.

Muss ich alle vierzehn UML-Diagramme lernen?

Nein. Vier tragen in der Praxis die Hauptlast: Klassen, Sequenz, Anwendungsfall und Aktivität. Bei den übrigen genügt es, sie lesen zu können, wenn man ihnen begegnet - eine weit kleinere Investition, als sie selbst zeichnen zu können.

In dieser Reihe

Passend dazu

Alle Artikel