Objektorientierte Modellierung mit UML 2

Slides:



Advertisements
Ähnliche Präsentationen
Modellierung sozio-technischer Systeme SeeMe - Semi-strukturierte, sozio-technische Modellierungsmethode.
Advertisements

Frank Simon, BTU Cottbus: Einführung in UML
Die Definitionsphase -Objektorientierte Analyse - Das statische Modell
Objektorientierte Programmierung
OO Analyse Analyseprozess Erstellen eines Modells
Assoziationen Verbindungen zwischen Objekten einer Klasse
Ziele der Analyse sozialer Netzwerke in den Sozialwissenschaften
Objektorientierter Entwurf
Objektorientierter Entwurf
Objektorientierter Entwurf
Objektorientierte Konzepte und Notation in UML
Anwendungsfalldiagramm
Anwendungsfalldiagramm
Anwendungsfalldiagramm
Ziel: externe Systemverhalten aus Anwendersicht
Sequenzdiagramm.
Objektorientierte Analyse (OOA) Inhaltsübersicht
Objektorientierte Analyse (OOA) Übersicht
Java: Objektorientierte Programmierung
Abhängigkeitsbeziehung
UML im Überblick – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/22
Lösungen
Objektorientierte Konzepte
Weitere UML-Diagramme: Interaktionsübersichtsdiagramm Timing Diagramm
Objektorientierte Konzepte und Notation in UML
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 5 Polymorphismus Sommersemester 2003 Lars Bernard.
Modellierung komplexer Realität mit Objekten
Programmieren mit JAVA
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
UML Unified Modelling Language Dipl. -Inform
Software-Engineering II
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
DVG Klassen und Objekte
Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl
OO Analyse und Entwurf für Anwender
Rational Rose und UML: Erstellung einer Kontoverwaltung
UML Begleitdokumentation des Projekts
Unified Modeling Language Einführung zu UML Was ist „UML“?
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
6. Vorlesung: Statische Konzepte
12. Vorlesung: Aktivitätsdiagramme
10. Vorlesung: Dynamische Konzepte
Sequenzdiagramme (1) Festlegen des Inter-Objekt-Verhaltens (Interaktionsstruktur, Verantwortlichkeiten) Sequenzdiagramm ist temporal orientiert zeigt.
Sequenzdiagramm Von Michael Möhring.
Unified Modeling Language Repetition / Einführung zu UML
Entwurfs- und Implementationsdiagramme
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Objektorientierte Konzepte/UML Geoinformation I Vorlesung 2 WS 2000/2001.
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
Copyright 2011 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM Wintersemester 2011/12 Kapitel 11, Folie 1 2 Dr. Christian Herzog Technische.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
UML-Kurzüberblick Peter Brusten.
Unified Modeling Language
UML Modellierung des Verhaltens von Klassen und Objekten
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
Informatik und Programmieren 3
Vorlesung Software Engineering I
Zustandsübergangsdiagramme (1)
EPROG Tutorium #6 Philipp Effenberger
PHP: Operatoren und Kontrollstrukturen
Petrinetze 1. Einführung Informatik : wesentlich Modellierung von
Objektorientierte Modellierung mit UML
Klassen und Klassenstruktur
Unified Modeling Language UML
SS 2014 – IBB4C Datenmanagement Do 17:00 – 18:30 R Vorlesung #3 ER Modellierung.
Sichtbarkeit einschränken
1 DigInf 05/06 Diagrammtypen der UML 2.0 StrukturdiagrammeVerhaltensdiagramme Interaktionsdiagramme Klassendiagramm Komponentendiagramm Kompositionsstrukturdiagramm.
Name des Vortragenden ‌ Klasse ‌‌‌ Ort / tt.mm.jjjj Anwendungsfalldiagramm.
Tutorium Software-Engineering SS14 Florian Manghofer.
UML – Unified Modeling Language
 Präsentation transkript:

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

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 01.06.2006

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 01.06.2006

Objektorientierte Modellierung mit UML2 Diagramme Diagramme 01.06.2006

Struktur- modellierung Statische Aspekte

Diagrammarten Diagramme Objektorientierte Modellierung mit UML2 01.06.2006

Klassendiagramm

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

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

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] 01.06.2006

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/-) 01.06.2006

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()  01.06.2006

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 01.06.2006

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 01.06.2006

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 01.06.2006

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 01.06.2006

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} 01.06.2006

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] 01.06.2006

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 01.06.2006

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 01.06.2006

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 01.06.2006

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 01.06.2006

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 01.06.2006

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 { } 01.06.2006

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 01.06.2006

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 01.06.2006

Objektdiagramm

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 01.06.2006

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 01.06.2006

Paketdiagramm

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 01.06.2006

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 01.06.2006

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 01.06.2006

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 01.06.2006

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 01.06.2006

Komponentendiagramm

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 01.06.2006

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 01.06.2006

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 01.06.2006

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 01.06.2006

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: 01.06.2006

Kompositionsstruktur-diagramm

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 01.06.2006

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 1 1..* zuAktualisierende:Kalenderansicht 1..* b) Kalender auslöser zuAktualisierende Kalenderansicht … … Kalender Aktualisierung 01.06.2006

Verteilungsdiagramm

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 01.06.2006

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 01.06.2006

Verhaltens-modellierung Dynamische Aspekte

Diagrammarten Diagramme Objektorientierte Modellierung mit UML2 01.06.2006

Anwendungsfall- diagramm

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 01.06.2006

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 01.06.2006

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 01.06.2006

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 01.06.2006

Aktivitätsdiagramm

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 01.06.2006

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 01.06.2006

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 01.06.2006

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 01.06.2006

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“ 01.06.2006

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] 01.06.2006

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] 01.06.2006

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] 01.06.2006

«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 01.06.2006

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} 01.06.2006

«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 01.06.2006

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 01.06.2006

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 01.06.2006

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» … … 01.06.2006

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) 01.06.2006

Zustandsdiagramm

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 01.06.2006

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 01.06.2006

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 01.06.2006

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 01.06.2006

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 01.06.2006

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 01.06.2006

Interaktionsdiagramme

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

Sequenzdiagramm

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 01.06.2006

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 01.06.2006

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 01.06.2006

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 01.06.2006

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 01.06.2006

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 01.06.2006

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 01.06.2006

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 01.06.2006

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 01.06.2006

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) 01.06.2006

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 01.06.2006

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

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 01.06.2006

Kommunikations-diagramm

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 01.06.2006

Zeitdiagramm

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 01.06.2006

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 0 1 2 3 4 5 6 7 s Zeitmetrik Nachrichtenaustausch 01.06.2006

Interaktionsübersichts-diagramm

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 01.06.2006

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