Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Objektorientierte Modellierung mit UML 2

Ähnliche Präsentationen


Präsentation zum Thema: "Objektorientierte Modellierung mit UML 2"—  Präsentation transkript:

1 Objektorientierte Modellierung mit UML 2
Nichtrelationale Datenbanken -Historisch kulturwissenschaftliche Informationsverarbeitung- Universität zu Köln Sommersemester 2006 unter Leitung von: Prof. Manfred Thaller Tanja Lange

2 Was ist UML ? „Unified (vereinheitlichte) Modeling Language“
Objektorientierte Modellierung mit UML2 Was ist UML ? UML „Unified (vereinheitlichte) Modeling Language“ auf objektorientierten Konzepten basierende grafische Modellierungssprache dient zur Modellierung bestimmter Realitätsausschnitte und ermöglicht das spezifizieren, konstruieren, visualisieren und dokumentieren eines Softwaresystems grafische Repräsentation der Modelle in Form von Diagrammen

3 Prinzip Diagramme Modelle Realität als abstrakte Sicht auf die
Objektorientierte Modellierung mit UML2 Prinzip Diagramme als grafische Repräsentation der Modelle als abstrakte Sicht auf die Realität rolle1 rolle2 cdA Diagramme Modell Sicht Sicht Realitäts- ausschnitt

4 Objektorientierte Modellierung mit UML2
Diagramme Diagramme

5 Struktur- modellierung
Statische Aspekte

6 Diagrammarten Diagramme Objektorientierte Modellierung mit UML2

7 Klassendiagramm

8 Basisnotation von Klassen
Objektorientierte Modellierung mit UML2 Basisnotation von Klassen Klassendiagramme Klasse  Namensfeld  Attributliste  Operationsliste Attribut Operation()

9 Klasse Klassenname Stereotype/ Schlüsselwörter
Objektorientierte Modellierung mit UML2 Klasse Klassendiagramme «Stammdaten» Mitarbeiter {abstract} Klassenname Stereotype/ Schlüsselwörter Eigenschafts-angaben {abstract} (=true)

10 Attribut Attribute beschreiben Eigenschaften
Objektorientierte Modellierung mit UML2 Attribut Klassendiagramme Mitarbeiter Attribute beschreiben Eigenschaften Instanzattribut (=Instanzvariable) in Standardschrift Klassenattribut (= Klassenvariable) unterstrichen -personalnr -name -gehalt -alter -/hyperlink:URL[0..1]

