Objektorientierte Modellierung mit UML 2 Nichtrelationale Datenbanken -Historisch...
-
Upload
wilhelmine-kares -
Category
Documents
-
view
112 -
download
1
Transcript of Objektorientierte Modellierung mit UML 2 Nichtrelationale Datenbanken -Historisch...
Objektorientierte Modellierung mit UML 2
Objektorientierte Modellierung mit UML 2
Nichtrelationale Datenbanken-Historisch kulturwissenschaftliche Informationsverarbeitung-
Universität zu KölnSommersemester 2006
unter Leitung von: Prof. Manfred Thaller
Tanja Lange
01.06.2006
Objektorientierte Modellierung mit UML2
Was ist UML ? Was ist UML ?„Unified (vereinheitlichte) Modeling Language“auf objektorientierten Konzepten basierende
grafische Modellierungssprachedient zur Modellierung bestimmter
Realitätsausschnitte und ermöglicht das
spezifizieren, konstruieren, visualisieren und dokumentieren
eines Softwaresystemsgrafische Repräsentation der Modelle in Form
von Diagrammen
UML
01.06.2006
Objektorientierte Modellierung mit UML2
rolle1 rolle2 rolle2
cdA
rolle1 rolle2 rolle2
cdA
rolle1 rolle2 rolle2
cdA
Diagramme
Prinzip Prinzip
Diagramme Diagramme als grafische Repräsentation der
ModelleModelle als abstrakte Sicht auf die
RealitätRealität
ModellModellSichtRealitäts-Realitäts-ausschnittausschnittSicht
01.06.2006
Objektorientierte Modellierung mit UML2
Diagramme Diagramme
DiagrammDiagramm
StrukturdiagrammStrukturdiagramm VerhaltensdiagrammVerhaltensdiagramm
KK
OO
PP KtKt
KstKst
VV AwfAwf AkAk ZZ
II
KKSS ZtZt IüIü
Diagramme
Struktur-modellierung
Struktur-modellierung
Statische Aspekte
01.06.2006
Objektorientierte Modellierung mit UML2
Diagrammarten Diagrammarten
DiagrammDiagramm
StrukturdiagrammStrukturdiagramm
Klassen-diagrammKlassen-diagramm
Objekt-diagrammObjekt-
diagramm
Paket-diagramm
Paket-diagramm
Kompositionsstruktur-diagramm
Kompositionsstruktur-diagramm
Komponenten-diagramm
Komponenten-diagramm
Verteilungs-diagramm
Verteilungs-diagramm
Diagramme
KlassendiagrammKlassendiagramm
01.06.2006
Objektorientierte Modellierung mit UML2
Basisnotation von KlassenBasisnotation von Klassen
Namensfeld
Attributliste
Operationsliste
Attribut
…
Operation()
…
Klasse
Klassendiagramme
01.06.2006
Objektorientierte Modellierung mit UML2
Klasse Klasse
Klassenname Stereotype/
Schlüsselwörter Eigenschafts-
angaben {abstract} (=true)
«Stammdaten»
Mitarbeiter{abstract}
Klassendiagramme
01.06.2006
Objektorientierte Modellierung mit UML2
Attribut Attribut
Attribute beschreiben Eigenschaften
Instanzattribut (=Instanzvariable) in Standardschrift
Klassenattribut (= Klassenvariable) unterstrichen
Mitarbeiter
-personalnr-name-gehalt-alter-/hyperlink:URL[0..1]
Klassendiagramme
01.06.2006
Objektorientierte Modellierung mit UML2
Attribut 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]
01.06.2006
Objektorientierte Modellierung mit UML2
Operation Operation= ausführbare
Tätigkeitevtl. Abschnittsname
(A-Name)bsw.operations
ParameterlisteSichtbarkeitMultiplizitätEigenschaftsliste { }Art eines Parameters
(in, out, inout, return)= Datanflussrichtung
Notiz
Mitarbeiter
-personalnr-name-gehalt-/alter-hyperlink: URL[0..1]
+einstellen()+erhöheGehalt()+druckeAusweis()+typ()
Klassendiagramme
01.06.2006
Objektorientierte Modellierung mit UML2
Aktive KlassenAktive Klassen
Klassen, für die ein eigenes Verhalten definiert ist, z.B. mit Zustands- oder Aktivitätsdiagramm
Instanzen weisen Kontrollfluss aufReaktionen auf Ereignisse
(Operationsaufrufe)Notation: {active}, vertikal doppelter Rahmen
Klasse{active} =
Klassendiagramme
Klasse
01.06.2006
Objektorientierte Modellierung mit UML2
Geschachtelte KlassenGeschachtelte Klassen
Gehören zum Namensraum der Klasse, in der sie deklariert sind
Äußere Klasse
Geschachtelte Klasse
«nestedClassifier»
Klassendiagramme
01.06.2006
Objektorientierte Modellierung mit UML2
Objekt 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
01.06.2006
Objektorientierte Modellierung mit UML2
Assoziation Assoziation
Verbindungen zwischen Objekten einer Klasse
Darstellung als Verbindungslinie (Kanten) zwischen Klassen/Objekten
Assoziationsnamen, LeserichtungRolle (Bedeutung der Klasse in der
Assoziation) - RollennameSichtbarkeit, Multiplizität, Ordnung
MitarbeiterName
TerminDatum /nimmtTeilAn
+ teilnehmer* 2
{ordered}
Klassendiagramme
01.06.2006
Objektorientierte Modellierung mit UML2
Assoziation Assoziation
Teilmengen von Assoziationen {subsets <role-name>}
Vereinigung {union}
MitarbeiterTermin /nimmtTeilAn
/ teilnehmer* *
{ordered}Datum Name
** * *geladeneTn {subsets teilnehmer}
eingeladeneTn {subsets teilnehmer}
Klassendiagramme
{union}
01.06.2006
Objektorientierte Modellierung mit UML2
Assoziation Assoziation
Navigierbare Assoziationsenden „“Nicht navigierbares A.ende „x“
Navigierbare Assoziation als Attribut
HypertextDokumentTermin * 0..1X
HypertextDokumentTerminzusatzInfo: HypertextDokument [0..1]
zusatzInfo
Klassendiagramme
01.06.2006
Objektorientierte Modellierung mit UML2
Qualifizierte AssoziationQualifizierte Assoziation
qualifiziertes Attribut zur Charakterisierung der Assoziation
dienen auch zur Reduzierung der Multiplizität
Person angestelltBeiangestellter
*1..*
abteilung
Unternehmen
Klassendiagramme
01.06.2006
Objektorientierte Modellierung mit UML2
AssoziationsklasseAssoziationsklasse
eigenes Klassensymboldurch gestrichelte Linie mit Assoziationskante
verbundenKlassenname = Assoziationsname
MitarbeiterName
TerminDatum
teilnehmer*
{ordered}*
TeilnahmewarnZeit: DatumZeit
Klassendiagramme
01.06.2006
Objektorientierte Modellierung mit UML2
n-äre Assoziation n-äre Assoziation
mehrstellige Assoziation durch Raute dargestelltmit allen Klassen durch Kante verbundenevtl. mit zugeordneter Assoziationsklasse
KalenderName
PersonDatum Bewilliger*Berechtigter *
erlaubt: Recht
Termintypbezeichnung
Berechtigung
*
Klassendiagramme
01.06.2006
Objektorientierte Modellierung mit UML2
Aggregation/KompositionAggregation/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
VerzeichnisNameErstellung
BuchTitelErscheinungsjahr
Aggregation* *
Komposition*
KapitelAutorAnzahlSeiten
DateiNameErstellungletzteÄnderung
1
Aggregat-klasse
Teil-klasse
Klassendiagramme
01.06.2006
Objektorientierte Modellierung mit UML2
Generalisierung (Vererbung)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
01.06.2006
Objektorientierte Modellierung mit UML2
Generalisierung (Vererbung)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
01.06.2006
Objektorientierte Modellierung mit UML2
Generalisierung – weitere BegriffeGeneralisierung – weitere Begriffe
Objekt ist „direkte Instanz“ der KlasseJede „direkte Instanz“ einer Klasse ist
„indirekte Instanz“ jeder SuperklasseMehrfachvererbung: eine Klasse besitzt
mehrere OberklassenMehrfachklassifikation: Objekt kann direkte
Instanz mehrer Klassen seinKlassifikationstyp: Typ eines Diskriminators
- wird als Klasse dargestellt, die
mit Superklasse in Generalisierungsmenge durch Assoziation verbunden ist Klasse 2
Klasse 1pt
Klasse 3
a.pt
Klassendiagramme
01.06.2006
Objektorientierte Modellierung mit UML2
Redefinition Redefinition
durch Eigenschaft {redefines <feature>} notiert
Überschreiben des Verhaltens der Oberklasse
muss explizit angegeben werden
Eintragtyp: Eintragstyp
Termintyp = termin {redefines typ}
B_Eintrag
B_Termin
X
X
1
1
0..1
daten
terminDaten{redefines daten}
Klassendiagramme
ObjektdiagrammObjektdiagramm
01.06.2006
Objektorientierte Modellierung mit UML2
ObjektdiagrammeObjektdiagramme
formaler Teil der Klassendiagrammevon Klassen können beliebig viele Objekte
als Instanzen gebildet werdenein Objekt hat einen Zustand, ein Verhalten
und eine unveränderliche Identitätkönnen den Attributen Werte zuordnen
Objektdiagramme
m1:Mitarbeiter
Objektbezeichner
Klasse des Objekts
:Mitarbeiter
anonymes Objekt
m1
Waisenobjekt
personalnr = 1234name = Bernd Meier
01.06.2006
Objektorientierte Modellierung mit UML2
Links Links
Instanzen einer Assoziation = Links (Kanten)nicht zu verwechseln mit Objekten der
Laufzeitumgebungmodellierte Instanzen = Instanzspezifikationen
Objektdiagramme
m1:Mitarbeitert1:Termin
m2:Mitarbeiter
PaketdiagrammPaketdiagramm
01.06.2006
Objektorientierte Modellierung mit UML2
Paketdiagramm Paketdiagramm
Zusammenfassung von UML-Modellelementen (meist Klassen)
Gruppierung und Strukturierung des Gesamtsystems / Systemteilen
3 Notationsvarianten
Paketdiagramme
Paketname
Termin
Benutzer
PaketnamePaketname
A B
01.06.2006
Objektorientierte Modellierung mit UML2
Namensraum Namensraum
1 Element kann zu max. 1 Paket gehören Paket definiert Namenraum Qualifizierter Name eines ElementsReferenzieren eines Elements
Paketdiagramme
Benutzerschnittstelle
B_Termin
B_Kalendertermine: B_Termin[*]benutzer: Benutzer
Terminverwaltung::Termin
Terminverwaltung
Termin
Benutzer
Kalender
01.06.2006
Objektorientierte Modellierung mit UML2
Sichtbarkeit Sichtbarkeit
Elementen können Sichtbarkeiten zugeordnet werden (nur privat/“-“ oder öffentlich/“+“)
Jedem Element muss eine Sichtbarkeit zugeordnet werden
Paketdiagramme
x
Y{import Z}
+CU
+A
Z
-G
V
+B
+E
-F
+D
«import»
«import»«access»
01.06.2006
Objektorientierte Modellierung mit UML2
Import 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}
+CU
+A
Z
-G
V
+B
+E
-F
+D
«import»
«import»«access»
01.06.2006
Objektorientierte Modellierung mit UML2
PaketverschmelzungPaketverschmelzung
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
A C
R
A
R
A C
BEffektiver Inhalt
P
A B = ^
«merge»
«merge»
Basis-pakete
Verschmelzungspaket
KomponentendiagrammKomponentendiagramm
01.06.2006
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
Komponentendiagramm
01.06.2006
Objektorientierte Modellierung mit UML2
Notation:
Externe SichtInterne SichtPorts: Verteilerzentrum
zur Nachrichtenübermittlung (in, out, inout)
Verknüpfung einer Komponente mit anderer Komponente gleicher Ebene Typkonformität Voraussetzung
Komponente KomponenteKomponentendiagramm
«component»Name
Ports
Externe SichtInterne Sicht
«component»Name öffentlicher
Port
«component»Name privater
Port
01.06.2006
Objektorientierte Modellierung mit UML2
Interface 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
01.06.2006
Objektorientierte Modellierung mit UML2
Externe Sicht Externe SichtUmfasst Interfaces,
Ports, öffentliche Attribute & Operationen der Komponente, Verknüpfung von Komponenten gleicher EbeneVerknü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:
01.06.2006
Objektorientierte Modellierung mit UML2
Interne Sicht 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:
Kompositionsstruktur-diagramm
Kompositionsstruktur-diagramm
01.06.2006
Objektorientierte Modellierung mit UML2
Kompositionsstrukturdiag. 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
01.06.2006
Objektorientierte Modellierung mit UML2
Kollaboration KollaborationKollaboration 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)
KalenderAktualisierung
auslöser zuAktualisierende
VerteilungsdiagrammVerteilungsdiagramm
01.06.2006
Objektorientierte Modellierung mit UML2
Verteilungsdiagramm Verteilungsdiagramm
Modellieren der physischen Struktur eines Systems
zeigt die eingesetzte Hard- und Softwaretopologie und das zugeordnete Laufzeitsystem
Verteilungsdiagramm
01.06.2006
Objektorientierte Modellierung mit UML2
Verteilungsdiagramm VerteilungsdiagrammKnoten sind Hard-,
SoftwareelementeKommunikations-
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»
Verhaltens-modellierungVerhaltens-
modellierungDynamische Aspekte
01.06.2006
Objektorientierte Modellierung mit UML2
Diagrammarten Diagrammarten
DiagrammDiagramm
VerhaltensdiagrammVerhaltensdiagramm
Anwendungsfall-diagramm
Anwendungsfall-diagramm
Aktivitäts-diagrammAktivitäts-diagramm
Zustands-diagrammZustands-diagramm
Interaktions-diagramm
Interaktions-diagramm
Sequenz-diagrammSequenz-diagramm
Kommunikations-diagramm
Kommunikations-diagramm
Zeit-diagramm
Zeit-diagramm
Interaktions-übersichts-diagramm
Interaktions-übersichts-diagramm
Diagramme
Anwendungsfall-diagramm
Anwendungsfall-diagramm
01.06.2006
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
Anwendungsfalldiagramm
01.06.2006
Objektorientierte Modellierung mit UML2
Anwendungsfälle 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 Termin
löschen
Termin löschen
Benutzer
01.06.2006
Objektorientierte Modellierung mit UML2
Anwendungsfälle 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
Benutzer Adminitrator
Eintrag erfassen
Termin erfassen
Teilnehmer verständigen
Kalender aktualisieren
Programm verwalten
Zugriffsrechte verwalten
Einstellungen verwalten
Generalisierungs-beziehung
«include» «include» «extend»
«extend»
extension pointsZugriffsrechte anpassenEinstellungen anpassen
Condition: {Einstellungen ausgewählt}
Extension point: Einstellungen anpassen
Erweiterung eines Anwendungsfalls
Bedingung, die erfüllt sein muss um Anwendungsfall einzufügen
01.06.2006
Objektorientierte Modellierung mit UML2
Abstrakter Anwendungsfall 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» «extend»
globale Benutzergruppen
verwalten
Benutzer- gruppen verwalten
{abstract}
Abstrakter Anwendungsfall, nicht ausführbar!
konkreter Anwendungsfall, ausführbar!
AktivitätsdiagrammAktivitätsdiagramm
01.06.2006
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
Aktivitätsdiagramm
01.06.2006
Objektorientierte Modellierung mit UML2
Aktivitäten & Aktionen Aktivitäten & AktionenAktivität umfasst gesamte Verhaltens-
beschreibung im Aktivitätsdiagrammatomare Bestandteile einer Aktivität = AktionenAktionen 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-
parameterAktivitäts-knoten
Aktivitäts-kante
01.06.2006
Objektorientierte Modellierung mit UML2
Knoten KnotenAktionsknoten: 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
01.06.2006
Objektorientierte Modellierung mit UML2
Kanten 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
01.06.2006
Objektorientierte Modellierung mit UML2
Token Token„virtueller Koordinationsmechanismus“beschreiben Abläufe einer Aktivität zur
LaufzeitToken fließen entlang der Kanten vom
Vorgängerknoten zum NachfolgerknotenKontroll- und Datentokenmüssen an allen eingehenden Kanten eines
Knotens angeboten werden, um dessen Ausführung zu ermöglichen
„Ergebnisse einer Aktivität“
Aktivitätsdiagramm
01.06.2006
Objektorientierte Modellierung mit UML2
Kontrollknoten KontrollknotenInitialknoten: 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]
01.06.2006
Objektorientierte Modellierung mit UML2
Alternative Abläufe Alternative AbläufeEntscheidungsknoten: 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
01.06.2006
Objektorientierte Modellierung mit UML2
Nebenläufige Abläufe Nebenläufige AbläufeParallelisierungsknoten: 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
01.06.2006
Objektorientierte Modellierung mit UML2
Objektknoten Objektknotendienen als Ein- & Ausgabeparameter für
Aktivitätenoder als Ein- & Ausgabepins für Aktionenoder 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-
parameterEingabe-pin
Ausgabe-pin
Aktion1 Aktion2
Einladung versenden
Teilnehmer auswählen
«datastore» Benutzer
«centralBuffer» Ausgewählte Teilnehmer
01.06.2006
Objektorientierte Modellierung mit UML2
Begriffe BegriffeParametersatz: Zusammenfassung /
Gruppierung von ParameternSteuerung des Objektflusses über
ObjektflusskantenReihenfolge der Tokenweitergabe über
Spezifikation in geschwungenen Klammern Standard FIFO {ordering = LIFO} {ordering = ordered} {ordering = unordered}
Aktivitätsdiagramm
01.06.2006
Objektorientierte Modellierung mit UML2
Begriffe BegriffeKapazitätsobergrenze: begrenzt Anzahl der
Token, die Objektknoten aufnehmen kannGewicht einer ObjektflusskanteSelektionsverhalten: 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»
.......
01.06.2006
Objektorientierte Modellierung mit UML2
Partitionen Partitionenerlauben 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
Pa
rtiti
on
s-n
ame
01.06.2006
Objektorientierte Modellierung mit UML2
Partitionen PartitionenHierarchische
Partition: Wurzel (=Dimension) + Subpartitionen
Multidimensionale Partition: orthogonale Dimensionen
Aktivitätsdiagramm
Name Subpartition
Par
titio
ns-
nam
e
Dimensionsname
Name Subpartition
Par
titio
ns-
nam
e
Partitions-name
Partitions-name
Dimensionsname
Dim
en
sio
nsn
ame
01.06.2006
Objektorientierte Modellierung mit UML2
Strukturierte Aktivitätsknoten 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»
……
01.06.2006
Objektorientierte Modellierung mit UML2
Strukturierte Aktivitätsknoten 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
ZustandsdiagrammZustandsdiagramm
01.06.2006
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
Zustandsdiagramm
01.06.2006
Objektorientierte Modellierung mit UML2
Zustand 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
BeginnBearbeitendo / DatumZeit erfassenentry / Schreibmarke setzenexit / Abhängigkeiten aktualisieren
DauerBearbeitendo / Zeit erfassenentry / Schreibmarke setzenexit / Abhängigkeiten akt.
OKentry / Schaltfläche hervorhebenexit / Hervorhebung aufheben
Fehlerentry / Fehlermeldung anzeigenexit / Fehlermeldung löschen
Abbruchentry / Schaltfläche hervorhebenexit / Hervorhebung aufheben
ENTER
ENTER
ENTER[Werte inkorrekt]
ENTER
ENTER[Werte korrekt]/Änderungenakzeptieren
ENTER/Änderungenverwerfen
TAB
TAB
TAB
TAB
01.06.2006
Objektorientierte Modellierung mit UML2
Pseudozustände 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
BeginnBearbeitendo / DatumZeit erfassenentry / Schreibmarke setzenexit / Abhängigkeiten aktualisieren
DauerBearbeitendo / Zeit erfassenentry / Schreibmarke setzenexit / Abhängigkeiten akt.
OKentry / Schaltfläche hervorhebenexit / Hervorhebung aufheben
Fehlerentry / Fehlermeldung anzeigenexit / Fehlermeldung löschen
Abbruchentry / Schaltfl. herv.exit / Hervorhebg aufh.
ENTER
ENTER
ENTER[Werte inkorrekt]
ENTER
ENTER
ENTER
TAB
TAB
TAB
TAB
H
01.06.2006
Objektorientierte Modellierung mit UML2
Komplexe Zustände Komplexe ZuständeZusammengestzte,
geschachtelte ZuständeODER-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
BeginnBearbeitenentry / Schreibmarke setzenexit / Abhängigkeiten aktualisieren
DatumErfassenentry / Schreibmarke an Pos. pD setzen
ZeitErfassenentry / Schreibmarke an Pos. pT setzen
ENTER
TAB
/ pD = pT = 0
When(pD = 8)
Hilfe
H
F1
Z
A B
C D
01.06.2006
Objektorientierte Modellierung mit UML2
Unterautomaten Unterautomatenum mehrfach auftretende Verhaltensaspekte
herauszuheben und gesondert zu beschreiben
werden im „Hauptautomaten“ durch Unterautomatenzustand referenziert
Notation: Rechteck Name: Zustandsname:Unterautomatenname mit Ein- und Ausstiegspunkten
Zustandsdiagramm
01.06.2006
Objektorientierte Modellierung mit UML2
Protokollautomaten Protokollautomatenlegen 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
Verbindungsaufbau Gespräch
Gespräch beendet
Partner legt aufPartner hebt ab
Hörer abnehmen
Nummer wählen
InteraktionsdiagrammeInteraktionsdiagramme
01.06.2006
Objektorientierte Modellierung mit UML2
Interaktionsdiagramme Interaktionsdiagramme
spezifizieren das Interobjektverhalten in Form von Nachrichten zwischen Objekten in bestimmten Rollen
SequenzdiagrammSequenzdiagramm
01.06.2006
Objektorientierte Modellierung mit UML2
Sequenzdiagramm SequenzdiagrammModellierung von InteraktionenInteraktion 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
01.06.2006
Objektorientierte Modellierung mit UML2
Einsatzmöglichkeiten EinsatzmöglichkeitenModellierung 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
01.06.2006
Objektorientierte Modellierung mit UML2
Notation NotationRechteck mit Pentagondarin Diagrammtyp als String sdgefolgt vom Interaktionsnamen und evtl.
Parametern in KlammernZwei 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
01.06.2006
Objektorientierte Modellierung mit UML2
Begriffe BegriffeInteraktionen = Abfolge so genannter
EreignisspezifikationenEreignisspezifikationen 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
01.06.2006
Objektorientierte Modellierung mit UML2
Ausführung einer NachrichtAusfü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 rolle:TypStartereignis-spezifikation
Ausführungs-spezifikation
Endereignis-spezifikation
direkte Ausführung
indirekte Ausführung
01.06.2006
Objektorientierte Modellierung mit UML2
Versenden einer NachrichtVersenden einer NachrichtSynchrone 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
AntwortnachrichtenVerlorene Nachricht: eine Nachricht an einen
unbekannten oder nicht relevanten Interaktionspartner verschicken
Gefundene Nachricht: von einem solchen Interaktionspartner empfangen
Sequenzdiagramm
lost
found
01.06.2006
Objektorientierte Modellierung mit UML2
Kombinierte Fragmente Kombinierte Fragmentezur Modellierung komplexer Kontrollstrukturenbeinhaltet 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
01.06.2006
Objektorientierte Modellierung mit UML2
Arten von Operatoren Arten von OperatorenSequenzdiagramm
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
Ein Operand,
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
Objektorientierte Modellierung mit UML2
Arten von Operatoren Arten von OperatorenSequenzdiagramm
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
Objektorientierte Modellierung mit UML2
Arten von Operatoren Arten von OperatorenSequenzdiagramm
Operator Zweck Beschreibung
Filterungen
ignore Irrelevante Interaktionen
ein Operand;
erlaubt Spezifikation von Nachrichten, die als bedeutungslos eingestuft werden
consider Relevante Interaktionen
ein Operand;
erlaubt Spezifikation jener Nachrichten, die für die Interaktion besonders relevant sind
Zusicherungen
assert Zugesicherte Interaktionen
ein Operand;
Interaktionsablauf im Operanden ist einzig gültiges Verhalten an diesem Punkt der Interaktion und muss vollständig ausgeführt werden
neg Ungü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)
01.06.2006
Objektorientierte Modellierung mit UML2
Modularisierung ModularisierungWiederverwendung wird erleichtertKomplexität von Diagrammen wird reduziertFolgende 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
01.06.2006
Objektorientierte Modellierung mit UML2
Modularisierung Modularisierung Fortsetzungsmarken: Zerlegung der Operanden
eines alt-Operators
Sequenzdiagramm
alt
alt
A
A
B
B
Start-marken
Ziel-marken
01.06.2006
Objektorientierte Modellierung mit UML2
Modularisierung Modularisierung Verknüpfungspunkte: Verbindung von
Nachrichten zwischen Sequenzdiagrammen, Interaktionsreferenzen oder kombinierten Fragmenten
Sequenzdiagramm
sd b1
v1t
Verknüpfungs-punkte
u
v2
sd b2
v1x y
v2
Kommunikations-diagramm
Kommunikations-diagramm
01.06.2006
Objektorientierte Modellierung mit UML2
Kommunikationsdiagramm Kommunikationsdiagrammzusätzlich zu Interaktionen können auch die
zugrunde liegenden strukturellen Zusammenhänge der Interaktionspartner dargestellt werden
Keine ZeitachseAnordnung der Nachrichten entspricht nicht
der Reihenfolge Explizite Nummerierung durch
SequenznummernNotation:
Kommunikationsdiag.
comm name rolle[selector]:Typ
Interaktionspartner als Kopf ohne Lebenslinie
ZeitdiagrammZeitdiagramm
01.06.2006
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
Zeitdiagramm
01.06.2006
Objektorientierte Modellierung mit UML2
Notation 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
rolle
:Typ
Zustand 1
Zustand 2
Zustand 3
Zustand 4
at(t=12.00)
0 1 2 3 4 5 6 7 s
Zeitmetrik
Lebenslinien
Zustandsverlaufslinie
Auslöser
Nachrichtenaustausch
Interaktionsübersichts-diagramm
Interaktionsübersichts-diagramm
01.06.2006
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
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
01.06.2006
Objektorientierte Modellierung mit UML2
Literatur Literatur
Hitz, M., Kappel, G., Kapsammer, E., Retschitzegger, W. (2005).
UML @ Work. Objektorientierte Modellierung mit UML 2 (3. Aufl.).
Heidelberg: dpunkt.verlag