Lerneinheit 2 UML - Diagramme
Diagramme in der UML Wesentlicher Bestandteil der Modellbildung Graphen, wobei fundamentale Modellelemente (z.b. Klassen, Objekte, Zustände) die Knoten und Beziehungen zwischen den Modellelementen die Kanten bilden Identifikation der Modellelemente und semantische Informationen durch Stringeintragungen und Labeling Ziel: Schnell wesentliche Zusammenhänge sichtbar machen Auslagerung von Detailinformationen in formalisierte Tabellen (nicht durch UML definiert)
Diagrammtypen Use-Case-Diagramm statische Strukturdiagramme: Klassendiagramm, Objektdiagramm, Paketdiagramm Interaktionsdiagramme zur Beschreibung des Informationsaustausches: Sequenzdiagramm, Kommunikationsdiagramm, Zeitdiagramm Zustandsdiagramme zur Beschreibung des Verhaltens: Zustandsdiagramm, Aktivitätendiagramm Architekturdiagramme zur Beschreibung der Implementierung: Komponentendiagramm, Einsatzdiagramm
Interaktionsdiagramme Interaktion = Reaktion von Objekten auf Ereignisse (Botschaften) und dadurch ausgelöste Aktionen, wodurch wiederum Ereignisse für andere Objekte ausgelöst werden können Interaktionsdiagramme stellen die Interaktionen zwischen den beteiligten Objekten dar drei Darstellungsformen: Sequenzdiagramm Kommunikationsdiagramm Zeitdiagramm
Zustandsdiagramme Darstellung des inneren dynamischen Verhaltens eines Objektes, das mit anderen Objekten interagiert zwei Darstellungsformen: Zustandsübergangsdiagramm (state chart diagram) Aktivitätendiagramm (activity diagram)
Architekturdiagramme Darstellung des physikalischen Entwurfs (Modularisierung, Konfigurierung) eines Systems zwei Darstellungformen: Komponentendiagramm (component diagram) Einsatzdiagramm (deployment diagram)
Interaktionsdiagramme Bestandteile Objekte, die an der Interaktion beteiligt sind Angaben zum Lebenszyklus der beteiligten Objekte Kommunikationspfade und Botschaften zwischen den beteiligten Objekten Reaktionen der Empfängerobjekte auf eingehende Botschaften Reihenfolge der Botschaften
Lerneinheit 2 Sequenzdiagramm
Sequenzdiagramm Definition Interaktionsdiagramm, das die zeitliche Sequenz (Reihenfolge) der Interaktionen von Objekten betont Die Botschaften werden in zeitlicher Ordnung als gerichtete Verbindungen zwischen den Lebenslinien der Objekte dargestellt
Sequenzdiagramm Auftragserteilung durch Neukunden :Kunde :Verkäufer :Controller Scripts: Ereignis: Kunde erteilt Auftrag Auftrag Anfrage Bonität (Kunde) Bonität Erzeugung des Objekts Auftrag Bestätigung Ablehnung [Bonität ok] [Bonität nicht ok] [Bonität ok] [auslieferungsfähig] :Auftrag {b. SendTime - a. SendTime = 2 Werktage} a: Lieferung b: Rechnung Zahlung Zahlungseingang
Sequenzdiagramm Einsatzfelder Präzisierung von Anwendungsfall-Szenarien Darstellung des Entwurfs von Interaktionen im DV-System Spezifikation von Echtzeit-Systemen
Sequenzdiagramm Modellelemente (1) Objekte: Horizontale Anordnung am oberen Rand des Diagramms oder Darstellung zum Zeitpunkt der Erzeugung Objekt-Lebenslinien: Vertikale Ausrichtung; kennzeichnen die Existenz und Lebensdauer eines Objektes (Symbol: gestrichelte Linie); Aufspaltung der Lebenslinie bei Aktivitäten des Objekts, die aus alternativen oder sich zeitlich überdeckenden Botschaften resultieren
Sequenzdiagramm Modellelemente (2) Botschaften (als Pfeile zwischen den Lebenslinien dargestellt): Synchroner Operationsaufruf ( ) Asynchroner Operationsaufruf ( ) (UML 1.0 ) Rückgabewert ( ) Syntax: ["[" Wächter-Bedingung "]"] NameBotschaft [([Parameter])] Iterative Übermittlung von Botschaften: Syntax *["[ Iterationsbereich "]"]
Sequenzdiagramm Detailinformationen (1) Dauer der Objektaktivierung: Zeigt die Zeitdauer an, die ein Objekt zur Ausführung einer Aktivität benötigt (Transformation der Lebenslinie zu einem Balken); Symbolisierung von Rekursionen durch überlagerte Balken Script: Nähere Angaben zu einer Botschaft (z.b. auslösendes Ereignis) als freier Textstring (Darstellung am linken Diagrammrand auf Höhe der Botschaft) Zeitliche Ordnung der Botschaften: Botschaften sind zeitlich geordnet; bei Bedarf kann skalierbare Zeitachse verwendet werden
Sequenzdiagramm Detailinformationen (2) Spezifikation von Zeitbedingungen: Verwendung von beliebigen Zeitfunktionen (z.b. sendtime, receivetime) möglich Übermittlungsdauer: Falls diese nicht vernachlässigt werden kann, Verdeutlichung durch schräg verlaufenden Botschaftspfeil Erzeugung und Löschung eines Objektes Alternative und parallele Botschaften: Bedingungsabhängige oder zeitgleiche Botschaften an andere Objekte
Sequenzdiagramm Nebenläufige Lebenslinie (Beispiel) :Kunde :Verkäufer :Controller Auftrag [Neukunde] Bonitätsprüfung [Bestandskundekunde] Auftragsübersicht Bonität Auftragsliste
Lerneinheit 2 Kommunikationsdiagramme
Kommunikationsdiagramm Definitionen Statische Elemente der Kommunikation: Klassen, Assoziationen und ihre Rollen (Spezifikationsebene) bzw. Objekte, Links und Ereignisse (Instanzenebene) Dynamisches Konstrukt der Kommunikation: Interaktionen Ein Kommunikationsdiagramm repräsentiert die Zusammenarbeit in Form eines Graphen. Knoten sind die Klassen (Objekte), Assoziationen (Links) die Kanten. Botschaften werden entlang der Kanten dargestellt.
Kommunikationsdiagramm Auftragserteilung durch Neukunden 1: Auftrag :Kunde [Bonität ok] 3A: Bestätigung [Bonität nicht ok] 3: Ablehnung :Verkäufer [Bonität ok] 3B: Auftrag 2: Bonität := Anfrage Bonität (Kunde) 4: Lieferung 5: Rechnung {new} :Auftrag {destroy} 7: Zahlungseingang :Controller 6: Zahlung
Syntax: Kommunikationsdiagramm Zeitliche Reihenfolge von Botschaften [Sequenznummern/] ["[" Wächter-Bedingung "]"] [Sequenzausdruck] NameBotschaft Sequenznummer: Liste mit Sequenznamen anderer Botschaften Wächter-Bedingung: Botschaft wird nur weitergeleitet, wenn Bedingung erfüllt ist Sequenzausdruck: Syntax: [Name Zahl][.Zahl...][SequenzName] Die Zahlenfolge kennzeichnet die relative Reihenfolge der Botschaften SequenzNamen kennzeichnen zeitliches Nebeneinander von Botschaften
Kommunikationsdiagramm Weitere Detailinformationen Iterative Botschaftsübermittlung: *["[" Iterationsbereich "]"] Rückgabewerte: [NameVariable:=]NameBotschaft([Parameterliste]) Link-Attribute: Stellen den Bezug zum statischen Modell her. U.a. folgende Kennungen möglich: Name der Rolle eines anonymen Objektes Deskriptoren für Beschränkungen bei einem Objekt bzw. Link: z.b. {new}, {destroy},{transient}, {persistent}
Kommunikationsdiagramm Einsatzfelder Darstellung der Realisierung einer Operation Darstellung zeitgleicher Interaktionen von Objekten Darstellung der Dynamik von Entwurfsmustern
Kollaborationsdiagramm Darstellung des Operationsablaufes studentteachers() tutor / Teacher : Person lecturer / Teacher : Person 1: namesofteachers() 1.2.i: name() 1.1*[i:=1..n]: lecturer() / Student : Person :Course
Kommunikationsdiagramm auf Spezifikationsebene (Beispiel) Benutzer benachrichtigen Vormerker 1 veranlaßt * Vormerkung benachrichtigen * betrifft 1 Buch Vormerkung prüfen Entleiher 1 0,1 1 gehört zu gibt zurück * * Ausleihe Exemplar 0,1 betrifft 1 zurücknehmen entlasten reservieren reserviert 0,1 * gehört zu
Übung Kommunikationsdiagramm - Lösung /Entleiher : Benutzer /Vormerker : Benutzer 4B: benachrichtigen () :Vormerkung 1: zurücknehmen () 4A: reservieren () 3: benachrichtigen () :Ausleihe 2A: entlasten () {destroy} :Exemplar 2B: Vormerkung prüfen () :Buch
Lerneinheit 2 Zustandsübergangsdiagramme
Objektzustand Definition Der Zustand eines Objektes ist eine Sammlung/Ausprägung von Attributen des Objektes und Beziehungen des Objektes zu anderen Objekten.
Warte- und Aktionszustände Wartezustand: Ein Zustand in dem das Objekt auf das Eintreten eines Ereignisses und/oder die Erfüllung einer Bedingung wartet. Aktionszustand: Ein Zustand in dem das Objekt definierte Aktionen ausführt.
Zustand - Notation Symbol: Symbolinhalte: Bezeichner(:String) Aktionen: Syntax: Aktionsbezeichner/Aktionsausdruck entry-aktion Syntax: entry/aktionsausdruck exit-aktion Syntax: exit/aktionsausdruck do-aktion Syntax: do/aktionsausdruck ereignisbedingte Aktion Syntax: Ereignis["[" Wächterbedingung ] ]/Aktionsausdruck
Einfache Zustände Objekte :KontoAuszugsDrucker :WindowObjekt Zustände Aktionszustand prüfe Karte Wartezustand Paßworteingabe bzw. alternativ Kartenprüfung do / pruefekarte( ) entry / ausschaltenecho() onzeichentaste(z:char) / transformiere(z) onf1 / anzeigenhilfe() exit / einschaltenecho()
Einfacher Zustandsübergang Ein einfacher Zustandsübergang (Transition) ist der Übergang eines Objektes von einem Start- in einen Zielzustand Start- und Zielzustand können identisch sein Auslöser: Ereignis und (optional) Wächterbedingung erfüllt (Wartezustand) Abschluß einer Aktivität (Aktionszustand) Zustandsübergang kann Aktionen auslösen
Notation eines Zustandsübergangs Syntax [Ereignis]["["Wächter-Bedingung ]"] / [Aktions-Ausdruck] [^Sendeklausel] Ereignis: Ereignisname[(Parameterliste)] Aktions-Ausdruck: Liste von Aktionen, die durch den Zustandsübergang ausgelöst werden Sendeklausel: Zielobjekt.Ereignisname[(Paramterliste)]
Zustandsübergang Beispiel WindowObjekte dargestellt ClickMausTaste (Pos : Point) [Pos-in-einemObjekt] / Objekt := pickobjekt(pos) Objekt.blinken WindowObjekt selektiert
Zustandsübergangsdiagramm Definition Ein Zustandsübergangsdiagramm zeigt die Zustände eines repräsentativen Objektes einer Klasse und die Zustandsübergänge in Form eines Graphens (Zustände=Knoten, Übergänge = Kanten). Es hat einen Startzustand (Symbol: ausgefüllter Kreis) und einen oder mehrere Endzustände (Symbol:Kreisring)
Zustandsübergangsdiagramm Auftrag [Neukunde] Aufgenommen do / Bonität prüfen [Bonität ok] [Bonität nicht ok] / Ablehnen [Bestandskunde] Angenommen do / Lieferdatum ermitteln Bestätigt / Bestätigen Auslieferungsfähig / Rechnung, ausliefern Ausgeliefert Zahlungsziel verstrichen / Mahnung Zahlungseingang [Zahlung vollständig] Zahlungseingang [Zahlung unvollständig] / Anforderung Restbetrag
Zustandsübergangsdiagramm Einsatzfelder Modellierung von Zuständen eines Anwendungsfalls/Szenarios (in der Analysephase) oder eines Controller-Objektes (in der Designphase) Spezifikation von Objekten deren Verhalten stark ereignisgesteuert ist
Zusammengesetzter Zustand Definition Ein zusammengesetzter Zustand besteht aus mehreren nebenläufigen Subzuständen (Regionen) oder sich gegenseitig ausschließende Subzuständen. Die Übergänge zwischen den Subzuständen eines zusammengesetzten Zustands werden i.a. mit Zustandsübergangsdiagrammen dargestellt. Die Details eines zusammengesetzten Zustands können verborgen werden.
Zusammengesetzter Zustand Transitionen Übergang in einen zusammengesetzten Zustand (Z): Eine Transition, die gezeichnet am Rand des Symbols für Z endet, ist äquivalent mit einer Transition in alle Pseudoanfangszustände von Z. Eine Transition in einen Subzustand von Z ist möglich. Übergang von einem zusammengesetzten Zustand (Z): Ein Transition von Z führt zum unmittelbaren Verlassen aller Subzustände von Z. Eine (direkte) Transition von einem Subzustand in einen Zustand außerhalb von Z ist möglich.
Zusammengesetzter Zustand Interne und externe Zustandsübergange Zusammengesetzter Zustand Zustand 1 E1 E1.1 SubZust 1.1 SubZust 1.2 E1.2 Zustand 5 H SubZust 2.1 SubZust 2.2 SubZust 2.3 E2.1 E2.2 E2.3 E2 Zustand 2 E4 E3 Zustand 3 E6 E5 Zustand 4
Zusammengesetzter Zustand History Indicator Eine Transition in den History Indicator eines zusammengesetzten Zustands (Z) (oder einer Region von Z) bedeutet, daß der Übergang in den Subzustand von Z erfolgt, den Z vor dem letztmaligen Verlassen eingenommen hatte. Symbol des History Indicators: H
Zusammengesetzter Zustand Zustandsübergangsrumpf Um bei einem zusammengesetzten Zustand, dessen Details innerhalb eines Zustandsübergangsdiagramms verborgen sind, zu symbolisieren, daß eine Transition in einen Subzustand erfolgt oder von einem Subzustand erfolgt, kann ein Zustandsübergangsrumpf verwendet werden. Symbol:
Zustandsübergangsrumpf Struktur (a) Zustandsübergangsdiagramm ohne Zustandsübergangsrumpf Zustand 3 E5 Zustand 1 E1 SubZust 3.1 E5 Zustand 4 E3 Zustand 2 E2 SubZust 3.2 E4 Zustand 5 (a) Zustandsübergangsdiagramm mit Zustandsübergangsrumpf Zustand 1 E5 E1 Zustand 3 Zustand 4 Zustand 2 E2 Zustand 5
Komplexer Zustandsübergang Unter einem komplexen Zustandsübergang versteht man eine Transition mit mehreren Startzuständen (Synchronisation) oder mehreren Zielzuständen (Verzweigung) Symbol:
Komplexer Zustandsübergang Warenanlieferung erfolgt Lieferschein prüfen [ok] Ware prüfen [ok] Warenerhalt bestätigen
Übung Zustandsübergangsdiagramm - Lösung (a) Start /Initialisierung Normalzeit Uhrzeit H Knopf1Press Knopf1Press Datum (b) Uhrzeit Start Normalzeit Knopf2Press Knopf2Press Einstellmodus Stunden entry / BlinkenStdAnzeige () onk3press / StundenErhöhen () exit / FestStdAnzeige () Einstellmodus Minuten entry / BlinkenMinAnzeige () onk3press / MinutenErhöhen () exit / FestMinAnzeige () Knopf2Press H
Lerneinheit 2 Aktivitätendiagramm
Aktivitätendiagramm Definition und Einsatzfelder Spezialfall eines Zustandsübergangsdiagramms: (fast) alle Zustände sind Aktionszustände (fast) alle Zustandsübergänge werden durch den Abschluß einer Aktivität ausgelöst Einsatzfelder: Beschreibung von Arbeitsabläufen Spezifikation einer komplexen Operation mit parallelen Ablauf- und Kontrollpfaden
Entscheidungsknoten Ermöglicht die bedingungsabhängige Transition in einen oder mehrere Zustände Führt verschiedene Entscheidungszweige wieder zusammen Symbol:
Aktivitätendiagramm mit Entscheidungsknoten Lager: Stichtagsinventur durchführen prüfe Warenbewegung abgeschlossen [Warenbewegung nicht abgeschlossen] [Warenbewegung abgeschlossen] offene Warenbewegung abschließen sperre betroffene Lagerbereiche drucke Inventurliste erfasse Bestand
Aktivitätendiagramm Zustände unterschiedlicher Klassen In einem Aktivitätendiagramm können Zustände unterschiedlicher Klassen dargestellt werden Die einzelnen Klassen werden graphisch durch Verwendung von Bahnen (swimlanes) organisiert
Aktivitätendiagramm Einfluß der Aktivitäten auf Objektzustände Verändern die in einem Aktivitätendiagramm beschriebenen Aktivitäten den Zustand eines Objektes, so kann dies explizit dargestellt werden: Objekt wird zusammen mit seinem Zustand (in eckigen Klammern) in einem Objektsymbol dargestellt Verbindung mit den Aktivitäten, die eine Zustandsänderung bewirken
Aktivitätendiagramm mit Objektzuständen Use Case: Verkauf Möbelmitnahmemarkt Kunde Verkauf Lager erteile Kaufauftrag Auftrag [erteilt] erfasse Auftragsdaten in Rechnung Auftrag [aufgenommen] bereitstellen Ware bezahlen Rechnung quittieren Auftrag [abholbereit] entgegennehmen Ware Auftrag [erledigt] übergeben Ware
Übung Aktivitätendiagramm - Lösung [Kreditantrag liegt vor] einholen Lohnbestätigung [Kreditart = Konsumentenkredit] prüfe Kreditart [Kreditart = Hypothekenkreditkredit] einholen Schufaauskunft ermittle pfändbares Gehalt einholen Grundbuchauszug schätze Liegenschaft ermittle Beleihungsgrenze prüfe Kreditantrag [zu gewähren] [weiterleiten an Vorstand] [abzulehnen] [zu gewähren] prüfe Kreditantrag durch Vorstand [abzulehnen] gewähre Kredit ablehnen Kredit