11 Attribut evtl. Abschnittsname (A-Name) bsw. attributes zeilenweise
Objektorientierte Modellierung mit UML2 Attribut Klassendiagramme evtl. Abschnittsname (A-Name) bsw. attributes zeilenweise evtl. in Gruppen Sichtbarkeitsangabe abgeleitete Attribute„/“ Attribute nehmen einen Wert an (Daten) Multiplizitätsangabe = Anzahl Werte Attributtyp nicht festgelegt Eigenschaftsliste { } Mitarbeiter -personalnr -name -gehalt -alter -/hyperlink:URL[0..1] Sichtbarkeit: öffentlich (public/+) paket (package/~) geschützt (protcted/#) privat (private/-)

12 Operation  = ausführbare Tätigkeit
Objektorientierte Modellierung mit UML2 Operation Klassendiagramme = ausführbare Tätigkeit evtl. Abschnittsname (A-Name)bsw.operations Parameterliste Sichtbarkeit Multiplizität Eigenschaftsliste { } Art eines Parameters (in, out, inout, return) = Datanflussrichtung Notiz Mitarbeiter -personalnr -name -gehalt -/alter -hyperlink: URL[0..1] +einstellen() +erhöheGehalt() +druckeAusweis() +typ()

13 Objektorientierte Modellierung mit UML2
Aktive Klassen Klassendiagramme Klasse {active} Klasse = Klassen, für die ein eigenes Verhalten definiert ist, z.B. mit Zustands- oder Aktivitätsdiagramm Instanzen weisen Kontrollfluss auf Reaktionen auf Ereignisse (Operationsaufrufe) Notation: {active}, vertikal doppelter Rahmen

14 Geschachtelte Klassen
Objektorientierte Modellierung mit UML2 Geschachtelte Klassen Klassendiagramme Äußere Klasse «nestedClassifier» Geschachtelte Klasse Gehören zum Namensraum der Klasse, in der sie deklariert sind

15 Objekt Instanzen von Klassen als Objekt bezeichnet
Objektorientierte Modellierung mit UML2 Objekt Klassendiagramme m1:Mitarbeiter Instanzen von Klassen als Objekt bezeichnet = Ausprägungen der von der Klasse definierten Struktur (Attribute) und weisen definierte Verhalten (Operationen) auf Notation: dem Klassennamen kann Objektname vorangestellt werden und beides unterstrichen

16 Assoziation Verbindungen zwischen Objekten einer Klasse
Objektorientierte Modellierung mit UML2 Assoziation Klassendiagramme Termin Mitarbeiter * 2 Datum  /nimmtTeilAn Name {ordered} + teilnehmer Verbindungen zwischen Objekten einer Klasse Darstellung als Verbindungslinie (Kanten) zwischen Klassen/Objekten Assoziationsnamen, Leserichtung Rolle (Bedeutung der Klasse in der Assoziation) - Rollenname Sichtbarkeit, Multiplizität, Ordnung

17 Assoziation Teilmengen von Assoziationen {subsets <role-name>}
Objektorientierte Modellierung mit UML2 Assoziation Klassendiagramme Termin Mitarbeiter * Datum  /nimmtTeilAn * Name {ordered} / teilnehmer {union} * * * * geladeneTn {subsets teilnehmer} eingeladeneTn {subsets teilnehmer} Teilmengen von Assoziationen {subsets <role-name>} Vereinigung {union}

18 zusatzInfo: HypertextDokument [0..1]
Objektorientierte Modellierung mit UML2 Assoziation Klassendiagramme * 0..1 Termin X HypertextDokument zusatzInfo Navigierbare Assoziationsenden „“ Nicht navigierbares A.ende „x“ Navigierbare Assoziation als Attribut Termin HypertextDokument zusatzInfo: HypertextDokument [0..1]

19 Qualifizierte Assoziation
Objektorientierte Modellierung mit UML2 Qualifizierte Assoziation Klassendiagramme 1..* angestelltBei * Person Unternehmen angestellter abteilung qualifiziertes Attribut zur Charakterisierung der Assoziation dienen auch zur Reduzierung der Multiplizität

20 Assoziationsklasse eigenes Klassensymbol
Objektorientierte Modellierung mit UML2 Assoziationsklasse Klassendiagramme Termin Mitarbeiter * * Datum Name {ordered} Teilnahme warnZeit: DatumZeit teilnehmer eigenes Klassensymbol durch gestrichelte Linie mit Assoziationskante verbunden Klassenname = Assoziationsname

21 n-äre Assoziation mehrstellige Assoziation durch Raute dargestellt
Objektorientierte Modellierung mit UML2 n-äre Assoziation Klassendiagramme Person Kalender Datum * Name Berechtigter Bewilliger * Berechtigung Termintyp bezeichnung * erlaubt: Recht mehrstellige Assoziation durch Raute dargestellt mit allen Klassen durch Kante verbunden evtl. mit zugeordneter Assoziationsklasse

22 Aggregation/Komposition
Objektorientierte Modellierung mit UML2 Aggregation/Komposition Klassendiagramme Buch Verzeichnis   Aggregat- klasse Titel Erscheinungsjahr Name Erstellung * 1 Aggregation Komposition * * Kapitel Datei Autor AnzahlSeiten   Teil- klasse Name Erstellung letzteÄnderung Spezialfälle beschreiben eine „Teile-Ganzes-Beziehung“(part-of-relationship) asym. Assoziation zw. nicht gleichwertigen Partnern Komposition = „strengere“ Form der Aggregation Multiplizität max. 1 wird das Ganze gelöscht, werden alle Teile gelöscht

23 Generalisierung (Vererbung)
Objektorientierte Modellierung mit UML2 Generalisierung (Vererbung) Klassendiagramme Vollzeit Angestellter Teilzeit Manager Programmierer Sekretärin Beziehung zwischen einer allgemeinen Basis- oder Superklasse und einer spezialisierteren Unter- oder Subklasse fasst gemeinsame Eigenschaften und Verhalten zusammen Klassenhierarchiebildung

24 Generalisierung (Vererbung)
Objektorientierte Modellierung mit UML2 Generalisierung (Vererbung) Klassendiagramme Arbeitszeit Vollzeit Angestellter {complete} Teilzeit Tätigkeit Manager Programmierer Sekretärin Diskriminatoren = eine Art „virtuelles“ Attribut - Kriterium der Vererbungsstruktur Zusammengefasste Generalisierungen = Generalisierungsmenge Einschränkungen { }

25 Generalisierung – weitere Begriffe
Objektorientierte Modellierung mit UML2 Generalisierung – weitere Begriffe Klassendiagramme Objekt ist „direkte Instanz“ der Klasse Jede „direkte Instanz“ einer Klasse ist „indirekte Instanz“ jeder Superklasse Mehrfachvererbung: eine Klasse besitzt mehrere Oberklassen Mehrfachklassifikation: Objekt kann direkte Instanz mehrer Klassen sein Klassifikationstyp: Typ eines Diskriminators - wird als Klasse dargestellt, die mit Superklasse in Generalisierungsmenge durch Assoziation verbunden ist pt Klasse 1 a.pt Klasse 2 Klasse 3

26 Redefinition durch Eigenschaft {redefines <feature>} notiert
Objektorientierte Modellierung mit UML2 Redefinition Klassendiagramme Eintrag 1 0..1 B_Eintrag typ: Eintragstyp X daten Termin 1 B_Termin typ = termin {redefines typ} X terminDaten {redefines daten} durch Eigenschaft {redefines <feature>} notiert Überschreiben des Verhaltens der Oberklasse muss explizit angegeben werden

27 Objektdiagramm

28 Objektdiagramme formaler Teil der Klassendiagramme
Objektorientierte Modellierung mit UML2 Objektdiagramme Objektdiagramme Objektbezeichner Klasse des Objekts Waisenobjekt m1:Mitarbeiter :Mitarbeiter m1 personalnr = 1234 name = Bernd Meier anonymes Objekt formaler Teil der Klassendiagramme von Klassen können beliebig viele Objekte als Instanzen gebildet werden ein Objekt hat einen Zustand, ein Verhalten und eine unveränderliche Identität können den Attributen Werte zuordnen

29 Links Instanzen einer Assoziation = Links (Kanten)
Objektorientierte Modellierung mit UML2 Links Objektdiagramme t1:Termin m1:Mitarbeiter m2:Mitarbeiter Instanzen einer Assoziation = Links (Kanten) nicht zu verwechseln mit Objekten der Laufzeitumgebung modellierte Instanzen = Instanzspezifikationen

30 Paketdiagramm

31 Paketdiagramm Zusammenfassung von UML-Modellelementen (meist Klassen)
Objektorientierte Modellierung mit UML2 Paketdiagramm Paketdiagramme Paketname A B Paketname Termin Benutzer Paketname Zusammenfassung von UML-Modellelementen (meist Klassen) Gruppierung und Strukturierung des Gesamtsystems / Systemteilen 3 Notationsvarianten

32 Benutzerschnittstelle Terminverwaltung::Termin
Objektorientierte Modellierung mit UML2 Namensraum Paketdiagramme Benutzerschnittstelle Terminverwaltung B_Termin Terminverwaltung::Termin Termin B_Kalender Kalender termine: B_Termin[*] benutzer: Benutzer Benutzer 1 Element kann zu max. 1 Paket gehören Paket definiert Namenraum Qualifizierter Name eines Elements Referenzieren eines Elements

33 Objektorientierte Modellierung mit UML2
Sichtbarkeit Paketdiagramme x «import» Y {import Z} «access» +E Z +D -G +C «import» U V +A +B -F Elementen können Sichtbarkeiten zugeordnet werden (nur privat/“-“ oder öffentlich/“+“) Jedem Element muss eine Sichtbarkeit zugeordnet werden

34 Objektorientierte Modellierung mit UML2
Import Paketdiagramme x «import» Y {import Z} «access» +E Z +D -G +C «import» U V +A +B -F Element-Import, Paket-Import, Klassen-Import (z.B. X::Z::D importiert Klasse X::Y::U::A) Sichtbarkeit muss öffentlich sein - «import» = öffentliche Import-Beziehung «access» = private Import-Beziehung

35 Objektorientierte Modellierung mit UML2
Paketverschmelzung Paketdiagramme P A B R A R = ^ «merge» A C Basis- pakete Effektiver Inhalt Q A C «merge» B Verschmelzungspaket wie Paket-Import mit Beziehung --> + Schlüssel-wort «merge» = (Verschmelzungsbeziehung) verschmilzt Inhalt des Basispakets mit Inhalt des Verschmelzungspakets gleiche Inhalte = Effektiver Inhalt = Vereinigungsmenge Vorteil: min. Modellierungsaufwand

36 Komponentendiagramm

37 Objektorientierte Modellierung mit UML2
Komponentendiagramm Komponentendiagramm modellieren die Struktur eines Systems zur Laufzeit und beschreiben, aus welchen Bestandteilen das System aufgebaut ist. zeigen Definition von Komponenten und Abhängigkeiten zwischen diesen

38 Komponente Notation: Externe Sicht Interne Sicht
Objektorientierte Modellierung mit UML2 Komponente Komponentendiagramm Notation: Externe Sicht Interne Sicht Ports: Verteilerzentrum zur Nachrichtenübermittlung (in, out, inout) Verknüpfung einer Komponente mit anderer Komponente gleicher Ebene  Typkonformität Voraussetzung «component» Name Ports Externe Sicht Interne Sicht «component» Name öffentlicher Port «component» Name privater Port

39 Objektorientierte Modellierung mit UML2
Interface Komponentendiagramm Interfaces: („Schnittstelle“) zur Datenübertragung und Abfrage des Verhaltens anderer Komponenten (Verhaltensspezifikation) Port mit angebotenen Interfaces Port mit benötigten Interfaces Kombinierter Port A, B X, Y A, B X, Y Stecker-/ Buchsen- symbol

40 Objektorientierte Modellierung mit UML2
Externe Sicht Komponentendiagramm Umfasst Interfaces, Ports, öffentliche Attribute & Operationen der Komponente, Verknüpfung von Komponenten gleicher Ebene Verknüpfung durch (Benutzungs-)Abhängigkeiten = allgemeine Kopplung zweier UML-Modellelemente; Änderungen in einem Element (Anbieter) zieht Änderungen im anderen Element (Klient) mit sich a) Interface-Realisierungs-/Benutzungsabhängigkeit: b) Buchse/Stecker-Notation: c) Separater Abschnitt: Klient «use» Anbieter

