Unified Modeling Language
Die Unified Modeling Language ("vereinheitlichte Modellierungssprache"), häufig mit UML abgekürzt, ist eine von der Object Management Group (OMG) entwickelte und standardisierte Beschreibungssprache, um Strukturen und Abläufe in objektorientierten Softwaresystemen darzustellen. Im Sinne einer Sprache definiert die UML dabei Bezeichner für die meisten Begriffe, die im Rahmen der Objektorientierung entstanden sind, und legt mögliche Beziehungen zwischen diesen Begriffen fest. Die UML definiert des weiteren grafische Notationsweisen für diese Begriffe und für Modelle von Software oder anderen Abläufen, die man in diesen Begriffen formulieren kann. Damit wurde die UML zur de-Facto-Norm für "technische Zeichnungen" von Programmen und Abläufen. Sie standardisiert jedoch nicht nur die technische Zeichnung selbst, sondern auch das Datenformat, in dem diese Zeichnung in EDV-Systemen abgelegt wird (sog. XMI, eine XML-Variante). Dadurch ermöglicht es die UML im Prinzip, Modellierungsdaten zwischen Modellierungswerkzeugen unterschiedlicher Softwarehersteller auszutauschen.
Die Väter der UML (insbesondere Grady Booch, Ivar Jacobson und James Rumbaugh, auch "die drei Amigos" genannt) waren in den 90er-Jahren bekannte Propagandisten der objektorientierten Programmierung, die alle bereits ihre (mehr oder weniger ähnlichen) eigenen Systeme entwickelt hatten. Als sie zusammen beim Unternehmen Rational Software beschäftigt waren, entstand der Ansatz, die verschiedenen Notationssysteme strukturiert zusammenzuführen.
Die UML wurde am 19. November 1997 von der OMG als Standard akzeptiert und wird seit dem von ihr weiterentwickelt.
Im Juni 2003 wurde die jüngste Version der UML, die Unified Modeling Language 2.0 oder UML2, von der OMG als Entwurf veröffentlicht. Sie wurde im März 2005 verabschiedet.
Diagrammtypen
Die Unified Modeling Language 2.0 unterstützt 13 Diagrammtypen:
Strukturdiagramme
- Klassendiagramm (engl. class diagram)
- Objektdiagramm (engl. object diagram)
- Komponentendiagramm (engl. component diagram)
- Kompositionsstrukturdiagramm (engl. composite structure diagram)
- Verteilungsdiagramm (engl. deployment diagram)
- Paketdiagramm (engl. package diagram)
Verhaltensdiagramme
- Anwendungsfalldiagramm und Anwendungsfalldiagramm (UML2) (use case diagram)
- Zustandsdiagramm (engl. statechart)
- Aktivitätsdiagramm (engl. activity)
- Sequenzdiagramm und Sequenzdiagramm (UML2) (engl. sequence diagram)
- Interaktionsübersichtsdiagramm (engl. interaction overview diagram)
- Kommunikationsdiagramm (engl. communication diagram)
- Zeitverlaufsdiagramm (engl. timing)
Modellierungsreihenfolge
Die Modellierungsschritte sind nicht unabhängig sondern folgen i.d.R. einer Abwärts-Reihenfolge, d.h. die Software wird von hohem Abstraktionsgrad bis zu immer konkreteren Spezifikationen modelliert.
- Analyse des Geschäftsprozesses und der Anwendungsfälle
- Spezifikation der Abläufe innerhalb der und zwischen den einzelnen use cases in Sequenz- und Kollaborationsdiagrammen
- iterative Konstruktion des Klassendiagramms
Verknüpfungen mit anderen Sprachen
UML ist programmiersprachenunabhängig, wobei die volle Bandbreite der Modellierungsmöglichkeiten mittels UML erst bei objektorientierten oder objektbasierten Programmiersprachen ausgeschöpft werden kann.
Die statische Struktursemantik der UML-Diagrammsprachen (d.h. das Metamodell) basiert auf dem OMG-Standard der Meta-Object Facility (MOF).
CASE-Werkzeuge (Computer Aided Software Engineering) helfen beim Erstellen von UML-Modellen. Die Werkzeuge können aus den Diagrammen Quelltexte generieren - darin liegt die besondere Leistungsfähigkeit von UML-Tools. Auch können sie vorhandenen Code einlesen und daraus die entsprechenden Diagramme erzeugen. Diese beiden Funktionalitäten erlauben Roundtrip-Engineering. Der Datenaustausch zwischen Werkzeugen verschiedener Hersteller erfolgt über das Textformat XMI (XML Metadata Interchange).
Zur Unterstützung der Bemühungen der OMG um die Model Driven Architecture war es notwendig, die Basis der UML, das UML-Metamodell, vollständig und widerspruchsfrei zu machen.
Seit Anfang 2004 bietet die OMG die Möglichkeit der UML-Zertifizierung an.
Siehe auch
- objektorientierte Analyse (OOA)
- objektorientierter Entwurf (OOD)
- objektorientierte Programmierung (OOP)
- Refactoring
- Unified Modeling Language 2.0
Literatur
- Heide Balzert, Lehrbuch der Objektmodellierung, Spektrum Akademischer Verlag, 1999, ISBN 3-8274-0285-9
- Heide Balzert, UML 2 in 5 Tagen, W3L, 2005, ISBN 3937137610
- G.Booch, J.Rumbaugh, I.Jacobson: Das UML-Benutzerhandbuch, Addison-Wesley, 1999, ISBN 3-8273-1486-0
- M. Born, E. Holz, O. Kath: Softwareentwicklung mit UML 2, Addison-Wesley, 2004, ISBN 3-8273-2086-0
- M. Fowler: UML Distilled, 3. Auflage, Addison-Wesley, 2003, ISBN 0-321-19368-7
- M. Jeckle, C. Rupp, J. Hahn, B. Zengler, S. Queins: UML 2 glasklar, Hanser-Verlag, 2003, ISBN 9-446-22575-7
- B. Oestereich: Objektorientierte Softwareentwicklung mit der UML 2.0, Oldenbourg Verlag, 2004, ISBN 3486272667
- Dan Pilone: UML – kurz & gut, O'Reilly, ISBN 3-89721-263-3
- B. Rumpe, Modellierung mit UML, Springer Verlag, 2004, ISBN 3540209042
- Sinan Si Alhir: Learning UML, O'Reilly, ISBN 0-596-00344-7
- H. Störrle: UML 2 für Studenten, Pearson Studium Deutschland, 2005, ISBN 3827371430
- T. Weilkiens, B. Oestereich: UML2 Zertifizierung, Dpunkt Verlag, 2004, ISBN 3898642941
Weblinks
- OMG UML Die offizielle UML-Spezifikation (englisch)
- UML Resource Page (englisch) (alt)
- UML Resource Page (englisch) (neu)
- UML Special Interest Group (deutsch)
- UML-Mailingliste
- Cetus Links Eine Linksammlung rund um objektorientierte Belange
- UML 1.x und UML 2.0 Notationsübersicht (PDF)
- UML 2.0 - Glossar Deutsch und Englisch, mit Begriffserklärungen
- UML-Werkzeugübersicht enthält eine Übersicht über viele UML-Werkzeuge und ihre Fähigkeiten
- Der moderne Softwareentwicklungprozess mit UML Online-Buch zur UML (deutsch)
- UML Glossary Bebildertes UML Glossar (englisch)
- itemis CM3 Das Open Source Projekt CM3 bietet die Möglichkeit beliebige UML-Tools fachlich anzupassen, um so der Komplexität von großen Modellen gerecht zu werden. CM3 ist Bestandteil des Projektes Open Architectureware.