270 likes | 422 Views
Geoinformation III. Vorlesung 7a. Dynamische UML-Diagramme. 1. zuvor..... Ergänzungen zu Klassendiagrammen. Übungsaufgabe zur letzten Vorlesung (OCL) Pakete Stereotypen. 2. Übungsaufgabe. besteht_aus. Stellen Sie im nebenstehenden UML Diagramm durch OCL-Ausdrücke sicher,
E N D
Geoinformation III Vorlesung 7a Dynamische UML-Diagramme
1 zuvor..... Ergänzungen zu Klassendiagrammen • Übungsaufgabe zur letzten Vorlesung (OCL) • Pakete • Stereotypen
2 Übungsaufgabe besteht_aus Stellen Sie im nebenstehenden UML Diagramm durch OCL-Ausdrücke sicher, dass ein ZUSO entweder nur durch REOs repräsentiert wird (mindestens eines) oder nur aus ZUSOs (mindestens einem) besteht. Nicht passieren darf also, dass ein ZUSO aus gar nichts besteht, oder dass ein ZUSO aus REO und ZUSO besteht. 0 .. * Raum- bezogenes zusammen- gesetztes Objekt (ZUSO) 0..1 1 Repräsen-tation 0 ..* Raum- bezogenes Elementar- objekt (REO)
ZUSO REO 3 Übungsaufgabe Instanzendiagramm: besteht_aus 0 .. * Raum- bezogenes zusammen- gesetztes Objekt (ZUSO) NRW 0..1 Reg. Bez. D‘dorf Reg. Bez. Köln 1 Repräsen-tation Kreis Euskirchen Kreis Rhein - Sieg 0 ..* Raum- bezogenes Elementar- objekt (REO) Flurst. 12 Flurst. 1 Flurst. 21 Flurst. 444
4 Lösung besteht_aus 0 .. * Raum- bezogenes zusammen- gesetztes Objekt (ZUSO) 0..1 1 context ZUSO inv: Repräsentation.size + besteht_aus.size > 0 and Repräsentation.size > 0 implies besteht_aus.isEmpty() and besteht_aus.size > 0 implies Repräsentation.isEmpty() Repräsen-tation 0 ..* Raum- bezogenes Elementar- objekt (REO)
5 Pakete (Packages) • Projekte mit vielen Klassen werden unübersichtlich • Strukturierung durch Pakete • ein Paket fasst inhaltlich ähnliche Klassen zusammen • Pakete können verschachtelt sein • Jedes Paket definiert Namensraum • Zugriff auf Klassen in anderen Paketen durch<Paketname>::<Klassenname> • dasselbe Konzept wie in Java
Geometric Aggregate + GM_MultiCurve + GM_MultiPoint ......... 6 Beispiel für ein Paket • Symbol für Paket • Name des Pakets • Klassen im Paket(+: von Außen zugreifbar)(- : geheim)
Geometry Topology Topological_Primitive + TP_Boundary + TP_Ring ........ A 7 Paket-Diagramm: Beispiel ISO Spatial Schema • Abhängigkeit, z.B. • Methodenaufruf • Parameter • Unterklasse Geometric Aggregate + GM_MultiCurve + GM_MultiPoint ......... Topological_Complex + TP_Complex ......... Geometric_Primitive + GM_Curve + GM_Surface + GM_Point ......... Toplogical_Complex ist Unterpaket von Topology 5x
8 Stereotypen • anwendungsspezifische Erweiterung von Klassendiagrammen • zusätzliche Information zu Klassen durch Etikettierung mit Begriffen (Stereotypen) • Bsp: Stereotyp "Vertrieb" bei Klasse Kunde zur Unterscheidung der Zuständigkeit innerhalb eines Unternehmens • (neben <<Buchhaltung>>, <<Personalabteilung>>,...) <<Vertrieb>> Kunde Alter: int Bonität: String vorbestraft: bool
9 Stereotypen: Bsp. ALKIS <<Metadata>> Lagegenauigkeit Varianz: double ........ <<Geometry>> Polygon Fläche: double ........ <<Feature>> Flurstück Gemarkung: String ..........
10 Stereotypen • neben Klassen auch verwendbar für • Attribute • Methoden • Assoziationen
11 Überblick: dynamische UML-Diagramme • bisher: statische UML-Diagramme (Klassendiagramme) • statische Struktur der Klassen mit deren Attributen und Beziehungen, Invarianten, Pakete • heute: Modellierung dynamischer Aspekte: Aktivitäten, Zustandsübergänge, Methodenaufrufe • Zweck: Problemanalyse und Programmentwurf • Arten von dynamischen UML-Diagrammen: • Aktivitätsdiagramm • Zustandsdiagramm • Sequenzdiagramm • Wann ist welches geeignet?
Auslieferung Vertrieb Rechnungswesen Auftrag erhalten Auftrag fertig stellen Über Nacht Auslieferung Normale Auslieferung Auftrag abschließen Rechnung senden Zahlung erhalten A 12 Zuständigkeitsbereiche Aktivitätsdiagramm: Beispiel Anfangszustand Aktivität Bedingung Aufspaltung Entscheidung [Eilauftrag] [else] Synchronisation Zusammen- führung Endzustand 12x
Auftrag erhalten 13 Aktivitätsdiagramm: Legende Entscheidung Aktivität [x > 0] [x < 0] Anfangszustand [x = 0] Endzustand Reihenfolge Zusammenführung Aufspaltung Synchronisation
14 Aktivitätsdiagramme • geeignet, um • Verfahrensabläufe darzustellen • parallele, nebenläufige Prozesse zu modellieren • weniger geeignet, • um Zustandsübergänge eines Objekts zu beschreiben • um den Zusammenhang zwischen einer Aktivität und einem Objekt darzustellen • "... ist nicht objektorientiert .... "
15 Zustandsdiagramm: Beispiel "Graphische Benutzeroberfläche" Software-Demo: Erstellen einer Graphik in Powerpoint - Zustände und Zustandsübergänge
A 16 Klick ins Leere Auswahlmodus 10x
A 16 Mausbewegung Bewegen der Linie Klick ins Leere Linie in Mitte anklicken Auswahlmodus Taste loslassen 10x
A 16 Mausbewegung Bewegen der Linie Klick ins Leere Linie in Mitte anklicken Auswahlmodus Taste loslassen Linie am Ende anklicken Taste loslassen Bewegen des Endpunkts der Linie Mausbewegung 10x
Einfach-klick A 16 Mausbewegung Bewegen der Linie Klick ins Leere Linie in Mitte anklicken Auswahlmodus Taste loslassen Linie am Ende anklicken Taste loslassen Zeichenmodus einfach Bewegen des Endpunkts der Linie Taste loslassen Taste drücken Warten auf 2. Punkt Mausbewegung 10x
Klick Doppel-klick Einfach-klick A 16 Mausbewegung Bewegen der Linie Klick ins Leere Linie in Mitte anklicken Auswahlmodus Taste loslassen Linie am Ende anklicken Taste loslassen Zeichenmodus mehrfach Zeichenmodus einfach Bewegen des Endpunkts der Linie Taste loslassen Taste drücken Taste loslassen Taste drücken Warten auf 2. Punkt Mausbewegung Warten auf 2. Punkt Mausbewegung 10x
Klick Doppel-klick Einfach-klick A 16 Mausbewegung Endzustand Anfangszustand Bewegen der Linie Klick ins Leere Linie in Mitte anklicken Graphik schließen Auswahlmodus Taste loslassen Linie am Ende anklicken Taste loslassen Zeichenmodus mehrfach Zeichenmodus einfach Bewegen des Endpunkts der Linie Zustand Taste loslassen Taste drücken Taste loslassen Taste drücken Warten auf 2. Punkt Mausbewegung Warten auf 2. Punkt Zustandsübergang (Ereignis, Aktion) Mausbewegung 10x
Auswahlmodus 17 Zustandsdiagramm: Legende Zustand Anfangszustand Endzustand Zustandsübergang bei Ereignis Taste drücken
18 Zustandsdiagramme • Geeignet, wenn • Zustände und Zustandsübergänge eines Objekts modelliert werden sollen • Ungeeignet, wenn • Kommunikation zwischen Objekten modelliert werden soll
Auftrags-erfassungs-fenster Auftrag Lagerartikel Lieferartikel A 19 Sequenzdiagramm: Beispiel Objekt new ( ) Lebensliniedes Objekts bereite vor ( ) prüfe vorhanden ( ) Nachbestellung ( ) Nachricht/Methodenaufruf Rückgabe Selbstaufruf Untergang des Objekts new ( ) Erzeugung 7x
Fenster Objekt4 modaler Dialog (z.B. "Datei öffnen") nichtmodaler Dialog (z.B. Toolbar) A 20 Sequenzdiagramm: synchrone vs. asynchrone Methodenaufrufe asynchron:Das aufrufende Objekt wartet nicht, bis Aufruf beendet ist erzeugen ( ) erzeugen ( ) Methode ( ) synchron: Das aufrufende Objekt wartet, bis Aufruf beendet ist 2x