41 Objektorientierte Modellierung mit UML2
Interne Sicht Komponentendiagramm a) Komponenten-Realisierungs-/Manifestationsabhängigkeit: Umfasst private Attribute & Operationen, interne Realisierung (welche Elemente für die Realisierung des Verhaltens der Komponente zuständig sind) direkte Implementierung indirekte Implementierung b) Schachtelung: c) Separate Abschnitte:

42 Kompositionsstruktur-diagramm

43 Kompositionsstrukturdiag.
Objektorientierte Modellierung mit UML2 Kompositionsstrukturdiag. Kompositionsstrukturd. Kompositionsstrukturdiagramm modelliert innere Struktur einer Komponente oder Klassen Beziehungen zwischen Rollen der internen Struktur werden durch Konnektoren modelliert, die Kommunikationspfade repräsentieren  die verbundenen Instanzen interagieren zur Laufzeit miteinander Notation: ungerichtet gerichtet

44 Objektorientierte Modellierung mit UML2
Kollaboration Kompositionsstrukturd. Kollaboration beschreibt , wer mit wem kommuniziert, um best. Verhalten auszuführen (nicht wie und wann!) Notation: a) KalenderAktualisierung auslöser:Kalender 1 * zuAktualisierende:Kalenderansicht 1..* b) Kalender auslöser zuAktualisierende Kalenderansicht Kalender Aktualisierung

