Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Objektorientierte Modellierung mit UML 2 Nichtrelationale Datenbanken -Historisch kulturwissenschaftliche Informationsverarbeitung- Universität zu Köln.

Ähnliche Präsentationen


Präsentation zum Thema: "Objektorientierte Modellierung mit UML 2 Nichtrelationale Datenbanken -Historisch kulturwissenschaftliche Informationsverarbeitung- Universität zu Köln."—  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 Objektorientierte Modellierung mit UML2 Was ist 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 UML

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

4 Objektorientierte Modellierung mit UML2 Diagramme

5 Struktur- modellierung Statische Aspekte

6 Objektorientierte Modellierung mit UML2 Diagrammarten Diagramm Strukturdiagramm Klassen- diagramm Objekt- diagramm Paket- diagramm Kompositionsstruktur- diagramm Komponenten- diagramm Verteilungs- diagramm Diagramme

7 Klassendiagramm

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

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

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

11 Objektorientierte Modellierung mit UML2 Attribut 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 { } Sichtbarkeit: öffentlich (public/+) paket (package/~) geschützt (protcted/#) privat (private/-) Klassendiagramme Mitarbeiter -personalnr -name -gehalt -alter -/hyperlink: URL[0..1]

12 Objektorientierte Modellierung mit UML2 Operation = 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() Klassendiagramme

13 Objektorientierte Modellierung mit UML2 Aktive Klassen 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 Klasse {active} = Klassendiagramme Klasse

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

15 Objektorientierte Modellierung mit UML2 Objekt 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 m1:Mitarbeiter Klassendiagramme

16 Objektorientierte Modellierung mit UML2 Assoziation 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 Mitarbeiter Name Termin Datum /nimmtTeilAn + teilnehmer * 2 {ordered} Klassendiagramme

17 Objektorientierte Modellierung mit UML2 Assoziation Teilmengen von Assoziationen {subsets } Vereinigung {union} MitarbeiterTermin /nimmtTeilAn / teilnehmer ** {ordered} DatumName **** geladeneTn {subsets teilnehmer} eingeladeneTn {subsets teilnehmer} Klassendiagramme {union}

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

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

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

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

22 Objektorientierte Modellierung mit UML2 Aggregation/Komposition 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 Verzeichnis Name Erstellung Buch Titel Erscheinungsjahr Aggregation * * Komposition * Kapitel Autor AnzahlSeiten Datei Name Erstellung letzteÄnderung 1 Aggregat- klasse Teil- klasse Klassendiagramme

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

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

25 Objektorientierte Modellierung mit UML2 Generalisierung – weitere Begriffe 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 Klasse 2 Klasse 1 pt Klasse 3 a.pt Klassendiagramme

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

27 Objektdiagramm

28 Objektorientierte Modellierung mit UML2 Objektdiagramme 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 Objektdiagramme m1:Mitarbeiter ObjektbezeichnerKlasse des Objekts :Mitarbeiter anonymes Objekt m1 Waisenobjekt personalnr = 1234 name = Bernd Meier

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

30 Paketdiagramm

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

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

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

34 Objektorientierte Modellierung mit UML2 Import 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 Paketdiagramme x Y {import Z} +C U +A Z -G V +B +E -F +D «import» «access»

35 Objektorientierte Modellierung mit UML2 Paketverschmelzung 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 Paketdiagramme Q AC R A R AC B Effektiver Inhalt P AB = ^ «merge» Basis- pakete Verschmelzungspaket

36 Komponentendiagramm

37 Objektorientierte Modellierung mit UML2 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 Komponentendiagramm

38 Objektorientierte Modellierung mit UML2 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 Komponente Komponentendiagramm «component» Name Ports Externe Sicht Interne Sicht «component» Name öffentlicher Port «component» Name privater Port

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

40 Objektorientierte Modellierung mit UML2 Externe Sicht 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 Komponentendiagramm Klient «use» Anbieter a) Interface-Realisierungs-/Benutzungsabhängigkeit: b) Buchse/Stecker-Notation: c) Separater Abschnitt:

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

42 Kompositionsstruktur- diagramm

43 Objektorientierte Modellierung mit UML2 Kompositionsstrukturdiag. 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: Kompositionsstrukturd. ungerichtet gerichtet

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

45 Verteilungsdiagramm

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

47 Objektorientierte Modellierung mit UML2 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) Verteilungsdiagramm «device» calClient:PC «device» calServer:Host «internet» «artifact» calServerProgram:jar «deploy»

48 Verhaltens- modellierung Dynamische Aspekte

49 Objektorientierte Modellierung mit UML2 Diagrammarten Diagramm Verhaltensdiagramm Anwendungsfall- diagramm Aktivitäts- diagramm Zustands- diagramm Interaktions- diagramm Sequenz- diagramm Kommunikations- diagramm Zeit- diagramm Interaktions- übersichts- diagramm Diagramme

