Ausgewählte Grundlagen zur UML

Dieser Abschnitt gibt Ihnen einen Überblick zur Entwicklung der UML und deren Basiskonzepten. Sie sollten nach dem Lesen,

  • die UML einordnen können
  • die Diagrammübersicht der UML kennen

Die Unified Modeling Language (im weiteren UML) ist ein Satz von Notationen zur Beschreibung objektorientierter Softwaresysteme. Ihre ursprünglichen Autoren sind Grady Booch, James Rumbaugh und Ivar Jacobson. Mit der Entwicklung der UML verfolgten deren Autoren eine Reihe von Zielen, so zum Beispiel:

  • Bereitstellung einer universellen Beschreibungssprache für alle Arten objektorientierter Softwaresysteme und damit eine Standardisierung
  • Vereinigung der bekanntesten und bewährtesten Darstellungstechniken
  • ein für zukünftige Anforderungen offenes Konzept

Motivation zum Software Engineeering

Faktisch alle Aspekte des Software Engineering zielen auf die Beherrschbarkeit von Komplexität. Versuchen wir uns für das Problem der Komplexität zu sensibilisieren. Dazu führen wir ein kleines Experiment aus. Betrachten Sie die folgenden Darstellungen nacheinander (bitte die rechte Darstellung zuerst abdecken). Sie sollen die Menge der vorgelegten Streichhölzer ermitteln. Nehmen Sie sich je Bild nicht mehr als 3 Sekunden Zeit. Es geht also um das Wahrnehmen und das Verstehen.

In drei Sekunden werden Sie für die linke Darstellung nicht mehr als eine Schätzung der Streichholzanzahl abgeben können. Wiederholen wir das Experiment mit dem rechten Bild. Sie werden jetzt die exakte Anzahl der Streichhölzer in wesentlich weniger als drei Sekunden erfasst haben. Etwas Essentielles unterscheidet beide Bilder. Die Anzahl der Streichhölzer in beiden Darstellungen ist exakt die Selbe. Aber erst im zweiten Bild sind Sie in der Lage, die Anzahl wirklich mit einem oder auch zwei Blicken zu erfassen. Woran liegt das? Zum einen sorgte die Art der Anordnung, der Fachmann spricht hier von Strukturierung, dafür. Der zweite Aspekt ist der, dass Ihnen ein bekanntes Muster ja fast eine Art Symbol angeboten wurde.

Dieses Experiment lässt sich leicht weiter entwickeln bis zum Gebrauch von abstrakten vereinheitlichten Symbolen für die Darstellung von numerischen Sachverhalten. Der Weg zu einer einheitlichen Zahlendarstellung bedeutete Komplexität beherrschbar machen. Genau das ist auch die Herausforderung der Softwareentwicklung. Die Streichhölzer sind die einzelnen Programmzeilen, das Bild die gesamte Applikation. Beides gilt es zu beherrschen. Der Weg führt über standardisierte Symbole die strukturiert und nach den Regeln einer Sprache zu komplexen Aussagen zusammengesetzt werden. Es wird mit der UML eine standardisierte Konstruktionszeichnung der Software erstellt. Konstruktionszeichnungen sind für die Herstellung komplexer Systeme essentiell. Die Vorstellung, dass Systeme welche wir tagtäglich benutzen möglicherweise ohne eine ingenieurmäßige Konstruktion hergestellt wurden sollte uns beunruhigen.

Historische Aspekte zur UML

„Geschichte ist nicht nur Geschehenes, sondern Geschichtetes -
also der Boden, auf dem wir stehen und bauen.”

Hans von Keler (Theologe, *1925)

Bis in die Mitte der 1990er Jahre war die UML kommerziell ausgerichtet. Die Autoren gründeten ursprünglich eigens die Firma Rational Software AG für die Vermarktung UML und des speziell für die UML entwickelten Werkzeuges Rational Rose. Der Erfolg der UML aber auch die zunehmenden Probleme ein kommerzielles Produkt als weltweit verbindlichen Standard zu etablieren führten dazu, dass die Autoren 1996 die UML an eine nicht kommerzielle, internationale Standardisierungsorganisation die OMG (Object Management Group, www.omg.org) übergaben. Die OMG erhob die UML 1996 zu einem internationalen Standard und entwickelt diese weiter. Inzwischen nimmt der Grad der Verbindlichkeit der UML weiter zu. So wurde der Standard ebenfalls durch die International Organization for Standardizations ISO und die International Electronic Commission IEC als ISO/IEC19505 zu einer Norm erklärt.

Die UML ist eng mit der Herausbildung und Entwicklung des Paradigmas der objektorientierten Systementwicklung verknüpft. Die Ursprünge der Objektorientierung lassen sich bis in die 1960er Jahre zurückverfolgen. Mit SIMULA und SMALLTALK standen bereits sehr früh objektorientierte Programmiersprachen zur Verfügung, aber erst mit dem Überschreiten der Systemgröße und dadurch bedingten Systemkomplexität über 1 MByte sorgten dafür, dass objektorientierte Programmierung mit Sprachen wie C++ sich quasi über Nacht flächendeckend durchsetzten. Die UML stellt eine adäquate und vor allem standardisierte Modellierungs- und Visualisierungstechnik für solche Systeme zur Verfügung. Inzwischen ist die UML eine etablierte Technik des Software Engineering.

Taxonomie der UML

Ursprünglich legte die OMG in den veröffentlichten Standards der UML keine konkrete Diagrammorganisation fest. Die in der Sekundärliteratur vorgenommenen Unterteilungen folgte mehr oder weniger der einheitlichen Gliederung des UML-Dokumentes „super structure“ in welchem die grafische Notation festgelegt wird. Die Hauptkapitel heißen einfach nur „Structure“ und „Behavior“. Dies und die untergeordneten Abschnitte dieser Kapitel entsprachen dann in etwa der Unterteilung in die Diagrammformen, welche sich aus der Beschreibung der UML ergeben. Inzwischen wird von der OMG auch in den offiziellen Dokumenten eine empfohlene Taxonomie der UML Diagramme dargelegt. Dabei wird nicht ausgeschlossen, dass es auch Mischformen zwischen den Darstellungsmitteln oder andere Diagramme geben kann.

Die fett eingerahmten Diagrammformen können als die wichtigsten Diagramme der UML bezeichnet werden.

  • class diagram, Klassendiagramm
    Aus welchen Klassen besteht das System? Wie sind die Klassen aufgebaut?
    Welche Beziehungen haben die Klassen zueinander?
  • package diagram, Paketdiagramm
    Wie sind Projekt und Modell geordnet? Wie behalte ich den Überblick?
  • use case diagram, Anwendungsfalldiagramm
    Welche Anforderungen stellt der Nutzer an das System? Was macht das System?
    Welche Leistungen erbringt das System für wen? Wer benutzt das System?
  • activity diagram, Aktivitätsdiagramm
    Wie ist der Grobablauf? Wie erbringt das System eine bestimmte Leistung?
  • state machine, Zustandsdiagramm, Zustandsautomat
    Welche Zustände kann ein Objekt haben und wann wechseln die Zustände?
  • sequence diagram, Sequenzdiagramm
    In welcher genauen Reihenfolge werden Nachrichten ausgetauscht? Wie sieht der Ablauf im Detail aus?

Nächstes Thema

uml_grundlagen.txt · Zuletzt geändert: 2014/08/29 08:49 von huwaldt