45 Verteilungsdiagramm

46 Verteilungsdiagramm Modellieren der physischen Struktur eines Systems
Objektorientierte Modellierung mit UML2 Verteilungsdiagramm Verteilungsdiagramm Modellieren der physischen Struktur eines Systems zeigt die eingesetzte Hard- und Softwaretopologie und das zugeordnete Laufzeitsystem

47 calServerProgram:jar
Objektorientierte Modellierung mit UML2 Verteilungsdiagramm Verteilungsdiagramm Knoten sind Hard-, Softwareelemente Kommunikations-beziehungen = Verbindung zw. Knoten Artefakte = Modellelemente, die für die Ausführung auf die Knoten verteilt werden (physische Manifestation der Software, z.B. exe-files) «device» calClient:PC «device» calServer:Host «internet» «deploy» «artifact» calServerProgram:jar

48 Verhaltens-modellierung
Dynamische Aspekte

49 Diagrammarten Diagramme Objektorientierte Modellierung mit UML2

50 Anwendungsfall- diagramm

51 Anwendungsfalldiagramm
Objektorientierte Modellierung mit UML2 Anwendungsfalldiagramm Anwendungsfalldiagramm beschreibt Funktionalität des zu entwickelnden Systems in Form von Anwendungsfällen aus Sicht des Benutzers Sonderstellung, da es strukturelle Darstellung des erwarteten Verhaltens repräsentiert und keine dynamischen Aspekte aufweist

52 Anwendungsfälle Notation: beschreiben Systemfunktionalitäten
Objektorientierte Modellierung mit UML2 Anwendungsfälle Anwendungsfalldiagramm Notation: beschreiben Systemfunktionalitäten Akteure (=Classifier) interagieren mit dem System verfügen über Klasseneigenschaften befinden sich außerhalb des Systems und werden nicht implementiert Termin löschen Termin löschen Termin löschen Benutzer

53 Objektorientierte Modellierung mit UML2
Anwendungsfälle Anwendungsfalldiagramm können zur Erfüllung ihrer Funktionalitäten Beziehungen untereinander haben include-Beziehung (= benutzter Anwendungsfall ist unbedingt notwendig!) extend-Beziehung (= erweiternder Anwendungsfall kann übernommen werden) Generalisierungs-beziehung Erweiterungsstelle (evtl. Notizsymbol als Zuordnunghilfe) Benutzer Adminitrator Eintrag erfassen Programm verwalten extension points Zugriffsrechte anpassen Einstellungen anpassen Generalisierungs-beziehung Termin erfassen Erweiterung eines Anwendungsfalls «extend» «include» «include» «extend» Zugriffsrechte verwalten Teilnehmer verständigen Einstellungen verwalten Kalender aktualisieren Condition: {Einstellungen ausgewählt} Extension point: Einstellungen anpassen Bedingung, die erfüllt sein muss um Anwendungsfall einzufügen

54 Abstrakter Anwendungsfall
Objektorientierte Modellierung mit UML2 Abstrakter Anwendungsfall Anwendungsfalldiag. Abstrakter Anwendungsfall, nicht ausführbar! Adminitrator Benutzer Benutzer gruppen verwalten {abstract} Einstellungen verwalten Benutzer verwalten «extend» «extend» private Benutzergruppen verwalten globale Benutzergruppen verwalten konkreter Anwendungsfall, ausführbar! Identische Teilaspekte in div. Anwendungs-fällen werden mittels Generalisierungs-beziehung zusammengeschlossen

55 Aktivitätsdiagramm

56 Objektorientierte Modellierung mit UML2
Aktivitätsdiagramm Aktivitätsdiagramm spezifiziert Kontroll- und Datenfluss zwischen verschiedenen Arbeitsschritten (Aktionen), die zur Realisierung einer Aktivität notwendig sind zur Modellierung objektorientierter und nicht objektorientierter Systeme

57 Aktivitäten & Aktionen
Objektorientierte Modellierung mit UML2 Aktivitäten & Aktionen Aktivitätsdiagramm Aktivität umfasst gesamte Verhaltens-beschreibung im Aktivitätsdiagramm atomare Bestandteile einer Aktivität = Aktionen Aktionen leisten „eigentliche Arbeit“ gerichteter Graph mit Aktivitätsknoten (repräsentieren Aktionen, Kontrollkonstrukte & Objektspeicher) & Aktivitätskanten (drücken Abhängigkeiten in Form von Weitergabe von Kontrolle bzw. Daten aus) Notation: Aktivitäts-name Eingabe-parameter Ausgabe-parameter Aktivitäts-knoten Aktivitäts-kante

58 Objektorientierte Modellierung mit UML2
Knoten Aktivitätsdiagramm Aktionsknoten: repräsentieren vordefinierte UML-Aktionen, die Eingaben empfangen und diese für Ausgaben für andere Knoten verarbeiten Kontrollknoten: steuern Aktivitätsabläufe, Festlegung Start und Ende einer gesamten Aktivität Objektknoten: dienen als Ein- und Ausgabeparameter (d.h. Bindeglied zwischen Verhaltensmodellierung (Aktivitätsdiagramm) und Strukturmodellieung (Klassendiagramm)), sowie als zentraler Puffer