50 Anwendungsfall- diagramm

51 Objektorientierte Modellierung mit UML2 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 Anwendungsfalldiagramm

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

53 Objektorientierte Modellierung mit UML2 Anwendungsfälle 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) Anwendungsfalldiagramm BenutzerAdminitrator Eintrag erfassen Termin erfassen Teilnehmer verständigen Kalender aktualisieren Programm verwalten Zugriffsrechte verwalten Einstellungen verwalten Generalisierungs- beziehung «include» «extend» extension points Zugriffsrechte anpassen Einstellungen anpassen Condition: {Einstellungen ausgewählt} Extension point: Einstellungen anpassen Erweiterung eines Anwendungsfalls Bedingung, die erfüllt sein muss um Anwendungsfall einzufügen

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

55 Aktivitätsdiagramm

56 Objektorientierte Modellierung mit UML2 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 Aktivitätsdiagramm

57 Objektorientierte Modellierung mit UML2 Aktivitäten & Aktionen 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ätsdiagramm Aktivitäts- name Eingabe- parameter Ausgabe- parameter Aktivitäts- knoten Aktivitäts- kante

58 Objektorientierte Modellierung mit UML2 Knoten 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 Aktivitätsdiagramm

59 Objektorientierte Modellierung mit UML2 Kanten 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 Aktivitätsdiagramm

60 Objektorientierte Modellierung mit UML2 Token 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 Aktivitätsdiagramm

61 Objektorientierte Modellierung mit UML2 Kontrollknoten 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 Aktivitätsdiagramm Einladung drucken Einladung adressieren [else] [alle Einladungen gedruckt]

62 Objektorientierte Modellierung mit UML2 Alternative Abläufe 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 Aktivitätsdiagramm Termin vorschlagen Termin fixieren [false] [true] «decision Input» Teilnehmer mit Termin einverstanden? Teilnehmer informieren

63 Objektorientierte Modellierung mit UML2 Nebenläufige Abläufe 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 Aktivitätsdiagramm BenutzerID prüfen Termin erfassen [else] [ok] Kollision prüfen Teilnehmer auswählen

64 Objektorientierte Modellierung mit UML2 Objektknoten 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») Aktivitätsdiagramm Aktivitäts- name Eingabe- parameter Ausgabe- parameter Eingabe- pin Ausgabe- pin Aktion1 Aktion2 Einladung versenden Teilnehmer auswählen «datastore» Benutzer «centralBuffer» Ausgewählte Teilnehmer

65 Objektorientierte Modellierung mit UML2 Begriffe 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} Aktivitätsdiagramm

66 Objektorientierte Modellierung mit UML2 Begriffe 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 Aktivitätsdiagramm «centralBuffer» To-do´s {upperBound=20} {weight=20} Teilnehmer auswählen «datastore» Benutzer «selection»

67 Objektorientierte Modellierung mit UML2 Partitionen 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 Aktivitätsdiagramm Partitions- name

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

69 Objektorientierte Modellierung mit UML2 Strukturierte Aktivitätsknoten 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 Aktivitätsdiagramm «structured» … …

70 Objektorientierte Modellierung mit UML2 Strukturierte Aktivitätsknoten 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) Aktivitätsdiagramm

71 Zustandsdiagramm

72 Objektorientierte Modellierung mit UML2 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 Zustandsdiagramm

73 Objektorientierte Modellierung mit UML2 Zustand 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 Zustandsdiagramm BeginnBearbeiten do / DatumZeit erfassen entry / Schreibmarke setzen exit / Abhängigkeiten aktualisieren DauerBearbeiten do / Zeit erfassen entry / Schreibmarke setzen exit / Abhängigkeiten akt. OK entry / Schaltfläche hervorheben exit / Hervorhebung aufheben Fehler entry / Fehlermeldung anzeigen exit / Fehlermeldung löschen Abbruch entry / Schaltfläche hervorheben exit / Hervorhebung aufheben ENTER [Werte inkorrekt] ENTER [Werte korrekt] /Änderungen akzeptieren ENTER /Änderungen verwerfen TAB

74 Objektorientierte Modellierung mit UML2 Pseudozustände 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 Zustandsdiagramm BeginnBearbeiten do / DatumZeit erfassen entry / Schreibmarke setzen exit / Abhängigkeiten aktualisieren DauerBearbeiten do / Zeit erfassen entry / Schreibmarke setzen exit / Abhängigkeiten akt. OK entry / Schaltfläche hervorheben exit / Hervorhebung aufheben Fehler entry / Fehlermeldung anzeigen exit / Fehlermeldung löschen Abbruch entry / Schaltfl. herv. exit / Hervorhebg aufh. ENTER [Werte inkorrekt] ENTER TAB H

