UML

Die Unified Modeling Language - UML

Enstehung der UML

Im Zeitraum Ende der achtziger bis Anfang der neunziger Jahre entstanden mehrere Notationen zur Modellierung von OO-Systemen. Die Grundlage der Notationen waren objektorientierteProgrammiersprachen, wie Smalltalk und C++. Einige der wichtigsten Notationen waren:

  • Booch (Grady Booch)
  • OMT (James Rumbaugh)
  • OOSE (Ivar Jacobson)
  • Shlaer/Mellor
  • Coad/Yourdon

Seit 1994/1995 arbeiteten die "drei Amigos" Grady Booch, James Rumbaugh und Ivar Jaboson in ihrer gemeinsamen Firma Rational Rose an einer Methode, die die Vorteile der einzelnen Notationen vereinen und die ihre Nachteile eliminieren sollte. Es entstand, in Zusammenarbeit mit vielen Firmen aus der Software-Industrie, die Unified Method 0.8, die bis 1997 zur Unified Modeling Language 1.1 weiterentwickelt wurde. Die Notation der UML 1.1 war so umfangreich, da├č der Anspruch eine Methode (konkrete Handlungsanweisung zum Erreichen eines Ziels) zu definieren auf die Definition einer Modellierungssprache reduziert wurde.

Die UML 1.1 wurde 1997 bei der Object Management Group (OMG)eingereicht und wurde ein weltweiter Standard im Bereich der Objekt-Orientierten Entwicklung. Mit den Versionen 1.4, bzw. 1.5 war die UML so umfangreich geworden, dass eine neue Definition notwendig wurde. Die Neudefinition erfolgte mit der Version 2.0.

Was ist die UML?

Die UML ist eine Modellierungssprache, also eine Sprache zur Beschreibung von Software-Systemen. Sie bietet eine einheitliche Notation, die f├╝r viele Anwendungsgebiete nutzbar ist. Sie enth├Ąlt Diagramme und Prosa-Beschreibungsformen. Mit Hilfe der UML k├Ânnen statische, dynamische und Implementierungsaspekte von Softwaresystemen beschrieben werden. "Die UML ist damit zur Zeit die umfassendste Sprache und Notation zur Spezifikation, Konstruktion Visualisierung und Dokumentation von Modellen f├╝r die Softwareentwicklung." (Gabriele Bannert - Objektorientierter Softwareentwurf mit UML). Eine Einf├╝hrungin die Elemente, die im SWT-Praktikum ben├Âtigt werden finden Sie weiter unten in diesem Dokument.

UML und Vorgehensmodelle

Vorgehensmodelle beschreiben wie eine Notation (z. B. die UML) angewendet werden mu├č, um ein bestimmtes Ziel (Software) zu erreichen. Beispiele f├╝r Vorgehensmodelle sind das Wasserfallmodell, das evolution├Ąre Modell, das V-Modell. Vorgehensmodelle schreiben also die Art und Weise der Anwendung einer Notation vor. Vorgehensmodelle sind von vielen Faktoren abh├Ąngig, wie z. B. Projektgr├Â├če, vorhandene Infrastruktur, Know How der Entwickler, Branche, f├╝r die entwickelt wird.

Da die UML mit dem Anspruch entwickelt wurde eine universell g├╝ltige Notation zur Modellierung von Software-Systemen zur Verf├╝gung zu stellen, beinhaltet sie kein Vorgehensmodell. Sie definiert keine Regeln zur Anwendung der verschiedenen Beschreibungselemente. Sie bildet mit ihren Beschreibungselementen die Basis verschiedener Vorgehensmodelle.

Entwickler m├╝ssen sich aus der umfangreichen Notation der UML, die f├╝r ihre speziellen Zwecke n├Âtigen Beschreibungs- und Modellierungsformen (Diagramme, Beschreibung und Zusammenh├Ąnge) aussuchen und ihre eigene Methode mit Hilfe der UML-Notation definieren. Die UML stellt ein flexibles Rahmenwerk zur Verf├╝gung, das an die Anforderungen der Benutzer (Firmen) angepa├čt werden mu├č.

├ťbersicht der wichtigsten UML-Diagrammtypen

UML

Diese Grafik gibt eine ├ťbersicht der UML-Diagrammtypen, die im SWT-Praktikum eingesetzt werden. Die Zusammenh├Ąnge seien stichwortartig erl├Ąutert:
In Use-Case-Diagrammen werden die Anwendungsf├Ąlle (Verwendungszwecke, Use Cases) der geplanten Software beschrieben. Diese stehen als Oval in dem Rechteck, das das geplante System gegen den Rest der Welt abgrenzt. Die Strichm├Ąnnchen, die sogenannten Akteure, sind systemfremde Elemente, die mit dem System kommunizieren.
F├╝r jeden Use Case k├Ânnen ein oder mehrere Sequenzdiagramme erstellt werden. Sequenzdiagramme beschreiben die Interaktion der an einem Use Case beteiligten Klassen. Die senkrechten Balken stellen die Objekte dar; die Pfeile zwischen den Objekten stellen die Nachrichten dar ├╝ber die die Objekte miteinander kommunizieren.
Collaboration Diagramme sind eine alternative Darstellung der Sequenzdiagramme. Die Rechtecke repr├Ąsentieren Objekte, die Linien Kommunikationsbeziehungen und die Pfeile bezeichnen die Nachrichten.
Die Klassen eines Systems werden in Klassendiagrammen zusammengefa├čt. Die Klassen werden als Rechteck dargestellt, die Linien zwischen den Klassen bezeichnen Beziehungen zwischen den Klassen.
Das interne Verhalten der Klassen (ihre Dynamik) wird in State-Transition-Diagrammen dargestellt. Ein State-Transition-Diagramm bezieht sich auf eine Klasse. Die abgerundeten Rechtecke stellen Zust├Ąnde der Klasse dar; die Pfeile beschreiben die Zustands├╝berg├Ąnge.

 

Die UML enth├Ąlt nachfolgende Diagrammtypen. Die Diagramme, die im SWT-Praktikum eingesetzt werden sind in diesem Dokument n├Ąher beschrieben.

  • Strukturdiagramme (statische Aspekte)
    • Klassendiagramm - Class Diagram
    • Objektdiagramm - Object Diagram
    • Komponentendiagramm - Component Diagram
    • Paket Diagramm - Package Diagram
    • Kompositionsstrukturdiagramm - Composite Structure Diagram
    • Verteilungsdiagramm - Deployment Diagram
  • Verhaltensdiagramme (dynamische Aspekte)
    • Aktivit├Ątsdiagramm - Activity Diagram
    • Anwendungsfalldiagramm - Use Case Diagram
    • Zustandsdiagramm - State Machine Diagram
    • Interaktionsdiagramme - Interaction Diagram
      • Interaktions├╝bersichtdiagramm - Interaction Overview Diagram
      • Sequenzdiagramm - Sequence Diagram
      • Kommunikationsdiagramm - Communication Diagram
      • Zeitverlaufsdiagramm - Timing Diagram

     

Ein Glossar der Begriffe der UML findet sich auf dem Server von Bernd Oestereich http://www.oose.de/nuetzliches/fachliches/glossare. Eine englisch-deutsche ├ťbersetzung der UML-Begriffe, auf die sich viele Autoren und CASE-Tool Hersteller geeinigt haben, befindet sich auf dem Server von Mario Jeckle.