59 Kanten Legen mit Kontrollknoten zeitlich logische Reihenfolge fest
Objektorientierte Modellierung mit UML2 Kanten Aktivitätsdiagramm Legen mit Kontrollknoten zeitlich logische Reihenfolge fest Kontrollflusskanten: drücken reine Kontrollabhängigkeit zwischen Vorgänger- und Nachfolgerknoten aus Objektflusskanten: transportieren zusätzlich Daten von Vorgänger- zu Nachfolgerknoten

60 Token „virtueller Koordinationsmechanismus“
Objektorientierte Modellierung mit UML2 Token Aktivitätsdiagramm „virtueller Koordinationsmechanismus“ beschreiben Abläufe einer Aktivität zur Laufzeit Token fließen entlang der Kanten vom Vorgängerknoten zum Nachfolgerknoten Kontroll- und Datentoken müssen an allen eingehenden Kanten eines Knotens angeboten werden, um dessen Ausführung zu ermöglichen „Ergebnisse einer Aktivität“

61 Einladung adressieren
Objektorientierte Modellierung mit UML2 Kontrollknoten Aktivitätsdiagramm Initialknoten: kennzeichnet Beginn eines Aktivitätsablaufs  Aktivitätsendknoten: beendet alle Abläufe einer Aktivität  («bull´s eye») Ablaufendknoten: beendet nur einen bestimmten Ablauf einer Aktivität  Einladung adressieren Einladung drucken [alle Einladungen gedruckt] [else]

62 Teilnehmer informieren
Objektorientierte Modellierung mit UML2 Alternative Abläufe Aktivitätsdiagramm Entscheidungsknoten: ermöglichen Ablauf in alternative Zweige  =„Weiche“ für den Tokenfluss, Ankunft von Token startet Entscheidungsverhalten Überwachungsbedingungen wählen den Zweig aus Vereinigungsknoten: führt alternative Abläufe wieder zusammen  Termin vorschlagen Termin fixieren Teilnehmer informieren [true] «decision Input» Teilnehmer mit Termin einverstanden? [false]

63 Objektorientierte Modellierung mit UML2
Nebenläufige Abläufe Aktivitätsdiagramm Parallelisierungsknoten: Ablauf in beliebig viele nebenläufige Zweige gleichzeitig aufspalten I eingehende Token werden für alle ausgehenden Kanten dupliziert Synchronisierungsknoten: führt nebenläufige Abläufe wieder zusammen I indem eingehende Token wieder vereinigt werden Termin erfassen BenutzerID prüfen Kollision prüfen [ok] Teilnehmer auswählen [else]

64 «centralBuffer» Ausgewählte Teilnehmer
Objektorientierte Modellierung mit UML2 Objektknoten Aktivitätsdiagramm dienen als Ein- & Ausgabeparameter für Aktivitäten oder als Ein- & Ausgabepins für Aktionen oder als Pufferknoten zur Pufferung von Datentoken Transiente Pufferknoten löscht weitergegebenen Datentoken («centralBuffer») Persistenter Pufferknoten bewahrt sie auf und gibt Duplikate weiter («datastore») Einladung versenden Aktivitäts-name Teilnehmer auswählen Aktion1 Aktion2 «centralBuffer» Ausgewählte Teilnehmer Eingabe-parameter «datastore» Benutzer Ausgabe-parameter Ausgabe-pin Eingabe-pin

65 Begriffe Parametersatz: Zusammenfassung / Gruppierung von Parametern
Objektorientierte Modellierung mit UML2 Begriffe Aktivitätsdiagramm Parametersatz: Zusammenfassung / Gruppierung von Parametern Steuerung des Objektflusses über Objektflusskanten Reihenfolge der Tokenweitergabe über Spezifikation in geschwungenen Klammern Standard FIFO {ordering = LIFO} {ordering = ordered} {ordering = unordered}

66 «centralBuffer» To-do´s
Objektorientierte Modellierung mit UML2 Begriffe Aktivitätsdiagramm Kapazitätsobergrenze: begrenzt Anzahl der Token, die Objektknoten aufnehmen kann Gewicht einer Objektflusskante Selektionsverhalten: bestimmte Token werden für Weitergabe ausgewählt (=Tokenfilter) bestimmt implizit auch Reihenfolge ≠ Überwachungsbedingungen, die über Weitergabe aller Token entscheidet Transformationsverhalten: kann Datenwert eines Tokens austauschen Referenz auf ein Objekt durch eine andere austauschen eingehendes Datentoken in mehrere ausgehende transformieren {upperBound=20} {weight=20} «centralBuffer» To-do´s «selection» Teilnehmer auswählen «datastore» Benutzer

67 Objektorientierte Modellierung mit UML2
Partitionen Aktivitätsdiagramm erlauben Gruppierung von Knoten und Kanten einer Aktivität nach bestimmten Kriterien (gemeinsame Eigenschaften) Logische Sicht zur Erhöhung der Übersichtlichkeit Notation: so genannte „Schwimmbahnen“ Partitions-name Partitions-name

68 Objektorientierte Modellierung mit UML2
Partitionen Aktivitätsdiagramm Hierarchische Partition: Wurzel (=Dimension) + Subpartitionen Multidimensionale Partition: orthogonale Dimensionen Dimensionsname Partitions-name Partitions-name Dimensionsname Name Subpartition Name Subpartition Partitions-name Dimensionsname Partitions-name