75 Objektorientierte Modellierung mit UML2 Komplexe Zustände 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 Zustandsdiagramm BeginnBearbeiten entry / Schreibmarke setzen exit / Abhängigkeiten aktualisieren DatumErfassen entry / Schreibmarke an Pos. pD setzen ZeitErfassen entry / Schreibmarke an Pos. pT setzen ENTER TAB / pD = pT = 0 When(pD = 8) Hilfe H F1 Z AB CD

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

77 Objektorientierte Modellierung mit UML2 Protokollautomaten 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) Zustandsdiagramm Telefongespräch {protocol} Grundzustand Wahlbereit VerbindungsaufbauGespräch Gespräch beendet Partner legt aufPartner hebt ab Hörer abnehmen Nummer wählen

78 Interaktionsdiagramme

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

80 Sequenzdiagramm

81 Objektorientierte Modellierung mit UML2 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 Sequenzdiagramm

82 Objektorientierte Modellierung mit UML2 Einsatzmöglichkeiten 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 Sequenzdiagramm

83 Objektorientierte Modellierung mit UML2 Notation 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 Sequenzdiagramm sd name (par1, par2) rolle:Typ

84 Objektorientierte Modellierung mit UML2 Begriffe 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 Sequenzdiagramm

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

86 Objektorientierte Modellierung mit UML2 Versenden einer Nachricht 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 Sequenzdiagramm lost found

87 Objektorientierte Modellierung mit UML2 Kombinierte Fragmente 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 Sequenzdiagramm loop alt sd Beispiel Operand 1 Operand 2 Operatoren Kombinierte Fragmente Schachtelung von Interaktionen

88 Objektorientierte Modellierung mit UML2 Arten von Operatoren Sequenzdiagramm OperatorZweckBeschreibung Verzweigungen altAlternative Interaktionen Mehrere Operanden, von denen einer zur Laufzeit anhand von Überwachungsbedingung oder else-Bedingung ausgewählt wird optOptionale Interaktionen Ein Operand, Ausführung von Überwachungs- bedingung abhängig; if-then -Konstrukt breakAusnahme- Interaktionen Ein Operand, wird ausgeführt, wenn Bedingungen erfüllt; wenn Bedingungen nicht erfüllt, wird umgebendes Fragment ausgeführt Schleifen loopIterative Interaktionen Ein Operand; Ausführungshäufigkeit durch Zähler und Überwachungsbedingung bestimmt

89 Objektorientierte Modellierung mit UML2 Arten von Operatoren Sequenzdiagramm OperatorZweckBeschreibung Nebenläufig- keiten und Ordnung seqSequenzielle 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 strictSequenzielle Interaktionen mit strenger Ordnung mehrere Operanden mit strenger Ordnung; Reihenfolge der Ereigniseintritte muß exakt der Anordnungsreihenfolge der korrespondierenden Ereignisspezifikationen entsprechen parNebenläufige Interaktionen Zwei oder mehrere Operanden; werden nebenläufig ausgeführt criticalAtomare Interaktionen ein Operand; erlaubt Spezifikation eines atomaren, d.h. nichtunterbrechbaren Interaktionsablaufs

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

91 Objektorientierte Modellierung mit UML2 Modularisierung 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 Sequenzdiagramm ref sdName (par1, par2): rückgabeWert rolle[selector]:Typ ref Interaktionsname Interaktionsreferenz zur Zerlegung von Interaktionsabläufen Referenz der inneren Interaktion einer Lebenslinie

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

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

94 Kommunikations- diagramm

95 Objektorientierte Modellierung mit UML2 Kommunikationsdiagramm 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: Kommunikationsdiag. comm name rolle[selector]:Typ Interaktionspartner als Kopf ohne Lebenslinie

96 Zeitdiagramm

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

98 Objektorientierte Modellierung mit UML2 Notation 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 Zeitdiagramm timing name rolle:Typ Zustand 1 Zustand 2 Zustand 3 Zustand 4 at(t=12.00) s Zeitmetrik Lebenslinien Zustandsverlaufslinie Auslöser Nachrichtenaustausch

99 Interaktionsübersichts- diagramm

100 Objektorientierte Modellierung mit UML2 Interaktionsübersichtsd. Modellierung des Kontrollflusses zwischen verschiedenen Interaktionsabläufen, d.h. in welcher Reihenfolge und unter welchen Bedingungen verschiedene Interaktionsabläufe stattfinden Interaktionsübersichtsd. ref intover Termin erfassen Eckdaten des Termins erfassen ref Teilnehmer ref Kollision prüfen ref Terminvorschlag finden und über Kollisionen informieren [Kollisionen][else] 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 Nichtrelationale Datenbanken -Historisch kulturwissenschaftliche Informationsverarbeitung- Universität zu Köln."

Ähnliche Präsentationen


Google-Anzeigen