Unified Modeling Language (UML)
Die Unified Modeling Language (UML), im Deutschen auch vereinheitlichte Modellierungssprache, ist eine grafische Standard-Notation für die Modellierung von Objekten der realen Welt. Sie wird insbesondere zur Spezifikation, Konstruktion und Dokumentation von Softwareteilen und anderen Systemen eingesetzt.
Die Modellierungssprache legt Namen für die bei einer Modellierung wichtigen Begriffe fest und definiert mögliche Beziehungen zwischen diesen Begriffen. Außerdem definiert UML einen grafischen Begriffsapparat für diese Konzepte und für Modelle statischer Strukturen und dynamischer Abläufe, die sich mit diesen Begriffen formulieren lassen.
Die Sprache kann als ein erster Schritt in Richtung der Entwicklung einer objektorientierten Designmethodik angesehen werden. Die Notation ergibt sich aus drei objektorientierten Design und Analysemethoden und vereinheitlicht diese:
- Die Methodik von Grady Booch zur Beschreibung einer Menge von Objekten und ihrer Beziehungen zueinander;
- die Object-Modeling Technique (OMT) von James Rumbaugh;
- der Ansatz einer fallbasierten Methodik von Ivar Jacobson.
Historisch betrachtet war UML zum großen Teil das Ergebnis einer Kooperation von Booch, Rumbaugh und Jacobson. Aber auch andere Ideen haben zu UML beigetragen. Die Zusammenarbeit erfolgte unter der Schirmherrschaft des US-Unternehmens Rational Software, das sich schwerpunktmässig mit Systemanalyse und -design beschäftigt und inzwischen von IBM gekauft wurde.
UML wurde von Rational Software gefördert und ist jetzt ein akzeptierter Standard der Object Management Group (OMG). OMG ist auch die Heimat der Common Object Request Broker Architecture (CORBA), dem führenden Industriestandard für verteilte Objektprogrammierung. Anbieter von Produkten für Computer-aided Software Engineering (CASE) unterstützen inzwischen ebenso UML wie Hersteller von Softwareentwicklungsprodukten, darunter IBM und Microsoft (für Visual Basic).
Martin Fowler stellt in seinem Buch UML Distilled fest, dass UML zwar ein Notationssystem ist, das Menschen dazu befähigt, über ein Modell zu kommunizieren. Es wurde aber aus Methodologien entwickelt, die auch die Prozesse in der Entwicklung und der Verwendung des Modells beschreiben. Zwar gibt es keinen einheitlich akzeptierten Prozess, aber die an UML Mitwirkenden beschreiben ähnliche Ansätze. Diese werden in der Regel zusammen mit Tutorials über UML selbst beschrieben.
Zu den Modellierungskonzepten, die UML spezifiziert, gehören: Klasse (von Objekten), Objekt, Assoziation, Verantwortung, Aktivität, Interface, Anwendungsfall, Paket, Sequenz, Zusammenarbeit und Zustand. Fowlers Buch bietet eine gute Einführung in UML.