69 Strukturierte Aktivitätsknoten
Objektorientierte Modellierung mit UML2 Strukturierte Aktivitätsknoten Aktivitätsdiagramm Fassen Teile einer Aktivität zu einer in sich abgeschlossenen & strukturierten Ausführungseinheit zusammen Aktionen innerhalb dessen werden erst gestartet, wenn alle Token vorhanden sind Token werden erst weitergegeben, wenn Aktion abgearbeitet ist «structured»

70 Strukturierte Aktivitätsknoten
Objektorientierte Modellierung mit UML2 Strukturierte Aktivitätsknoten Aktivitätsdiagramm 3 spezielle Formen: Expansionsbereich: verarbeitet Elemente einer Kollektion Konditionalknoten: dient zur Auswahl aus einer Reihe alternativer Zweige (im Sinne einer „if-then-else-Anweisung“; Testbereich (if bzw. else if) + Ausführungsbereich (then & else)) Pendant zu Entscheidungsknoten Vorteil durch Kompaktheit Schleifenknoten: zur kompakten Modellierung von Schleifen besteht aus Initialisierungsbereich (for), Testbereich (while) und Ausführungsbereich (do)

71 Zustandsdiagramm

72 Objektorientierte Modellierung mit UML2
Zustandsdiagramm Zustandsdiagramm Modellierung des Intraobjektverhaltens auf Basis von Zuständen (Knoten) und Zustandsübergängen = Transitionen (Kanten), die von Ereignissen ausgelöst werden Basiert auf „eigentlichem Zustandsautomaten“ / Verhaltensautomaten und Protokollautomaten

73 Zustand Zustand = Objekt in bestimmter Situation
Objektorientierte Modellierung mit UML2 Zustand Zustandsdiagramm Zustand = Objekt in bestimmter Situation kann auf äußere Ereignisse reagieren Notation: Zustandsname + Aktivität do/ = Aktivitäten während System im Zustand entry/ = wenn Objekt in Zustand eintritt exit/ = sobald Zustand verlassen wird BeginnBearbeiten do / DatumZeit erfassen entry / Schreibmarke setzen exit / Abhängigkeiten aktualisieren TAB TAB ENTER DauerBearbeiten Abbruch do / Zeit erfassen entry / Schreibmarke setzen exit / Abhängigkeiten akt. entry / Schaltfläche hervorheben exit / Hervorhebung aufheben ENTER /Änderungen verwerfen ENTER ENTER Fehler entry / Fehlermeldung anzeigen exit / Fehlermeldung löschen ENTER [Werte korrekt] /Änderungen akzeptieren TAB ENTER [Werte inkorrekt] TAB OK entry / Schaltfläche hervorheben exit / Hervorhebung aufheben

74 Pseudozustände Startzustand  History-Zustand = Rücksprungadresse
Objektorientierte Modellierung mit UML2 Pseudozustände Zustandsdiagramm Startzustand  History-Zustand = Rücksprungadresse Verbindungsstellen  Entscheidungsknoten  Nebenläufigkeitsbalken ▬ Einstiegs- O /Ausstiegspunkt  = dienen der Verwendung von Unterautomaten Terminierungsknoten X = gibt an, daß das Objekt, dessen Verhalten modelliert wird, aufhört zu existieren Endzustand  BeginnBearbeiten H do / DatumZeit erfassen entry / Schreibmarke setzen exit / Abhängigkeiten aktualisieren TAB TAB ENTER DauerBearbeiten Abbruch do / Zeit erfassen entry / Schreibmarke setzen exit / Abhängigkeiten akt. entry / Schaltfl. herv. exit / Hervorhebg aufh. ENTER ENTER ENTER Fehler entry / Fehlermeldung anzeigen exit / Fehlermeldung löschen TAB ENTER [Werte inkorrekt] ENTER TAB OK entry / Schaltfläche hervorheben exit / Hervorhebung aufheben

75 Komplexe Zustände Zusammengestzte, geschachtelte Zustände
Objektorientierte Modellierung mit UML2 Komplexe Zustände Zustandsdiagramm BeginnBearbeiten Zusammengestzte, geschachtelte Zustände ODER-Verfeinerung = mit der ein komplexer Zustand in Subzustände zerlegt wird UND-Verfeinerung = mit der die Zerlegung in nebenläufige, gleichzeitig aktive Subzustände erfolgt entry / Schreibmarke setzen exit / Abhängigkeiten aktualisieren F1 / pD = pT = 0 DatumErfassen Hilfe entry / Schreibmarke an Pos. pD setzen TAB H When(pD = 8) ZeitErfassen ENTER entry / Schreibmarke an Pos. pT setzen Z A B C D

76 Objektorientierte Modellierung mit UML2
Unterautomaten Zustandsdiagramm um mehrfach auftretende Verhaltensaspekte herauszuheben und gesondert zu beschreiben werden im „Hauptautomaten“ durch Unterautomatenzustand referenziert Notation: Rechteck Name: Zustandsname:Unterautomatenname mit Ein- und Ausstiegspunkten

77 Objektorientierte Modellierung mit UML2
Protokollautomaten Zustandsdiagramm legen fest, welche Operationsaufrufe unter welchen Bedingungen von einem Classifier akzeptiert werden beschreiben lediglich Sequenzen von Ereignissen ohne jegliche Effekte (außer Zustandsübergänge) Telefongespräch {protocol} Grundzustand Hörer abnehmen Gespräch beendet Wahlbereit Nummer wählen Partner hebt ab Partner legt auf Verbindungsaufbau Gespräch

78 Interaktionsdiagramme

