Einf¨ uhrung in die Modellierung Petrinetze Unified Modeling Language (UML) Vorlesung “Modellierung” “Modellierungsmethoden der Informatik” Wintersemester 2011/12 Prof. Barbara K¨ onig ¨ Ubungsleitung: Dr. Sander Bruggink Barbara K¨ onig Modellierung 1
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Vorlesung “Modellierung”“Modellierungsmethoden der Informatik”
Wintersemester 2011/12
Prof. Barbara KonigUbungsleitung: Dr. Sander Bruggink
Barbara Konig Modellierung 1
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sehr umfangreich, enthalt vieleverschiedene Typen von Modellen.
Entwickelt von Grady Booch,James Rumbaugh, Ivar Jacobson(1997).
Barbara Konig Modellierung 213
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
UML und Objekt-Orientierung
Was bedeutet Objekt-Orientierung?
Grundidee
Die reale Welt besteht aus Objekten, die untereinander inBeziehungen stehen. Diese Sichtweise wird auch auf Modellierungund Softwareentwicklung ubertragen.
Etwas genauer . . .
Daten (= Attribute) werden zusammen mit der Funktionalitat (=Methoden) in Objekten organisiert bzw. gekapselt. Jedes Objekt istin der Lage Nachrichten (= Methodenaufrufe) zu empfangen,Daten zu verarbeiten und Nachrichten zu senden.
Diese Objekte konnen – einmal erstellt – in verschiedenenKontexten wiederverwendet werden.
Barbara Konig Modellierung 214
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
UML und Objekt-Orientierung
Geschichte der Objekt-Orientierung
Entwicklung von objekt-orientierten Programmiersprachen:
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
UML und Objekt-Orientierung
Vorteile der objekt-orientierten Programmierung und Modellierung
Leichte Wiederverwendbarkeit dadurch, dass Daten undFunktionalitat zusammen verwaltet werden und es Konzeptezur Modifikation von Code (Stichwort: Vererbung) gibt.
Nahe zur realen Welt: viele Dinge der realen Welt konnen alsObjekte modelliert werden.
Vertraglichkeit mit Nebenlaufigkeit und Parallelitat:Kontrollfluss kann nebenlaufig in den Objekten ablaufen unddie Objekte konnen durch Nachrichtenaustausch bzw.Methodenaufrufe untereinander kommunizieren.
Barbara Konig Modellierung 216
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
UML und Objekt-Orientierung
Ein Beispiel fur die Modellierung vonObjekten der realen Welt:
Wir werden im Folgenden einige dieser Begriffe mit Leben fullen.
Barbara Konig Modellierung 224
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Wir beginnen mit Klassen- und Objektdiagrammen . . .
Beispiel: Klasse der zweidimensionalen Punkte mit x-,y -Koordinaten und Operationen zum Auslesen der Koordinaten
Graphische Darstellung einer Klasse
x: inty: int
Klassenname
Attribute (evtl. mit Typ)
Operationen/Methodenget x(): intget y(): int
Point
Barbara Konig Modellierung 225
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Bemerkungen:
Bei den Attributen handelt es sich um sogenannteInstanzattribute, d.h., sie gehoren zu den Instanzen einerKlasse (nicht zur Klasse selbst).
Man kann die Sichtbarkeit eines Attributes bzw. einerMethode spezifieren, indem man + (offentlich/sichtbar) oder− (privat/nicht sichtbar) vor den Attribut-/Methodennamenschreibt.Auch die Angabe # (geschutzt/protected) ist moglich. Indiesem Fall ist das Attribut nur fur Klassen sichtbar, die vonder entsprechenden Klasse erben.
Barbara Konig Modellierung 226
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Bemerkungen:
Attribute haben im allgemeinen Typen, manchmal auchVorgabewerte (= initiale Werte). Dies wird dannfolgendermaßen notiert:
x: int = 0
Mehrstellige Operationen mit Ruckgabewert werden mit ihrenTypen folgendermaßen notiert:
add(m: int, n: int): int
Barbara Konig Modellierung 227
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Graphische Darstellung einer Instanz einer Klasse
x: inty: int
get x(): intget y(): int
�instantiate�
x = 0y = 0
Point mypoint :Point
Barbara Konig Modellierung 228
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Graphische Darstellung von Generalisierung/Spezialisierung
c: stringx: inty: int
get x(): intget y(): int
color(): stringsetcolor(c: string)
Colored PointPoint
Die Klasse Colored Point spezialisiert die Klasse Point.Umgekehrt generalisiert Point die Klasse Colored Point.
Barbara Konig Modellierung 229
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Bemerkungen:
In einer solchen Situation nennt man Point Superklasse undColored Point Subklasse.
Die Subklasse erbt die Attribute, Methoden und Assoziationender Superklasse (und kann diesen noch weitere hinzufugen).Daher spricht man auch von Vererbung. Außerdem kann manin der Subklasse Methoden der Superklasse uberschreiben unddurch neue ersetzen.
Barbara Konig Modellierung 230
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Wie kann man Beziehungen zwischen Klassen in UML darstellen?
Es gibt folgende mogliche Beziehungen:
Assoziation
Aggregation
Komposition
Barbara Konig Modellierung 231
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Wir beginnen mit der schwachsten Relation zwischen zwei Klassen:der Assoziation.
Assoziation
Es gibt eine Assoziation zwischen den Klassen A und B, wenn
es eine semantische Beziehung zwischen den Klassen gibt.
Ublicherweise werden Assoziationen durch Referenzen realisiert.D.h., eine der Klassen hat ein Attribut vom Typ der anderenKlasse. Diese Attribute werden im Klassendiagramm jedoch nichtexplizit angegeben.
Barbara Konig Modellierung 232
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Beispiel fur eine Assoziation
Eine Person besitzt ein Auto.
besitzt
Person Auto
Barbara Konig Modellierung 233
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Bemerkungen:
Es kann eine Leserichtung der Assoziation eingefuhrt werden:
besitzt
Person Auto
Die Navigationsrichtung (beschrieben durch eine Pfeilspitze)kann von der Leserichtung abweichen. Sie beschreibt, welcheKlasse ihren Assoziationspartner kennt (und daher seineMethoden aufrufen kann).
besitzt
Person Auto
Hier kennen sich beide Klassen gegenseitig.
Barbara Konig Modellierung 234
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Multiplizitaten: an beide Enden der Assoziationen konnenMultiplizitaten in Form von Intervallen m..n (oder einfach nurm fur m..m) angegeben werden. Hier besitzt eine Person biszu funf Autos. Ein Auto ist im Besitz genau einer Person.
besitzt
Person Auto1 0..5
Falls die Multiplizitat großer als eins ist, muss dies in derImplementierung durch eine Liste (oder Menge oder Array)von Referenzen realisiert werden.
Barbara Konig Modellierung 235
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Multiplizitaten allgemein: in folgendem Diagramm konnen iInstanzen von A (mit m ≤ i ≤ n) mit einer Instanz von Bassoziert sein. Umgekehrt konnen j Instanzen von B (mitk ≤ j ≤ l) mit einer Instanz von A assoziiert sein.
A Bm..n k..l
Falls es keine obere Schranke gibt, wird ein Stern (=unendlich) verwendet. Beispielsweise steht 2..∗ fur“mindestens zwei”.
Die Multiplizitat 0..∗ wird als Standardwert angenommen,wenn keine Angabe vorhanden ist.
Barbara Konig Modellierung 236
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Rollen: Klassen konnen in verschiedenen Assoziationenverschiedene Rollen spielen. Rollen werden auch an denAssoziationen notiert (und konnen alle Bestandteile einesAttributs enthalten).
HaendlerKaeufer
EndkundeVerkaeuferKaeuferVerkaeufer
Grosshandel
Barbara Konig Modellierung 237
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Die nachste Relation – Aggregation – ist etwas starker.
Aggregation
Es gibt eine Aggregation zwischen den Klassen A und B, wenn
Instanzen der Klasse A Instanzen der Klasse B als Teileenthalten. (Ein “Ganzes” enthalt mehrere “Teile”.)
Barbara Konig Modellierung 238
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Beispiel fur eine Aggregation
Ein Parkplatz “enthalt” mehrere Autos.
AutoParkplatz
enthaelt
0..1 0..∗
Barbara Konig Modellierung 239
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Die starkste Relation ist die sogenannte Komposition.
Komposition
Es gibt eine Komposition zwischen den Klassen A und B, wenn
Instanzen der Klasse A Instanzen der Klasse B als Teileenthalten und die Lebenszeit der Teile wird vom“Ganzen” kontrolliert. Das heißt, die Teile konnen(mussen) geloscht werden, sobald die Instanz der KlasseA geloscht wird.
Barbara Konig Modellierung 240
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Beispiel fur eine Komposition
Ein Auto besteht aus vier Radern.
Auto Rad
besteht aus
1 4
Die Rader werden zerstort, sobald das Auto zerstort wird.
Bemerkung: In diesem Fall muss die Multiplizitat, die an derschwarzen Raute steht, immer 0 oder 1 sein. Jedes Teil kannhochstens zu einem Ganzen gehoren.
Barbara Konig Modellierung 241
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
In Klassendiagrammen befinden sich normalerweise nicht nur zweiKlassen mit einer Assoziationen, sondern verschiedene Klasseneines Programms oder Moduls, mit ihren Beziehungenuntereinander.
Beispiel:
AutoParkplatz
enthaelt
0..1 0..∗
bes
itzt
Person
1
0..5
Rad
besteht aus
1 4
Barbara Konig Modellierung 242
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
n-are Assoziation
Neben binaren (zweistelligen) Assoziationen gibt es auch n-areAssoziationen, die eine Beziehung zwischen n Klassen beschreiben.
1..∗
0..∗
Vorspeise
0..∗ Dessert
Menue
Hauptgericht
Barbara Konig Modellierung 243
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Generalisierungsgruppen
Klassen konnen in unterschiedlicher Weise spezialisiert bzw.unterteilt werden. Daher konnen Generalisierungen zu Gruppenzusammengefasst werden.
Person
Frau
Mann
AlterGeschlecht
Erwachsener
Kind
Dabei wird die jeweilige Generalisierungsgruppe (hier: Alter bzw.Geschlecht) im Diagramm angegeben.
Barbara Konig Modellierung 244
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Den Generalisierungsgruppen konnen Eigenschaften (ingeschweiften Klammern) zugeordnet werden.
complete/incomplete:
complete: die Generalisierungsgruppe ist vollstandig, d.h.,sie uberdeckt alle Instanzen der Klasse.incomplete: die Generalisierungsgruppe ist unvollstandig.
disjoint/overlapping:
disjoint: die spezialisierenden Klassen besitzen keinegemeinsamen Instanzen (keine Uberlappung).overlapping: die spezialisierenden Klassen konnengemeinsame Instanzen besitzen.
Barbara Konig Modellierung 245
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Beispiele fur die Eigenschaften complete/incomplete unddisjoint/overlapping:
{complete,disjoint}
Person
Frau
Mann
Geschlecht
{complete,disjoint}
Hier handelt es sich um eine Partitionierung der Instanzen derKlasse.
Barbara Konig Modellierung 246
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
{incomplete,disjoint}
Alter
Person
{incomplete,disjoint}
Kind
Erwachsener
Warum unvollstandig? es fehlt eine Klasse Jugendlicher.
Barbara Konig Modellierung 247
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
{complete,overlapping}
Lebensraum
Tier
{complete,overlapping}
Fliegendes Tier
Landtier
Wassertier
Schildkroten sind sowohl Land- als auch Wassertiere.
Barbara Konig Modellierung 248
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
{incomplete,overlapping}
Tier
LebensraumLandtier
{incomplete,overlapping}
Wassertier
Fliegende Tiere fehlen.
Barbara Konig Modellierung 249
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Mehrfachvererbung
Es ist auch moglich, dass eine Klasse von mehreren Klassen erbt,d.h., eine Spezialisierung verschiedener Klassen ist. Dies bezeichnetman als Mehrfachvererbung.
Frau Kind
Erwachsener
AlterGeschlecht
Person
Mann
Maedchen
Ein Madchen ist sowohl ein Kind als auch ein weiblicher Mensch(= Frau).
Barbara Konig Modellierung 250
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Basierend auf diesen graphischen Notation sollte man einobjekt-orientiertes System modellieren, bevor es implementiertwird. Dabei stellen sich insbesondere folgende Fragen:
Welche Objekte und Klassen werden benotigt?
Welche Merkmale haben diese Klassen und welcheBeziehungen bestehen zwischen Ihnen?
Wie sollen die Klassen eingesetzt werden?
Welche Methoden stellen diese Klassen zur Verfugung? Wiewirken diese Methoden zusammen?
In welchen Zustanden konnen sich Objekte befinden undwelche Nachrichten werden wann an andere Objektegeschickt?
Barbara Konig Modellierung 251
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Beispiel: Modellierung einer Bank
Ein großeres Beispiel fur objekt-orientierte Modellierung undProgrammierung: Wir modellieren eine Bank.
Folgende Anforderungen werden gestellt:
Eine Bank
hat mehrere Kundenund mehrere Angestellteund fuhrt eine Menge von Konten.
Konten konnen
Giro- oder Sparkonten sein. (Ein Sparkonto wirft hohereZinsen ab, darf aber nicht ins Minus absinken.)in Euro oder in Dollar gefuhrt werden.
Barbara Konig Modellierung 252
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Beispiel: Modellierung einer Bank
Auf den Konten sollen folgende Operationen ausgefuhrtwerden konnen:
EinzahlenAbhebenVerzinsenUmbuchen
Außerdem sollen alle Objekte (inklusive der Bank) ihreDarstellung ausdrucken konnen. Dazu hat jedes Objekt eineeigene print-Methode.
Das bezeichnet man auch als Overloading: eine Methodegleichen Namens kann bei Objekten verschiedener Klassenaufgerufen werden und erzielt dort unterschiedliche Effekte.
Barbara Konig Modellierung 253
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Beispiel: Modellierung einer Bank
Klasse Bank:
Bank
neuen kunden anlegen()
name: string
konten verzinsen()print()
angestellten einstellen()
Methoden: neuen Kunden anlegen;neuen Angestellten einstellen; alleKonten verzinsen
Außerdem: Eine Bank besteht (inKompositionsrelation) aus einerMenge von Konten, dieverschwinden, wenn die Bankverschwindet. Außerdem gibt esAggregationen mit einer Liste vonKunden und von Angestellten.
Barbara Konig Modellierung 254
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Beispiel: Modellierung einer Bank
Klasse Konto:
Konto
nummer: stringzins: float
verzinsen()print()
einzahlen(wert: Betrag)
umbuchen auf(kto: konto,abheben(wert: Betrag)
kontostand: Betrag
wert: Betrag)
Attribute: Kontonummer, Zins
Methoden: Kontostand abfragen,einzahlen, abheben, umbuchen einesBetrags auf ein anderes Konto,Konto verzinsen
Außerdem: Konto steht in einerKompositionsrelation mit Betrag,d.h., jedes Konto enthalt einenBetrag (siehe Klassendiagramm).
Barbara Konig Modellierung 255
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Beispiel: Modellierung einer Bank
Klasse Girokonto:
Girokonto
Konto
zins: float = 0.005
Die Klasse Girokonto wird vonKonto abgeleitet. Typischerweise istder Zins bei Girokonten niedriger alsbei Sparkonten. Von daher wirddieser auf einen niedrigerenAnfangswert gesetzt.
Barbara Konig Modellierung 256
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Beispiel: Modellierung einer Bank
Klasse Sparkonto:
Konto
Sparkonto
zins: float = 0.02
abheben(wert: Betrag)
wert: Betrag)umbuchen auf(kto: Konto,
Bei der Klasse Sparkonto muss – wiebeim Girokonto – ein neuerAnfangswert fur den Zins gesetztwerden.
Außerdem: es muss darauf geachtetwerden, dass das Konto nicht insMinus abgleitet. Dazu werden dieentsprechenden Methodenuberschrieben (in derImplementierung muss dieBedingung entsprechend getestetwerden).
Barbara Konig Modellierung 257
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Beispiel: Modellierung einer Bank
Klasse Betrag:
wert: float
Betrag
negativ(): bool
print()mult(faktor: float)
plus(wert: Betrag)minus(wert: Betrag)
Methoden: Test, ob Konto imMinus; Betrag addieren,subtrahieren; Multiplikation mit einerGleitpunktzahl (zum Verzinsen!)
Betrage mussen im allgemeinen in einer Wahrung angegebenwerden. Daher werden von der Klasse Betrag die UnterklassenEuro und Dollar abgeleitet.
Barbara Konig Modellierung 258
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Beispiel: Modellierung einer Bank
Klasse Euro:
Euro
betrag in euro():float
Betrag
Von Betrag wird zunachst die KlasseEuro abgeleitet.
Methoden: Betrag in Euro ausgeben
Barbara Konig Modellierung 259
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Beispiel: Modellierung einer Bank
Klasse Euro:
Betrag
Dollar
betrag in dollar():float
Von Betrag wird außerdem dieKlasse Dollar abgeleitet.
Methoden: Betrag in Dollarausgeben
Barbara Konig Modellierung 260
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Beispiel: Modellierung einer Bank
Klasse Person:
Person
name: string
print()
Methoden: nur die print-Methode,weitere Methoden werden in denUnterklassen definiert
Außerdem: Person steht in einerAssoziationsrelation mit einer Listevon Konten, die entweder dieserPerson gehoren (Kunde) oder auf diediese Person Zugriff hat(Angestellte/r).
Barbara Konig Modellierung 261
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Beispiel: Modellierung einer Bank
Klasse Angestellter (erbt von Person):
Angestellter
zugriff auf konto(kto:Konto)
Methoden: Zugriff auf ein Kontoerlangen
Barbara Konig Modellierung 262
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Beispiel: Modellierung einer Bank
Klasse Kunde (erbt von Person):
Kunde
konto eroeffnen()
Methoden: Konto eroffnen (hierkonnte noch ein Parameter ubergebenwerden, der beschreibt, ob das Kontoein Giro- oder Sparkonto sein soll undob es in Euro oder Dollar gefuhrtwerden soll)
Außerdem: Ein Kunde steht in einerAssoziationsrelation mit seinemBetreuer.
Barbara Konig Modellierung 263
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Beispiel: Modellierung einer Bank
Betrag
Euro Girokonto Sparkonto
Konto
1
Dollar
Kunde
1
11
Bank Person
name: string
wert: float
Kontotyp
betreut
Angestellterbesitzt
besteht aus
Waehrung
hat Zugriff auf
Status
Barbara Konig Modellierung 264
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Abstrakte Klasse
Eine Klasse heißt abstrakt, wenn sie selbst keine Instanzen habenkann. Dazu wird die Eigenschaft {abstract} unter demKlassennamen angegeben. Manchmal wird stattdessen auch derKlassenname kursiv geschrieben.
Beispiel: in dem Bank-Beispiel mochte man beispielsweise nie eineInstanz der Klasse Person bilden, sondern nur von Kunde oderAngestellter.
Person{abstract}
Barbara Konig Modellierung 265
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Wir betrachten nun Objektdiagramme. Ein Objekt ist eine Instanzoder Auspragung einer Klasse.
Objekte und Klassen
x: inty: int
get x(): intget y(): int
�instantiate�
x = 0y = 0
Point mypoint :Point
Ein Objektdiagramm beschreibt eine Art Momentaufnahme desSystems: eine Menge von Objekten, wie sie zu einem bestimmtenZeitpunkt vorhanden sind.
Barbara Konig Modellierung 266
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Bemerkungen:
Ein Objekt kann, muss aber keinen Namen haben. Es mussaber die Klasse angegeben werden, von der dieses Objekt eineInstanz ist. (In der Form: :Point.)
Die Klassen mussen in dem Diagramm nicht graphischdargestellt werden. Es kann aber manchmal angemessen sein,“Bauplan” und “Produkt” gemeinsam darzustellen.
Nicht alle Attributbelegungen des Objekts mussen angegebenwerden.
Barbara Konig Modellierung 267
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Links
Ein Link beschreibt eine Beziehung zwischen zwei Objekten. Er isteine Instanz einer Assoziation auf Klassenebene.
Bemerkungen:
Links sind nicht mit Multiplizitaten beschriftet, ein Linkreprasentiert genau eine Beziehung.
Es ist jedoch darauf zu achten, dass dieMultiplizitatsbedingungen des Klassendiagramms eingehaltenwerden. D.h., die Anzahl der Objekte, die miteinander inBeziehung stehen, mussen innerhalb der jeweiligen Schrankensein.
Barbara Konig Modellierung 268
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Zuruck zum Beispiel: Autos, Parkplatz, Rader
Wir betrachten zunachst noch einmal das Klassendiagramm:
AutoParkplatz
enthaelt
0..1 0..∗
bes
itzt
Person
1
0..5
Rad
besteht aus
1 4
Barbara Konig Modellierung 269
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Dieses Objektdiagramm passt zum vorherigen Klassendiagramm:
:Rad
:Rad
:Rad
:Rad
enthaelt
enthaelt
bes
itzt
besteht ausb
esitzt
besteht aus
peter
:Rad
:Rad
:Rad
:Rad
gruenerAudi
gabi
:Person
:Person
:AutoparkplatzLBereich
:ParkplatzschwarzerVW
:Auto
Barbara Konig Modellierung 270
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und Objektdiagramme
Bemerkungen:
Auch Aggregations- und Kompositionssymbole durfen inObjektdiagrammen auftauchen.
Achtung: Beziehungen (Assoziationen, Aggregationen,Kompositionen) zwischen Klassen werden vererbt und mussendann auch entsprechend im Objektdiagramm bei denInstanzen der Unterklassen auftauchen.
Beispiel:
besitzt
besitzt
:Sparkonto
:Girokonto
klaus :Kunde
Barbara Konig Modellierung 271
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Aktivitatsdiagramme
Wir betrachten nun sogenannte Aktivitatsdiagramme (activitydiagrams), das sind UML-Diagramme mit denen man Ablaufplane,Reihenfolgen von Aktivitaten, parallele Aktivitaten, etc.modellieren kann.
Sie werden beispielsweise verwendet, um Geschaftsprozesse (auchWorkflow-Prozesse) des Auftraggebers zu modellieren. Sie konnenebenso eingesetzt werden, um interne Systemprozesse zubeschreiben.
Aktivitatsdiagramme sind in vielen Aspekten ahnlich zuPetri-Netzen. Im Unterschied zu Petri-Netzen bieten Sie zusatzlicheModellierungsmoglichkeiten, haben jedoch keine formale Semantik.
Barbara Konig Modellierung 272
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Aktivitatsdiagramme
Plan einreichen
Plan erstellen
Phase paralleler
Aktivitaten
Bauplatz wahlen
Startknoten
Architekt suchen
Arbeit im Buro
[angenommen]
Plan
[nicht angenommen]
Arbeit auf Baustelle
Aktivitatsende
Haus fertigstellen
Beispiel:
Hausbau
Barbara Konig Modellierung 273
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Aktivitatsdiagramme
Wir vergleichen nun die Bestandteile von Aktivitatsdiagrammenmit Petrinetzen (angelehnt an die Semantik von Storrle):
Aktions
Eine Aktion wird durch ein Rechteck mit abgerundeten Eckendargestellt. Es entspricht einer Transition eines Petrinetzes.
Plan erstellen Plan erstellen
Barbara Konig Modellierung 274
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Aktivitatsdiagramme
Kontrollfluss
Der Kontrollfluss, d.h. die Kanten, zwischen den Aktionen wird indem entsprechenden Petrinetz durch Hilfsstellen dargestellt.
Architekt suchen
Bauplatz wahlen
Plan erstellen
Bauplatz wahlen
Architekt suchen
Plan erstellen
Barbara Konig Modellierung 275
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Aktivitatsdiagramme
Objektknoten
Objektknoten beschreiben Speicher fur die Ubergabe von Objektenbzw. Ressourcen. Sie entsprechen den Stellen des Petrinetzes.
Plan
Plan
Plan erstellen
Plan einreichen
Plan erstellen
Plan einreichen
Bemerkung: Objektknoten sind mit Klassennamen beschriftet. Siekonnen mehrere Instanzen dieser Klasse enthalten.
Barbara Konig Modellierung 276
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Aktivitatsdiagramme
Entscheidungsknoten (auch: Verzweigungsknoten)
Entscheidungsknoten (decision nodes) beschreiben eineVerzweigung des Kontrollflusses, wobei aus den moglichenKontrollflussen genau einer ausgewahlt wird. Sie werden durchHilfsstellen reprasentiert, die sich in der Vorbedingung mehrererTransitionen befinden.
Plan einreichen
Hilfstransition[angenommen]
[nicht angenommen]
Plan einreichen
Bei Bedarf (v.a. bei nachfolgenden Entscheidungs- oderObjektknoten) muss noch eine Hilfstransition eingefuhrt werden.
Barbara Konig Modellierung 277
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Aktivitatsdiagramme
Bemerkung zu Entscheidungsknoten:
Uberwachungsbedingungen (Guards), die den Kontrollfluss steuern,werden in eckigen Klammern an den ausgehenden Kontrollflussennotiert. Ahnliche Guards existieren auch in attributierten Netzen.
Barbara Konig Modellierung 278
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Aktivitatsdiagramme
Verbindungsknoten
Es gibt auch sogenannte Verbindungsknoten (merge nodes), diemehrere alternative Kontrollflusse zusammenfassen. Sie konnendurch Hilfsstellen dargestellt werden, die sich in derNachbedingung mehrerer Transitionen befinden.
Es gibt auch Knoten, die sowohl Entscheidungs- als auchVerbindungsknoten sind, d.h., mehrere eingehende und mehrereausgehende Kontrollflusse haben.
Barbara Konig Modellierung 279
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Aktivitatsdiagramme
Gabelung (auch: Parallelisierungsknoten)
Eine Gabelung (fork node) teilt einen Kontrollfluss in mehrereparallele Kontrollflusse auf.Sie entspricht einer Transition mit mehreren Stellen in derNachbedingung.
Barbara Konig Modellierung 280
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Aktivitatsdiagramme
Vereinigung (auch: Synchronisationsknoten)
Analog dazu gibt es die Vereinigung (join node), die mehrereparallele Kontrollflusse zusammenfasst. Sie wird durch eineTransition dargestellt, die mehrere Stellen in der Vorbedingung hat.
Wie Entscheidungs- und Verbindungsknoten kann man Gabelungenund Vereinigungen zu einem Element zusammenfassen.
Barbara Konig Modellierung 281
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Aktivitatsdiagramme
Bitte beachten:
Kontrollflusse durfen nur an Objektknoten, Entscheidungsknotenund Gabelungen aufgespalten und an Objektknoten,Verbindungsknoten und Vereinigungen wieder zusammengefuhrtwerden. Außerdem durfen Kontrollflusse, die an Gabelungenaufgespalten wurden, nur wieder an Vereinigungenzusammengefugt werden. Gleiches gilt fur Entscheidungs- undVereinigungsknoten.
Folgendes ist nicht erlaubt:
AktionAktion
Barbara Konig Modellierung 282
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Aktivitatsdiagramme
Startknoten
Ein Startknoten entspricht einer initial markierten Stelle. EinAktivitatsdiagramm darf nur einen Startknoten haben, in den keinKontrollfluss hineinfuhrt
Barbara Konig Modellierung 283
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Aktivitatsdiagramme
Aktivitatsende
Das Aktivitatsende signalisiert, dass alle Kontrollflusse beendetwerden. Es gibt keine Entsprechung in Petrinetzen.
Es gibt auch ein Symbol fur das Flussende, das nur den in eshineinlaufenden Kontrollfluss beendet.
Barbara Konig Modellierung 284
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Aktivitatsdiagramme
Plan einreichen
fork
Arbeit im BuroArbeit auf Baustelle
join
Architekt suchen
PlanPlan erstellen
Bauplatz wahlen
Hilfstransition
Haus fertigstellen
Ubersetztes
Petrinetz
Barbara Konig Modellierung 285
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Aktivitatsdiagramme
Aktivitatsdiagramme enthalten noch mehr Anleihen ausPetrinetzen. Beispielsweise konnen auch die Kapazitat einesObjektknotens und das Gewicht eines Kontrollflusses spezifiziertwerden.
Gericht
{upperBound=6}
2Gericht zubereiten Gericht servieren
6
Gericht zubereiten Gericht servieren
Gericht
{weight=2}
Dabei beschreibt upperBound die Kapazitat einer Stelle (maximal6 Gerichte durfen gleichzeitig fertig sein) und weight das Gewicht(immer 2 Gerichte werden gleichzeitig serviert).
In Aktivitatsdiagrammen darf noch zusatzlich spezifiziert werden,in welcher Reihenfolge die Objekte aus dem Objektknotengenommen werden (unordered, ordered, LIFO, FIFO).
Barbara Konig Modellierung 286
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Aktivitatsdiagramme
Vorsicht:
Die Entsprechung zwischen Aktivitatsdiagrammen undPetrinetzen ist nicht immer ganz exakt. Nicht alle Konzepteentsprechen einander.
Das liegt teilweise auch daran, dass Aktivitatsdiagramme nurein semi-formales Modell sind und nicht alle Aspektevollstandig spezifiziert sind.
Barbara Konig Modellierung 287
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Aktivitatsdiagramme
Es gibt auch die Moglichkeit zur weiteren Strukturierung vonAktivitatsdiagrammen:
Zusammenfassung mehrerer Knoten (Aktionen, Objektknoten,etc.) zu einer Einheit. Dies dient im allgemeinen dazu, um dieVerantwortung fur bestimmte Aktionen festzulegen.
Gast Kellner
Gericht bestellen
Gericht servierenGericht verspeisen
Bestellung aufnehmen
Barbara Konig Modellierung 288
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Unterbrechungsbereiche (interruptible activity region) zurBehandlung von Ausnahmen (Exceptions)
Expansionsbereiche (expansion region) zur wiederholtenAusfuhrung von Aktivitaten fur mehrere ubergebene Objekte
Barbara Konig Modellierung 289
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Zustandsdiagramme (state diagrams, auch state machine diagramsoder statecharts) genannt, sind eng verwandt mit den bereitseingefuhrten Zustandsubergangsdiagrammen.
Sie werden eingesetzt, wenn bei der Modellierung der Fokus auf dieZustande und Zustandsubergange des Systems gelegt werden soll.
Im Gegensatz zu Aktivitatsdiagrammen werden auch weniger dieAktionen des Systems, sondern eher die Reaktionen des Systemsauf die Umgebung beschrieben.
Barbara Konig Modellierung 290
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Anwendungen sind die Modellierung von:
Protokolle, Komponenten verteilter Systemen
Benutzeroberflachen
Eingebettete Systemen
. . .
Zustandsdiagramme wurden 1987 von David Harel unter demNamen Statecharts eingefuhrt. Harel modellierte damit vollstandigseine Armbanduhr.
Barbara Konig Modellierung 291
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Eigenschaften von Zustandsdiagrammen:
Zustande und Zustandsubergange (Transitionen)
Hierarchisch aufgebaute Zustande
“Parallelschalten” von Zustandsdiagrammen durch Regionen
Historien, um sich fruher besuchte Zustande zu merken und indiese zuruckzukehren
Viele dieser Eigenschaften dienen dazu, unubersichtlicheZustandsdiagramme mit vielen Zustanden und Ubergangenubersichtlicher und kompakter zu gestalten.
Barbara Konig Modellierung 292
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Wir lernen Zustandsdiagramme am Beispiel der Modellierung einerArmbanduhr kennen (stark vereinfacht gegenuber HarelsArmbanduhr).
Die Armbanduhr hat zwei Knopfe (a,b) und zwei Modi(Zeitanzeige, Alarmeinstellung). Zwischen diesen Modi wechseltman mit Hilfe von Knopf a.Der Alarm kann aus (off) oder an (on) sein. Man kann zwischenden Alarmzustanden mit Hilfe von Knopf b wechseln. Falls derAlarm an ist, erzeugt die Uhr zu jeder vollen Stunde einen Piepton.
ba 9:21 ba baAlarm Alarm
a
a
a
b
b
on off
Barbara Konig Modellierung 293
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Wir beginnen zunachst mit der Modellierung der Minutenanzeige.
10 . . .
. . .
after(1 min) after(1 min)
after(1 min) after(1 min)after(1 min)
2
575859
Barbara Konig Modellierung 294
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Zustand
Ein Zustand eines Zustandsdiagramms wird durch ein Rechteckmit abgerundeten Ecken dargestellt.
0
Startzustand
Der Startzustand wird durch einen schwarzen ausgefullten Kreisgekennzeichnet (ahnlich wie bei Aktivitatsdiagrammen).
0
Barbara Konig Modellierung 295
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Endzustand
Endzustande werden wie das Aktivitatsende inAktivitatsdiagrammen gekennzeichnet.
A
Fur den Fall, dass man ein System modelliert, das nicht terminierensoll, gibt es keinen Endzustand (wie in unserem Beispiel).
Barbara Konig Modellierung 296
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Transition (= Zustandsubergang)
Eine Transition ist ein Pfeil, der mit Ereignis [Bedingung]/Effektbeschriftet ist. (Bedingung und Effekt sind optional.)
Ereignis: Signal oder Nachricht, die die entsprechendeTransition auslosen.
Effekt: Effekt, der durch die Transition ausgelost wird .
Im obigen Beispiel (Minutenanzeige) gibt es nur Ereignisse(sogennante time events), die die Zeitspanne spezifizieren, nachder die Transition ausgelost wird. Es gibt aber auch andereEreignisse, beispielsweise Methodenaufrufe.
Barbara Konig Modellierung 297
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Neben den Effekten, die durch Transitionen ausgelost werden,konnen in einem Zustand weitere Aktionen bei Eintritt, Verweilenoder Verlassen ausgelost werden.
Sie haben den gleichen Aufbau wie die Beschriftung einerTransition: Ereignis [Bedingung]/Effekt. Dabei kann Ereignis unteranderem folgendes sein:
entry: der entsprechende Effekt wird bei Eintritt in denZustand ausgelost.
do: der Effekt ist eine Aktion, die nach Betreten des Zustandsausgefuhrt wird und die spatestens dann endet, wenn derZustand verlassen wird
exit: der entsprechende Effekt wird bei Verlassen des Zustandsausgelost.
Barbara Konig Modellierung 298
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Beispiel: die Uhr soll zu jeder vollen Stunden ein Signal von sichgeben. Daher wird die Aktion beep bei Eintritt in den Zustand 0ausgelost.
0
entry/beep
Barbara Konig Modellierung 299
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Wie sieht es mit der Stundenanzeige aus? Diese soll parallel zurMinutenanzeige laufen, d.h., die Uhr ist in zwei Zustandengleichzeitig, ein Zustand fur die Stunden, der andere fur dieMinuten. Diese Situation wird durch Regionen modelliert.
Region
Regionen unterteilen ein Zustandsdiagramm in zwei Bereiche, dieparallel zueinander ausgefuhrt werden.
Dies erlaubt uns, insgesamt nur 24 + 60 = 84 Zustande, anstatt24 · 60 = 1440 Zustande zu zeichnen.
Barbara Konig Modellierung 300
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
So sieht das modifizierte Zustandsdiagramm fur die Uhr jetzt aus:
1 . . .
. . .
1 . . .
. . .
0
entry/beepafter(1 min) after(1 min)
after(1 min) after(1 min)
2
575859
after(1 min)/h
20
22 2123
h h
hhh
Stunden
Minuten
Barbara Konig Modellierung 301
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Bemerkungen:
Es gibt jetzt zwei Startzustande, die beide zu Beginn betretenwerden (Uhrzeit: 0:00).
Da Stunden- und Minutenanzeige nicht vollkommenunabhangig voneinander arbeiten, ist eine Synchronisationeingebaut. Die Transition in den Minutenzustand 0 lost einenEffekt h (h fur “hour”) aus.
Dieser Effekt ist dann ein Trigger, der das entsprechendeEreignis triggert und den Ubergang in den nachstenStundenzustand verursacht. Die beiden Transitionen werdensynchronisiert und finden gleichzeitig statt.
Barbara Konig Modellierung 302
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Bemerkungen:
Transitionen verbrauchen im allgemeinen keine Zeit (imGegensatz zum Aufenthalt in Zustanden).
Neben Triggern, die direkt ausgefuhrt werden, gibt es auchEvents, die zunachst in einer Event Queue (= Warteschlange)abgelegt werden. Diese Warteschlange wird schrittweiseabgearbeitet, wobei die entsprechenden Ereignisse ausgelostwerden. Damit kann asynchrone Kommunikation beschriebenwerden.
Effekte konnen direkte Kommunikation bedeuten(beispielsweise Methodenaufrufe), konnen aber auchsogenannte Broadcasts (= Rundrufe) sein. Diese sind uberallim Zustandsdiagramm sichtbar. (Die ursprunglicheStatecharts-Semantik von Harel verwendete nur Broadcasts.)
Barbara Konig Modellierung 303
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Nun soll noch die Moglichkeit hinzugefugt werden, das Alarmsignalzur vollen Stunden aus- und wieder einzuschalten. Dazu fuhren wirweitere Zustande (Alarm on, off) ein, in die man durch Druckenvon a gelangt.
Problem: wir brauchen mindestens 84 mit a beschrifteteTransitionen, die aus den Stunden-/Minutenzustanden ausgehen!Das sind ziemlich viele . . .
Dafur bieten Zustandsdiagramme folgende Losung:
Zusammengesetzte Zustande
Zusammengesetzte Zustande dienen dazu, um Hierarchien vonZustanden zu modellieren und damit ein- und ausgehendeTransitionen zusammenzufassen.
Barbara Konig Modellierung 304
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Damit ergibt sich folgendes Diagramm:
1 . . .
. . .
1 . . .
. . .
20
22 2123
h h
hhh
Stunden
Minuten
after(1 min) after(1 min)
after(1 min) after(1 min)
2
575859
after(1 min)/h
0
entry/beep
on
off
a
ab b
Alarm
Barbara Konig Modellierung 305
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Um eine gewisse Flexibilitat bei der Modellierung zu haben, werdenverschiedene Eintritts- und Austrittsmoglichkeiten bereitgestellt.
Eintrittsmoglichkeiten in einen Zustand (graphisch)
C
B
D E
A H H∗
Eintritt uber die
tiefe Historie
Eintritt uber die
flache Historie
Eintritt
Expliziter
Standard-Eintritt
Barbara Konig Modellierung 306
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Beschreibung der Eintrittsmoglichkeiten:
Standard-Eintritt: dabei wird der Startzustand deszusammengesetzten Zustands angesprungen.
(Forsetzung bei B, was schließlich zu einer Fortsetzung bei Dfuhrt)
Expliziter Eintritt: es wird bei dem explizit angegebenenFolgezustand fortgesetzt.
(Fortsetzung bei C .)
Barbara Konig Modellierung 307
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Beschreibung der Eintrittsmoglichkeiten (Fortsetzung):
Eintritt uber die tiefe Historie: Wurde der zusammengesetzteZustand bereits fruher besucht, so wird der letzte vor demVerlassen des Zustands aktive Unterzustand dertiefstmoglichen Ebene betreten.
(Falls also der zusammengesetzte Zustand das letzte Mal vonE aus verlassen wurde, so wird jetzt wieder bei E fortgesetzt.)
Falls man noch niemals zuvor diesen zusammengesetztenZustand betreten hat, so wird der Zustand betreten, der mitder Kante gekennzeichnet ist, die aus dem H∗-Knoten ausgeht.
Barbara Konig Modellierung 308
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Beschreibung der Eintrittsmoglichkeiten (Fortsetzung):
Eintritt uber die flache Historie: Wurde der zusammengesetzteZustand bereits fruher besucht, so wird der letzte vor demVerlassen des Zustands aktive Unterzustand der oberstenEbene betreten.
(Falls also der zusammengesetzte Zustand das letzte Mal vonE aus verlassen wurde, so wird jetzt bei B fortgesetzt, wasletztendlich zu einer Fortsetzung bei D fuhrt.)
Außerdem: Eintritt uber einen Eintrittspunkt (wird hier nichtbehandelt).
Barbara Konig Modellierung 309
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Wenn ein Zustand in mehrere Regionen unterteilt ist, so ergebensich bei den Eintrittsmoglichkeiten einige Besonderheiten.
Eintrittsmoglichkeiten bei Regionen (graphisch)
A B
C D
Standard-Eintritt
ExpliziterEintritt
Eintrittuber Gabelung
Barbara Konig Modellierung 310
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Beschreibung der Eintrittsmoglichkeiten bei Regionen:
Standard-Eintritt: dabei werden die jeweiligen Startzustandeder Regionen angesprungen.
(Fortsetzung bei A und C )
Expliziter Eintritt: ein Zustand einer Region wird direktangesprungen. In der anderen Region wird bei dementsprechenden Startzustand fortgesetzt.
(Fortsetzung bei B und C .)
Eintritt uber Gabelung: ahnlich wie bei Aktivitatsdiagrammenwird eine Gabelung eingesetzt, um die beiden anzuspringendenZustande in den Regionen zu kennzeichnen.
(Fortsetzung bei B und D.)
Barbara Konig Modellierung 311
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Austrittsmoglichkeiten aus einem Zustand (graphisch)
C
B
D E
A
Austritt aus eineminneren Zustand
Austritt auseinem zusammengesetzten Zustand
Barbara Konig Modellierung 312
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Beschreibung der Austrittsmoglichkeiten:
Austritt aus einem zusammengesetzten Zustand: sobald dasmit der Transition assoziierte Ereignis stattfindet, wird jederbeliebige (Unter-)Zustand von A verlassen.
Austritt aus einem inneren Zustand: die Transition wird nurgenommen, wenn man sich gerade im entsprechenden Zustand(hier: Zustand E) befindet (und das entsprechende Ereignisstattfindet).
Außerdem: Austritt uber einen Austrittspunkt, uber einenEndzustand oder Terminator (wird hier nicht behandelt).
Barbara Konig Modellierung 313
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Beispiel zu Austrittsmoglichkeiten:
B C
A
D
E
a
entspricht B C
A
D
E
a aa
Barbara Konig Modellierung 314
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Auch fur Austrittsmoglichkeiten mussen wir untersuchen, was sichbei Regionen andert.
Austrittsmoglichkeiten bei Regionen (graphisch)
A B
C D
Austritt aus einemzusammengesetzten
Zustand
Austritt aus eineminneren Zustand
Austrittuber Vereinigung
Barbara Konig Modellierung 315
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Beschreibung der Austrittsmoglichkeiten bei Regionen:
Austritt aus einem zusammengesetzten Zustand: dabei wirdder zusammengesetzte Zustand verlassen, egal in welchenUnterzustanden man sich gerade befindet.
Austritt aus einem inneren Zustand: der zusammengesetzteZustand wird nur verlassen, wenn man sich in der jeweiligenRegion in dem Zustand befindet, der durch den Pfeil verlassenwird. In den anderen Regionen kann man sich in beliebigenZustanden befinden.
(Austritt nur, wenn man sich in der ersten Region in Bbefindet.)
Barbara Konig Modellierung 316
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Beschreibung der Austrittsmoglichkeiten bei Regionen(Fortsetzung):
Austritt uber Vereinigung: ahnlich wie beiAktivitatsdiagrammen wird eine Vereinigung eingesetzt, ummehrere Regionen zusammenzufuhren. Der zusammengesetzteZustand kann nur verlassen werden, wenn man sich in denZustanden befindet, von denen Pfeile in die Vereinigunghineinfuhren.
(Austritt nur, wenn man sich in B und D befindet.)
Barbara Konig Modellierung 317
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Wieder zuruck zur Armbanduhr. Es gibt ein weiteres Problem:wenn man aus der Alarmeinstellung zuruckkehrt, ist die Zeit auf0:00 zuruckgesetzt!
Losung: Verwendung des Eintritts uber die (flache) Historie.Da man im Fall der Zeitanzeige in zwei Regionen gleichzeitigeintreten muss, verwenden wir eine Gabelung.
Barbara Konig Modellierung 318
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
1 . . .
. . .
1 . . .
. . .
on
off
b b
20
22 2123
h h
hhh
Stunden
Minuten
after(1 min) after(1 min)
after(1 min) after(1 min)
2
575859
after(1 min)/h
0
entry/beep
a
Alarma
H
H
H
Barbara Konig Modellierung 319
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Weiteres Problem: wenn man langere Zeit im Alarm-Zustandverbringt, so wird in dieser Zeit die Minuten-/Stundenanzeige nichtentsprechend aktualisiert. Das Time Event (after(1 min)) beziehtsich nur auf die Zeit, die seit dem Eintritt in den entsprechendenZustand vergangen ist.
Die Zeitanzeige musste deshalb entsprechend aktualisiert werden.Dieses Problem wird hier nicht gelost.
Barbara Konig Modellierung 320
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Was fehlt noch?
Beim Wechseln zwischen den Alarm-Zustanden (on,off) mussein Flag (genannt al) gesetzt werden, um damit den beep-Effekt zukontrollieren.
Dieses Flag muss mit Hilfe einer Bedingung im Minutenzustand 0abgefragt werden.
Außerdem betreten wir den Zustand Alarm nun nicht mehr uberdie flache Historie, sondern fragen mit Hilfe von Bedingungen ab,wie al belegt ist. (Damit ist die Markierung des Anfangszustandseigentlich uberflussig geworden.)
Barbara Konig Modellierung 321
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
1 . . .
. . .
. . .
. . .
1
20
22 2123
h h
hhh
Stunden
Minuten
after(1 min) after(1 min)575859
after(1 min)/h
a
Alarm
on
off
b/al=1
entry[al==1]/beepafter(1 min) after(1 min)
0
b/al=0
a[al==1]
a[al==0]
H
H
Barbara Konig Modellierung 322
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Wir modellieren, dass die Batterie der Uhr kaputtgehen kann undgewechselt werden muss.
In diesem Fall will man den zusammengesetzten Zustand nichtuber die flache oder tiefe Historie betreten! Es wird also hiertatsachlich die Zeit auf 0:00 zuruckgesetzt.
Außerdem setzen wir das Flag al beim Einsetzen der Batteriezuruck auf den Anfangswert 1.
Barbara Konig Modellierung 323
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
1 . . .
. . .
. . .
. . .
1
Uhr
20
22 2123
h h
hhh
Stunden
Minuten
after(1 min) after(1 min)575859
after(1 min)/h
a
Alarm
on
off
b/al=1
entry[al==1]/beepafter(1 min) after(1 min)
0
a[al==1]
a[al==0]
b/al=0 H
H
Batterie kaputt
Batterie geht kaputt Neue Batterie wird eingesetzt/al=1
Barbara Konig Modellierung 324
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Ein großer Teil der Modellierungsmoglichkeiten vonZustandsautomaten dient dazu, Zustandsdiagramme kompakt undubersichtlich zu notieren.
Oft kann man Zustandsdiagramme “flachklopfen” undzusammengesetzte Zustande auflosen, wodurch man aquivalenteZustandsdiagramme erhalt, die die gleichen Ubergange erlauben.Dabei erhalt man jedoch im allgemeinen mehr Zustande und/oderTransitionen.
Wir sehen uns einige Beispiele an . . .
Barbara Konig Modellierung 325
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Beispiel 1: Wandeln Sie folgendes Zustandsdiagramm in ein“flaches” Zustandsdiagramm um:
A
B
C
D
a
b
e
c df
Barbara Konig Modellierung 326
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Losung zu Beispiel 1:
A
B
C
D
e
c d
a
b
f
e
Idee: die Transition, die von dem zusammengesetzten Zustandwegfuhrt, durch mehrere Transitionen ersetzen, die von den innerenZustanden ausgehen.
Barbara Konig Modellierung 327
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Beispiel 2: Wandeln Sie folgendes Zustandsdiagramm in ein“flaches” Zustandsdiagramm um:
A B C D
E F
a b c
e
gG
h
Barbara Konig Modellierung 328
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Losung zu Beispiel 2:
b c
g
h
a
b c
e e e
(D,F)(C,F)(B,F)
(B,E) (C,E) (D,E)
G
A
h
Idee: Kreuzprodukt der Zustandsmengen der Regionen bilden.
Barbara Konig Modellierung 329
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Beispiel 3: Wandeln Sie folgendes Zustandsdiagramm in ein“flaches” Zustandsdiagramm um:
H
A
B
C
Db
e
c da f
Xx
Barbara Konig Modellierung 330
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Losung zu Beispiel 3:
Xx
C
D
c da f a f
A(C)
B(C)
A(D)
B(D)b
e
e
b
Idee: in den außeren Zustanden muss man sich merken, auswelchem Zustand man den zusammengesetzten Zustand verlassenhat. Dies fuhrt zu zusatzlichen Zustanden.
Barbara Konig Modellierung 331
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Weitere Elemente von Zustandsdiagrammen:
Unterscheidung zwischen verschiedenen Arten vonEreignissen: call event, signal event, change event, time event,any receive event
Verzogern und Ignorieren von Ereignissen
Entscheidungen und Kreuzungen
Rahmen und Wiederverwendung von Zustandsdiagrammen
Außerdem: Generalisierung und Spezialisierung vonZustandsdiagrammen
Barbara Konig Modellierung 332
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Zustandsdiagramme
Zusammenfassung:Nach Harel werden Zustandsdiagramme bzw. deren Eigenschaftendurch folgende “Formel” beschrieben:
Dabei steht “Orthogonalitat” fur die Parallelitat, die durchRegionen erreicht werden kann.
Barbara Konig Modellierung 333
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Sequenzdiagramme (sequence diagrams) sind die bekanntestenVertreter von Interaktionsdiagrammen in UML.
Sie dienen dazu, um Kommunikation und Interaktion zwischenmehreren Kommunikationspartnern zu modellieren und beruhenauf dem Basiskonzept der Interaktion:
Interaktion
Eine Interaktion ist das Zusammenspiel von mehrerenKommunikationspartnern.
Typische Beispiele: Versenden von Nachrichten, Datenaustausch,Methodenaufruf
Barbara Konig Modellierung 334
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Sequenzdiagramme waren bereits vor Aufnahme in die UML unterdem Namen message sequence charts bekannt.
Im Gegensatz zu Aktivitatsdiagrammen oder Zustandsdiagrammenbeschreiben sie im allgemeinen nicht alle Ablaufe eines Systems,sondern nur einen oder mehrere mogliche Ablaufe.
Barbara Konig Modellierung 335
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Sequenzdiagramme beschreiben Interaktionen in zwei Dimensionen:
Von links nach rechts: Anordnung der Kommunikationspartnerals LebenslinienOft wird der Partner, der den Ablauf initiiert, ganz linksangegeben.
Von oben nach unten: Zeitachse
Barbara Konig Modellierung 336
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Beispiel Restaurant
Petra
:Gast
Robert
:Kellner
Ina
:Kochin
Mustafa
:Kassierer
Menu bringen
bestellenbestellen
Getrank servieren
Essen abholenEssen servieren
bezahlen
Barbara Konig Modellierung 337
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Kommunikationspartner
Die Kommunikationspartner in einem Sequenzdiagramm werdenahnlich wie in Objektdiagrammen als Rechtecke notiert.
Manchmal werden die Rechtecke auch weggelassen. MenschlichePartner werden auch durch ein Strichmannchen symbolisiert:
Von jedem Kommunikationspartner fuhrt eine gestrichelteLebenslinie nach unten.
Barbara Konig Modellierung 338
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Ausfuhrungsbalken
Aktivitaten eines Kommunikationspartners werden durchsogenannte Ausfuhrungsbalken dargestellt.
Parallele Tatigkeiten eines Kommunikationspartners werden dabeidurch ubereinander liegende Ausfuhrungsbalken beschrieben (sieherechts oben).
Wahrend die Balken aktive Zeit anzeigen, symbolisieren diegestrichelten Linien passive Zeit.
Barbara Konig Modellierung 339
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Nachrichten
Die Nachrichten beschreiben die Kommunikationen bzw.Interaktionen der Kommunikationspartner und werden durch Pfeiledargestellt. Eine Nachricht hat einen Sender und einen Empfanger.
Die Stellen, an denen die Pfeile auf den Lebenslinien auftreffen,nennt man auch Sendeereignis und Empfangsereignis.
EmpfangerSender
Name der NachrichtEmpfangs-ereignis
Sende-
ereignis
Barbara Konig Modellierung 340
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Synchrone und asynchrone Nachrichten
Bei synchroner Kommunikation warten Sender und Empfangeraufeinander. Der Sender macht erst dann weiter, wenn er weiß,dass der Empfanger die Nachricht erhalten hat. Sie wird durch eineschwarze ausgefullte Pfeilspitze dargestellt.
Barbara Konig Modellierung 341
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Synchrone und asynchrone Nachrichten (Fortsetzung)
Bei asynchroner Kommunikation wartet der Sender nicht darauf,dass der Empfanger die Nachricht erhalten hat. Er arbeitet einfachweiter. Die Nachricht wird durch eine einfache Pfeilspitze wirddargestellt.
Bei asynchronen Nachrichten kann es zu einer Zeitverzogerungzwischen Sende- und Empfangsereignis kommen, die durch einengeneigten Pfeil beschrieben wird (siehe oben rechts).
Barbara Konig Modellierung 342
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Bei asynchroner Kommunikation (aber nicht bei synchronerKommunikation) kann auch der Fall eintreten, dass sichNachrichten uberholen oder kreuzen.
Das Uberholen der Nachrichten (oben links) ist nur dann nichtmoglich, wenn man explizit einen FIFO-Kanal fordert.
Barbara Konig Modellierung 343
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Was jedoch nicht moglich ist, ist eine Nachricht, die “ruckwarts”in der Zeit lauft und vor dem Senden ankommt.
Barbara Konig Modellierung 344
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Es ist jedoch moglich, eine Nachricht an sich selbst zu schicken.
:Gast
Gericht aussuchen
Bei einer synchronen Nachricht sollte man dabei paralleleAusfuhrungsbalken verwenden, da das Sende- undEmpfangsereignis parallel stattfinden mussen.
Barbara Konig Modellierung 345
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Nachrichten, die als Antworten auf fruhere Nachrichten gedachtsind, werden durch gestrichelte Pfeile notiert. Dabei sollte derName der ursprunglichen Nachricht wiederholt werden.
Nachfrage
Antwort auf Nachfrage
Barbara Konig Modellierung 346
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Wir machen uns nun Gedanken uber die Reihenfolge der Ereignissein einem Sequenzdiagramm. Dazu ist es nutzlich sichklarzumachen, was eine (partielle) Ordnung ist.
Partielle Ordnung
Gegen sei eine Menge X . Eine partielle Ordnung auf X ist eineRelation R ⊆ X × X mit folgenden Eigenschaften:
Reflexivitat: fur jedes x ∈ X gilt (x , x) ∈ R
Transitivitat: aus (x1, x2) ∈ R und (x2, x3) ∈ R furx1, x2, x3 ∈ X folgt (x1, x3) ∈ R.
Antisymmetrie: aus (x1, x2) ∈ R und (x2, x1) ∈ R furx1, x2 ∈ X folgt x1 = x2.
Barbara Konig Modellierung 347
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Weitere Bezeichnungen:
Partielle Ordnung bezeichnet man oft mit dem Zeichen ≤ undnotiert in Infix-Schreibweise (x1 ≤ x2 statt (x1, x2) ∈ R).
Wir schreiben x1 < x2, falls x1 ≤ x2 und x1 6= x2.
Vorsicht: Die Relation < ist selbst keine partielle Ordnung.
Barbara Konig Modellierung 348
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Totale Ordnung
Eine partielle Ordnung ≤ heißt total, wenn fur zwei beliebigeElemente x1, x2 ∈ X immer x1 ≤ x2 oder x2 ≤ x1 gilt.
Beispiele:
Die ≤-Relation auf den ganzen Zahlen Z ist eine totaleOrdnung.
Ein typisches Beispiel fur eine partielle Ordnung, die nichttotal ist, ist die Inklusionsordnung ⊆ auf Mengen.
Barbara Konig Modellierung 349
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Reflexiv-transitive Hulle
Fur eine gegebene Relation R ⊆ E × E beschreiben wir derenreflexiv-transitive Hulle R∗. Man erhalt sie aus R, indem man
alle Paare (e, e) mit e ∈ E zu R hinzufugt und
bei (e1, e2), (e2, e3) ∈ R auch (e1, e3) zu R hinzufugt. DieserProzess wird so lange wiederholt, bis keine neuen Paare mehrhinzukommen.
Die reflexiv-transitiv Hulle R∗ einer Relation R ist immerreflexiv und transitiv. Sie ist jedoch nicht immerantisymmetrisch und daher nicht notwendigerweise eineOrdnung.
Die Relation R∗ ist die kleinste reflexive und transitiveRelation, die R enthalt.
Barbara Konig Modellierung 350
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Beispiel: Zugrundeliegende Menge E = {1, 2, 3, 4, 5}
Die reflexiv-transitive Hulle von
R = {(1, 2), (2, 3), (3, 4), (3, 5)}
ist
R∗ = {(1, 2), (2, 3), (3, 4), (3, 5),
(1, 1), (2, 2), (3, 3), (4, 4), (5, 5),
(1, 3), (1, 4), (1, 5), (2, 4), (2, 5)}
Barbara Konig Modellierung 351
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Die Elemente von Sequenzdiagrammen, die nun geordnet werden,sind die Ereignisse, d.h., Sende- und Empfangsereignisse.
In den Sequenzdiagrammen, wie wir sie bisher kennengelernthaben, sind die Ereignisse immer total geordnet, nach folgendemSchema:
(Sendeereignis der Nachricht N) < (Empfangsereignis von N)
Die restlichen Ereignisse sind entsprechend dem zeitlichenVerlauf geordnet.
Barbara Konig Modellierung 352
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
In einem einfachen Sequenzdiagramm (Erweiterungen werden nochbesprochen) werden daher die Ereignisse immer in eine Reihenfolgegebracht. Die Ordnung ist daher total. Im folgenden Diagramm giltbeispielsweise:
A1 < B1 < C1 < D1
A1
A B C D
B1
C1 D1
Barbara Konig Modellierung 354
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Nicht so gunstig sind Diagramme, aus denen die Reihenfolge vonNachrichten nicht klar hervorgeht:
A BA1
A B C D
B1 C1 D1
Insbesondere ist die Darstellung echter Parallelitat inSequenzdiagrammen nicht vorgesehen.
Barbara Konig Modellierung 355
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Aquivalenz von Sequenzdiagrammen
Zwei Sequenzdiagramme sind aquivalent, wenn sie die gleichenEreignisse enthalten und die Reihenfolge der Ereignisse identischist.
Dabei konnen die Diagramme durchaus verschieden gezeichnet sein(andere Reihenfolge der Kommunikationspartner, verschiedeneAbstande zwischen den Ereignissen, . . . ).
Barbara Konig Modellierung 356
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Bisher haben wir gesehen, wie man mit einem Sequenzdiagrammeinen moglichen Ablauf beschreiben kann. In manchen Fallenmochte man jedoch mehrere (vielleicht sogar alle) Ablaufebeschreiben.
Dazu gibt es die Moglichkeit, kombinierte Fragmente zuverwenden, bei denen mehrere (Interaktions-)Operanden (=Teil-Sequenzdiagramme) mit Hilfe von Interaktions-Operatorenzusammengesetzt werden.
Wir betrachten im folgenden einige dieser Interaktions-Operatoren.
Barbara Konig Modellierung 357
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Interaktionsoperator par (Parallelitat)
Hier sind die Operanden in beliebiger Reihenfolge ausfuhrbar. DieReihenfolge der Ereignisse in den Operanden muss aber gewahrtwerden, ansonsten gibt es keine Bedingungen.
:X :Y
par
X1 Y1
X2 Y2
X3 Y3
Dabei wird der Operator parlinks oben in der Eckeangegeben.
Eine gestrichelte waagrechteLinie trennt die verschiedenenOperanden.
Barbara Konig Modellierung 358
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Nachrichten, die von einem Operanden in einen anderen laufen,sind nicht zugelassen.
:X :Y
par
X1
Y1
Barbara Konig Modellierung 359
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Ordnung auf den Ereignissen:
X1 < Y1 < Y2 < X2 (Operand 1)
X3 < Y3 (Operand 2)
Ansonsten gibt es keine weiteren Einschrankungen
Dieses Sequenzdiagramm beschreibt insgesamt funfzehn Ablaufe,beispielsweise:
X1, Y1, X3, Y3, Y2, X2
X3, X1, Y1, Y2, X2, Y3
. . .
Barbara Konig Modellierung 360
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Weitere Bemerkungen: um die Ereignis-Ordnung innerhalb einespar-Operators zu bestimmen . . .
verwendet man die partiellen Ordnungen der einzelnenOperanden (≤1, ≤2)
und vereinigt diese. Die Vereinigung ≤1 ∪ ≤2 ist ebenfallseine partielle Ordnung und beschreibt alle moglichenReihenfolgen von Ereignissen.
Jede Ereignisreihenfolge, bei der ein Ereignis X immer vor einemEreignis Y auftritt, falls X<Y gilt, ist eine mogliche Reihenfolge.
Barbara Konig Modellierung 361
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Interaktionsoperator seq (schwache Sequenz)
Die Reihenfolge der Ereignisse in den Operanden muss wiedergewahrt werden, außerdem ist die Reihenfolge der Ereignisse aufden Lebenslinien (von oben nach unten) festgelegt.
:X
X1
:Y :Z :W
seq
Y1
Z1
Y2X2
W1
Barbara Konig Modellierung 362
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Ordnung auf den Ereignissen:
X1 < Y1 < Z1 < W1 (Operand 1)
X2 < Y2 (Operand 2)
X1 < X2 (Lebenslinie von X)
Y1 < Y2 (Lebenslinie von Y)
Dieses Sequenzdiagramm beschreibt neun verschiedene Ablaufe,beispielsweise:
X1, X2, Y1, Z1, W1, Y2
X1, Y1, X2, Y2, Z1, W1
. . .
Barbara Konig Modellierung 363
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Weitere Bemerkungen: um die Ereignis-Ordnung innerhalb einesseq-Operators zu bestimmen . . .
verwendet man die partiellen Ordnungen der einzelnenOperanden (≤1, ≤2),
außerdem die partiellen Ordnungen der einzelnen Lebenslinien(≤X , ≤Y , . . . ),
vereinigt diese und bestimmt die reflexiv-transitive Hulle.Dabei entsteht eine partielle Ordnung, die alle moglichenReihenfolgen von Ereignissen beschreibt.
Barbara Konig Modellierung 364
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Bei Interaktions-Operanden ist es außerdem moglich, zusatzlicheOrdnungsbeziehungen einzufuhre, die ansonsten nicht abgedecktsind. (Durch gestrichelte Linien mit Pfeil in der Mitte.)
:X
X1
:Y :Z :W
Y1
Z1 Z2
Y2
par
X2
Die neue partielle Ordnung kann man hier dadurch bestimmen,indem man die neuen Paare hinzufugt und die reflexiv-transitiveHulle der Gesamtrelation bildet.
Barbara Konig Modellierung 365
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Weitere Interaktions-Operatoren (Liste ist nicht vollstandig):
strict (Strikte Sequenz): Die Reihenfolge der Ereignisse wirdvon oben nach unten strikt eingehalten (wie in einemeinzelnen Operanden).
alt (Alternative): entspricht einer If-Then-Else-Anweisung (mitBedingungen)
neg (Negation): beschreibt eine ungultigeNachrichtenreihenfolge
loop (Schleife): beschreibt die Wiederholung eines Operanden
Barbara Konig Modellierung 366
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Beispiel: wir modellieren ein Protokoll, bei dem einClient-Rechner S einen E-Mail an einen anderen Client Rverschickt.
Weitere Beteiligte sind der Mail-Server von S, der Mail-Servervon R und der DNS-Server, der benotigt wird, um Mail-Adressenin die IP-Adressen des entsprechenden Servers umzuwandeln (DNS= domain name system).
Barbara Konig Modellierung 367
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
par Mail ausliefern
Bestatigung Ausliefern
Bestatigung Einliefern
IP-Adresse von E2
Mail einliefern
Frage nach IP-Adresse
Kontaktaufnahme
Verifiziere, ob
:ClientS1
:ServerS2
:DNS :ServerE2
:ClientE1
Name von S2 korrekt
Antwort Verifikation
Bestatigung der Kontaktaufnahme
Verschicken der Mail
Bestatigen der Mail
Barbara Konig Modellierung 368
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Bemerkung: dieses Sequenzdiagramm ist an den Ablauf imSMTP-Protokoll angelehnt (SMTP = send mail transportprotocol), ist jedoch erheblich vereinfacht.
Sequenzdiagrammen zu vielen TCP/IP-Netzwerkprotokollen findetman unter:
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Es gibt noch einige weitere Arten von Nachrichten:
Gefundene und verlorene Nachrichten
Bei gefundenen und verlorenen Nachrichten werden das Sende-bzw. das Empfangsereignis nicht explizit modelliert. DieNachrichten tauchen quasi aus der Umgebung auf undverschwinden wieder dorthin.
Solche Nachrichtenwerden benotigt, wenndie entsprechendenKommunikationspart-ner nicht mitmodelliertwerden.
:Fenster
schließen
Gefundene Nachricht
Larm
Ruhe!
Verlorene Nachricht
:Person
Barbara Konig Modellierung 370
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Sequenzdiagramme
Erzeugung und Dekonstruktion von Objekten
Außerdem kann es passieren, dass Objekte nicht wahrend desganzen Ablaufs zur Verfugung stehen. Sie konnen wahrend desAblaufs dynamisch erzeugt und wieder zerstort werden.
Dies erfolgt zumeist durchsogenannte Erzeugungs- undDekonstruktionsnachrichtenund wird folgendermaßendargetellt:
:Zentrale
:Filialeeroffnen
Erzeugungsnachricht
Dekonstruktionsnachricht
schließen
Barbara Konig Modellierung 371
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Kommunikationsdiagramme
Kommunikationsdiagramme enthalten dieselbe Information wieSequenzdiagramme, werden jedoch anders dargestellt.
Wahrend bei Sequenzdiagrammen der Fokus eher auf demzeitlichen Ablauf liegt, heben Kommunikationsdiagramme eher dieKommunikationsbeziehungen der Teilnehmer hervor.
Kommunikationsdiagramme gehoren – genau wieSequenzdiagramme – zur Klasse der Interaktionsdiagramme.
Barbara Konig Modellierung 372
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Kommunikationsdiagramme
Das Sequenzdiagramm Restaurantbesuch Diagramm wirdfolgendermaßen als Kommunikationsdiagramm dargestellt:
Robert
:Kellner
Ina
:Kochin
3: bestellen
5: Essen abholen
Petra
:Gast
Mustafa
:Kassierer
7: bezahlen
1: Menu bringen
2: bestellen
4: Getrank servieren
6: Essen servieren
Barbara Konig Modellierung 373
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Kommunikationsdiagramme
Dabei werden die Kommunikationspartner wie bisher durchRechtecke oder Strichmannchen dargestellt. Es wird jedoch keinzeitlicher Ablauf mehr dargestellt.
Die Interaktionen bzw. Nachrichten werden durch Linien notiert,an denen die Namen der Nachrichten und die Senderichtung (→)stehen.
Die Nummerierung der Nachrichten (1,2,3,. . . ) gibt dieReihenfolge an. Durch Buchstaben hinter den Nummern(2a,2b,. . . ) beschreibt man parallele Nachrichten, die in beliebigerReihenfolge angeordnet sein konnen.
Barbara Konig Modellierung 374
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Uberblick uber weitere UML-Diagramme
Wir schließen die Vorlesung mit einem kurzen Uberblick uber dienoch fehlenden Typen von UML-Diagrammen ab.
Zuletzt gibt es dann noch ein paar Abschlussbemerkungen.
Barbara Konig Modellierung 375
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Uberblick uber weitere UML-Diagramme
UML-Diagramme Liste
Verhaltens-diagramme
Interaktions-
diagramme
Objekt-
diagramm
Kompositions-
strukturdiagramm
diagrammeStruktur-
Klassen-
diagramm
Komponenten-
diagramm
Verteilungs-
diagramm
Paket-
diagramm
Diagrammeder UML
diagramm diagramm
diagramm
Aktivitats- Anwendungsfall-
Zustands-
diagrammdiagramm
Interaktionsuber-
sichtsdiagramm
Zeitverlaufs-/
Timing-Diagramm
Kommunikations-Sequenz-
Barbara Konig Modellierung 376
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Uberblick uber weitere UML-Diagramme
UML-Diagramme (blau: bereits behandelte Diagramme)
Objekt-
diagramm
Verhaltens-diagramme
Interaktions-
diagrammeKompositions-
strukturdiagramm
Struktur-
Klassen-
diagramm
Komponenten-
diagramm
Verteilungs-
diagramm
Paket-
diagramm
Diagrammeder UML
diagramm diagramm
diagramm
Aktivitats- Anwendungsfall-
Zustands-
diagrammdiagramm
Interaktionsuber-
sichtsdiagramm
Zeitverlaufs-/
Timing-Diagramm
Kommunikations-Sequenz-
diagramme
Barbara Konig Modellierung 377
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Uberblick uber weitere UML-Diagramme
Wir beginnen zunachst mit den beiden noch fehlenden Arten vonInteraktionsdiagrammen:
Timing-Diagramme bzw. Zeitverlaufsdiagramme
Interaktionsubersichtsdiagramme
Barbara Konig Modellierung 378
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Timing-Diagramme
Timing-Diagramme sind in der Elektrotechnik weit verbreitet undzeigen an, zu welchem Zeitpunkt welcher Kommunikationspartnerwelchen Zustand einnimmt.
Dabei wird von links nach rechts (horizontal) die Zeit aufgetragenund von oben nach unten werden die Kommunikationspartner undderen Zustande aufgetragen.
Barbara Konig Modellierung 379
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Timing-Diagramme
Beispiel: Ampelschaltung
gruen
rot
Sekunden0 10 20 30
gruen
gelbrot
gelb
rot:Aut
oam
pel
:Fus
sgae
nger
amp
el
Barbara Konig Modellierung 380
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Interaktionsubersichtsdiagramme
Interaktionsubersichtsdiagramme sind im wesentlichenAktivitatsdiagramme, die – anstatt der Aktionen – hierarchischweitere Interaktionsdiagramme (Sequenzdiagramme,Kommunikationsdiagramme, Timing-Diagramme) enthaltenkonnen.
Sie werden eingesetzt, wenn es eine großere Menge verschiedenerArten von Aktionen gibt, uber die man sonst nur schwer denUberblick behalten kann.
Als Beispiel betrachten wir ein Interaktionsubersichtsdiagramm,das den Ablauf eines Freistosses in einem Fussballspiel modelliert.
Barbara Konig Modellierung 381
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Interaktionsubersichtsdiagramme
ref
:Torwart
sd Linkssprung
nach links
springen
positionieren
sd Fussball positionieren
:Fussball
[ruhend]
0 1 2 3sec
fliegend
ruhend
positionierenMauer
:Schuetze
Freistossfreigeben
0..3 sec
schiessendlaufendstehend
sd Freistoss ausfuehren
ref
springen
sd Rechtssprung
nach rechts
sd Stehenbleiben
stehen
bleiben
[Fussball gerade]
[Fussball nach rechts][Fussball nach links]
:Fussball
sd Fussball fangen
:Torwart[fliegend]
fangen
:Torwart :Torwart
:Fus
sbal
l:S
chue
tze
Barbara Konig Modellierung 382
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Interaktionsubersichtsdiagramme
Bemerkungen:
Interaktionsreferenzen (Schlusselwort ref) werden verwendet,um an anderer Stelle definierte Interaktionsdiagrammewiederzuverwenden.
Anstatt der Aktionen wie in Aktivitatsdiagrammen werdenganze Interaktionsdiagramme verwendet, die alle sd alsDiagrammtyp fur Interaktionsdiagramme erhalten.
Barbara Konig Modellierung 383
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Anwendungsfalldiagramme
In fruhen Stadien der Entwicklung und bei der Kommunikation mitdem Auftraggeber spielen auch Anwendungsfalldiagramme (engl.use case diagrams) eine grosse Rolle.
Anwendungsfalldiagramme modellieren die Funktionalitat desSystems
auf einem hohen Abstraktionsniveau;
aus der Black-Box-Sicht des Anwenders (d.h., nur das vonaußen Sichtbare soll beschrieben werden, nicht die interneRealisierung);
durch Spezifikation der Schnittstellen.
Die Anwender bzw. Nutzer tauchen als sogenannte Akteure in denDiagrammen auf.
Barbara Konig Modellierung 384
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Anwendungsfalldiagramme
Beispiel: Restaurant
Gericht bestellen
Gast
Gericht verspeisen
Rechnung bezahlen
Mit Kreditkartebezahlen
Kreditkarte prufen�include�
1
1
1..*
1..*
Kellner
Restaurant
Kreditkarten-
gesellschaft
�actor�
Barbara Konig Modellierung 385
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Anwendungsfalldiagramme
Anwendungsfalldiagramme bestehen aus folgenden Komponenten:
Systemgrenze
Die Systemgrenze ist ein Rechteck, das beschreibt, was sichaußerhalb und innerhalb des zu erstellenden Systems befindet.
Restaurant
Barbara Konig Modellierung 386
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Anwendungsfalldiagramme
Akteur
Ein Akteur ist ein Typ oder eine Rolle, die ein externer Benutzeroder ein externes System wahrend der Interaktion mit dem Systemeinnimmt. Menschliche Akteur werden durch Strichmannchensymbolisiert, andere Akteure durch ein Rechteck, das mit demSchlusselwort �actor� gekennzeichnet ist
Gast
Kreditkarten-
gesellschaft
�actor�
Barbara Konig Modellierung 387
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Anwendungsfalldiagramme
Anwendungsfall
Ein Anwendungsfall ist eine Menge von Aktionen, die von demSystem bereitgestellt werden und die einen Nutzen fur einen odermehrere Akteure bringen. (D.h., es handelt sich dabei um eine Art“Service” des Systems.) Ein Anwendungsfall wird durch eineEllipse dargestellt.
Mit Kreditkartebezahlen
Barbara Konig Modellierung 388
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Anwendungsfalldiagramme
Assoziation
Wie bei Klassendiagrammen gibt es Assoziationen, vor allemzwischen Akteuren und Anwendungsfallen (welcher Akteur kannwelchen Anwendungsfall nutzen?).Assoziationen durfen die ublichen Beschriftungen besitzen(Multiplizitaten, etc.).
Gericht bestellen
Restaurant
1 1..*
Gast
Barbara Konig Modellierung 389
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Anwendungsfalldiagramme
Generalisierung/Spezialisierung
Anwendungsfalle konnen andere Anwendungsfalle spezialisieren,d.h., sie konnen von ihnen erben. Dabei werden – wie bei Klassen –auch alle Assoziationen geerbt.
Mit Kreditkartebezahlen
Rechnung bezahlen
Auch Spezialisierungsbeziehungen zwischen Akteuren sind moglich.
Barbara Konig Modellierung 390
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Anwendungsfalldiagramme
Include-Beziehung
Bei einer Include-Beziehung wird modelliert, dass einAnwendungsfall die Funktionalitat eines anderen Anwendungsfallesauf jeden Fall nutzt. D.h., der zweite Anwendungsfall wird immerals eine Art “Unterprozedur” aufgerufen.
Mit Kreditkartebezahlen
Kreditkarte prufen�include�
Es gibt auch sogenannte Extend-Beziehungen, bei denen einAnwendungsfall nur unter bestimmten Bedingungen in einenanderen Anwendungsfall eingebunden wird.
Barbara Konig Modellierung 391
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Anwendungsfalldiagramme
Bemerkungen:
Anwendungsfalldiagramme sollten nicht zu viele Detailsenthalten.
Sie sind ein einfaches Mittel, um Anwenderwunsche zudiskutieren und sollten nur eine grobe Sicht auf dieFunktionalitat des Systems darstellen.
Bei Bedarf mussen bestimmte Anwendungsfalle dann nochtextuell oder mit Hilfe anderer UML-Diagramme genauerbeschrieben werden.
Barbara Konig Modellierung 392
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Uberblick uber weitere UML-Diagramme
Wir sehen uns nun noch (ganz kurz) die fehlenden vier Typen vonStrukturdiagrammen an. UML-Ubersicht
Kompositionsstrukturdiagramme
Paketdiagramme
Verteilungsdiagramme
Komponentendiagramme
Im weitesten Sinne dienen sie alle dazu die (ubergeordnete)Struktur bzw. Architektur eines Systems darzustellen.
Barbara Konig Modellierung 393
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Kompositionsstrukturdiagramme
Kompositionsstrukturdiagramme (engl. composite structurediagrams) beschreiben die interne Struktur von Komponenten(z.B. Klassen) in einer White-Box-Darstellung. Instanzen von durchKomposition verbundenen Klassen werden dabei als sogenannteParts innerhalb der Klasse dargestellt.
:Fernsehgeraet
Antenneneingang
Antennenkabel
SatAusgang
:SatReceiver
SatKabel
:SatAntenne
SatEmpfangsAnlage
Part
Port
Barbara Konig Modellierung 394
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Paketdiagramme
Ein großes Softwaresystem muss in Pakete bzw. Module gegliedertwerden. Paketdiagramme (engl. package diagrams) beschreiben diestatische Struktur eines großen Systems durch Zusammenfassenvon Klassen in Paketen.
Kunde
kundenverwaltung personalverwaltung
Angestellter
kontenverwaltung
Konto
Girokonto Sparkonto
bank
Barbara Konig Modellierung 395
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Verteilungsdiagramme
Verteilungsdiagramme (engl. deployment diagrams) beschreibendie Hardware-Komponenten, die in einem System benutzt werdenund wie diese in Beziehung stehen.
Sie konnen auch konkrete physische Informationseinheiten(Dateien, etc.) enthalten, die als Artefakte bezeichnet werden.
:PC0..50
:Laptop0..10
:PC0..50Host �LAN�
�Internet�
�WLAN�
1
:Mehrprozessorsystem
1
1:DBClient
�deploy�
�deploy�
�deploy� �artifact�
Barbara Konig Modellierung 396
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Komponentendiagramme
Komponentendiagramme (engl. component diagrams) beschreibenim Gegensatz dazu die Software-Architektur eines Systems. Esbeantwortet die Frage, wie Klassen zur Laufzeit zu großerenKomponenten zusammengefasst werden und welche Schnittstellen(Services) angeboten und genutzt werden.
�component�
MailEingang
�component�
MailAusgang
�component�
MailManagement
Betrieb
uberwachen
Mail
abholen
�use�
Barbara Konig Modellierung 397
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Abschließende Bemerkungen
UML als semi-formale Modellierungsmethode
UML ist eine semi-formale Modellierungsmethode, d.h., nicht beijedem Sprachelement gibt es vollstandige Einigkeit uber dieBedeutung.
Trotz dieser Kritik ist die UML ein großer Fortschritt gegenuberfruher genutzten Modellierungsmethoden, da sie vereinheitlichteDiagramme bereitstellt, die von jedem Beteiligten amSoftwareentwicklungsprozess verstanden werden konnen.
Barbara Konig Modellierung 398
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Abschließende Bemerkungen
Konsistenz von Modellen
Bei der Beschreibung eines großen Systems durch mehrere Modelleist auch darauf zu achten, dass die Modelle untereinanderkonsistent sind. (Beispielsweise: Klassennamen, die in einemSequenzdiagramm verwendet werden, tauchen auch imKlassendiagramm auf.)
Es gibt Ansatze, solche Konsistenz (halb-automatisch) zuerreichen, indem man sogenannte Modelltransformationendurchfuhrt und verschiedene Diagramme ineinander ubersetzt.
Barbara Konig Modellierung 399
Einfuhrung in die ModellierungPetrinetze
Unified Modeling Language (UML)
Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme
Abschließende Bemerkungen
Es gibt noch viele Aspekte in der UML, die wir nicht betrachtethaben. Ein wichtiger Teil der UML ist beispielsweise die OCL(Object Constraint Language), eine formale Beschreibungssprache,in der man zusatzliche Bedingungen und Invarianten ausdruckenkann.
Weitergehende Informationen uber UML gibt es in zahllosenBuchern (siehe Literaturliste) und auf den Seiten der OMG (ObjectManagement Group):