oose
Komm am 21.06. auf unseren oose.campus zum perspectives.festival 🥳
DeutschDeutsch

UML – Unified Modeling Language

Die UML ist die Notation zur Modellierung von fast allem. Auch wenn sie momentan hauptsächlich als Softwaretool wahrgenommen wird, ist sie doch schon für so unterschiedliche Dinge erfolgreich eingesetzt worden, wie Geschäftsprozessmodellierung, Modellierung komplexer Systems of Systems oder Definition einer Ontologie. Hier findest du einige Informationen zur UML.

 Object Management Group

Die Object Management Group ist die Organisation hinter der UML. oose ist dort Mitglied und arbeitet im Netzwerk der internationalen UML-Experten an der UML-Spezifikation mit.

Auf der UML-Website der OMG gibt es eine Fülle von weitergehenden Informationen. Insbesondere natürlich die aktuelle UML-Spezifikation selbst. Das ist ein komplexes Werk von über 1000 Seiten (wenn man zugehörige Dokumente wie OCL dazurechnet). Selbstverständlich gibt es dort noch Fehler. Jeder Leser, egal ob Mitglied oder nicht, kann diese über ein Formular melden. Allerdings ist der Fehler vielleicht schon gemeldet. Es gibt nämlich schon eine eine lange Liste, die aber auch so interessant ist, weil manch vermeintlicher Fehler einfach ein Missverständnis ist.

Zur UML-Spezifikation gehört auch das maschinenlesbare Metamodell. Es ist nicht einfach sich darin zurecht zu finden, da die UML aus 242 Metaklassen besteht , wovon aber nur 193 effektiv sind (49 sind abstrakt). In dieser Datei findest du eine taxonomische Übersicht, die man sogar lesbar auf DIN A3 ausdrucken kann.

UML 2.4.1 Taxonomy

Enthalten sind so gut wie alle Metaklassen und ihre Spezialisierungen und Generalisierungen. Weggelassen haben wir nur 34 spezielle Aktionen, die wirklich nur für spezielle Zwecke gebraucht werden (Stichwort Ausführbarkeit). Um Kreuzungsfreiheit zu erreichen haben wir ein paar Klassen mehrfach im Diagramm aufgenommen. Diese Doubles sind dann in einer helleren Farbe dargestellt. Bei jeder Klasse in einer dunklen Farbe sind alle ihre Generalisierungen und Spezialisierungen angegeben.

Die Information aus dem xmi-Metamodell gibt es bei der OMG auch als ansprechend aufbereitete Website. Dort findet sich zudem ein Validator, mit dem man die Konformität von selbst erstellten xmi-Dateien prüfen kann.

Zertifizierung

Die OMG hat ein Programm zur Zertifizierung von UML-Professionals aufgelegt, damit man das mühsam erworbene Wissen auch nachweisen kann. Hier findest du weitere Informationen.

UML-Werkzeuge

Ein reines Malwerkzeug tut es nicht für die UML. Schließlich muss das Tool auch das Modell selbst verwalten können. Die Diagramme sind ja nur Sichten auf das Modell. Die Auswahl an Tools ist groß, aber das eine ultimative Tool gibt es nicht. Wir helfen dir gerne, das für deine Anforderungen passende Modellierungswerkzeug auszuwählen. Hier ist eine unkommentierte Werkzeugliste für deine Vorauswahl.

Generierung von Dokumenten aus UML-Modellen

Was man modelliert hat, kann man in vielfältiger Form verwenden. Wenn’s sein muss auch zum Generieren von Dokumenten – und es ist häufig nötig. Für verschiedene Leserkreise benötigt man eben ausgewählte Inhalte des Modells, in lesbarer Form präsentiert. Das Thema wird zur Zeit heiß diskutiert, ein Standard der OMG ist im Gespräch. Wir haben gute Erfahrungen gemacht mit verschiedenen Ansätzen. Man kann eine bekannte Template-Sprache (z.B.Velocity oder Xtend) verwenden, die von manchen Tools auch intern eingesetzt wird. Andere Tools haben ihren proprietären Vorlageneditor an Bord. Ein ganz neuer Ansatz des European Southern Observatory definiert das Dokument mittels Stereotypen als UML-Modell. Wer Magic Draw verwendet, kann das Open Source-Plugin bei SourceForge herunterladen.

UML Bücher

Analyse und Design mit UML 2.5, Bernd Oestereich, Axel Scheithauer unter Mitarbeit von Stefan Bremer 11. Auflage, 2013, 350 Seiten, Oldenbourg Wissenschaftsverlag

UML Notationsübersicht

Hier findest du die aktuelle UML 2 Notationsübersicht (PDF-Datei, 4 Seiten, 304 KB)

Falls du ein großes Poster zum an die Wand hängen suchst – wir verteilen eines auf Messen und in unseren Seminaren. Außerdem liegt es dem Buch „Analyse und Design mit UML 2.5“ bei.