79 Interaktionsdiagramme
Objektorientierte Modellierung mit UML2 Interaktionsdiagramme spezifizieren das Interobjektverhalten in Form von Nachrichten zwischen Objekten in bestimmten Rollen

80 Sequenzdiagramm

81 Sequenzdiagramm Modellierung von Interaktionen
Objektorientierte Modellierung mit UML2 Sequenzdiagramm Sequenzdiagramm Modellierung von Interaktionen Interaktion spezifiziert die Art & Weise, wie Nachrichten und Daten zwischen verschiedenen Interaktionspartnern in einem bestimmten Kontext ausgetauscht werden, um eine bestimmte Aufgabe zu erfüllen Der Nachrichtenaustausch wird im Allgemeinen zwischen Rollen auf Typebene modelliert Interaktionen erfolgen durch Nachrichten in Form von Signalen und Operationsaufrufen oder werden durch Bedingungen und Zeitereignisse gesteuert

82 Einsatzmöglichkeiten
Objektorientierte Modellierung mit UML2 Einsatzmöglichkeiten Sequenzdiagramm Modellierung der Interaktion eines Systems mit seiner Umwelt, um Systemgrenzen festzulegen Modellierung des Zusammenspiels der internen Struktur einer Klasse, Komponente oder Kollaboration Modellierung des Interaktionsaspekts der Verknüpfung von verschiedenen Systemteilen (z.B. Komponenten über Ports, angebotene und benötigte Interfaces) Modellierung der Interaktionen der Operationen einer Klasse

83 Notation Rechteck mit Pentagon darin Diagrammtyp als String sd
Objektorientierte Modellierung mit UML2 Notation Sequenzdiagramm Rechteck mit Pentagon darin Diagrammtyp als String sd gefolgt vom Interaktionsnamen und evtl. Parametern in Klammern Zwei Dimensionen: vertikale = Zeitachse, horizontale = Interaktionspartner Interaktionspartner durch vertikale gestrichelte Lebenslinie dargestellt, oben Kopf mit Name und Typ der Rolle sd name (par1, par2) rolle:Typ

84 Begriffe Interaktionen = Abfolge so genannter Ereignisspezifikationen
Objektorientierte Modellierung mit UML2 Begriffe Sequenzdiagramm Interaktionen = Abfolge so genannter Ereignisspezifikationen Ereignisspezifikationen partitionieren eine Lebenslinie in Zeitsegmente und definieren einen potenziellen Ereigniseintritt zur Laufzeit Folge von konkreten Ereigniseintritten = Trace bestimmt den Ablauf einer Interaktion zur Laufzeit

85 Ausführung einer Nachricht
Objektorientierte Modellierung mit UML2 Ausführung einer Nachricht Sequenzdiagramm Periode, in der ein Interaktionspartner direkt oder indirekt ein bestimmtes Verhalten ausführt = Ausführungsspezifikation Die Ausführung wird durch Start und Ende definiert rolle:Typ rolle:Typ Startereignis-spezifikation Ausführungs-spezifikation indirekte Ausführung direkte Ausführung Endereignis-spezifikation

86 Versenden einer Nachricht
Objektorientierte Modellierung mit UML2 Versenden einer Nachricht Sequenzdiagramm Synchrone Nachrichtenübermittlung: Sender wartet bis die durch die Nachricht ausgelöste Interaktion beendet ist Asynchrone Nachrichtenübermittlung: der Sender der Nachricht wartet nicht auf die Antwort des Empfängers Antwortnachrichten Verlorene Nachricht: eine Nachricht an einen unbekannten oder nicht relevanten Interaktionspartner verschicken Gefundene Nachricht: von einem solchen Interaktionspartner empfangen lost found

87 Kombinierte Fragmente
Objektorientierte Modellierung mit UML2 Kombinierte Fragmente Sequenzdiagramm zur Modellierung komplexer Kontrollstrukturen beinhaltet einen Interaktionsoperator und einen oder mehrere Interaktionsoperanden Operatoren dienen zur Festlegung der Auswahl und Reihenfolge der gesendeten Nachrichten und ihrer Häufigkeiten im kombinierten Fragment sd Beispiel Kombinierte Fragmente Operatoren alt Operand 1 Schachtelung von Interaktionen loop Operand 2

88 Arten von Operatoren Sequenzdiagramm Operator Zweck Beschreibung
Objektorientierte Modellierung mit UML2 Arten von Operatoren Sequenzdiagramm Operator Zweck Beschreibung Verzweigungen alt Alternative Interaktionen Mehrere Operanden, von denen einer zur Laufzeit anhand von Überwachungsbedingung oder else-Bedingung ausgewählt wird opt Optionale Interaktionen Ein Operand, Ausführung von Überwachungs-bedingung abhängig; if-then -Konstrukt break Ausnahme-Interaktionen wird ausgeführt, wenn Bedingungen erfüllt; wenn Bedingungen nicht erfüllt, wird umgebendes Fragment ausgeführt Schleifen loop Iterative Interaktionen Ein Operand; Ausführungshäufigkeit durch Zähler und Überwachungsbedingung bestimmt

