Einführung UML COMPUTERSIMULATION NACHRICHTENTECHNISCHER SYSTEME 11. Unified Modeling Language UML 220 Standardsprache d zur Visualisierung, i Spezifikation, Konstruktion und Dokumentation komplexer (Software-) Systeme. Prozess- und technologieunabhängig im gesamten Entwicklungszyklus einsetzbar von der Object Management Group (OMG) entwickelt und standardisiert Festlegung der Bezeichner für die meisten Begriffe, die für die Modellierung wichtig sind Definition möglicher Beziehungen zwischen diesen Begriffen grafische Notationen für diese Begriffe für Modelle von statischen Strukturen und von dynamischen Abläufen UML-Historie nach Wikipedia Teilspezifikationen der UML 2.0 221 Quelle: http://de.wikipedia.org/wiki/bild:oo-historie.png aktuelle Version UML 2.1.2 222 UML 2.0 Infrastructure t Specification Beschreibung der am häufigsten verwendeten Elemente der UML2 und der Modellelemente, die die restlichen Modellelemente spezialisieren, z. B. Klasse Assoziation Multiplizität eines Attributs UML 2.0 Superstructure Specification Definition der Modellelemente der UML2, die sich für bestimmte Einsatzzwecke eignen, z. B. Anwendungsfall Aktivität Zustandsautomat UML 2.0 Object Constraint Language (OCL2) textuellen Spezifikation von Invarianten in Klassendiagrammen, von Bedingungen in Sequenzdiagrammen oder der Formulierung von Vor- und Nachbedingungen für Methoden
Diagramme in UML 2 Klassendiagramme 223 224 Strukturdiagramme: das Klassendiagramm, das Kompositionsstrukturdiagramm (auch: Montagediagramm), das Komponentendiagramm, das Verteilungsdiagramm, das Objektdiagramm und das Paketdiagramm. Verhaltensdiagramme: das Aktivitätsdiagramm, das Anwendungsfalldiagramm (auch: Use-Case o. Nutzfalldiagramm genannt), das Zustandsdiagramm, das Interaktionsübersichtsdiagramm, das Kommunikationsdiagramm, das Sequenzdiagramm und It Interaktionsdiagramme das Zeitverlaufsdiagramm (auch: Timing-Diagramm). Klassen bestehen aus Namen (verpflichtend) Attributen Operationen Abteil http://de.wikipedia.org/wiki/bild:class-2.png Abstrakte Klassen und Operationen sind möglich Attribute einer Klasse Datentypen 225 Zur Präzisierung i von Konzepten oder Implementationsgestaltung ti t lt Werte der Attribute in Slots abgelegt, Zugriff per Namen des Attributs alle Objekte einer Klasse verfügen über dieselben Arten von Slots, die aber mit unterschiedlichen Werten gefüllt sein können Attribute sind von einem bestimmten Typ: vordefinierte Basistypen, nutzereigene Typen dennoch kann Typangabe fehlen können mit Multiplizitäten versehen sein (Achtung: mit Klammerung [ ]) können mit explizit gesetzten Anfangswerten, Eigenschaften (Achtung: mit Klammerung { }) und Sichtbarkeiten ausgestattet sein 226 Definition der Datentypen erfolgt als Stereotype Werte besitzen keine Identität Vordefiniert: i Boolean, String, Integer, Uli Unlimitedi Natural
Sichtbarkeiten Das Classifier-Konzept 227 Quelle: http://de.wikipedia.org/wiki/bild:class-3.png Können explizit it angegeben werden: + (public): allgemein im Namensraum sichtbar # (protected): in allen Elementen sichtbar, von denen eine Generalisierungsbeziehung zum umgebenden Namenraum besteht ~ (package): in allen Elementen des gleichen Pakets sichtbar -(private): nur innerhalb des jeweils unmittelbar umgebenden Namensraum sichtbar (z.b.: in der definierenden Klasse, im definierenden Paket) 228 229 Wichtige Beziehungen Generalisierung / Spezialisierung Eine Klasse verfeinert eine andere Klasse Assoziation Beziehung zwischen zwei oder mehr Klassen An den Enden von Assoziationen sind häufig Multiplizitäten vermerkt Komposition und Aggregation Beziehung zwischen einem Ganzen und seinen Teilen Aggregation = schwache Komposition, d. h. Teile können auch ohne das Ganze existieren 230 Assoziationen und Links: Objektdiagramm Quelle: http://casablanca.informatik.hu-berlin.de/database/modsoft/vl/v4-modsoft-ii.klassen(1).pdf N-stellige Assoziationen
Kompositionsstrukturdiagramm Komponentendiagramm 231 232 http://de.wikipedia.org/w/index.php?title=bild:component-4.png&filetimestamp=20050406195806 Quelle: http://de.wikipedia.org/wiki/bild:kompositionsstrukturdiagramm-1.png Strukturdiagramm: bestimmte Sicht auf die Struktur des modellierten Systems Komponenten mit deren Schnittstellen bzw. Ports. Abhängigkeitsbeziehungen und Konnektoren Verteilungsdiagramm Paketdiagramm 233 234 http://de.wikipedia.org/w/index.php?title=bild:packageimport-2.png&filetimestamp=20050321183100 http://de.wikipedia.org/wiki/bild:verteilungsdiagramm-1.png Statischen ti Modellierung: Darstellung der Verteilung von Komponenten auf Rechenknoten Artefakte Ausprägungsspezifikationen Knoten Verteilungsbeziehungen Strukturdiagramm: Sicht auf die Struktur des modellierten Systems Pakete Paketverschmelzungen Paketimports Abhängigkeitsbeziehungen
Aktivitätsdiagramm Anwendungsfalldiagramm 235 Verhaltensdiagramm dynamischen Aspekte des modellierten Systems Vernetzung von elementaren Aktionen und deren Verbindungen mit Kontroll- und Datenflüssen Ablauf eines Anwendungsfalls Grundlage: Petri-Netze 236 Verhaltensdiagramm: erwartete Verhalten eines Systems Spezifikation der Anforderungen an ein System Darstellung von Anwendungsfällen und Akteuren mit ihren Abhängigkeiten und Beziehungen Ein Anwendungsfalldiagramm g stellt keine Ablaufbeschreibung dar. http://de.wikipedia.org/w/index.php?title=bild:activity-2.png&filetimestamp=20050620154613 http://de.wikipedia.org/w/index.php?title=bild:usecase-7.png&filetimestamp=20050330143950 Interaktionsübersichtsdiagramm Kommunikationsdiagramm 237 Verhaltensdiagramm: Sicht auf die dynamischen Aspekte des modellierten Systems Beteiligte Lebenslinien Ausgetauschte Nachrichten 238 Verhaltensdiagramm dynamischen Aspekte des modellierten Systems Interaktionen Austausch von Nachrichten zwischen Ausprägungen mittels Lebenslinien http://de.wikipedia.org/wiki/bild:kommunikationsdiagramm-2.png http://de.wikipedia.org/wiki/bild:iau-diagramm-1.png
Sequenzdiagramm Zustandsdiagramm 239 grafische Darstellung einer Interaktion durch den Austausch von Nachrichten nahe verwandt mit Message Sequence Charts (MSC) in der Regel ein Weg durch einen Entscheidungsbaum innerhalb eines Systemablaufes http://de.wikipedia.org/wiki/bild:sequenzdiagramm-3.png 240 Grafische Darstellung eines endlichen Automaten Spezifikation des Verhaltens eines Systems oder der zulässigen Nutzung der Schnittstelle eines Systems Die in der UML verwendete Diagrammform ist eine Variante des Harel- Zustandsdiagramms. http://de.wikipedia.org/wiki/bild:statemachine-6.png Zusammenfassung Literatur 241 242 UML ist ein allgemein akzeptierter und weit verbreiteter Standard für die Modellierung von Prozessen der Informationstechnik Probleme laut Wikipedia: Übermäßiger Notations- oder Sprachumfang Aufwand zum Erlernen der Notation Prägnanz der Abbildung in UML Die Verallgemeinerung der Notation ti der UML ist formal nicht geschlossen und nicht abgegrenzt Unified Modeling Language bei Wikipedia, http://de.wikipedia.org/wiki/unified_modeling_la nguage. Prof. Mario Jeckle: UML 2.0 Die neue Version der Standardmodellierungssprache, Fachhochschule Furtwangen, 2004. Prof. Dr. Joachim Fischer: Software-Entwicklung mit UML 2, Humboldt-Universität Berlin, WS 2007/08.