Für die verwandte SysML findest du hier SysML-Notationsübersichten.

Alle hier angebotenen Dateien stehen unter der Creative Commons Lizenz.

UML-Historie

Die Idee der Objektorientierung ist über 30 Jahre alt und fast ebenso lange liegt die Entwicklung objektorientierter Programmiersprachen zurück. Während es etwa solange bereits Publikationen zur objektorientierten Programmierung gibt, erschienen die ersten Bücher über objektorientierte Analyse- und Designmethoden erst Anfang der 90er Jahre.

Zu ihnen gehören die von Booch, Coad und Yourdon, Rumbaugh u.a., Wirfs-Brock und Johnson, Shlaer und Mellor, Martin und Odell, Henderson-Sellers, Firesmith. Wichtige Impulse gaben auch Goldberg und Rubin sowie Jacobson. Viele Methoden sind auf bestimmte Anwendungsbereiche spezialisiert und begrenzt.

Die Methoden von Grady Booch und James Rumbaugh haben sich Anfang der 90er Jahre zu den deutlich beliebtesten Methoden entwickelt. Die Methode von Rumbaugh war dabei eher an die strukturierten Methoden angelehnt. Die von Booch deckte die Bereiche kommerzieller, technischer und vergleichsweise gut auch zeitkritischer Anwendungen ab. 1995 begannen Booch und Rumbaugh dann, ihre Methoden zunächst in Form einer gemeinsamen Notation zur Unified Method (UM) zusammenzuführen. Die Unified Method wurde jedoch schon bald in Unified Modeling Language (UML) umbenannt, was auch eine angemessenere Bezeichnung darstellte, weil es sich im Wesentlichen nur um die Vereinheitlichung der grafischen Darstellung und Semantik der Modellierungselemente handelte, jedoch keine Methodik beschrieben wurde. Modeling Language ist hauptsächlich eine vornehmere Umschreibung für Notation.

Kurze Zeit später stieß auch Ivar Jacobson dazu, so dass die von ihm geprägten Use Cases (dt. Anwendungsfälle) integriert wurden. Die drei nannten sich fortan „Amigos“. Weil die Methoden von Booch, Rumbaugh und Jacobson bereits sehr populär waren und einen hohen Marktanteil hatten, bildete die Zusammenführung zur Unified Modeling Language (UML) einen Quasi-Standard. Schließlich wurde 1997 die UML in der Version 1.1 bei der Object Management Group (OMG) zur Standardisierung eingereicht und akzeptiert. Die Versionen 1.2 bis 1.5 enthalten jeweils einige Korrekturen. Die Version 2.0 ist bei der OMG 2005 erschienen. Die Version 2.5.1 ist 2017  veröffentlicht. Aktuelle Informationen finden Sie unter http://www.omg.org/uml/.

Die UML ist in erster Linie die Beschreibung einer einheitlichen Notation und Semantik sowie die Definition eines Metamodells. Die Beschreibung einer Entwicklungsmethode gehört nicht direkt dazu, sie wurde erst Anfang 1999 mit der Publikation des Buches [Jacobson99, The Unified Software Development Process], dem sogenannten Unified Process (UP) auf einem sehr abstrakten Niveau nachgeliefert. Eine konkretere Methodik findet sich in der 5. Auflage des Buches „Objektorientierte Softwareentwicklung, Analyse und Design mit der UML“ von Bernd Oestereich. Zu dem von den Amigos publizierten Vorgehen Unified Process gibt es ebenfalls verschiedene Ausprägungen, beispielsweise den Rational Unified Process (RUP) und den Object Engineering Process (OEP).

Die UML ist sehr vielfältig und integriert auch interessante Ideen und Konzepte anderer Autoren. Neben den Gedanken von Booch, Rumbaugh und Jacobson finden sich zum Beispiel auch die von Harel (Zustandsdiagramme) wieder.

Erdrückende Vielfalt?

Die Grundkonzepte objektorientierter Softwareentwicklungsmethodik sind ausgereift und bewähren sich in der Praxis. Andererseits bietet gerade die UML einen beachtlichen Detailreichtum und ist daher durchaus mit Bedacht anzuwenden.

Die Vielfalt der Beschreibungsmöglichkeiten kann sehr erdrückend wirken, ein tieferes Verständnis für die UML-Konstrukte in allen Facetten erfordert einigen Aufwand. In einer ersten Annäherung kann man sich deshalb auf die grundlegenden Elemente beschränken. In unseren Seminaren berücksichtigen wir diese Erkenntnisse explizit und vermitteln auch, welche UML-Konstrukte in der Praxis problematisch und welche wichtig sind. Es bleiben dadurch gegebenenfalls zwar semantische Lücken in der Modellierung, dennoch kann die Arbeit auf diesem Niveau in der Praxis ausreichen. Ganz abgesehen davon wird vielerorts überhaupt keine Systematik angewendet.