89 Arten von Operatoren Sequenzdiagramm Operator Zweck Beschreibung
Objektorientierte Modellierung mit UML2 Arten von Operatoren Sequenzdiagramm Operator Zweck Beschreibung Nebenläufig-keiten und Ordnung seq Sequenzielle Interaktionen mit schwacher Ordnung Zwei oder mehrere Operanden mit schwacher Ordnung; best. Reihenfolge der Ereigniseintritte Traces in Verbindung mit break-Operator einzelne Interaktionen in Blöcke zusammenfassen strict Sequenzielle Interaktionen mit strenger Ordnung mehrere Operanden mit strenger Ordnung; Reihenfolge der Ereigniseintritte muß exakt der Anordnungsreihenfolge der korrespondierenden Ereignisspezifikationen entsprechen par Nebenläufige Interaktionen Zwei oder mehrere Operanden; werden nebenläufig ausgeführt critical Atomare Interaktionen ein Operand; erlaubt Spezifikation eines atomaren, d.h. nichtunterbrechbaren Interaktionsablaufs

90 Arten von Operatoren Sequenzdiagramm Operator Zweck Beschreibung
Objektorientierte Modellierung mit UML2 Arten von Operatoren Sequenzdiagramm Operator Zweck Beschreibung Filterungen ignore Irrelevante Interaktionen ein Operand; erlaubt Spezifikation von Nachrichten, die als bedeutungslos eingestuft werden consider Relevante Interaktionen erlaubt Spezifikation jener Nachrichten, die für die Interaktion besonders relevant sind Zusicherungen assert Zugesicherte Interaktionen Interaktionsablauf im Operanden ist einzig gültiges Verhalten an diesem Punkt der Interaktion und muss vollständig ausgeführt werden neg Ungültige Interaktionen Modellierung eines ungültigen Interaktionsablaufs, d.h. eine Reihe von Interaktionen, die zur Laufzeit nicht auftreten dürfen (z.B. Fehler)

91 rolle[selector]:Typ ref Interaktionsname
Objektorientierte Modellierung mit UML2 Modularisierung Sequenzdiagramm Wiederverwendung wird erleichtert Komplexität von Diagrammen wird reduziert Folgende Konzepte: Interaktionsreferenzen: Referenzierung anderer Sequenzdiagramme dadurch können ganze Interaktionsabläufe und auch einzelne Lebenslinien zerlegt werden ref rolle[selector]:Typ ref Interaktionsname sdName (par1, par2): rückgabeWert Interaktionsreferenz zur Zerlegung von Interaktionsabläufen Referenz der inneren Interaktion einer Lebenslinie

92 Objektorientierte Modellierung mit UML2
Modularisierung Sequenzdiagramm Fortsetzungsmarken: Zerlegung der Operanden eines alt-Operators alt A Start-marken B alt B Ziel-marken A

93 Objektorientierte Modellierung mit UML2
Modularisierung Sequenzdiagramm Verknüpfungspunkte: Verbindung von Nachrichten zwischen Sequenzdiagrammen, Interaktionsreferenzen oder kombinierten Fragmenten sd b1 sd b2 t u x y v1 v1 v2 v2 Verknüpfungs-punkte

94 Kommunikations-diagramm

95 Kommunikationsdiagramm
Objektorientierte Modellierung mit UML2 Kommunikationsdiagramm Kommunikationsdiag. zusätzlich zu Interaktionen können auch die zugrunde liegenden strukturellen Zusammenhänge der Interaktionspartner dargestellt werden Keine Zeitachse Anordnung der Nachrichten entspricht nicht der Reihenfolge Explizite Nummerierung durch Sequenznummern Notation: comm name rolle[selector]:Typ Interaktionspartner als Kopf ohne Lebenslinie

96 Zeitdiagramm

97 Objektorientierte Modellierung mit UML2
Zeitdiagramm Zeitdiagramm zeigt explizit zeitabhängige Zustandsänderungen der Interaktionspartner stellt nur exemplarischen Ablauf dar, da keine Kontrollkonstrukte zur Verfügung stehen

98 Objektorientierte Modellierung mit UML2
Notation Zeitdiagramm Zustandsverlaufslinie Zeitachse horizontal, Lebenslinie als Abschnitte untereinander Zeitmetrik als eigene Achse mit Zeiteinheit Zustände (Reihenfolge nicht signifikant) Wechsel zwischen Zuständen durch Zustandsverlaufslinie Auslöser von Zustands-änderungen (z.B. Empfang einer Nachricht) entsprechend notiert Nachrichtenaustausch zwischen Interaktionspartnern als Pfeil Nachrichtenmarken für weiter auseinander liegende Lebenslinien Auslöser timing name at(t=12.00) Zustand 1 rolle:Typ Zustand 2 Zustand 3 rolle:Typ Zustand 4 Lebenslinien s Zeitmetrik Nachrichtenaustausch

99 Interaktionsübersichts-diagramm

100 Interaktionsübersichtsd.
Objektorientierte Modellierung mit UML2 Interaktionsübersichtsd. Interaktionsübersichtsd. Modellierung des Kontrollflusses zwischen verschiedenen Interaktionsabläufen, d.h. in welcher Reihenfolge und unter welchen Bedingungen verschiedene Interaktionsabläufe stattfinden intover Termin erfassen ref Eckdaten des Termins erfassen ref Teilnehmer ref Kollision prüfen [Kollisionen] [else] ref Terminvorschlag finden und über Kollisionen informieren ref Notifikationen erzeugen und Sichten aktualisieren

101 Objektorientierte Modellierung mit UML2
Literatur Hitz, M., Kappel, G., Kapsammer, E., Retschitzegger, W. (2005). Work. Objektorientierte Modellierung mit UML 2 (3. Aufl.). Heidelberg: dpunkt.verlag


Herunterladen ppt "Objektorientierte Modellierung mit UML 2"

Ähnliche Präsentationen


Google-Anzeigen