UML Version 2

Modellierung von Software – wieso?

Viele Softwareentwickler nutzen UML oder andere Modellierungstechniken und -werkzeuge nicht, da Ihnen der Sinn und Zweck von modellierter Software sich nicht erschließt und es daher häufig als Zeitverschwendung angesehen wird.

Diese Ansicht ist verständlich und realistisch, wenn es sich um kleine Projekte mit Eigeninteresse handelt. Bei Projekten mit vielen Entwicklern, eventuell sogar unterschiedlichen Entwickler-Teams, wird der Sinn und Zweck von modellierter Software jedoch sehr schnell übersichtlich.

Übertragen auf den Hausbau ist es etwa so, als ob man eine kleine Hundehütte baut, was nach kurzer Zeit von einer einzigen Person zu realisieren ist.
Wenn jedoch nun ein ganzes Haus zu bauen ist, wird es komplexer. Einerseits ist dort der neue Besitzer, der zusammen mit dem Architekten erst einmal ausarbeitet, was es werden soll und wie es auszusehen hat. Hierfür ist es bereits nötig, dass der Architekt eine Semantik benutzt, die weder so grob ist, dass er selber zu viel Interpretationsspielraum hat, wenn er den eigentlichen Bauplan entwickelt für die Bauarbeiter, noch zu speziell, da hierbei die Wahrscheinlichkeit sehr hoch ist, dass der Besitzer nicht mehr versteht, worum es eigentlich geht und in Folge dessen ein Haus gebaut wird, was er so nie haben wollte.
Desweiteren muss auch der Bauplan so modelliert werden, dass die Bauarbeiter ihn richtig verstehen können, ebenso wie der Elektriker und alle anderen spezialisierten Bauarbeiter, die an dem Bau beteiligt sind.

Baupläne sind demnach essentiell dafür wichtig, dass genau das Produkt hergestellt wird, was in Auftrag gegeben wurde, jede beteiligte Gruppe weiß, was sie zu tun hat und demnach das Produkt auch in einem zeitlich definiertem Rahmen fertig gestellt werden kann.

Was ist UML überhaupt?

UML (Unified Modeling Language) definiert eine allgemein gehaltene Modellierungssprache, auch Notation genannt, die mittels Diagrammen und Notationselementen sowohl statische wie auch dynamische Aspekte unterschiedlichster Anwendungsgebiete, auch außerhalb der Softwareentwicklung, modelliert.

Die wesentlichsten Vorteile der UML sind:

  • Eindeutigkeit – die Notation bedient sich einer präzisen und von Experten definierten Semantik
  • Verständlichkeit – die Notation visualisiert mittels unterschiedlicher Diagrammtypen differenzierte Sichtweisen auf das modellierte System und ermöglicht mittels Intensivierung und Vernachlässigung einzelner Teilaspekte eine verbesserte Kommunikation der beteiligten Gruppen untereineinder und miteinander.
  • Ausdrucksstärke – mittels Ausschöpfung aller zur Verfügung gestellter Notationselemente ist eine nahezu vollständige Definition aller Details möglich
  • Standardisierung und Akzeptanz – mehr als 800 Unternehmen gehören mittlerweile zu der OMG (Object Management Group), die für UML verantwortlich ist, wodurch UML inzwischen weltweit verbreitet ist
  • Unabhängigkeit von Plattform und Sprache – obwohl der Schwerpunkt der UML in der OOP liegt, lassen sich auch prozedurale Sprachen modellieren und das vollkommen unabhängig von der Plattform
  • Unabhängigkeit von Vorgehensmodellen – UML definiert ‚Werkzeuge‘, die Entscheidung, wie diese eingesetzt werden , liegt jedoch bei den Entwicklern selber

Wieso nur Version 2.x anstelle von Version 1.x?

Seit der Entwicklung von UML 1.0 gab es eigentlich nur kleine Änderungen eher kosmetischer Natur. In manchen Bereichen stellte man eine zu große Nähe zu einzelnen Sprachen fest und einige Aspekte, wie z.B. die exaktere Modellierung zeitlicher Abläufe wurde eingefordert. UML hatte sich zwar weiterentwickelt, war jedoch unübersichtlich geworden.

Dadurch entschied sich die OMG zu einem großen Versionssprung von 1.5 auf 2.0, in der UML deutlich entschlackt und in manchen Teilbereichen sogar essentiell überarbeitet wurde. Manche Teile sind sogar komplett neu, wie z.B. das Timing-Diagramm.

Diagrammfamilien in UML 2

UML unterteilt Diagramme grundsätzlich in 2 Familien:

  • Strukturdiagramme (engl. structure diagrams) – In dieses Familie fallen alle statischen, zeitlich unabhängigen Diagramme.
  • Verhaltensdiagramme (engl. behavior diagrams) – In diese Familie fallen alle dynamischen Diagramme.