UML
Die UML (Unified Modeling Language) ist eine standardisierte, grafische Modellierungssprache, die primär für die Spezifikation, Visualisierung, Konstruktion und Dokumentation von Softwaresystemen, insbesondere im Rahmen der objektorientierten Entwicklung, eingesetzt wird. Sie dient als gemeinsames, technisches Kommunikationswerkzeug zwischen Entwicklern, Analysten und Stakeholdern.
UML (Unified Modeling Language) – Ausführliche technische und organisatorische Aspekte
Die UML wurde in den 1990er Jahren von den sogenannten „Drei Amigos“ (Grady Booch, Ivar Jacobson und James Rumbaugh) bei Rational Software entwickelt und später von der OMG (Object Management Group) als Industriestandard etabliert. Ihre Bedeutung liegt in der Bereitstellung eines umfassenden Satzes von Notationen und Diagrammtypen, die es ermöglichen, die komplexen technischen und organisatorischen Strukturen eines Softwaresystems zu abstrahieren und präzise darzustellen.
Technische Aspekte und Diagrammtypen
Die UML ist technisch nicht auf eine bestimmte Programmiersprache beschränkt, sondern fokussiert auf die Konzepte der Objektorientierung (OO) wie Kapselung, Vererbung und Polymorphie. Sie unterteilt sich in zwei Hauptkategorien von Diagrammen:
- Strukturdiagramme: Diese stellen die statischen Aspekte eines Systems dar, wie die Komponenten, ihre Beziehungen und ihre innere Zusammensetzung:
- Klassendiagramm: Das zentrale Diagramm, das Klassen, Attribute, Methoden und die Beziehungen (Assoziationen, Vererbung, Aggregation) zwischen ihnen modelliert. Es ist die technische Blaupause für die Implementierung.
- Komponentendiagramm: Zeigt die Struktur und Abhängigkeiten der Softwarekomponenten (z.B. Bibliotheken, Module) in der Systemarchitektur.
- Verteilungsdiagramm: Visualisiert die physische Verteilung der Softwareartefakte auf Hardwareknoten (Server, Clients).
- Verhaltensdiagramme: Diese stellen die dynamischen Aspekte eines Systems dar, wie Interaktionen, Abläufe und Zustandsänderungen:
- Anwendungsfalldiagramm (Use Case Diagramm): Modelliert die funktionalen Anforderungen des Systems aus Sicht der Akteure (Benutzer oder andere Systeme) – ein wichtiger Startpunkt für die Anforderungsanalyse.
- Aktivitätsdiagramm: Stellt den Ablauf von Arbeitsprozessen oder logischen Abläufen dar (ähnlich einem erweiterten Flussdiagramm).
- Sequenzdiagramm: Zeigt die zeitliche Abfolge von Nachrichten und Interaktionen zwischen Objekten zur Erfüllung eines bestimmten Szenarios.
Organisatorische und Prozessuale Bedeutung
Organisatorisch ist die UML ein wesentliches Werkzeug in der Softwareentwicklungsmethodik, insbesondere im Rahmen des Rational Unified Process (RUP) und agiler Prozesse:
- Kommunikation: Die UML dient als gemeinsame Sprache zwischen organisatorisch getrennten Teams (Analyse, Design, Entwicklung, Test). Die grafische Notation reduziert Mehrdeutigkeiten, die in rein textuellen Spezifikationen oft auftreten.
- Anforderungsmanagement: Das Anwendungsfalldiagramm hilft organisatorisch bei der Erfassung und Validierung der Anforderungen mit den Business-Stakeholdern, bevor die technische Implementierung beginnt.
- Wartung und Dokumentation: Gut dokumentierte UML-Modelle erleichtern die Einarbeitung neuer Teammitglieder und reduzieren die Kosten für die spätere Wartung, da die Architektur des Systems schnell verständlich ist.
- Modellgetriebene Entwicklung (MDD): In fortgeschrittenen organisatorischen Prozessen dient die UML als Basis für die automatische Codegenerierung, wodurch die Entwicklungszeit verkürzt und die Konsistenz zwischen Modell und Code gewährleistet wird.
zurück zur Übersicht