Vor kurzem habe ich wieder erlebt wie hilfreich es sein kann, Anforderungen nicht nur in textueller Form zu beschreiben, sondern zusätzlich Diagramme zur Klärung einzusetzen.

Mit UML Zustandsdiagrammen spielte ein Kunde von HOOD die Status-Änderungen der Arbeitsergebnisse aus seinen Geschäftsprozessen auf einem Flipchart durch und gelangte zu überraschenden Erkenntnissen: einige Status-Übergänge waren unklar, obwohl eine textuelle Spezifikation für die Übergänge bereits vorlag.

Gerade bei der Klärung von Anforderungen, nicht nur bei der Spezifikation, kann die graphische Form also helfen. Ein Diagramm ist in einem Meeting auf einem Flipchart schnell gezeichnet, die Frage ist nur: was passiert mit den Diagrammen nach dem Meeting ?

Fotografiert man das Diagramm – und nimmt eventuell in Kauf, dass die Zeichnung auf dem Foto nur schlecht erkennbar ist ? Oder modelliert man in oder nach dem Meeting das Diagramm in einem UML Modellierungswerkzeug ? Das bedeutet einen Mehraufwand, der für die nachhaltige Spezifikation von Modellen seine Berechtigung haben kann, aber gerade in frühen Phasen der Anforderungsklärung oft unangemessen hoch scheint.

Es gibt eine Alternative: die automatische Generierung von UML-Diagrammen aus textuellen Beschreibungen.

Die textuelle Beschreibung ist mindestens ebenso schnell erstellt wie das Diagramm auf dem Flipchart, und das Aussehen der generierten Diagramme schlägt individuelle Experimente mit Grafikfunktionen von Officen-Produkten.

Ein kleines und kostenloses Werkzeug, das genau das macht, ist PlantUML (http://plantuml.sourceforge.net/).

Mit folgendem Text, den Sie auch auf der Website finden, erzeugen Sie beispielsweise ein Klassendiagramm, dass verschiedene Arten von Beziehungen zwischen Klassen zeigt:

@startuml img/classes01.png
Class01 <|– Class02
Class03 *– Class04
Class05 o– Class06
Class07 .. Class08
Class09 — Class10
Class11 <|.. Class12
Class13 –> Class14
Class15 ..> Class16
Class17 ..|> Class18
Class19 <–* Class20
@enduml

Das erzeugte Diagramm sieht so aus:

Neben Klassendiagrammen können auch Use Case Diagramme, Sequenzdiagramme, Aktivitätsdiagramme, Zustandsdiagramme, Komponentendiagramme und Objektdiagramme mit PlantUML generiert werden.

Natürlich muss man erst einmal die PlantUML Syntax lernen und verstehen. Dafür wird man mit schnell erstellbaren Diagrammen entschädigt, die sich sehen lassen können.

Und damit enden die Möglichkeiten nicht: dank der einfachen Text-Syntax lassen sich Diagramme auch leicht automatisiert erstellen. Ich habe diese Möglichkeit zum Beispiel benutzt, um einen Simulator für UML-Zustandsautomaten zu entwickeln.

Viel Spaß beim Ausprobieren !