Modellierung - an der Universität Duisburg-Essen

ti.inf.uni.due.de

Modellierung - an der Universität Duisburg-Essen

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Vorlesung “Modellierung

Modellierungsmethoden der Informatik”

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Wer sind wir?

Wintersemester 2011/12

Prof. Barbara König

Übungsleitung: Dr. Sander Bruggink

Dozentin: Prof. Barbara König

Raum LF 264

Barbara König Modellierung 1

E-Mail: barbara koenig@uni-due.de

Sprechstunde: nach Vereinbarung

Übungsleitung: Dr. Sander Bruggink

Raum LF 265

E-Mail: sander.bruggink@uni-due.de

Web-Seite: www.ti.inf.uni-due.de/teaching/ws201112/mod/

Barbara König Modellierung 3

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Das heutige Programm

Organisatorisches

Vorstellung

Ablauf der Vorlesung und der Übungen

Prüfung

Literatur & Folien

Einführung und Motivation: Was ist Modellierung?

Inhalt der weiteren Vorlesung

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Lernplattform Moodle

Wir verwenden Moodle, um:

Barbara König Modellierung 2

die Aufgabenblätter zur Verfügung zu stellen und

Hausaufgaben elektronisch abzugeben.

Moodle-Plattform an der Universität Duisburg-Essen:

http://moodle.uni-due.de/ (siehe auch Link auf der Webseite)

Bitte legen Sie dort einen Zugang an (falls noch nicht vorhanden)

und tragen Sie sich in den Kurs “Modellierungsmethoden der

Informatik” (Abteilung Informatik und Angewandte

Kognitionswissenschaft) ein.

Zugangsschlüssel: . . .

Barbara König Modellierung 4


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Vorlesungstermine

Vorlesungs-Termin:

Mittwoch, 8:30-10:00 Uhr, im Raum LB 107

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Termine der Übungsgruppen/Tutorien

Barbara König Modellierung 5

Am Dienstag, 1. November, fallen aufgrund des Feiertags die

Übungsgruppen aus.

Als Ersatz gibt es, ausnahmsweise, am 31. Oktober zwei

Übungsgruppen am Montag:

Montag, 16-17, LC 137

Montag, 17-18, LC 137

Sie können jedoch auch gerne einmalig eine der

Donnerstagsgruppen besuchen.

Barbara König Modellierung 7

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Termine der Übungsgruppen/Tutorien

Übungsgruppen:

Donnerstag, 10-11, LF 125 (28 Plätze) (Gruppe A)

Donnerstag, 11-12, LF 125 (28 Plätze) (Gruppe B)

Donnerstag, 10-11, LC 141 (24 Plätze) (Gruppe C)

Donnerstag, 11-12, LC 141 (24 Plätze) (Gruppe D)

Donnerstag, 14-16, LF 125 (28 Plätze) (Gruppe E)

Montag, 16-18, LC 137 (88 Plätze) (Gruppe F)

Dienstag, 10-12, LC 141 (24 Plätze) (Gruppe G)

Dienstag, 12-14, LC 137 (88 Plätze) (Gruppe H)

In der Montagsgruppe und in den Dienstagsgruppen werden

dieselben Aufgaben besprochen wie in den Donnerstagsgruppen der

Vorwoche.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Hinweise zu den Übungen

Barbara König Modellierung 6

Bitte versuchen Sie, sich möglichst gleichmäßig auf die

Übungen zu verteilen.

Besuchen Sie die Übungen und machen Sie die Hausaufgaben!

Diesen Stoff kann man nur durch regelmäßiges Üben erlernen.

Auswendiglernen hilft nicht besonders viel.

Die Übungen beginnen in der dritten Semesterwoche am

Donnerstag, den 27. Oktober. Die Montags- und

Dienstagsgruppen fangen erst in der vierten Semesterwoche

an!

Barbara König Modellierung 8


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Hinweise zu den Übungen

Klausur

Das Übungsblatt wird jeweils am Dienstag ins Netz gestellt.

Das erste Übungsblatt wird am 18. Oktober bereitgestellt.

Die schriftlichen Aufgaben müssen bis spätestens Mittwoch,

16 Uhr, der darauffolgenden Woche abgegeben werden.

In dieser Woche wird dann auch das Übungsblatt besprochen.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 9

Die Vorlesung wird durch eine Klausur am Ende des Semesters

geprüft:

Voraussichtlicher Termin: 14. Februar 2012

Die genaue Uhrzeit und der Raum werden noch bekanntgegeben.

Die Anmeldung erfolgt über das Prüfungsamt

Barbara König Modellierung 11

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Hinweise zu den Übungen

Klausur

Abgabe durch

Elektronische Abgabe über die Lernplattform Moodle

oder

Briefkasten: Einwurf in den neben Raum LF259.

Bitte geben Sie auf Ihrer Lösung deutlich Ihren Namen, Ihre

Matrikelnummer, Ihre Gruppennnumer und das Fach an.

Elektronische Abgaben sind nur als PDF zulässig! Bitte

benennen Sie Dateien nach folgendem Schema (um eine

eindeutige Namenswahl zu gewährleisten):

-.pdf

Sie dürfen in Einer- oder Zweier-Gruppen abgeben.

Plagiate oder das Kopieren alter Musterlösungen sind

selbstverständlich nicht erlaubt! In diesem Fall vergeben wir

keine Punkte.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Es gibt folgende Bonusregelung:

Barbara König Modellierung 10

Mit 50% der Hausaufgabenpunkten gibt es einen Bonus für

die Klausur.

Auswirkung: Verbesserung um eine Notenstufe; z.B. von 2,3

auf 2,0 (konkret: zwei Zusatzpunkte in der Klausur)

Barbara König Modellierung 12


Literatur

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Bernd Baumgarten: Petri-Netze.

Grundlagen und Anwendungen,

Spektrum, 1996.

Das Buch ist vergriffen, ist aber in der Bibliothek verfügbar.

Literatur

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

L. Priese, H. Wimmel:

Petri-Netze, Springer, 2008.

Barbara König Modellierung 13

Online verfügbar unter

http://www.springerlink.com/content/n54711/

(Zugriff über Uni-Rechner)

Barbara König Modellierung 15

Literatur

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Wolfgang Reisig: Petri-Netze –

Eine Einführung, Springer, 1985.

Ebenfalls vergriffen und in der Bibliothek verfügbar. Es gibt jedoch

eine neue Version:

Wolfgang Reisig: Petrinetze: Modellierungstechnik,

Analysemethoden, Fallstudien, Vieweg+Teubner, 2010.

http://www2.informatik.hu-berlin.de/top/pnene buch/

Literatur

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 14

Tadao Murata: Petri Nets: Properties, Analysis and Applications.

Proc. of the IEEE, 77(4), 1989.

Online verfügbar als PDF:

http://www.cs.unc.edu/~montek/teaching/spring-04/murata-petrinets.pdf

Barbara König Modellierung 16


Literatur

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

G. Booch, J. Rumbaugh, I.

Jacobson: The Unified Modeling

Language User Guide, Addison

Wesley, 2005.

Literatur

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

R. Miles, K. Hamilton: Learning

UML 2.0, O’Reilly, 2006.

Barbara König Modellierung 17

Online verfügbar unter

http://proquest.safaribooksonline.com/0596009828

(Zugriff über Uni-Rechner)

Barbara König Modellierung 19

Literatur

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

M. Jeckle, C. Rupp, J. Hahn, B.

Zengler, S. Queins: UML 2

glasklar, Hanser Fachbuch, 2007.

Literatur

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Christoph Kecher: UML 2.0 -

Das umfassende Handbuch.

Galileo Press, 2006.

Buch ist in der Bibliothek verfügbar.

Barbara König Modellierung 18

Barbara König Modellierung 20


Literatur

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Perdita Stevens, Rob Pooley:

UML - Softwareentwicklung mit

Objekten und Komponenten.

Pearson, 2001.

Buch (vor allem das englische Original) ist in der Bibliothek

verfügbar.

Literatur

Hinweise:

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 21

Die Bücher sind als Ergänzung gedacht, sie präsentieren den

Stoff oft aus einem anderen Blickwinkel.

Sehen Sie sich die Bücher erst an, bevor Sie sie kaufen. Nicht

jede/r kommt mit jedem Buch zurecht.

Die Bibliothek (LK) ist ein guter Platz um nach Büchern zu

stöbern (Informatik-Abteilung im 1. Stock,

Lehrbuchsammlung im Keller)

Wagen Sie sich auch an englische Literatur, englische

Fachsprache ist zumeist gut verständlich

Barbara König Modellierung 23

Literatur

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

David Harel: Statecharts: a visual formalism for complex systems.

Science of Computer Programming 8, pp 231-274. North-Holland

1987.

Online verfügbar als PDF:

http://www.wisdom.weizmann.ac.il/~dharel/

SCANNED.PAPERS/Statecharts.pdf

Folien

Folien werden

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

im Web als PDF bereitgestellt

regelmäßig aktualisiert

Barbara König Modellierung 22

Die Folien werden sich gegenüber dem letzten Jahr relativ wenig

verändern. Von daher macht es Sinn, sich die Folien des Vorjahres

schon einmal anzusehen (siehe

jordan.inf.uni-due.de/teaching/ws0910/mod/ bzw. den

Link auf der Vorlesungs-Webseite).

Barbara König Modellierung 24


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Was ist Modellierung?

Modell

Ein Modell ist eine Repräsentation eines Systems von Objekten,

Beziehungen und/oder Abläufen. Ein Modell vereinfacht und

abstrahiert dabei im allgemeinen das repräsentierte System.

System

Der Begriff System wird hier sehr allgemein verwendet. Er kann

entweder

einen Teil der Realität oder

ein noch nicht bestehendes Gebilde, das noch erstellt werden

muss,

bezeichnen.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Modellierung in der Physik

Barbara König Modellierung 25

Atommodelle

Atome bestehen aus Protonen, Neutronen und Elektronen. Wie

diese Teilchen zusammenwirken, wird in verschiedenen

Atommodellen beschrieben, die sich im Laufe der Zeit immer

wieder geändert haben.

Barbara König Modellierung 27

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Was ist Modellierung?

Modellierung

Modellierung ist der Prozess, bei dem ein Modell eines Systems

erstellt wird.

Warum sollte man modellieren?

� Um ein System zu entwerfen, besser zu verstehen, zu

visualisieren, zu simulieren, . . .

Um etwas konkreter zu werden betrachten wir den Begriff der

Modellierung in verschiedenen Disziplinen (Physik, Biologie,

Klimaforschung, . . . )

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Modellierung in der Biologie

Zitronensäurezyklus

Barbara König Modellierung 26

Der Zitronensäurezyklus oder Citratzyklus modelliert den Abbau

organischer Stoffe im Körper.

Barbara König Modellierung 28


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Modellierung in der Klimaforschung

Modell des Transports von Gasen in der Atmosphäre

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Arten von Modellen

qualitativ vs. quantitativ

Barbara König Modellierung 29

qualitative Modelle: Welche Objekte gibt es? Was passiert?

Warum passiert es? In welcher Reihenfolge geschehen die

Ereignisse? Was sind die kausalen Zusammenhänge? Welche

Phänomene treten auf?

quantitative Modelle: Wieviele Objekte gibt es? Wie lange

dauert ein Vorgang? Wie wahrscheinlich ist ein bestimmtes

Ereignis?

Barbara König Modellierung 31

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Arten von Modellen

visuell vs. textuell

Nicht alle Modelle sind visuell bzw. graphisch. Auch mit textuellen

Beschreibunge und Formeln kann man modellieren (siehe

beispielsweise mathematische Modelle).

Dennoch werden häufig graphische Darstellungen benutzt, auch

aus didaktischen Gründen und um sich besser über die Modelle

verständigen zu können.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Arten von Modellen

Barbara König Modellierung 30

black box vs. white box

black box: nur das von außen beobachtbare Verhalten wird

beschrieben

white box: es wird auch beschrieben, wie das von außen

beobachtbare Verhalten im “Inneren” des Systems erzeugt

wird

Barbara König Modellierung 32


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Arten von Modellen

statisch vs. dynamisch

ein statisches Modell beschreibt einen Zustand des Systems zu

einem bestimmten Zeitpunkt

ein dynamisches Modell beschreibt hingegen auch, wie das

System sich entwickelt (ein oder mehrere mögliche Abläufe

oder sogar das gesamte Systemverhalten)

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Probleme mit nicht-formalen Modellen

Natürliche Sprache ist nicht immer eindeutig.

Beispiel:

Barbara König Modellierung 33

Ich sah den Mann auf dem Berg mit dem Fernrohr.

Barbara König Modellierung 35

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Arten von Modellen

nicht-formell vs. semi-formal vs. formal

Je nach Exaktheit der Modelle erhält man:

formale Modelle, die vollkommen exakt in ihren Aussagen sind

(vor allem mathematische Modelle)

semi-formale Modelle, die teilweise exakt sind, jedoch nicht

alles vollständig spezifieren

nicht-formale Modelle, die als grobe Richtlinie dienen können,

jedoch eher vage Aussagen machen

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Probleme mit nicht-formalen Modellen

Barbara König Modellierung 34

(((Ich sah den Mann) auf dem Berg) mit dem Fernrohr)

Barbara König Modellierung 36


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Probleme mit nicht-formalen Modellen

((Ich sah (den Mann auf dem Berg)) mit dem Fernrohr)

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Probleme mit nicht-formalen Modellen

Barbara König Modellierung 37

(Ich sah ((den Mann auf dem Berg) mit dem Fernrohr))

Barbara König Modellierung 39

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Probleme mit nicht-formalen Modellen

((Ich sah den Mann) (auf dem Berg mit dem Fernrohr))

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Probleme mit nicht-formalen Modellen

Barbara König Modellierung 38

(Ich sah (den Mann (auf dem Berg mit dem Fernrohr)))

Barbara König Modellierung 40


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Probleme mit nicht-formalen Modellen

(((Ich sah den Mann) auf dem

Berg) mit dem Fernrohr)

((Ich sah (den Mann auf dem

Berg)) mit dem Fernrohr)

((Ich sah den Mann) (auf dem

Berg mit dem Fernrohr))

(Ich sah ((den Mann auf dem

Berg) mit dem Fernrohr))

(Ich sah (den Mann (auf dem

Berg mit dem Fernrohr)))

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Modellierung in der Informatik

5 mögliche

Interpretationen!

Barbara König Modellierung 41

In dieser Vorlesung geht es um Modellierungsmethoden in der

Informatik. Diese werden zum Entwurf folgender Systeme

eingesetzt:

(Objekt-orientierte) Programme

(Große) Software-Systeme

Benutzeroberflächen

Datenbanken

Virtual Reality, Computer-Spiele

. . .

Barbara König Modellierung 43

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Probleme mit nicht-formalen Modellen

Auch graphische Darstellungen können uneindeutig sein:

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Wozu ist Modellierung gut?

Wozu benötigt man Modelle?

Barbara König Modellierung 42

� je komplexer ein System ist, desto wichtiger ist es, einen Plan

zu erstellen, bevor man beginnt das System zu konstruieren

� dies führt zu:

Vermeidung von Fehlern

besserer Qualität

niedrigeren Kosten

besserer Dokumentation und Wiederverwendbarkeit

Barbara König Modellierung 44


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Wozu ist Modellierung gut?

Analogie: Bau eines Hauses

Beim Bau einer Hundehütte kann

man zumeist ohne große Planung

vorgehen. Die Hütte kann von

einer einzelnen Person erstellt

werden und ein Hund hat zumeist

keine großen Anforderungen.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Wozu ist Modellierung gut?

Analogie: Bau eines Hauses

Beim Bau eines Hochhauses ist

ohne Erstellung eines detaillierten

Plans bzw. Modells nicht

möglich. Das Risiko, Fehler zu

machen ist sehr groß, und Fehler

können extrem kostspielig

werden.

Barbara König Modellierung 45

Barbara König Modellierung 47

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Wozu ist Modellierung gut?

Analogie: Bau eines Hauses

Beim Bau eines

Einfamilienhauses ist Planung

viel wichtiger. Die Familie ist

anspruchsvoller als ein Hund,

Bauvorschriften müssen

eingehalten werden und

vermutlich werden nicht alle

Arbeiten von derselben Person

durchgeführt.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Wozu ist Modellierung gut?

Barbara König Modellierung 46

Modellierung ist in der Informatik weniger verbreitet als in den

Ingenieurwissenschaften, aber ebenso wichtig.

Schwierigkeiten beim Entwurf komplexer Systeme

Menschen können sich komplexe Systeme normalerweise nicht

in vollem Umfang vorstellen

Bei mehreren Menschen/Entwicklern gibt es unterschiedliche

Meinungen darüber, wie das System aussehen muss

� Modelle dienen zu Kommunikation!

Es ist schwer ein System zu dokumentieren und zu warten,

das nicht explizit modelliert ist.

Feststellung (nach Glinz)

Die Entwicklung von Klein-Software unterscheidet sich

fundamental von der Entwicklung größerer Software.

Barbara König Modellierung 48


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Probleme bei der Entwicklung großer Systeme

Klein-Groß-Gegensätze in der Software-Entwicklung:

klein groß

Programme bis ungefähr 300

Zeilen

Längere Programme

Für den Eigengebrauch Für den Gebrauch durch

Dritte

Vage Zielsetzung genügt, das

Produkt ist seine eigene

Spezifikation

Genaue Zielbestimmung, d.h.

die Spezifikation von

Anforderungen, erforderlich

Barbara König Modellierung 49

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Probleme bei der Entwicklung großer Systeme

klein groß

Eine Person entwickelt: keine

Kooperation und

Kommunikation erforderlich

Komplexität des Problems in

der Regel klein, Strukturieren

und Behalten der Übersicht

nicht schwierig

Mehrere Personen entwickeln

gemeinsam: Koordination und

Kommunikation notwendig

Komplexität des Problems

größer bis sehr groß, explizite

Maßnahmen zur

Strukturierung und

Modularisierung erforderlich

Barbara König Modellierung 51

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Probleme bei der Entwicklung großer Systeme

klein groß

Ein Schritt vom Problem zur

Lösung genügt: Lösung wird

direkt programmiert

Validierung

(Überprüfung/Testen) und

nötige Korrekturen finden am

Endprodukt statt

Mehrere Schritte vom

Problem zur Lösung

erforderlich: Spezifikation,

Konzept, Entwurf und

Programmieren der Teile,

Zusammensetzen,

Inbetriebnahme

Auf jeden Entwicklungsschritt

muss ein Prüfschritt folgen,

sonst kann Endergebnis

unbrauchbar werden

Barbara König Modellierung 50

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Probleme bei der Entwicklung großer Systeme

klein groß

Software besteht aus wenigen

Komponenten

In der Regel wird keine

Dokumentation erstellt

Software besteht aus vielen

Komponenten, die spezielle

Maßnahmen zur

Komponentenverwaltung

erfordern

Dokumentation dringend

erforderlich, damit Software

wirtschaftlich betrieben und

gepflegt werden kann

Barbara König Modellierung 52


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Probleme bei der Entwicklung großer Systeme

klein groß

Keine Planung und

Projektorganisation

erforderlich

Planung und

Projektorganisation zwingend

erforderlich für eine

zielgerichtete, wirtschaftliche

Entwicklung

Barbara König Modellierung 53

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Probleme bei der Entwicklung großer Systeme

Die Problematik bei der Erstellung großer Programme sieht man

auch an folgenden Zahlen (nach Boehm 1981):

40% der Zeit wird mit der Entwicklung verbracht (davon:

15% Spezifikation; 8% Codierung; 16% Test)

60% der Zeit wird für die Wartung aufgewendet

(12% Anpassung; 36% Erweiterung und Verbesserung;

12% Fehlerbehebung)

Barbara König Modellierung 55

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Probleme bei der Entwicklung großer Systeme

Explosion der Anzahl der Kommunikationspfade bei Anstieg der

Entwicklerzahl:

Anzahl Personen:

Anzahl Komm.pfade:

1 2 3 4 5 6

0 1 3 6 10 15

Quantensprung:

Kommunikation

wird erforderlich

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Wozu ist Modellierung gut?

Quantensprung:

Zahl der Komm.pfade

übersteigt Zahl

der Personen

Barbara König Modellierung 54

Aus diesen Fakten und Zahlen ergibt sich folgende Konsequenz:

Vor allem bei der Erstellung großer Systeme ist es unbedingt

erforderlich, zunächst das System zu modellieren, bevor es

implementiert bzw. konstruiert wird.

Meistens sind auch mehrere verschiedene Modelle erforderlich.

Aus Gründen der Übersichtlichkeit und Didaktik werden wir uns in

der Vorlesung jedoch hauptsächlich mit kleinen Modellen befassen.

Barbara König Modellierung 56


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Beispiel: Wolf, Ziege, Kohlkopf

Wir modellieren folgendes System, um eine möglich Lösung zu

finden.

Wolf-Ziege-Kohlkopf-Problem

Ein Bauer will einen Fluss überqueren. Er hat einen Wolf, eine

Ziege und einen Kohlkopf bei sich. Wenn sie alleingelassen werden,

so frisst der Wolf die Ziege, und die Ziege den Kohlkopf. Zur

Überquerung des Flusses steht ein Boot mit zwei Plätzen zur

Verfügung. Nur der Bauer kann rudern und er kann das Boot

entweder allein benutzen oder ein Tier oder den Kohlkopf

mitnehmen.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Beispiel: Wolf, Ziege, Kohlkopf

Barbara König Modellierung 57

Statisches Modell II: Fress- und Eigentumsbeziehungen zwischen

den Akteuren

besitzt

�������������

frisst ��

���

��

besitzt

besitzt

���

��

��

����

frisst�� Barbara König Modellierung 59

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Beispiel: Wolf, Ziege, Kohlkopf

Statisches Modell I: Beteiligte Akteure/Objekte

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Beispiel: Wolf, Ziege, Kohlkopf

Barbara König Modellierung 58

Ausgangssituation: vor Überquerung des Flusses

Boot

Barbara König Modellierung 60


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Beispiel: Wolf, Ziege, Kohlkopf

Zielsituation: nach Überquerung des Flusses

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Beispiel: Wolf, Ziege, Kohlkopf

Boot

Barbara König Modellierung 61

Dynamisches Modell: Beispielablauf, zweiter Schritt

Ziege frisst Kohlkopf

Boot

Barbara König Modellierung 63

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Beispiel: Wolf, Ziege, Kohlkopf

Dynamisches Modell: Beispielablauf, erster Schritt

Bauer und Wolf setzen gemeinsam über


→ Boot

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Syntax und Semantik

Barbara König Modellierung 62

Man unterscheidet bei der Modellierung zwischen:

Syntax: Symbole und Diagramme, die für die Darstellung des

Modells genutzt werden dürfen

Im Beispiel: Bild der Ziege, blaue Fläche, etc.

Semantik: Bedeutung, die sich hinter den Symbolen verbirgt

Im Beispiel: Die blaue Fläche symbolisiert den Fluss.

Die Pfeile bedeuten: “Fluss wird überquert”

Zu einer Syntax gibt es nicht immer eine dazugehörige Semantik

(im Beispiel ist die Semantik sehr vage).

Wünschenswert ist jedoch im allgemeinen, dass die Bedeutung aller

Symbole möglichst präzise festgelegt wird.

Einigung auf eine gemeinsame Sprache/Notation, auf gemeinsame

visuelle Beschreibungen zur Vermeidung von Missverständnissen.

Barbara König Modellierung 64


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Weitere Aspekte

Weitere wichtige Gesichtspunkte sind:

Graphen

Analyse:

Ist das Modell korrekt? Ist es in sich konsistent?

Stimmt das Modell mit der späteren Implementierung

überein? (Hier werden Verfahren zum Testen und zur

Verifikation benötigt)

Werkzeuge, Software-Tools: werden benötigt zum Zeichnen,

zum Darstellen (Wechsel zwischen verschiedenen

Darstellungen), zum Archivieren, zur Code-Generierung, zur

Analyse, . . .

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Graphen bestehen aus Knoten und

Kanten.

Sie können eingesetzt werden für

Statische Modellierung:

Komponenten und

Beziehungen zwischen den

Komponenten

Dynamische Modellierung:

Zustände und

Zustandsübergänge in Form

eines

Zustandsübergangsdiagramms

Barbara König Modellierung 65

a

1 2

Barbara König Modellierung 67

c

3

b

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Inhalt der Vorlesung

Inhalt

Mathematische Grundlagen

Petrinetze

Graphen für statische und dynamische Systembeschreibungen

Petrinetze

UML (Unified Modeling Language)

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Modell für nebenläufige und

verteilte Systeme, das die

gemeinsame Nutzung von

Ressourcen beschreibt.

Schwerpunkt liegt auf der

Modellierung des dynamischen

Verhaltens.

Etabliertes Modell, das vielfältig

eingesetzt wird.

Formale Semantik.

Erfunden von Carl Adam Petri

(1962).

Barbara König Modellierung 66

Stelle

Marke

Transition

Barbara König Modellierung 68


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

UML: Unified Modeling Language

Standard-Modellierungssprache für

Software Engineering.

Basiert auf objekt-orientierten

Konzepten.

Sehr umfangreich, enthält viele

verschiedene Typen von Modellen.

Entwickelt von Grady Booch,

James Rumbaugh, Ivar Jacobson

(1997).

Barbara König Modellierung 69

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Ein weiteres Beispiel: Einschreiben an der Universität

Szenario: Eine Reorganisation der Universität, und insbesondere

des Studiensekretariats, das für Einschreibungen zuständig ist,

steht an.

Hierzu soll der Ablauf des Einschreibens neuer Studierender

modelliert werden . . .

Barbara König Modellierung 71

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Inhalt der Vorlesung

Die vorgestellten Modellierungsmethoden sind nicht die einzigen

Modellierungsmethoden in der Informatik.

Hier: Fokus auf visuelle Modellierung mit Hilfe von Diagrammen

Mögliche Alternative: algebraische Modellierungsmethoden, die

sich stärker an der Mathematik orientieren

Barbara König Modellierung 70

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Ein weiteres Beispiel: Einschreiben an der Universität

Darstellung des zeitlichen Ablaufs durch Symbolisieren der

beteiligten Partner als Linien und der Kommunikation durch Pfeile

(Ausschnitt).

zeitlicher

Ablauf

Universität Student/in Studiensekretariat

Studieninformation anfordern

Studieninformation

Besuch der Einführungsveranstaltung

Aufstellen

Bonautomat

Anfordern Bon

Ausgeben Bon

Unterlagen schicken

. . . . . . . . .

Barbara König Modellierung 72


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Ein weiteres Beispiel: Einschreiben an der Universität

Solche Diagramme sind übrigens Bestandteil von UML. Sie werden

Sequenzdiagramme (engl. sequence diagrams, auch message

sequence charts) genannt.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Notation: Mengen und Funktionen

Bemerkungen:

Barbara König Modellierung 73

Die Elemente einer Menge sind ungeordnet, d.h., ihre

Ordnung spielt keine Rolle. Beispielsweise gilt:

{1, 2, 3} = {1, 3, 2} = {2, 1, 3} = {2, 3, 1} = {3, 1, 2} = {3, 2, 1}

Ein Element kann nicht “mehrfach” in einer Menge auftreten.

Es ist entweder in der Menge, oder es ist nicht in der Menge.

Beispielsweise gilt:

{1, 2, 3} �= {1, 2, 3, 4} = {1, 2, 3, 4, 4}

Barbara König Modellierung 75

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Notation: Mengen und Funktionen

Menge

Menge M von Elementen, wird beschrieben als Aufzählung

M = {0, 2, 4, 6, 8, . . . }

oder als Menge von Elementen mit einer bestimmten Eigenschaft

Allgemeines Format:

M = {n | n ∈ N0 und n gerade}.

M = {x | P(x)}

(M ist Menge aller Elemente x, die die Eigenschaft P erfüllen.)

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Notation: Mengen und Funktionen

Element einer Menge

Barbara König Modellierung 74

Wir schreiben a ∈ M, falls ein Element a in der Menge M

enthalten ist.

Anzahl der Elemente einer Menge

Für eine Menge M gibt |M| die Anzahl ihrer Elemente an.

Teilmengenbeziehung

Wir schreiben A ⊆ B, falls jedes Element von A auch in B

enthalten ist. Die Relation ⊆ heißt auch Inklusion.

Barbara König Modellierung 76


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Notation: Mengen und Funktionen

Vereinigung

Die Vereinigung zweier Mengen M1, M2 ist die Menge M, die die

Elemente enthält, die in M1 oder M2 vorkommen. Man schreibt

dafür M1 ∪ M2.

M1 ∪ M2 = {a | a ∈ M1 oder a ∈ M2}

Schnitt

Der Schnitt zweier Mengen M1, M2 ist die Menge M, die die

Elemente enthält, die sowohl in M1 als auch in M2 vorkommen.

Man schreibt dafür M1 ∩ M2.

M1 ∩ M2 = {a | a ∈ M1 und a ∈ M2}

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Notation: Mengen und Funktionen

Bemerkungen:

Barbara König Modellierung 77

Wir betrachten nicht nur Paare, sondern auch sogenannte

Tupel, bestehend aus mehreren Elementen. Ein Tupel

(a1, . . . , an) bestehend aus n Elementen heißt auch n-Tupel.

In einem Tupel sind die Elemente geordnet! Beispielsweise gilt:

(1, 2, 3) �= (1, 3, 2) ∈ N0 × N0 × N0

Ein Element kann “mehrfach” in einem Tupel auftreten. Tupel

unterschiedlicher Länge sind immer verschieden.

Beispielsweise:

(1, 2, 3, 4) �= (1, 2, 3, 4, 4)

Merke: Runde Klammern (, ) und geschweifte Klammern {, }

stehen für ganz verschiedene mathematische Objekte!

Barbara König Modellierung 79

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Notation: Mengen und Funktionen

Kreuzprodukt

Seien A, B zwei Menge. Die Menge A × B is die Menge aller Paare

(a, b), wobei das erste Element des Paars aus A, das zweite aus B

kommt.

A × B = {(a, b) | a ∈ A, b ∈ B}

Beispiel:

{1, 2} × {3, 4, 5} = {(1, 3), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5)}

Es gilt: |A × B| = |A| · |B| (für endliche Menge A, B).

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Notation: Mengen und Funktionen

Potenzmenge

Barbara König Modellierung 78

Sei M eine Menge. Die Menge P(M) ist die Menge aller

Teilmengen von M.

P(M) = {A | A ⊆ M}

Beispiel:

P({1, 2, 3}) = {∅, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}.

Es gilt: |P(M)| = 2 |M| (für eine endliche Menge M).

Barbara König Modellierung 80


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Notation: Mengen und Funktionen

Funktion

f : A → B

a ↦→ f (a)

Die Funktion f bildet ein Element a ∈ A auf ein Element f (a) ∈ B

ab. Dabei ist A der Definitionsbereich und B der Wertebereich.

Beispiel (Quadratfunktion):

f : Z → N0, f (n) = n 2

. . . , −3 ↦→ 9, −2 ↦→ 4, −1 ↦→ 1, 0 ↦→ 0, 1 ↦→ 1, 2 ↦→ 4, 3 ↦→ 9, . . .

Dabei ist N0 die Menge der natürlichen Zahlen (mit der Null) und

Z die Menge der ganzen Zahlen.

Graphen

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Beispiel (Bauer, Wolf, Ziege, Kohlkopf):

Barbara König Modellierung 81

V = {B, W , Z, K} L = {besitzt, frisst}

E = {(B, besitzt, W ), (B, besitzt, Z), (B, besitzt, K),

Graphische Darstellung:

(W , frisst, Z), (Z, frisst, K)}

besitzt

besitzt

B

besitzt

frisst frisst

W Z K

Barbara König Modellierung 83

Graphen

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Graphen sind netzartige Strukturen, bestehend aus Knoten und

Kanten. Sie bilden die Grundlagen vieler diagrammatischer

Modellierungstechniken.

Gerichteter Graph

Sei L eine Menge von Beschriftungen (oder Labels). Ein gerichteter

(beschrifteter) Graph G = (V , E) besteht aus

einer Knotenmenge V und

einer Kantenmenge E ⊆ V × L × V .

Bemerkung: V steht für vertices und E für edges.

Graphen

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Weitere Arten von Graphen:

Ungerichtete Graphen

Barbara König Modellierung 82

Bei ungerichteten Graphen spielt die Richtung der Kanten keine

Rolle. Formal sind Kanten zweielementige Teilmengen der

Knotenmenge (statt Tupel).

a

b

A

c c

B C D

Barbara König Modellierung 84


Graphen

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Graphen mit Knotenbeschriftung

Auch Knoten können Beschriftungen tragen, wobei zwei

verschiedene Knoten auch gleich beschriftet sein dürfen.

Graphen

besitzt

besitzt

B

besitzt

frisst frisst

W Z K

Tier

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Mensch

Tier Gemüse

Barbara König Modellierung 85

Graphen können in vielfältiger Weise zur Modellierung eingesetzt

werden. Wir betrachten zwei typische Fälle.

Graphen zur statischen Modellierung

Knoten sind Komponenten oder Objekte, die untereinander über

Kanten verbunden sind bzw. in Beziehung stehen.

Beispiel: Beziehungen zwischen Bauer, Wolf, Ziege, Kohlkopf

Barbara König Modellierung 87

Graphen

Hypergraphen

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Bei Hypergraphen kann eine Kante (symbolisiert durch ein

Quadrat oder Rechteck) mit einer beliebigen Anzahl von Knoten

verbunden sein. Evtl. sind dabei die Knoten im Bezug auf die

Kante geordnet (wie bei gerichteten Graphen).

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsübergangsdiagramme

B

a

A

c

C b D

Graphen zur dynamischen Modellierung

Barbara König Modellierung 86

Knoten sind Zustände und Kanten sind Zustandsübergänge.

Klassischer Vertreter: Zustandsübergangsdiagramme (auch

Transitionssysteme genannt)

Zustandsübergangsdiagramm

Ein Zustandsübergangsdiagramm besteht aus einem gerichteten

Graphen (Z, U), wobei Z (= Zustände) die Knotenmenge des

Graphen und U (= Übergänge) die Kantenmenge der Graphen ist,

und außerdem aus einem Startzustand z0 ∈ Z.

Zustandsübergangsdiagramme werden graphisch wie gerichtete

Graphen dargestellt. Der Startzustand (auch Anfangszustand

genannt) wird dabei meist durch eine eingehende Pfeilspitze

gekennzeichnet.

Barbara König Modellierung 88


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsübergangsdiagramme

Beispiel: Zustandsübergangsdiagramm für die Übergänge beim

Wolf-Ziege-Kohlkopf-Problem.

BWZK|

Misserfolg! ZK|BW WK|BZ

BWK|Z

K|BWZ W|BZK

Misserfolg! BK|WZ BZK|W BWZ|K BW|ZK Misserfolg!

Erfolg!

Z|BWK

BZ|WK

|BWZK

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsübergangsdiagramme

Weitere Bemerkungen:

WZ|BK

WZK|B Misserfolg!

B|WZK

Misserfolg!

Misserfolg!

Barbara König Modellierung 89

Es gibt mehrere (sogar unendlich viele) Wege zum

Zielzustand. Die zwei kürzesten enthalten jeweils sieben

Übergänge.

Zustandsübergangsdiagramme selbst relativ einfacher Systeme

werden oft erstaunlich groß (sogenannte Zustandsexplosion).

Wichtig:

Zustandsübergangsdiagramme stellen im allgemeinen alle Zustände

und alle Übergänge eines Systems dar.

Barbara König Modellierung 91

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsübergangsdiagramm

Bemerkungen:

Der senkrechte Strich | steht für den Fluss. Links und rechts

davon befinden sich die Akteure/Objekte (B = Bauer, W =

Wolf, Z = Ziege, K = Kohlkopf)

Übergänge sind aus Gründen der Übersichtlichkeit nicht

beschriftet. Sinnvolle Beschriftungen wären die ausgeführten

Aktionen (“Bauer bringt Ziege über den Fluss”, etc.)

Eckige (rote) Zustände symbolisieren hier Misserfolg (z.B.

“Ziege frisst Kohlkopf”).

Kanten, die aus solchen Zuständen herausführen, wurden

weggelassen.

Die doppelte (blaue) Ellipse symbolisiert hier Erfolg

(erwünschter Zielzustand ist erreicht)

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Motivation: Petrinetze

Barbara König Modellierung 90

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze sind ein Formalismus zur Modellierung von

nebenläufigen Systemen mit folgenden Eigenschaften:

Vorstellung von Systemübergängen, bei denen gemeinsame

Ressourcen konsumiert und neu erzeugt werden können.

Einfache Modellierung von räumlicher Verteilung der

Ressourcen, Nebenläufigkeit, Parallelität und

(Zugriffs-)Konflikten.

Intuitive graphische Darstellung.

Petrinetze werden in der Praxis vielfach benutzt. In UML sind

sie abgewandelt als sogenannte Aktivitätsdiagramme (engl.

activity diagrams) eingegangen.

Eingeführt wurden Sie in der Doktorarbeit von Carl Adam

Petri: “Kommunikation mit Automaten”, Bonn, 1962.

Barbara König Modellierung 92


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Motivation: Petrinetze

Parallelität versus Nebenläufigkeit:

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Parallelität

Zwei Ereignisse finden parallel statt, wenn sie gleichzeitig

ausgeführt werden.

Nebenläufigkeit

Zwei Ereignisse sind nebenläufig, wenn sie parallel ausgeführt

werden können (jedoch nicht müssen), das heißt, wenn zwischen

ihnen keine kausale Abhängigkeit besteht.

Das bedeutet: Nebenläufigkeit ist der allgemeinere Begriff.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Motivation: Petrinetze

Beispiel für ein Petrinetz:

Notation:

Barbara König Modellierung 93

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Stellen (dargestellt als Kreise): Mögliche Plätze für Ressourcen

Marken (dargestellt als kleine ausgefüllte Kreise): Ressourcen

Transitionen (dargestellt durch Rechtecke): Systemübergänge

Barbara König Modellierung 95

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Motivation: Petrinetze

Anwendungen für Petrinetze:

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Modellierung von Büroabläufen (work flow, business

processes)

Modellierung und Analyse von Web Services

Beschreibung von graphischen Benutzeroberflächen

Prozessmodellierung bei Betriebssystemen

Ablaufbeschreibungen in ingenieurwissenschaftlichen

Anwendungen

. . .

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Motivation: Petrinetze

Darstellung einer Transition:

Barbara König Modellierung 94

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Vorbedingung (Stellen, aus denen

Marken konsumiert werden)

Nachbedingung (Stellen, in denen

Marken erzeugt werden)

Das Entfernen der Marken der Vorbedingung und Erzeugen der

Marken der Nachbedingung nennt man Schalten bzw. Feuern der

Transition.

Barbara König Modellierung 96


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Motivation: Petrinetze

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Motivation: Petrinetze

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Barbara König Modellierung 97

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Barbara König Modellierung 97

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Motivation: Petrinetze

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Motivation: Petrinetze

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Barbara König Modellierung 97

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Barbara König Modellierung 97


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Motivation: Petrinetze

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Motivation: Petrinetze

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Barbara König Modellierung 97

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Barbara König Modellierung 97

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Motivation: Petrinetze

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Motivation: Petrinetze

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Barbara König Modellierung 97

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Barbara König Modellierung 97


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Motivation: Petrinetze

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Motivation: Petrinetze

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Barbara König Modellierung 97

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Barbara König Modellierung 97

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Motivation: Petrinetze

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Motivation: Petrinetze

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Barbara König Modellierung 97

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Barbara König Modellierung 97


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Motivation: Petrinetze

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Beispiel: Dining Philosophers

Modellierung als

Petrinetz:

In dem Netz ist ein

Deadlock

(Verklemmung)

erreichbar, d.h.,

eine Markierung,

bei der keine

Transition mehr

geschaltet werden

kann.

W1

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Barbara König Modellierung 97

F3

E3

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

E1

H1

F1

H3

F2

Barbara König Modellierung 99

H2

W3

W2

E2

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Beispiel: Dining Philosophers

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Wir betrachten das Beispiel der Dining Philosophers (speisende

Philosophen):

Es sitzen drei Philosophen um einen runden Tisch, zwischen je

zwei Philosophen liegt eine Gabel.

Philosophen werden von Zeit zu Zeit hungrig und benötigen

zum Essen beide benachbarte Gabeln.

Jeder Philosoph nimmt zu einem beliebigen Zeitpunkt beide

Gabeln nacheinander auf (die rechte zuerst), isst und legt

anschließend beide Gabeln wieder zurück.

P1

F3

F1

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Definitionen

Petrinetz (Definition)

P3

F2

P2

Barbara König Modellierung 98

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Ein Petrinetz ist ein Tupel N = (S, T , • (), () • , m0), wobei

S eine Menge von Stellen und

T eine Menge von Transitionen ist.

Außerdem gibt es für jede Transition t zwei Funktionen

• t : S → N0, t • : S → N0, die angeben, wieviele Marken t aus

einer Stelle entnimmt und in eine Stelle legt.

m0 : S → N0 ist die Anfangsmarkierung (oder initiale

Markierung).

Der Wert • t(s) bzw. t • (s) wird auch als Gewicht bezeichnet.

Barbara König Modellierung 100


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Definitionen

Markierung

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Eine Markierung ist eine Abbildung m : S → N0, die festlegt,

wieviele Marken in jeder Stelle liegen.

Falls eine Reihenfolge s1, . . . , sn der Stellen fixiert wurde, kann eine

Markierung m auch durch ein Tupel (m(s1), . . . , m(sn)) dargestellt

werden.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Darstellung

Graphische Darstellung:

Barbara König Modellierung 101

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Stellen werden als Kreise, Transitionen als Quadrate oder

Rechtecke, Marken als kleine schwarze ausgefüllte Kreise

dargestellt

Kanten zwischen Stellen und Transitionen werden als Pfeile

dargestellt.

Das Gewicht als Kantenbeschriftung kann weggelassen

werden, falls es den Wert eins hat. Die Kante wird ganz

weggelassen, falls das Gewicht den Wert 0 hat.

Barbara König Modellierung 103

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Darstellung

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Eine andere Definition stellt die Verbindungen zwischen Stellen

und Transitionen und die dazugehörigen Gewichte als Graph dar:

F ⊆ (S ∪ T ) × (N0\{0}) × (S ∪ T ) (Flussrelation),

wobei nur Kanten der Form (s, n, t) (von Stelle zu Transition) und

(t, n, s) (von Transition zu Stelle) mit s ∈ S, t ∈ T erlaubt sind.

Zusammenhang zur eingeführten Notation:

(s, n, t) ∈ F ⇐⇒ • t(s) = n �= 0

(t, n, s) ∈ F ⇐⇒ t • (s) = n �= 0

Manchmal werden auch unbeschriftete Kante eingeführt, denen

dann mit Hilfe einer Funktion W ein Gewicht zugeordnet wird.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Darstellung

t2

Barbara König Modellierung 102

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Wir betrachten den Zusammenhang zwischen der mathematischen

Notation und der graphischen Darstellung genauer:

s1

t1

s3

2

s2

t3

Stellenordnung: s1, s2, s3

S = {s1, s2, s3}

T = {t1, t2, t3}

• t1(s1) = 1

• t1(s2) = 1

• t1(s3) = 0

t1 • (s1) = 0 t1 • (s2) = 0 t1 • (s3) = 2

oder: • t1 = (1, 1, 0) t1 • = (0, 0, 2)

. . .

m0(s1) = 1 m0(s2) = 2 m0(s3) = 0

oder: m0 = (1, 2, 0)

Barbara König Modellierung 104


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Darstellung

t2

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Wir betrachten den Zusammenhang zwischen der mathematischen

Notation und der graphischen Darstellung genauer:

s1

t1

s3

2

s2

t3

Stellenordnung: s1, s2, s3

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Dynamik

Addition

Alternative Darstellung (mit Flussrelation):

S = {s1, s2, s3}

T = {t1, t2, t3}

F = {(s1, 1, t1), (s2, 1, t1), (t1, 2, s3),

m0 = (1, 2, 0)

(s3, 1, t2), (t2, 1, s1),

(s3, 1, t3), (t3, 1, s2)}

Barbara König Modellierung 104

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Wir definieren m ′′ = m ⊕ m ′ , wobei m ′′ : S → N0 mit

m ′′ (s) = m(s) + m ′ (s) für alle s ∈ S.

Subtraktion

Wir definieren m ′′ = m ⊖ m ′ , wobei m ′′ : S → N0 mit

m ′′ (s) = m(s) − m ′ (s) für alle s ∈ S. Dabei gilt n − k = 0, falls

n, k ∈ N0, n < k (modifizierte Subtraktion).

Barbara König Modellierung 106

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Dynamik

Relationen und Operationen auf Markierungen:

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Seien m, m ′ : S → N0 zwei Markierungen, d.h. Abbildungen von

Stellen auf natürliche Zahlen.

Ordnung

Es gilt m ≤ m ′ , falls für alle s ∈ S gilt: m(s) ≤ m ′ (s).

In diesem Fall sagt man, dass m durch m ′ überdeckt wird.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Dynamik

Weitere Definitionen:

Aktivierung

Barbara König Modellierung 105

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Eine Transition t ist unter einer Markierung m aktiviert, falls

• t ≤ m gilt. (D.h., falls genug Marken vorhanden sind, um die

Transition zu schalten.)

Schalten

Sei m eine Markierung und t eine Transition, die für m aktiviert

ist. Dann kann t schalten, was zu der Nachfolgemarkierung

m ′ = m ⊖ • t ⊕ t • führt. Symbolisch m[t〉m ′ .

Barbara König Modellierung 107


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Dynamik

Weitere Definitionen:

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Erreichbarkeit

Eine Markierung m heißt erreichbar in einem Netz, falls es eine

Folge von Transitionen t1, . . . , tn gibt mit m0[t1〉m1 . . . mn−1[tn〉m,

wobei m0 die Anfangsmarkierung ist.

In diesem Fall schreibt man auch m0[t1 . . . tn〉m oder m0[˜t〉m mit

˜t = t1 . . . tn.

Die Sequenz ˜t heißt auch Schaltfolge. Auch die leere Schaltfolge

˜t = ε is möglich. In diesem Fall ändert sich die Markierung nicht

(m[ε〉m, für jede Markierung m).

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Dynamik

Zustandsübergangsdiagramm eines Petrinetzes

Barbara König Modellierung 108

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Sei N = (S, T , • (), () • , m0) ein Petrinetz. Dann besteht das zu N

gehörende Zustandsübergangsdiagramm aus folgenden

Komponenten:

Menge der Beschriftungen L: Menge aller Transitionen

Zustandsmenge Z: Menge aller erreichbaren Markierungen

Übergangsmenge U: (m, t, m ′ ) ∈ U ⇐⇒ m[t〉m ′ .

Startzustand z0: die Anfangsmarkierung m0

Das Zustandsübergangsdiagramm eines Petrinetzes heißt auch

Erreichbarkeitsgraph.

Barbara König Modellierung 110

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Dynamik

t2

s1

t1

s3

2

s2

t3

Es gilt also: m0[t1〉m1[t2〉m2

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Dynamik

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Die Markierung m2 = (1, 1, 1) ist in

zwei Schritten erreichbar:

• t1 = (1, 1, 0) ≤ (1, 2, 0) = m0

m1 = m0 ⊖ • t1 ⊕ t1 • = (1, 2, 0) ⊖

(1, 1, 0) ⊕ (0, 0, 2) = (0, 1, 2)

• t2 = (0, 0, 1) ≤ (0, 1, 2) = m1

m2 = m1 ⊖ • t2 ⊕ t2 • = (0, 1, 2) ⊖

(0, 0, 1) ⊕ (1, 0, 0) = (1, 1, 1)

Barbara König Modellierung 109

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Beispiel: Bestimme den Erreichbarkeitsgraph für das folgende

Beispielnetz

t2

s1

t1

s3

2

s2

t3

Barbara König Modellierung 111


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Dynamik

Erreichbarkeitsgraph für das Beispielnetz:

t3

��

��

(1, 2, 0)

��

t1

��

(0, 1, 2) t3 ��

��

���

��t2


t3

t2

(0, 2, 1) t3 ��

t1

��

(0, 0, 3)

t2

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

(0, 3, 0)

���

��

(1, 1, 1) t2 ��

��

(2, 1, 0)

�����������

t3

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Dynamik

t1

��

��

(1, 0, 2)

t2

��

t3

(2, 0, 1) t2

��

(3, 0, 0)

Barbara König Modellierung 112

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Beispiel: Umwandlung eines Zustandsübergangsdiagramms in ein

Petrinetz

d

a

c

e b

a

d e

Bemerkung: Die Konstruktion funktioniert immer dann, wenn jede

Beschriftung im Zustandsübergangsdiagramm höchstens einmal

vorkommt.

Barbara König Modellierung 114

c

b

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Dynamik

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Frage: Wie kann ein beliebiges Zustandsübergangsdiagramm in ein

Petrinetz umgewandelt werden, das als Erreichbarkeitsgraph wieder

das ursprüngliche Zustandsübergangsdiagramm besitzt?

Idee:

Zustände werden zu Stellen

Übergänge werden zu Transitionen

die Stelle, die den Anfangszustand darstellt, ist als einzige zu

Beginn markiert

Aber:

das entstandene Petrinetz enthält keinerlei Nebenläufigkeit

bei der Umwandlung

Petrinetz → Zustandsübergangsdiagramm → Petrinetz

wird das zweite Petrinetz im allgemeinen viel größer als das

erste

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Beschränktheit

Sichere, beschränkte und unbeschränkte Netze

Sei N ein Petrinetz. Das Netz N heißt

Barbara König Modellierung 113

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

beschränkt, wenn es eine Konstante c ∈ N0 gibt, so dass für

jede erreichbare Markierung m und jede Stelle s gilt, dass

m(s) ≤ c.

sicher (oder auch 1-sicher), wenn

Für jede Transition t und für jede Stelle s gilt • t(s) ≤ 1

und t • (s) ≤ 1, d.h., alle Gewichte sind höchstens 1 und

für jede erreichbare Markierung m und jede Stelle s gilt,

dass m(s) ≤ 1.

unbeschränkt, falls es für jede Konstante c ∈ N0 eine

erreichbare Markierung m und eine Stelle s gibt mit m(s) > c.

Aufgabe: Finde ein Beispiel für ein unbeschränktes Netz.

Barbara König Modellierung 115


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetz-Beispiel: Keksautomat

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Wir modellieren einen Keksautomaten mit folgenden Bestandteilen:

extern: Einwurfschlitz, Entnahmefach

intern: Keksspeicher, Kasse, Signalweiterleitung (der Einwurf

einer Münze soll ein Signal erzeugen, das die Ausgabe eines

Kekses triggert)

Nach: “Petrinetze – Modellierungstechnik, Analysemethoden,

Fallstudien” von W. Reisig

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetz-Beispiel: Keksautomat

Ist der Keksautomat so in Ordnung?

Barbara König Modellierung 116

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Problem: Sobald der Keksspeicher leer ist, kann immer noch eine

Münze eingeworfen werden, die dann nicht zurückgegeben wird.

Es gibt verschiedene Lösungen für dieses Problem: Rückgabe der

Münze, Keks-Zähler, . . .

Barbara König Modellierung 118

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetz-Beispiel: Keksautomat

Münze einwerfen

Keksspeicher

Einwurfschlitz Signal

Einwurf möglich kein Signal

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Kasse

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Entnahmefach

Schachtel entnehmen

Barbara König Modellierung 117

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Lebendigkeit und Verklemmungen

Wir betrachten nun Begriffe wie Lebendigkeit und Deadlock (=

Verklemmung).

(Starke) Lebendigkeit

Ein Petrinetz N heißt (stark) lebendig, wenn es für jede Transition

t und für jede erreichbare Markierung m eine Markierung m ′ gibt,

die von m erreichbar ist und unter der t aktiviert ist.

Für den Erreichbarkeitsgraph bedeutet dies: von jedem Knoten des

Graphen aus ist ein Übergang erreichbar, der mit der Transition t

beschriftet ist.

Barbara König Modellierung 119


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Lebendigkeit und Verklemmungen

Schwache Lebendigkeit

Ein Petrinetz N heißt schwach lebendig, wenn es für jede Transition

t eine erreichbare Markierung m gibt, unter der t aktiviert ist.

Für den Erreichbarkeitsgraph bedeutet dies: für jede Transition gibt

es mindestens einen Übergang, der mit der Transition t beschriftet

ist.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 120

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Lebendigkeit und Verklemmungen

Eigenschaften der (starken) Lebendigkeit

Für Netze, deren Transitionsmenge nicht leer ist, gilt: jedes (stark)

lebendige Netz ist sowohl verklemmungsfrei, als auch schwach

lebendig.

Barbara König Modellierung 122

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Lebendigkeit und Verklemmungen

Verklemmung

Ein Petrinetz N enthält ein Deadlock oder eine Verklemmung,

wenn es eine erreichbare Markierung m gibt, unter der keine

Transition aktiviert ist.

Für den Erreichbarkeitsgraph bedeutet dies: es gibt einen Knoten,

von dem aus es keinen Übergang gibt.

Ein Netz, das keine Verklemmung enthält, heißt verklemmungsfrei.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 121

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Lebendigkeit und Verklemmungen

Beispiele für Lebendigkeit und Verklemmungen:

Ein Beispiel für ein (stark)

lebendiges Netz . . .

Barbara König Modellierung 123


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Lebendigkeit und Verklemmungen

Ein Beispiel für ein

schwach lebendiges und

verklemmungsfreies Netz,

das jedoch nicht (stark)

lebendig ist . . .

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 124

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Lebendigkeit und Verklemmungen

Ein Beispiel für ein

schwach lebendiges Netz,

das jedoch eine

Verklemmung enthält . . .

Barbara König Modellierung 126

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Lebendigkeit und Verklemmungen

Ein Beispiel für ein

verklemmungsfreies Netz,

das jedoch nicht schwach

lebendig ist . . .

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 125

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Lebendigkeit und Verklemmungen

Ein Beispiel für ein Netz,

das eine Verklemmung

enthält und das auch nicht

schwach lebendig ist . . .

Barbara König Modellierung 127


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Lebendigkeit und Verklemmungen

Überblick über die verschiedenen Netzklassen (unter der

Voraussetzung, dass jedes Netz mindestens eine Transition

enthält):

alle Petrinetze

stark

lebendige

Netze

schwach lebendige

Netze

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Überdeckbarkeitsgraph

Zugrundeliegende Ideen:

verklemmungsfreie

Netze

Barbara König Modellierung 128

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Das Verhalten von Petrinetzen ist “monoton”, d.h., jede

Schaltfolge ist auch dann noch möglich, wenn man zusätzliche

Marken hinzufügt.

Wenn im Erreichbarkeitsgraph zwei Markierungen m, m ′

existieren, so dass gilt:

m ist echt kleiner als m ′ (in Zeichen m < m ′ , d.h.,

m ≤ m ′ und m �= m ′ ) und

es gibt einen Pfad von m zu m ′ ,

dann kann man die Transitionsfolge von m zu m ′ noch einmal

schalten und erhält wiederum eine größere Markierung m ′′ .

Barbara König Modellierung 130

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Überdeckbarkeitsgraph

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Beobachtung: Ein Petrinetz ist unbeschränkt genau dann, wenn

sein Erreichbarkeitsgraph unendlich groß ist.

Gibt es in diesem Fall trotzdem noch eine graphische Darstellung,

die “in gewisser Weise” alle erreichbaren Markierungen

repräsentiert?

� Überdeckbarkeitsgraph

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Überdeckbarkeitsgraph

Konstruktion des Überdeckbarkeitsgraphen

Barbara König Modellierung 129

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Führe zunächst wie gewohnt die Konstruktion des

Erreichbarkeitsgraphen aus.

Sobald eine neue Markierung m ′ hinzugefügt wird, wobei es

eine Vorgängermarkierung m mit m < m ′ gibt . . .

m0

. . . ersetze m ′ durch eine (ω-)Markierung ˆm mit folgenden

Eigenschaften:

ˆm(s) = m ′ (s), falls m(s) = m ′ (s), und

ˆm(s) = ω, falls m(s) < m ′ (s), wobei s ∈ S.

Mache dann mit der Konstruktion weiter, solange bis keine

Markierungen mehr hinzugefügt werden können.

m

Barbara König Modellierung 131

m ′


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Überdeckbarkeitsgraph

Bemerkungen:

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Die neu erzeugten besonderen ω-Markierungen ordnen einer

Stelle “unendlich” viele Marken (repräsentiert durch ω).

Dies nimmt das wiederholte Schalten der Transitionsfolge von

m zu m ′ vorweg, die in den ω-Stellen beliebig viele Marken

produzieren kann.

Für ω-Markierungen gilt beim Schalten von Transitionen:

ω + k = ω und ω − k = ω. Außerdem gilt ω als größer als

jede natürliche Zahl.

Der englische Name für Überdeckbarkeitsgraphen ist coverability

graphs.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Überdeckbarkeitsgraph

Barbara König Modellierung 132

Eigenschaften des Überdeckbarkeitsgraphen (I)

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Die Konstruktion des Überdeckbarkeitsgraphen terminiert

immer nach endlich vielen Schritten.

ω-Markierungen treten genau dann auf, wenn das Netz

unbeschränkt ist. (D.h., der Überdeckbarkeitsgraph kann auch

dazu verwendet werden, um zu überprüfen, ob ein Netz

unbeschränkt ist.)

Barbara König Modellierung 134

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Überdeckbarkeitsgraph

Beispiel:

s1

t1

t2

Reihenfolge der Stellen:

s1, s2, s3

s2

s3

t3

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Überdeckbarkeitsgraph

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

��

(1, 0, 0)

t1

��

(0, 1, 0)

t2

��

(1, 0, ω)

��

t1

t2

��

(0, 1, ω)

t3 ��

t3 ��

(0, 0, 0)

(0, 0, ω)

Barbara König Modellierung 133

Eigenschaften des Überdeckbarkeitsgraphen (II)

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Sei N ein Netz und G der dazugehörige Überdeckbarkeitsgraph.

Dann gilt:

Für jede erreichbare Markierung m von N gibt es einen

Knoten m ′ in G, mit m ≤ m ′ .

Für jeden Knoten m ′ in G und jedes i ∈ N0 gibt es eine

erreichbare Markierung m in N, so dass für alle Stellen s gilt:

m(s) = m ′ (s), falls m ′ (s) �= ω

m(s) ≥ i, falls m ′ (s) = ω.

Frage: Ist für eine ω-Markierung m ′ in G vielleicht sogar jede

Markierung m von N mit m ≤ m ′ erreichbar?

Barbara König Modellierung 135


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Überdeckbarkeitsgraph

Nein! � Gegenbeispiel:

Reihenfolge der Stellen:

s1, s2

s1

t1

2

s2

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

��

(1, 0)

t1

��

(1, ω)

��

Die Markierung (1, 1) ist kleiner als (1, ω), ist aber in dem Netz

nicht erreichbar.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 136

t1

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Beispiel für Kausalität:

t1

t1 ist eine notwendige Bedingung für t4,

aber t2 ist keine notwendige Bedingung für t4. Denn nicht

jede Schaltfolge, die zu t4 führt, enthält t2 (z.B. ˜t = t1t3).

Das gleiche gilt für t3.

t2

t3

Barbara König Modellierung 138

t4

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Wichtige Begriffe bei Petrinetzen sind Nebenläufigkeit, Konflikt

und Kausalität. Wir beschäftigen uns damit etwas genauer.

Kausalität

In einem Petrinetz N ist die Transition t1 notwendige Bedingung

für das Schalten von t2 genau dann, wenn für alle Schaltfolgen ˜t

gilt:

falls m0[˜tt2〉m für eine Markierung m, dann enthält ˜t die

Transition t1.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 137

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Eigenschaften der Kausalität

Wenn t1 eine notwendige Bedingung für t2 ist, und t2 eine

notwendige Bedingung für t3 ist, dann ist t1 eine notwendige

Bedingung für t3. (Transitivität)

Barbara König Modellierung 139


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Nebenläufigkeit

Eine Menge T ′ = {t1, . . . , tn} ⊆ T von Transitionen heißt

nebenläufig (aktiviert) unter der Markierung m, wenn

• t1 ⊕ · · · ⊕ • tn ≤ m.

D.h., die Markierung m enthält genug Marken, um alle

Transitionen “gleichzeitig” zu feuern.

Eigenschaften der Nebenläufigkeit

Wenn die Transitions-Menge T ′ unter der Markierung m

nebenläufig ist, so ist auch jede Teilmenge von T ′ unter m

nebenläufig.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 140

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

t1

t2

t3

Die Menge T ′ = {t1, t2, t3}

ist nebenläufig unter der

Anfangsmarkierung.

Barbara König Modellierung 142

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Beispiele für Nebenläufigkeit:

t1

Die Menge {t2, t3} ist nebenläufig unter der Anfangsmarkierung.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

t2

t3

Barbara König Modellierung 141

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

t1

t2

t3

t4

Die Mengen {t1, t2} {t2, t3}

und {t1, t3} sind alle

nebenläufig unter der

Anfangsmarkierung. Dies gilt

jedoch nicht für {t1, t2, t3}.

Barbara König Modellierung 143


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

t1

t2

t3

Die Mengen {t1, t3} und

{t2, t3} sind alle nebenläufig

unter der Anfangsmarkierung.

Dies gilt jedoch nicht für die

Mengen {t1, t2} und

{t1, t2, t3}.

Dieses Beispiel zeigt auch, dass Nebenläufigkeit nicht transitiv ist:

t1 ist nebenläufig zu t3, t3 ist nebenläufig zu t2, jedoch sind t1 und

t2 nicht nebenläufig.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 144

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Nebenläufige Transitionen führen daher in Erreichbarkeitsgraphen

zu Strukturen, die die Form eines Quadrats (Diamond) oder

(höherdimensionalen) Würfels haben.

Beispiel für ein Quadrat:

s1 s2 (1, 1)

t1

t2

t2

��

(1, 0)

t1 ��

(0, 1)

t2

��

t1 ��

(0, 0)

Barbara König Modellierung 146

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Nebenläufigkeit (Konsequenzen)

Wenn eine Menge T ′ von Transitionen nebenläufig unter einer

Markierung m ist, so ist jede beliebige Anordnung dieser

Transitionen eine Schaltfolge ausgehend von m.

Das heißt, für jede Sequenz ˜t, in der jede Transitionen aus T ′

genau einmal vorkommt, gibt es eine Markierung m ′ mit m[˜t〉m ′ .

Die Markierung m ′ ist durch T ′ eindeutig bestimmt.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 145

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

s1

t1

Beispiel für einen Würfel:

s2

t2

s3

t3

t1

(1, 1, 1)

��

(0, 1, 1)

��












t3 �

t2 �


t3 �

��

���

t1

t2 (1, 1, 0)

��

(0, 1, 0)

t2

��

��

t1

(1, 0, 1)

��

(0, 0, 1)

t2

��












t3 �



t3 �

��

��

���

��

t1

(1, 0, 0)

��

(0, 0, 0)

Barbara König Modellierung 147


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Frage: Wenn jede Anordnung von Transitionen in T ′ eine

Schaltfolge darstellt, ist dann T ′ automatisch nebenläufig (unter

einer Markierung m)?

Nein! � Gegenbeispiel:

t1

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

t2

Barbara König Modellierung 148

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Konflikt

Zwei Transitionen t, t ′ ∈ T stehen unter der Markierung m in

Konflikt genau dann wenn:

t und t ′ sind beide unter m aktiviert und

die Menge {t, t ′ } ist unter m nicht nebenläufig.

Anschaulich: nur eine der beiden Transitionen kann schalten.

Das liegt immer daran, dass sie eine gemeinsame Stelle in den

Vorbedingungen haben. D.h., es gibt eine Stelle s mit • t(s) ≥ 1

und • t ′ (s) ≥ 1.

Barbara König Modellierung 150

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Schlinge

Ein Schlinge (oder Schleife) in einem Netz N besteht aus einer

Transition t und einer Stelle s mit • t(s) > 0 und t • (s) > 0.

Graphisch:

n

t s

Für schlingenfreie Netze gilt:

m

Sei N ein schlingenfreies Netz, sei m eine Markierung und T ′ eine

Menge von Transitionen, so dass jede Anordnung der Transitionen

in T ′ von m aus schaltbar ist. Dann ist T ′ nebenläufig.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 149

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Beispiel für einen Konflikt:

t1 t2 t3

Unter der Anfangsmarkierung steht t1 in Konflikt mit t2.

Außerdem steht t2 in Konflikt mit t3.

Jedoch steht t1 nicht in Konflikt mit t3 (keine Transitivität der

Konfliktrelation).

Barbara König Modellierung 151


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Bemerkung: auf bestimmten Arten von azyklischen Netzen

(sogenannte Occurrence-Netze) kann man Begriffe wie Kausalität,

Nebenläufigkeit und Konflikt noch klarer herausarbeiten.

Zwei Transitionen sind in solchen Netzen immer entweder kausal

abhängig, nebenläufig oder in Konflikt, unabhängig von der

Markierung.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Barbara König Modellierung 152

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Bemerkungen:

Eine m×n-Matrix besteht also aus m Zeilen der Länge n, oder

anders ausgedrückt – aus n Spalten der Länge m.

Dabei heißt m Zeilendimension und n Spaltendimension der Matrix.

Eine Matrix, für die m = n gilt, heißt quadratisch. Die Matrizen,

die wir im folgenden betrachten werden, sind nicht

notwendigerweise quadratisch.

Barbara König Modellierung 154

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Kurze Einführung in Matrizen und Vektorrechnung:

Matrix

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Seien m, n ∈ N0. Eine m×n-Matrix C (über den ganzen Zahlen Z)

besteht aus m · n Einträgen

Ci,j ∈ Z für i ∈ {1, . . . , m}, j ∈ {1, . . . , n}

Sie wird folgendermaßen dargestellt:


C1,1


C =

.

⎝ .

. . .

. ..


C1,n

.


. ⎠

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Spaltenvektor

Cm,1 . . . Cm,n

Barbara König Modellierung 153

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Ein Spaltenvektor (oder Vektor) �u der Dimension n ist eine

n×1-Matrix, d.h., er hat folgendes Aussehen.

⎛ ⎞

�u =



Wir betrachten im folgenden immer Spaltenvektoren mit Einträgen

aus Z.

u1

.

un



Barbara König Modellierung 155


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Bemerkungen:

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Gegeben sei eine Markierung m = (m(s1), . . . , m(sn)). Dann

entspricht dieser Markierung der Spaltenvektor

⎛ ⎞

m(s1)


�m =

.

⎝ .


. ⎠

m(sn)

Spaltenvektoren kann man – wie Markierungen – addieren.

Dabei werden die Komponenten paarweise addiert:

⎛ ⎞ ⎛ ⎞ ⎛ ⎞



u1

.

un


⎠ +



Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

v1

.

vn


⎠ =



u1 + v1

.

un + vn



Barbara König Modellierung 156

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Zeilenvektor

Ein Zeilenvektor u der Dimension n ist eine 1×n-Matrix, d.h., er

hat folgendes Aussehen.

u = � �

u1 . . . un

Wir betrachten im folgenden immer Zeilenvektoren mit Einträgen

aus Z.

Barbara König Modellierung 158

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Matrizen können miteinander mulipliziert werden. Wir betrachten

zunächst die Multiplikation einer Matrix mit einem Spaltenvektor.

Multiplikation einer Matrix mit einem Spaltenvektor

Sei C eine m×n-Matrix und �u ein Spaltenvektor der Dimension n.

Dann ist C · �u folgender Spaltenvektor:


⎞ ⎛ ⎞

C·�u =



C1,1 . . . C1,n

. .

.

..

.

⎟ ⎜

. ⎠· ⎝

Cm,1 . . . Cm,n

u1

.

un


⎠ =



C1,1 · u1 + · · · + C1,n · un

. . .

Cm,1 · u1 + · · · + Cm,n · un

Das heißt, in der i-ten Zeile des Spaltenvektors steht der Eintrag

� n

j=1 Ci,j · uj.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Barbara König Modellierung 157



Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Zeilenvektoren und Tupel:

Im folgenden werden wir Zeilenvektoren im wesentlichen mit

n-Tupeln gleichsetzen. Eine Markierung m = (m(s1), . . . , m(sn)),

d.h., ein Tupel aus Nn 0 schreiben wir auch als folgenden

Zeilenvektor:

m = � m(s1) . . . m(sn) �

Barbara König Modellierung 159


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Multiplikation einer Matrix mit einem Zeilenvektor

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Sei C eine m×n-Matrix und u ein Zeilenvektor der Dimension m.

Dann ist u · C folgender Zeilenvektor der Dimension n:



u · C = � � ⎜

u1 . . . um · ⎝

C1,1 . . . C1,n

. .

.

..

.


. ⎠

Cm,1 . . . Cm,n

= � �

u1 · C1,1 + · · · + um · Cm,1 . . . u1 · C1,n + · · · + um · Cm,n

Das heißt, in der j-ten Spalte des Zeilenvektors steht der Eintrag

� n

i=1 ui · Ci,j.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Barbara König Modellierung 160

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Wir betrachten nun die Inzidenzmatrix (oder einfach Matrix) eines

Petrinetzes.

Sei S = {s1, . . . , sm} die Stellenmenge, T = {t1, . . . , tn} die

Transitionsmenge des Petrinetzes N.

Die Inzidenzmatrix C von N ist eine m × n-Matrix mit Einträgen

der Form:

Ci,j = tj • (si) − • tj(si) ∈ Z

Dabei handelt es sich um die herkömmliche Subtraktion (nicht die

modifizierte) und das Ergebnis liegt in den ganzen Zahlen.

Der Eintrag Ci,j gibt an, wie sich die Anzahl der Marken in Stelle

si ändert, wenn die Transition tj geschaltet wird.

Barbara König Modellierung 162

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Merkregel:

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Die Multiplikation einer m×n-Matrix mit einer n×1-Matrix

(Spaltenvektor der Dimension n) ergibt eine m×1-Matrix

(Spaltenvektor der Dimension m).

Die Multiplikation einer einer 1×m-Matrix (Zeilenvektor der

Dimension m) mit einer m×n-Matrix ergibt eine 1×n-Matrix

(Zeilenvektor der Dimension n).

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Beispiel für eine Matrix:

t2

s1

t1

s3

2

s2

t3

Barbara König Modellierung 161

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Berechnung der Matrix-Einträge:

t1 t2 t3

s1 C1,1 = 0 − 1 C1,2 = 1 − 0 C1,3 = 0 − 0

s2 C2,1 = 0 − 1 C2,2 = 0 − 0 C2,3 = 1 − 0

s3 C3,1 = 2 − 0 C3,2 = 0 − 1 C3,3 = 0 − 1

Resultierende Matrix:


−1 1


0

C = ⎝−1

0 1 ⎠

2 −1 −1

Barbara König Modellierung 163


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

t1

s1

s3

s2

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Die beiden Netze sind verschieden, haben aber dieselbe

Inzidenzmatrix:

⎛ ⎞

−1

C = ⎝ 0 ⎠

1

Dieses Phänomen kann nicht auftreten, wenn wir nur schlingenfreie

Netze betrachten.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Sei

t1

Barbara König Modellierung 164

�u =




s1

s3

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

der sogenannte Schaltvektor, der angibt, wie oft jede Transition

geschalten werden soll.

Schaltvektor für das Beispielnetz: t1 und t2 werden zweimal

geschalten, t3 einmal (dieser Schaltvektor ist von der

Anfangsmarkierung aus realisierbar, z.B. durch die Schaltfolge

t1t2t3t1t2).

⎛ ⎞

2


2 · (−1) + 2 · 1 + 1 · 0

⎞ ⎛

0

�u = ⎝2⎠

C · �u = ⎝ 2 · (−1) + 2 · 0 + 1 · 1 ⎠ = ⎝−1

1

2 · 2 + 2 · (−1) + 1 · (−1) 1

u1

.

un




Barbara König Modellierung 166

s2



Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Angenommen, es gibt eine Schaltfolge, bei der die Transition tj

uj-mal geschaltet wird (uj ∈ N0). Wie kann man die dadurch

verursachte Änderung der Markierung mit Hilfe der Inzidenzmatrix

bestimmen?

Man multipliziert die Spalte j, die für die Transition tj steht,

mit uj.

Damit erhält man den Effekt des uj-maligen Schaltens von tj

für jede einzelne Stelle.

Man addiert alle Werte der Zeile i, die für die Stelle si steht,

auf.

Damit erhält man den Effekt des Schaltens aller Transitionen

für eine einzelne Stelle.

� Multiplikation der Matrix mit einem Vektor!

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Barbara König Modellierung 165

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

D.h., die Schaltfolge hat den Effekt, die Anzahl der Marken in

Stelle s1 gleichzulassen, in s2 um eins zu verringern und in s3 um

eins zu erhöhen.

Wenn wir diese Änderung zu dem Spaltenvektor addieren, der der

Anfangsmarkierung entspricht, ergibt sich:

⎛ ⎞

1

⎛ ⎞

0

⎛ ⎞

1

�m0 + C · �u = ⎝2⎠

+ ⎝−1⎠

= ⎝1⎠

0 1 1

Barbara König Modellierung 167


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Markierungsgleichung

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Für jede erreichbare Markierung m gibt es einen Schaltvektor �u mit

�m = �m0 + C · �u

Das heißt, jede erreichbare Markierung kann in obiger Form

dargestellt werden.

Aber: nicht jede Markierung, die so dargestellt werden kann, ist

auch erreichbar.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

t1

s1

s3

t2

s2

Barbara König Modellierung 168

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten


−1


0

C = ⎝−1

1 ⎠

1 −1

⎛ ⎞ ⎛

1 −1

⎝0⎠+

⎝−1

0 1

⎞ ⎛ ⎞

0 � � 0

1 ⎠·

1

= ⎝0⎠

1

−1

0

Diese Markierung ist jedoch

nicht erreichbar, da die

Schaltfolgen t1t2 und t2t1

beide nicht möglich sind.

Barbara König Modellierung 170

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

t1

s1

s3

s2

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

⎛ ⎞

1

⎛ ⎞

−1

C = ⎝ 0 ⎠

1

⎛ ⎞

−1

⎛ ⎞

0

⎝0⎠

+ ⎝ 0 ⎠ · (1) = ⎝0⎠

0 1

1

Diese Markierung ist jedoch

nicht erreichbar, da t1 nicht

aktiviert ist.

Barbara König Modellierung 169

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Die Markierungsgleichung kann also nicht dazu genutzt werden,

um zu zeigen, dass eine bestimmte Markierung erreichbar ist.

Aber: man kann damit manchmal zeigen, dass eine Markierung

nicht erreichbar ist.

Beispiel: Ist in folgendem Netz die Markierung m = (2, 2, 0)

erreichbar?

t2

s1

t1

s3

2

s2

t3

Wir überprüfen, ob die Gleichung

⎛ ⎞

2

⎛ ⎞

1


−1 1

⎞ ⎛

0

⎝2⎠

= ⎝2⎠+

⎝−1

0 1 ⎠· ⎝

0 0 2 −1 −1

eine Lösung in den natürlichen

Zahlen hat.

Barbara König Modellierung 171

u1

u2

u3



Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

� Lösen eines Gleichungssystems

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Hier sieht man leicht durch Addition aller Gleichungen, dass das

Gleichungssystem keine Lösung hat.

2 = 1 −u1 +u2

2 = 2 −u1 +u3

0 = 2u1 −u2 −u3

4 = 3 Widerspruch!

Das heißt, die Markierung m = (2, 2, 0) ist nicht erreichbar.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Barbara König Modellierung 172

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Aufgabe: Stelle die Markierungsgleichung für folgendes

(unbeschränkte) Netz auf.

s2

2

s1

t1

s3

Kann man mit Hilfe der Markierungsgleichung überprüfen,

dass die Markierung (1, 20, 0) nicht erreichbar ist?

Kann das gleiche Ergebnis auch mit dem

Überdeckbarkeitsgraph erzielt werden?

t2

Barbara König Modellierung 174

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Achtung: Als Lösungen des Gleichungssystem interessieren uns hier

Lösungen in den in den natürlichen Zahlen.

Daher ist das zum Lösen von Gleichungssystemen üblicherweise

verwendete Gaußsche Eliminationsverfahren nur begrenzt

einsetzbar. In manchen Fällen muss es noch durch andere

Techniken (z.B. Lösungsverfahren für diophantische Gleichungen)

erweitert werden.

In unserem Fall werden wir die Beispiele jedoch immer so wählen,

dass die entstehenden Gleichungssysteme einfach zu lösen sind.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Barbara König Modellierung 173

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Wir kommen nun zu einer weiteren Verwendung von

Inzidenzmatrizen: sogenannte T- und S-Invarianten.

T-Invariante

Gegeben sei ein Netz N und seine m×n-Inzidenzmatrix C. Ein

Spaltenvektor �u der Dimension n heißt T-Invariante, falls

C · �u = �0

Dabei ist �0 ein Spaltenvektor, der nur Einträge der Form 0 hat.

Bedeutung: eine T-Invariante beschreibt mögliche Schaltfolgen, die

eine Markierung unverändert lassen. Im Erreichbarkeitsgraph ergibt

sich dann ein Kreis.

Barbara König Modellierung 175


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Bemerkung zu T-Invarianten:

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Wie bei der Markierungsgleichung müssen solche Schaltfolgen

nicht notwendigerweise realisierbar sein.

Wenn es einen Kreis im Erreichbarkeitsgraphen gibt, so

entspricht dieser aber auf jeden Fall einer T-Invariante.

Wie bei der Markierungsgleichung interessieren uns hier nur

T -Invarianten mit Einträgen aus N0.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Barbara König Modellierung 176

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

S-Invariante

Gegeben sei ein Netz N und seine m×n-Inzidenzmatrix C. Ein

Zeilenvektor v der Dimension m heißt S-Invariante, falls

v · C = � 0 . . . 0 �

Barbara König Modellierung 178

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Aufgabe: Bestimme die T-Invarianten des folgenden Netzes:

t2

Welche Bedeutung haben die T-Invarianten für den

Erreichbarkeitsgraph?

Erreichbarkeitsgraph

s1

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

t1

s3

2

s2

t3

Barbara König Modellierung 177

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Bedeutung: sei �m eine erreichbare Markierung. Dann gilt nach der

Markierungsgleichung, dass es einen Schaltvektor �u gibt mit:

�m = �m0 + C · �u

Wenn man die Gleichung auf beiden Seiten von links mit v

multipliziert, so erhält man:

v · �m = v · �m0 + v · C · �u = v · �m0 + 0 = v · �m0

Also gilt v · �m = v · �m0 für jede S-Invariante v und für jede

erreichbare Markierung m.

Eine Markierung, die diese Gleichung nicht erfüllt, kann daher

nicht erreichbar sein!

Barbara König Modellierung 179


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Aufgabe: Bestimme die S-Invarianten des folgenden Netzes:

t2

s1

Kann man mit Hilfe der S-Invarianten überprüfen, ob die

Markierung (2, 2, 0) erreichbar ist?

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

t1

s3

2

s2

t3

Barbara König Modellierung 180

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Für eine allgemeine Markierung m = (m1, m2, m3) des

Beispielnetzes gilt also:

v · �m = m1 + m2 + m3 = 3 = v · �m0

Die Gleichung besagt, dass die Summe der Marken in den drei

Stellen konstant bzw. invariant ist und immer drei beträgt.

Im allgemeinen haben Invarianten die Form

v1 · m1 + · · · + vm · mm = k,

wobei v1, . . . , vm, k ∈ Z Konstanten sind.

Barbara König Modellierung 182

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Löse die Gleichung � v1 v2



−1

v3 · ⎝−1

1

0


0

1 ⎠ =

2 −1 −1

� 0 0 0 � .

Es ergibt sich folgendes Gleichungssystem:

−v1 −v2 +2v3 = 0

v1 −v3 = 0

v2 −v3 = 0

Durch Vereinfachung erhalten wir v1 = v2 = v3, d.h., die Lösungen

sind genau die Zeilenvektoren, bei denen alle Einträge gleich sind.

Sie sind also alle von der Form

v = � �

v1 v1 v1 = v1 · � 1 1 1 �

All diese Vektoren ergeben äquivalente S-Invarianten, wir

betrachten daher nur die S-Invariante v = � 1 1 1 � .

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Barbara König Modellierung 181

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Für die spezielle Markierung m = (2, 2, 0) ergibt sich:

2 + 2 + 0 = 4 �= 3

D.h., diese Markierung ist in dem Netz auf jeden Fall nicht

erreichbar (ausgehend von der Anfangsmarkierung).

Barbara König Modellierung 183


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Bemerkungen:

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Bei der Lösung des Gleichungssystems zur Berechnung von

S-Invarianten sind prinzipiell auch Lösungen außerhalb der

natürlichen Zahlen (negative Zahlen, Brüche, etc.) interessant.

Da es sich jedoch um ein homogenes Gleichungssystem

handelt (auf der rechten Seite steht der Nullvektor), kann

man durch Multiplikation mit dem Hauptnenner (kleinstes

gemeinsames Vielfaches der Nenner) zumindest immer eine

Darstellung aller Lösungen als Vielfaches von ganzzahligen

Vektoren erhalten.

Es gibt im allgemeinen unendlich viele S-Invarianten:

insbesondere sind alle Vielfache einer S-Invariante wieder

S-Invariante. Diese Vielfachen liefern jedoch keine zusätzlichen

Informationen über das Netz.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Löse die Gleichung � �

v1 v2 ·

Barbara König Modellierung 184

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

� �

−2

=

3

� 0 0 � .

Es ergibt sich folgendes Gleichungssystem:

−2v1 +3v2 = 0

· v2.

D.h., die Lösungen sind von der Form v = v2 · � 3

2 1 �

Wenn man nur Lösungen in den ganzen Zahlen betrachten will, so

multipliziert man mit dem Hauptnenner 2 und erhält:

Durch Vereinfachung erhalten wir v1 = 3

2

v = ℓ · � 3 2 � , für ℓ ∈ Z.

Im folgenden betrachten wir nur die S-Invariante, die man erhält,

wenn man ℓ = 1 setzt.

Barbara König Modellierung 186

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Aufgabe: Bestimme die S-Invarianten des folgenden Netzes:

Kann man mit Hilfe der S-Invarianten überprüfen, ob die

Markierung (0, 5) erreichbar ist?

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

s1

t1

s2

2

3

Barbara König Modellierung 185

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Für eine erreichbare Markierung m = (m1, m2) des Beispielnetzes

gilt also:

v · �m = 3 · m1 + 2 · m2 = 12 = v · �m0

Für die spezielle Markierung m = (0, 5) erhalten wir:

v · �m = 3 · 0 + 2 · 5 = 10 �= 12

und damit ist diese Markierung nicht erreichbar.

Barbara König Modellierung 187


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Aufgabe: Bestimme die S-Invarianten des folgenden Netzes:

t1

s1

s3

Kann man mit Hilfe der S-Invarianten überprüfen, ob die

Markierung (0, 0, 1, 1, 1) erreichbar ist?

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

t2

s2

t4

t3

s4

s5

Barbara König Modellierung 188

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Aufgabe: Wir hatten mit Hilfe der Markierungsgleichung gezeigt,

dass die Markierung (1, 20, 0) in folgendem Netz nicht erreichbar

ist.

s2

2

s1

t1

Kann man das gleiche Ergebnis auch mit Hilfe von S-Invarianten

erzielen?

s3

t2

Barbara König Modellierung 190

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Aufgabe: Mit Hilfe des folgenden Beispiels soll gezeigt werden,

dass Invarianten auch für unbeschränkte Netze sehr nützlich sein

können. Bestimmen Sie dazu die S-Invarianten des folgenden

Netzes:

2

s2

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Bemerkungen:

s1

t1

s3

Barbara König Modellierung 189

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Für beschränkte Netze sind folgende Techniken zum Testen der

Nicht-Erreichbarkeit geeignet. Sie werden der Reihe nach

aufwändiger und exakter:

1 S-Invarianten

2 Markierungsgleichung

3 Erreichbarkeitsgraph

(exakt, kann auch zur Überprüfung der Erreichbarkeit

verwendet werden).

Barbara König Modellierung 191


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Bemerkungen:

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Auch für unbeschränkte Netze ist die Markierungsgleichung

aufwändiger und exakter als S-Invarianten.

Der Überdeckbarkeitsgraph ist jedoch, im Gegensatz zum

Erreichbarkeitsgraph, keine exakte Technik und erlaubt nur

begrenzt Aussagen über die Erreichbarkeit von Markierungen.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Barbara König Modellierung 192

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Dieses Verfahren ist jedoch extrem aufwändig und in der

Praxis derzeit nicht einsetzbar.

Die obige Aussage bedeutet jedoch auch, dass Petrinetze

nicht zu den mächtigsten Berechnungsmodellen gehören. Es

gibt nämlich Berechnungsmodelle, für die das

Erreichbarkeitsproblem nicht entscheidbar ist.

Anders ausgedrückt: Petrinetze sind nicht Turing-mächtig (�

Vorlesung “Berechenbarkeit und Komplexität”).

Das liegt vor allem daran, dass Petrinetze keine Nulltests

folgender Form erlauben: “Die Transition t kann nur feuern,

wenn in der Stelle s keine Marken liegen.”

Barbara König Modellierung 194

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Invarianten

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Für unbeschränkte Petrinetze haben wir also bisher nur

approximative, unvollständige Methoden für das

Erreichbarkeitsproblem. Es gilt jedoch:

Entscheidbarkeit des Erreichbarkeitsproblems

Es gibt ein Verfahren, das für ein gegebenes (unbeschränktes) Netz

N und eine Markierung m entscheidet, ob m in N erreichbar ist.

(Mayr, 1984)

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 193

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Fallstudien (Wechselseitiger Ausschluss)

Wir betrachten nun noch einige größere Fallstudien . . .

Zunächst behandeln wir das Konzept des wechselseitigen

Ausschlusses (engl. mutual exclusion oder mutex).

Wir betrachten zwei Akteure, die jeweils einen kritischen

Bereich haben.

Beide Akteure dürfen nicht gleichzeitig in ihren kritischen

Bereich kommen, da sie sich dort gegenseitig behindern und

unerwünschtes Verhalten auslösen würden (z.B. indem beide

Akteure in dieselbe Datei schreiben).

Es darf sich also immer höchstens ein Akteur im kritischen

Bereich befinden.

Barbara König Modellierung 195


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Fallstudien (Wechselseitiger Ausschluss)

Ursprüngliches System:

NK 1

k1

nk1

K1

kritischer Bereich

K2

k2

nk2

NK 2

Bedeutung der Stellen: K1 (krit. Bereich Akteur 1), NK 1

(nicht-krit. Bereich Akteur 1), K2 (krit. Bereich Akteur 2), NK 2

(nicht-krit. Bereich Akteur 2)

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 196

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Fallstudien (Wechselseitiger Ausschluss)

Wir möchten zeigen, dass in den Stellen K1, K2 niemals

gleichzeitig Marken liegen.

Reihenfolge der Stellen: K1, NK 1, K2, NK 2, S

Reihenfolge der Transitionen: k1, nk1, k2, nk2

Inzidenzmatrix:


1 −1 0


0


⎜−1

C = ⎜ 0

⎝ 0

1

0

0

0

1

−1

0 ⎟

−1 ⎟

1 ⎠

−1 1 −1 1

Barbara König Modellierung 197

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Fallstudien (Wechselseitiger Ausschluss)

Erweitertes System mit Mechanismen zum wechselseitigen Ausschluss:

NK 1

k1

nk1

K1

S

K2

k2

nk2

NK 2

Bedeutung der Stellen: K1 (krit. Bereich Akteur 1), NK 1

(nicht-krit. Bereich Akteur 1), K2 (krit. Bereich Akteur 2), NK 2

(nicht-krit. Bereich Akteur 2), S (Hilfsstelle, sog. Semaphor)

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 196

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Fallstudien (Wechselseitiger Ausschluss)

Wir bestimmen die S-Invarianten, nach der Gleichung

v · C = � 0 . . . 0 �

Entstehendes Gleichungssystem:

v1 −v2 −v5 = 0

−v1 +v2 +v5 = 0

v3 −v4 −v5 = 0

−v3 +v4 +v5 = 0

Barbara König Modellierung 198


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Fallstudien (Wechselseitiger Ausschluss)

Vereinfacht ergibt sich:

v1 = v2 + v5

v3 = v4 + v5

Das heißt, die Lösungen haben genau die Form:


v2+v5 v2

= v2 ·


v4+v5 v4 v5

� 1 1 0 0 0 � + v4 · � 0 0 1 1 0 � + v5 · � 1 0 1 0 1 �

für v2, v4, v5 ∈ Z. Die drei Vektoren bilden eine Basis des

Lösungsraums.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 199

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Fallstudien (Speisende Philosophen)

Wir kommen nochmal auf die speisenden Philosophen zurück:

Diesmal sitzen nur zwei Philosophen an einem Tisch (damit

das Beispiel nicht zu groß wird).

Einer davon ist ein Linkshänder (und nimmt die linke Gabel

zuerst), der andere ein Rechtshänder (und nimmt die rechte

Gabel zuerst).

Barbara König Modellierung 201

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Fallstudien (Wechselseitiger Ausschluss)

Für uns ist vor allem der letzte Vektor interessant. Für jede

erreichbare Markierung m = (m1, m2, m3, m4, m5) muss gelten:

m1 + m3 + m5 = v · �m = v · �m0 = 1

Angenommen, in der Stelle K1 liegt mehr als eine Marke (m1 ≥ 1)

und in der Stelle K2 liegt mehr als eine Marke (m3 ≥ 1).

Dann gilt:

was ein Widerspruch ist.

2 ≤ m1 + m3 + m5 = 1,

Also liegt in den Stellen K1, K2 zusammen immer höchstens eine

Marke.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 200

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Fallstudien (Speisende Philosophen)

Petrinetz: links- und rechtshändige Philosophen

F1

W1

w1

w2

W2

e1

H1

H2

e2

E1

h1

h2

E2

F2

Reihenfolge der

Stellen:

F1, F2, H1, H2,

W1, W2, E1, E2

Reihenfolge der

Transitionen:

w1, e1, h1,

w2, e2, h2

Barbara König Modellierung 202


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Fallstudien (Speisende Philosophen)

Zu zeigen: in diesem Netz gibt es keine Verklemmung, bei der

beide Philosophen im Wartezustand sind.

D.h., folgende Markierung soll nicht erreichbar sein:

m = (0, 0, 0, 0, 1, 1, 0, 0)

Dazu betrachten wir die Inzidenzmatrix des Netzes:


−1 0 1 −1 0


1


0


−1


C = ⎜ 0

⎜ 1

⎜ 0

⎝ 0

−1

0

0

−1

0

1

1

1

0

0

0

−1

0

0

−1

0

1

0

−1

0

0

0

−1

0

1 ⎟

0 ⎟

1 ⎟

0 ⎟

0 ⎟

0 ⎠

0 0 0 0 1 −1

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Weitere Arten von Netzen

Barbara König Modellierung 203

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Wir betrachten zuletzt noch zwei weitere Arten von Netzen:

Netze mit Kapazitäten

Attributierte Netze

auch bekannt unter den Namen: Netze mit individuellen

Marken, Prädikat-Transitions-Netze, engl. coloured Petri nets

Barbara König Modellierung 205

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Petrinetze: Fallstudien (Speisende Philosophen)

Eine S-Invariante ist

Und es gilt:

v = � 1 0 0 0 1 1 1 1 �

v · �m0 = 1 v · �m = 2

Daraus folgt v · �m0 �= v · �m. Damit ist m nicht erreichbar und es

kann daher kein Deadlock dieser Form geben.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Weitere Arten von Netzen

Netze mit Kapazitäten

Barbara König Modellierung 204

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Ein Petrinetz mit Kapazitäten besteht aus einem (herkömmlichen)

Petrinetz N (mit Stellenmenge S) und einer Kapazitätsfunktion

k : S → N0. Für die Anfangsmarkierung m0 muss gelten: m0 ≤ k.

Intuition: die Stelle s darf höchstens k(s) Marken enthalten.

Kapazitäten werden neben die Stellen geschrieben.

Schalten von Transitionen bei Kapazitäten

Eine Transition t kann unter einer Markierung m schalten, wenn

gilt:

1 • t ≤ m

2 und m ⊖ • t ⊕ t • ≤ k.

D.h., eine Transition darf nur dann schalten, wenn dadurch die

Kapazitäten nicht überschritten werden.

Barbara König Modellierung 206


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Weitere Arten von Netzen

Beispielnetz mit Kapazitäten

Erreichbarkeitsgraph

s1

t1

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

s2

2 1

t1

��

(1, 1)

��

��

(2, 0)

t2

t2

t3 ��

t2

(1, 0)

��

��

(0, 1)

t1

t3

t3 ��

(0, 0)

Insbesondere: unter der Anfangsmarkierung (1, 1) ist die Transition

t1 nicht schaltbar.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Weitere Arten von Netzen

Barbara König Modellierung 207

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Mit dieser Konstruktion ist für jedes Paar s, s von Stellen

sichergestellt, dass

m(s) + m(s) = k(s) für jede erreichbare Markierung s;

eine Transition t nur schaltbar ist, wenn die Kapazität der

Stellen in der Nachbedingung noch nicht ausgeschöpft ist.

Das wird dadurch überprüfen, dass die benötigte Kapazität

über die Komplementstellen abgefragt wird.

Barbara König Modellierung 209

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Weitere Arten von Netzen

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Umwandlung eines Netzes mit Kapazitäten in ein Netz ohne

Kapazitäten

1 Füge zu jeder Stelle s eine sogenannte Komplementstelle s

hinzu. In der Anfangsmarkierung enthält s genau

k(s) − m0(s) Marken.

Idee: die Summe der Marken in der Stelle und der

Komplementstelle ergibt immer die Kapazität.

2 Falls eine Transition in der Summe Marken aus einer Stelle

herausnimmt (n = t • (s) − • t(s) < 0) füge eine Kante von t

nach s mit Gewicht −n ein.

3 Falls eine Transition in der Summe Marken in eine Stelle

hineinlegt (n = t • (s) − • t(s) > 0) füge eine Kante von s nach

t mit Gewicht n ein.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Weitere Arten von Netzen

Umgewandeltes Beispielnetz

Reihenfolge der Stellen: s1, s1, s2, s2

Erreichbarkeitsgraph

s1

s1

��

(1, 1, 1, 0)

��

t1

Barbara König Modellierung 208

t2

��

(2, 0, 0, 1)

t1

t2

t3 ��

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

s2

s2

(1, 1, 0, 1)

��

t2

t1

��

(0, 2, 1, 0)

t3

t3 ��

(0, 2, 0, 1)

Barbara König Modellierung 210


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Weitere Arten von Netzen

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Bei attributierten Netzen (oder coloured nets) haben die Marken

Farben. Die Transitionen geben an, Marken welcher Farbe

entnommen und erzeugt werden sollen.

Beispielsweise entnimmt folgende Transition eine blaue und eine

rote Marke und erzeugt zwei grüne Marken.

UML: Einführung

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

UML = Unified Modeling Language

Standard-Modellierungssprache für

Software Engineering.

Basiert auf objekt-orientierten

Konzepten.

Sehr umfangreich, enthält viele

verschiedene Typen von Modellen.

Entwickelt von Grady Booch,

James Rumbaugh, Ivar Jacobson

(1997).


Barbara König Modellierung 211

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Barbara König Modellierung 213

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petrinetze: Weitere Arten von Netzen

Grundlagen und Erreichbarkeitsgraphen

Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Inzidenzmatrizen und Invarianten

Farben können dabei auch Elemente eines bestimmten Datentyps

sein (z.B. Zahlen). Die Transitionen werden dabei symbolisch

annotiert und an den Transitionen können auch Bedingungen

stehen.

Beispielsweise hat folgendes Netz natürliche Zahlen als “Farben”.

Die Transition entnimmt der ersten Stelle eine natürliche Zahl x

und der zweiten Stelle eine Zahl y. In die Stelle der Nachbedingung

wird dann die Zahl x + y gelegt. Die Transition darf nur schalten,

wenn x > 3.

2 7

4 5

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

x

y

x > 3

UML und Objekt-Orientierung

Was bedeutet Objekt-Orientierung?

x + y

Barbara König Modellierung 212

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Grundidee

Die reale Welt besteht aus Objekten, die untereinander in

Beziehungen stehen. Diese Sichtweise wird auch auf Modellierung

und Softwareentwicklung übertragen.

Etwas genauer . . .

Daten (= Attribute) werden zusammen mit der Funktionalität (=

Methoden) in Objekten organisiert bzw. gekapselt. Jedes Objekt ist

in der Lage Nachrichten (= Methodenaufrufe) zu empfangen,

Daten zu verarbeiten und Nachrichten zu senden.

Diese Objekte können – einmal erstellt – in verschiedenen

Kontexten wiederverwendet werden.

Barbara König Modellierung 214


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

UML und Objekt-Orientierung

Geschichte der Objekt-Orientierung

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Entwicklung von objekt-orientierten Programmiersprachen:

60er Jahre: Simula (zur Beschreibung und Simulation von

komplexen Mensch-Maschine-Interaktionen)

80er Jahre: C++

90er Jahre: Java

Verbreitung von objekt-orientierten Entwurfsmethoden:

70er Jahre: Entity-Relationship-Modell

90er Jahre: Vorläufer von UML:

OOSE (Object-Oriented Software Engineering),

OMT (Object Modeling Technique)

Seit 1997: UML

Seit 2005: UML 2.0

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

UML und Objekt-Orientierung

Ein Beispiel für die Modellierung von

Objekten der realen Welt:

Fahrkartenautomat

Daten: Fahrtziele, Zoneneinteilung,

Fahrtkosten

Funktionalität: Tasten drücken,

Preise anzeigen, Münzen einwerfen,

Fahrkarte auswerfen

Barbara König Modellierung 215

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Barbara König Modellierung 217

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

UML und Objekt-Orientierung

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Vorteile der objekt-orientierten Programmierung und Modellierung

Leichte Wiederverwendbarkeit dadurch, dass Daten und

Funktionalität zusammen verwaltet werden und es Konzepte

zur Modifikation von Code (Stichwort: Vererbung) gibt.

Nähe zur realen Welt: viele Dinge der realen Welt können als

Objekte modelliert werden.

Verträglichkeit mit Nebenläufigkeit und Parallelität:

Kontrollfluss kann nebenläufig in den Objekten ablaufen und

die Objekte können durch Nachrichtenaustausch bzw.

Methodenaufrufe untereinander kommunizieren.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

UML und Objekt-Orientierung

Konzepte

Barbara König Modellierung 216

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Klassen: definiert einen Typ von Objekten mit bestimmten

Daten und bestimmter Funktionalität.

Beispiel: die Klasse der VRR-Fahrkartenautomaten

Objekte: Instanzen der Klasse.

Beispiel: der Fahrkartenautomat am Duisburger

Hauptbahnhof, Osteingang

Barbara König Modellierung 218


UML: Einführung

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Einsatzgebiete von UML im Software-Engineering

Visualisierung

Spezifikation

Konstruktion (z.B. zur Codegenerierung)

Dokumentation

UML: Einführung

Beziehungen

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Abhängigkeiten (dependencies)

Assoziationen (associations)

Generalisierungen (generalizations)

Realisierungen (realizations)

Barbara König Modellierung 219

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Barbara König Modellierung 221

UML: Einführung

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Vokabular der UML (nach Booch/Rumbaugh/Jacobson)

Dinge

Dinge (things)

Beziehungen (relationships)

Diagramme (diagrams)

Strukturen (structural things)

Verhalten (behavioral things)

Gruppen (grouping things)

Annotationen (annotational things)

UML: Einführung

UML-Diagramme

Klassendiagramm

Komponentendiagramm

Kompositionsstrukturdiagramm

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Strukturdiagramme

Barbara König Modellierung 220

Objektdiagramm

Verteilungsdiagramm

Paketdiagramm

Sequenzdiagramm

Diagramme

der UML

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Interaktionsdiagramme

Verhaltensdiagramme

Aktivitäts- Anwendungsfalldiagramm

diagramm

Kommunikationsdiagramm

Zustands-

diagramm

Interaktionsübersichtsdiagramm

Zeitverlaufs-/

Timing-Diagramm

Barbara König Modellierung 222


UML: Einführung

Diagramme (I)

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Strukturdiagramme

Klassendiagramme (class diagrams)

Objektdiagramme (object diagrams)

Kompositionsstrukturdiagramme (composite structure

diagram)

Paketdiagramme (package diagram)

Verteilungsdiagramme (deployment diagram)

Komponentendiagramme (component diagrams)

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Barbara König Modellierung 223

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

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

Point

x: int

y: int

get x(): int

get y(): int

Klassenname

Attribute (evtl. mit Typ)

Operationen/Methoden

Barbara König Modellierung 225

UML: Einführung

Diagramme (II)

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Verhaltensdiagramme

Aktivitätsdiagramme (activity diagrams)

Zustandsdiagramme (state diagrams)

Anwendungsfalldiagramm (use case diagrams)

Interaktionsdiagramme

Sequenzdiagramme (sequence diagrams)

Kommunikationsdiagramm (communication

diagram)

Zeitverlaufsdiagramm (timing diagram)

Interaktionsübersichtsdiagramm (interaction

overview diagram)

Wir werden im Folgenden einige dieser Begriffe mit Leben füllen.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Bemerkungen:

Barbara König Modellierung 224

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Bei den Attributen handelt es sich um sogenannte

Instanzattribute, d.h., sie gehören zu den Instanzen einer

Klasse (nicht zur Klasse selbst).

Man kann die Sichtbarkeit eines Attributes bzw. einer

Methode spezifieren, indem man + (öffentlich/sichtbar) oder

− (privat/nicht sichtbar) vor den Attribut-/Methodennamen

schreibt.

Auch die Angabe # (geschützt/protected) ist möglich. In

diesem Fall ist das Attribut nur für Klassen sichtbar, die von

der entsprechenden Klasse erben.

Barbara König Modellierung 226


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Bemerkungen:

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Attribute haben im allgemeinen Typen, manchmal auch

Vorgabewerte (= initiale Werte). Dies wird dann

folgendermaßen notiert:

x: int = 0

Mehrstellige Operationen mit Rückgabewert werden mit ihren

Typen folgendermaßen notiert:

add(m: int, n: int): int

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Barbara König Modellierung 227

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Graphische Darstellung von Generalisierung/Spezialisierung

Point

x: int

y: int

get x(): int

get y(): int

Colored Point

c: string

color(): string

setcolor(c: string)

Die Klasse Colored Point spezialisiert die Klasse Point.

Umgekehrt generalisiert Point die Klasse Colored Point.

Barbara König Modellierung 229

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Graphische Darstellung einer Instanz einer Klasse

Point mypoint :Point

x: int

y: int

get x(): int

get y(): int

≪instantiate ≫

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Bemerkungen:

x = 0

y = 0

Barbara König Modellierung 228

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

In einer solchen Situation nennt man Point Superklasse und

Colored Point Subklasse.

Die Subklasse erbt die Attribute, Methoden und Assoziationen

der Superklasse (und kann diesen noch weitere hinzufügen).

Daher spricht man auch von Vererbung. Außerdem kann man

in der Subklasse Methoden der Superklasse überschreiben und

durch neue ersetzen.

Barbara König Modellierung 230


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Wie kann man Beziehungen zwischen Klassen in UML darstellen?

Es gibt folgende mögliche Beziehungen:

Assoziation

Aggregation

Komposition

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Beispiel für eine Assoziation

Eine Person besitzt ein Auto.

Barbara König Modellierung 231

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Person Auto

besitzt

Barbara König Modellierung 233

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Wir beginnen mit der schwächsten 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.

Üblicherweise werden Assoziationen durch Referenzen realisiert.

D.h., eine der Klassen hat ein Attribut vom Typ der anderen

Klasse. Diese Attribute werden im Klassendiagramm jedoch nicht

explizit angegeben.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Bemerkungen:

Barbara König Modellierung 232

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Es kann eine Leserichtung der Assoziation eingeführt werden:

Person Auto

besitzt

Die Navigationsrichtung (beschrieben durch eine Pfeilspitze)

kann von der Leserichtung abweichen. Sie beschreibt, welche

Klasse ihren Assoziationspartner kennt (und daher seine

Methoden aufrufen kann).

Person Auto

besitzt

Hier kennen sich beide Klassen gegenseitig.

Barbara König Modellierung 234


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Multiplizitäten: an beide Enden der Assoziationen können

Multiplizitäten in Form von Intervallen m..n (oder einfach nur

m für m..m) angegeben werden. Hier besitzt eine Person bis

zu fünf Autos. Ein Auto ist im Besitz genau einer Person.

Person Auto

1 0..5

besitzt

Falls die Multiplizität größer als eins ist, muss dies in der

Implementierung durch eine Liste (oder Menge oder Array)

von Referenzen realisiert werden.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Barbara König Modellierung 235

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Rollen: Klassen können in verschiedenen Assoziationen

verschiedene Rollen spielen. Rollen werden auch an den

Assoziationen notiert (und können alle Bestandteile eines

Attributs enthalten).

Grosshandel

Verkaeufer

Kaeufer

Haendler

Verkaeufer

Kaeufer Endkunde

Barbara König Modellierung 237

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Multiplizitäten allgemein: in folgendem Diagramm können i

Instanzen von A (mit m ≤ i ≤ n) mit einer Instanz von B

assoziert sein. Umgekehrt können j Instanzen von B (mit

k ≤ j ≤ l) mit einer Instanz von A assoziiert sein.

A B

m..n k..l

Falls es keine obere Schranke gibt, wird ein Stern (=

unendlich) verwendet. Beispielsweise steht 2..∗ für

“mindestens zwei”.

Die Multiplizität 0..∗ wird als Standardwert angenommen,

wenn keine Angabe vorhanden ist.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Barbara König Modellierung 236

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Die nächste Relation – Aggregation – ist etwas stärker.

Aggregation

Es gibt eine Aggregation zwischen den Klassen A und B, wenn

Instanzen der Klasse A Instanzen der Klasse B als Teile

enthalten. (Ein “Ganzes” enthält mehrere “Teile”.)

Barbara König Modellierung 238


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Beispiel für eine Aggregation

Ein Parkplatz “enthält” mehrere Autos.

Parkplatz

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

0..1 0..∗

enthaelt

Klassen- und Objektdiagramme

Beispiel für eine Komposition

Ein Auto besteht aus vier Rädern.

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Auto

Barbara König Modellierung 239

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Auto 1 4 Rad

besteht aus

Die Räder werden zerstört, sobald das Auto zerstört wird.

Bemerkung: In diesem Fall muss die Multiplizität, die an der

schwarzen Raute steht, immer 0 oder 1 sein. Jedes Teil kann

höchstens zu einem Ganzen gehören.

Barbara König Modellierung 241

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Die stärkste 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 Teile

enthalten und die Lebenszeit der Teile wird vom

“Ganzen” kontrolliert. Das heißt, die Teile können

(müssen) gelöscht werden, sobald die Instanz der Klasse

A gelöscht wird.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Barbara König Modellierung 240

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

In Klassendiagrammen befinden sich normalerweise nicht nur zwei

Klassen mit einer Assoziationen, sondern verschiedene Klassen

eines Programms oder Moduls, mit ihren Beziehungen

untereinander.

Beispiel:

Parkplatz

0..1 0..∗

enthaelt

Auto

besitzt

0..5

1

Person

1 4

besteht aus

Rad

Barbara König Modellierung 242


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

n-äre Assoziation

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Neben binären (zweistelligen) Assoziationen gibt es auch n-äre

Assoziationen, die eine Beziehung zwischen n Klassen beschreiben.

Hauptgericht

1..∗

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Vorspeise

0..∗

Menue

Klassen- und Objektdiagramme

0..∗ Dessert

Barbara König Modellierung 243

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Den Generalisierungsgruppen können Eigenschaften (in

geschweiften Klammern) zugeordnet werden.

complete/incomplete:

complete: die Generalisierungsgruppe ist vollständig, d.h.,

sie überdeckt alle Instanzen der Klasse.

incomplete: die Generalisierungsgruppe ist unvollständig.

disjoint/overlapping:

disjoint: die spezialisierenden Klassen besitzen keine

gemeinsamen Instanzen (keine Überlappung).

overlapping: die spezialisierenden Klassen können

gemeinsame Instanzen besitzen.

Barbara König Modellierung 245

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Generalisierungsgruppen

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Klassen können in unterschiedlicher Weise spezialisiert bzw.

unterteilt werden. Daher können Generalisierungen zu Gruppen

zusammengefasst werden.

Frau

Mann

Geschlecht

Person

Alter

Kind

Erwachsener

Dabei wird die jeweilige Generalisierungsgruppe (hier: Alter bzw.

Geschlecht) im Diagramm angegeben.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Barbara König Modellierung 244

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Beispiele für die Eigenschaften complete/incomplete und

disjoint/overlapping:

{complete,disjoint}

Frau

Mann

Geschlecht

{complete,disjoint}

Person

Hier handelt es sich um eine Partitionierung der Instanzen der

Klasse.

Barbara König Modellierung 246


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

{incomplete,disjoint}

Person

Alter

{incomplete,disjoint}

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Kind

Erwachsener

Warum unvollständig? � es fehlt eine Klasse Jugendlicher.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

{incomplete,overlapping}

Fliegende Tiere fehlen.

Landtier

Wassertier

Barbara König Modellierung 247

Lebensraum

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Tier

{incomplete,overlapping}

Barbara König Modellierung 249

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

{complete,overlapping}

Landtier

Wassertier

Fliegendes Tier

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Lebensraum

Tier

{complete,overlapping}

Schildkröten sind sowohl Land- als auch Wassertiere.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Mehrfachvererbung

Barbara König Modellierung 248

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Es ist auch möglich, dass eine Klasse von mehreren Klassen erbt,

d.h., eine Spezialisierung verschiedener Klassen ist. Dies bezeichnet

man als Mehrfachvererbung.

Frau Kind

Geschlecht

Alter

Mann

Maedchen

Person

Erwachsener

Ein Mädchen ist sowohl ein Kind als auch ein weiblicher Mensch

(= Frau).

Barbara König Modellierung 250


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Basierend auf diesen graphischen Notation sollte man ein

objekt-orientiertes System modellieren, bevor es implementiert

wird. Dabei stellen sich insbesondere folgende Fragen:

Welche Objekte und Klassen werden benötigt?

Welche Merkmale haben diese Klassen und welche

Beziehungen bestehen zwischen Ihnen?

Wie sollen die Klassen eingesetzt werden?

Welche Methoden stellen diese Klassen zur Verfügung? Wie

wirken diese Methoden zusammen?

In welchen Zuständen können sich Objekte befinden und

welche Nachrichten werden wann an andere Objekte

geschickt?

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Beispiel: Modellierung einer Bank

Barbara König Modellierung 251

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Auf den Konten sollen folgende Operationen ausgeführt

werden können:

Einzahlen

Abheben

Verzinsen

Umbuchen

Außerdem sollen alle Objekte (inklusive der Bank) ihre

Darstellung ausdrucken können. Dazu hat jedes Objekt eine

eigene print-Methode.

Das bezeichnet man auch als Overloading: eine Methode

gleichen Namens kann bei Objekten verschiedener Klassen

aufgerufen werden und erzielt dort unterschiedliche Effekte.

Barbara König Modellierung 253

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Beispiel: Modellierung einer Bank

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Ein größeres Beispiel für objekt-orientierte Modellierung und

Programmierung: Wir modellieren eine Bank.

Folgende Anforderungen werden gestellt:

Eine Bank

hat mehrere Kunden

und mehrere Angestellte

und führt eine Menge von Konten.

Konten können

Giro- oder Sparkonten sein. (Ein Sparkonto wirft höhere

Zinsen ab, darf aber nicht ins Minus absinken.)

in Euro oder in Dollar geführt werden.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Beispiel: Modellierung einer Bank

Klasse Bank:

Bank

name: string

neuen kunden anlegen()

angestellten einstellen()

konten verzinsen()

print()

Barbara König Modellierung 252

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Methoden: neuen Kunden anlegen;

neuen Angestellten einstellen; alle

Konten verzinsen

Außerdem: Eine Bank besteht (in

Kompositionsrelation) aus einer

Menge von Konten, die

verschwinden, wenn die Bank

verschwindet. Außerdem gibt es

Aggregationen mit einer Liste von

Kunden und von Angestellten.

Barbara König Modellierung 254


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Beispiel: Modellierung einer Bank

Klasse Konto:

Konto

nummer: string

zins: float

kontostand: Betrag

einzahlen(wert: Betrag)

abheben(wert: Betrag)

umbuchen auf(kto: konto,

wert: Betrag)

print()

verzinsen()

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Beispiel: Modellierung einer Bank

Klasse Sparkonto:

Konto

Sparkonto

zins: float = 0.02

abheben(wert: Betrag)

umbuchen auf(kto: Konto,

wert: Betrag)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Attribute: Kontonummer, Zins

Methoden: Kontostand abfragen,

einzahlen, abheben, umbuchen eines

Betrags auf ein anderes Konto,

Konto verzinsen

Außerdem: Konto steht in einer

Kompositionsrelation mit Betrag,

d.h., jedes Konto enthält einen

Betrag (siehe Klassendiagramm).

Barbara König Modellierung 255

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Bei der Klasse Sparkonto muss – wie

beim Girokonto – ein neuer

Anfangswert für den Zins gesetzt

werden.

Außerdem: es muss darauf geachtet

werden, dass das Konto nicht ins

Minus abgleitet. Dazu werden die

entsprechenden Methoden

überschrieben (in der

Implementierung muss die

Bedingung entsprechend getestet

werden).

Barbara König Modellierung 257

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Beispiel: Modellierung einer Bank

Klasse Girokonto:

Konto

Girokonto

zins: float = 0.005

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Beispiel: Modellierung einer Bank

Klasse Betrag:

Betrag

wert: float

negativ(): bool

plus(wert: Betrag)

minus(wert: Betrag)

print()

mult(faktor: float)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Die Klasse Girokonto wird von

Konto abgeleitet. Typischerweise ist

der Zins bei Girokonten niedriger als

bei Sparkonten. Von daher wird

dieser auf einen niedrigeren

Anfangswert gesetzt.

Barbara König Modellierung 256

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Methoden: Test, ob Konto im

Minus; Betrag addieren,

subtrahieren; Multiplikation mit einer

Gleitpunktzahl (zum Verzinsen!)

Beträge müssen im allgemeinen in einer Währung angegeben

werden. Daher werden von der Klasse Betrag die Unterklassen

Euro und Dollar abgeleitet.

Barbara König Modellierung 258


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Beispiel: Modellierung einer Bank

Klasse Euro:

Betrag

Euro

betrag in euro():float

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Beispiel: Modellierung einer Bank

Klasse Person:

Person

name: string

print()

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Von Betrag wird zunächst die Klasse

Euro abgeleitet.

Methoden: Betrag in Euro ausgeben

Barbara König Modellierung 259

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Methoden: nur die print-Methode,

weitere Methoden werden in den

Unterklassen definiert

Außerdem: Person steht in einer

Assoziationsrelation mit einer Liste

von Konten, die entweder dieser

Person gehören (Kunde) oder auf die

diese Person Zugriff hat

(Angestellte/r).

Barbara König Modellierung 261

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Beispiel: Modellierung einer Bank

Klasse Euro:

Betrag

Dollar

betrag in dollar():float

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Beispiel: Modellierung einer Bank

Klasse Angestellter (erbt von Person):

Angestellter

zugriff auf konto(kto:

Konto)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Von Betrag wird außerdem die

Klasse Dollar abgeleitet.

Methoden: Betrag in Dollar

ausgeben

Barbara König Modellierung 260

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Methoden: Zugriff auf ein Konto

erlangen

Barbara König Modellierung 262


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Beispiel: Modellierung einer Bank

Klasse Kunde (erbt von Person):

Kunde

konto eroeffnen()

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Methoden: Konto eröffnen (hier

könnte noch ein Parameter übergeben

werden, der beschreibt, ob das Konto

ein Giro- oder Sparkonto sein soll und

ob es in Euro oder Dollar geführt

werden soll)

Außerdem: Ein Kunde steht in einer

Assoziationsrelation mit seinem

Betreuer.

Barbara König Modellierung 263

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Abstrakte Klasse

Eine Klasse heißt abstrakt, wenn sie selbst keine Instanzen haben

kann. Dazu wird die Eigenschaft {abstract} unter dem

Klassennamen angegeben. Manchmal wird stattdessen auch der

Klassenname kursiv geschrieben.

Beispiel: in dem Bank-Beispiel möchte man beispielsweise nie eine

Instanz der Klasse Person bilden, sondern nur von Kunde oder

Angestellter.

Person

{abstract}

Barbara König Modellierung 265

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Beispiel: Modellierung einer Bank

Betrag

wert: float

1

Bank Person

1

besteht aus

Waehrung

Konto

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

name: string

besitzt

1

Kontotyp

Euro Dollar

Girokonto Sparkonto

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Kunde

betreut

hat Zugriff auf

Angestellter

1

Status

Barbara König Modellierung 264

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Wir betrachten nun Objektdiagramme. Ein Objekt ist eine Instanz

oder Ausprägung einer Klasse.

Objekte und Klassen

Point mypoint :Point

x: int

y: int

get x(): int

get y(): int

≪instantiate ≫

x = 0

y = 0

Ein Objektdiagramm beschreibt eine Art Momentaufnahme des

Systems: eine Menge von Objekten, wie sie zu einem bestimmten

Zeitpunkt vorhanden sind.

Barbara König Modellierung 266


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Bemerkungen:

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Ein Objekt kann, muss aber keinen Namen haben. Es muss

aber die Klasse angegeben werden, von der dieses Objekt eine

Instanz ist. (In der Form: :Point.)

Die Klassen müssen in dem Diagramm nicht graphisch

dargestellt werden. Es kann aber manchmal angemessen sein,

“Bauplan” und “Produkt” gemeinsam darzustellen.

Nicht alle Attributbelegungen des Objekts müssen angegeben

werden.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Zurück zum Beispiel: Autos, Parkplatz, Räder

Barbara König Modellierung 267

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Wir betrachten zunächst noch einmal das Klassendiagramm:

Parkplatz

0..1 0..∗

enthaelt

Auto

besitzt

0..5

1

Person

1 4

besteht aus

Rad

Barbara König Modellierung 269

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Links

Ein Link beschreibt eine Beziehung zwischen zwei Objekten. Er ist

eine Instanz einer Assoziation auf Klassenebene.

Bemerkungen:

Links sind nicht mit Multiplizitäten beschriftet, ein Link

repräsentiert genau eine Beziehung.

Es ist jedoch darauf zu achten, dass die

Multiplizitätsbedingungen des Klassendiagramms eingehalten

werden. D.h., die Anzahl der Objekte, die miteinander in

Beziehung stehen, müssen innerhalb der jeweiligen Schranken

sein.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Barbara König Modellierung 268

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Dieses Objektdiagramm passt zum vorherigen Klassendiagramm:

parkplatzLBereich

:Parkplatz

enthaelt

enthaelt

peter

:Person

besitzt

gruenerAudi

:Auto

schwarzerVW

:Auto

besitzt

gabi

:Person

besteht aus

besteht aus

:Rad

:Rad

:Rad

:Rad

:Rad

:Rad

:Rad

:Rad

Barbara König Modellierung 270


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Bemerkungen:

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Auch Aggregations- und Kompositionssymbole dürfen in

Objektdiagrammen auftauchen.

Achtung: Beziehungen (Assoziationen, Aggregationen,

Kompositionen) zwischen Klassen werden vererbt und müssen

dann auch entsprechend im Objektdiagramm bei den

Instanzen der Unterklassen auftauchen.

Beispiel:

klaus :Kunde

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Aktivitätsdiagramme

Startknoten

Bauplatz wählen

Architekt suchen

Beispiel:

Hausbau

besitzt

besitzt

:Sparkonto

:Girokonto

Barbara König Modellierung 271

Plan erstellen

[nicht angenommen]

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Arbeit auf Baustelle

Plan

Plan einreichen

Haus fertigstellen

[angenommen]

Arbeit im Büro

Aktivitätsende

Phase paralleler

Aktivitäten

Barbara König Modellierung 273

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Aktivitätsdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Wir betrachten nun sogenannte Aktivitätsdiagramme (activity

diagrams), das sind UML-Diagramme mit denen man Ablaufpläne,

Reihenfolgen von Aktivitäten, parallele Aktivitäten, etc.

modellieren kann.

Sie werden beispielsweise verwendet, um Geschäftsprozesse (auch

Workflow-Prozesse) des Auftraggebers zu modellieren. Sie können

ebenso eingesetzt werden, um interne Systemprozesse zu

beschreiben.

Aktivitätsdiagramme sind in vielen Aspekten ähnlich zu

Petri-Netzen. Im Unterschied zu Petri-Netzen bieten Sie zusätzliche

Modellierungsmöglichkeiten, haben jedoch keine formale Semantik.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Aktivitätsdiagramme

Barbara König Modellierung 272

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Wir vergleichen nun die Bestandteile von Aktivitätsdiagrammen

mit Petrinetzen (angelehnt an die Semantik von Störrle):

Aktions

Eine Aktion wird durch ein Rechteck mit abgerundeten Ecken

dargestellt. Es entspricht einer Transition eines Petrinetzes.

Plan erstellen Plan erstellen

Barbara König Modellierung 274


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Aktivitätsdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Kontrollfluss

Der Kontrollfluss, d.h. die Kanten, zwischen den Aktionen wird in

dem entsprechenden Petrinetz durch Hilfsstellen dargestellt.

Bauplatz wählen

Architekt suchen

Plan erstellen

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Aktivitätsdiagramme

Architekt suchen

Bauplatz wählen

Plan erstellen

Barbara König Modellierung 275

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Entscheidungsknoten (auch: Verzweigungsknoten)

Entscheidungsknoten (decision nodes) beschreiben eine

Verzweigung des Kontrollflusses, wobei aus den möglichen

Kontrollflüssen genau einer ausgewählt wird. Sie werden durch

Hilfsstellen repräsentiert, die sich in der Vorbedingung mehrerer

Transitionen befinden.

Plan einreichen

[nicht angenommen]

Plan einreichen

[angenommen]

Hilfstransition

Bei Bedarf (v.a. bei nachfolgenden Entscheidungs- oder

Objektknoten) muss noch eine Hilfstransition eingeführt werden.

Barbara König Modellierung 277

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Aktivitätsdiagramme

Objektknoten

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Objektknoten beschreiben Speicher für die Übergabe von Objekten

bzw. Ressourcen. Sie entsprechen den Stellen des Petrinetzes.

Plan erstellen

Plan

Plan einreichen

Plan erstellen

Plan

Plan einreichen

Bemerkung: Objektknoten sind mit Klassennamen beschriftet. Sie

können mehrere Instanzen dieser Klasse enthalten.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Aktivitätsdiagramme

Bemerkung zu Entscheidungsknoten:

Barbara König Modellierung 276

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Überwachungsbedingungen (Guards), die den Kontrollfluss steuern,

werden in eckigen Klammern an den ausgehenden Kontrollflüssen

notiert. Ähnliche Guards existieren auch in attributierten Netzen.

Barbara König Modellierung 278


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Aktivitätsdiagramme

Verbindungsknoten

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Es gibt auch sogenannte Verbindungsknoten (merge nodes), die

mehrere alternative Kontrollflüsse zusammenfassen. Sie können

durch Hilfsstellen dargestellt werden, die sich in der

Nachbedingung mehrerer Transitionen befinden.

Es gibt auch Knoten, die sowohl Entscheidungs- als auch

Verbindungsknoten sind, d.h., mehrere eingehende und mehrere

ausgehende Kontrollflüsse haben.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Aktivitätsdiagramme

Vereinigung (auch: Synchronisationsknoten)

Barbara König Modellierung 279

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Analog dazu gibt es die Vereinigung (join node), die mehrere

parallele Kontrollflüsse zusammenfasst. Sie wird durch eine

Transition dargestellt, die mehrere Stellen in der Vorbedingung hat.

Wie Entscheidungs- und Verbindungsknoten kann man Gabelungen

und Vereinigungen zu einem Element zusammenfassen.

Barbara König Modellierung 281

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Aktivitätsdiagramme

Gabelung (auch: Parallelisierungsknoten)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Eine Gabelung (fork node) teilt einen Kontrollfluss in mehrere

parallele Kontrollflüsse auf.

Sie entspricht einer Transition mit mehreren Stellen in der

Nachbedingung.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Aktivitätsdiagramme

Bitte beachten:

Barbara König Modellierung 280

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Kontrollflüsse dürfen nur an Objektknoten, Entscheidungsknoten

und Gabelungen aufgespalten und an Objektknoten,

Verbindungsknoten und Vereinigungen wieder zusammengeführt

werden. Außerdem dürfen Kontrollflüsse, die an Gabelungen

aufgespalten wurden, nur wieder an Vereinigungen

zusammengefügt werden. Gleiches gilt für Entscheidungs- und

Vereinigungsknoten.

Folgendes ist nicht erlaubt:

Aktion

Aktion

Barbara König Modellierung 282


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Aktivitätsdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Startknoten

Ein Startknoten entspricht einer initial markierten Stelle. Ein

Aktivitätsdiagramm darf nur einen Startknoten haben, in den kein

Kontrollfluss hineinführt

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Aktivitätsdiagramme

Bauplatz wählen

Übersetztes

Petrinetz

Architekt suchen

Hilfstransition

Barbara König Modellierung 283

Plan erstellen

Arbeit auf Baustelle

Plan

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Plan einreichen

fork

join

Arbeit im Büro

Haus fertigstellen

Barbara König Modellierung 285

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Aktivitätsdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Aktivitätsende

Das Aktivitätsende signalisiert, dass alle Kontrollflüsse beendet

werden. Es gibt keine Entsprechung in Petrinetzen.

Es gibt auch ein Symbol für das Flussende, das nur den in es

hineinlaufenden Kontrollfluss beendet.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Aktivitätsdiagramme

Barbara König Modellierung 284

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Aktivitätsdiagramme enthalten noch mehr Anleihen aus

Petrinetzen. Beispielsweise können auch die Kapazität eines

Objektknotens und das Gewicht eines Kontrollflusses spezifiziert

werden.

Gericht zubereiten Gericht servieren

{weight=2}

2

Gericht zubereiten Gericht

Gericht servieren

{upperBound=6}

6

Gericht

Dabei beschreibt upperBound die Kapazität einer Stelle (maximal

6 Gerichte dürfen gleichzeitig fertig sein) und weight das Gewicht

(immer 2 Gerichte werden gleichzeitig serviert).

In Aktivitätsdiagrammen darf noch zusätzlich spezifiziert werden,

in welcher Reihenfolge die Objekte aus dem Objektknoten

genommen werden (unordered, ordered, LIFO, FIFO).

Barbara König Modellierung 286


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Aktivitätsdiagramme

Vorsicht:

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Die Entsprechung zwischen Aktivitätsdiagrammen und

Petrinetzen ist nicht immer ganz exakt. Nicht alle Konzepte

entsprechen einander.

Das liegt teilweise auch daran, dass Aktivitätsdiagramme nur

ein semi-formales Modell sind und nicht alle Aspekte

vollständig spezifiziert sind.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Aktivitätsdiagramme

Weitere Elemente von Aktivitätsdiagrammen:

Barbara König Modellierung 287

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Pins: Parameter und Parametersätze für Aktionen

Senden und Empfang von Signalen

Kontrollstrukturen: Schleifenknoten, Bedingungsknoten

Unterbrechungsbereiche (interruptible activity region) zur

Behandlung von Ausnahmen (Exceptions)

Expansionsbereiche (expansion region) zur wiederholten

Ausführung von Aktivitäten für mehrere übergebene Objekte

Barbara König Modellierung 289

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Aktivitätsdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Es gibt auch die Möglichkeit zur weiteren Strukturierung von

Aktivitätsdiagrammen:

Aktivitätsbereiche (activity partitions/swimlanes)

Zusammenfassung mehrerer Knoten (Aktionen, Objektknoten,

etc.) zu einer Einheit. Dies dient im allgemeinen dazu, um die

Verantwortung für bestimmte Aktionen festzulegen.

Gast Kellner

Gericht bestellen

Gericht verspeisen

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Bestellung aufnehmen

Gericht servieren

Barbara König Modellierung 288

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Zustandsdiagramme (state diagrams, auch state machine diagrams

oder statecharts) genannt, sind eng verwandt mit den bereits

eingeführten Zustandsübergangsdiagrammen.

Sie werden eingesetzt, wenn bei der Modellierung der Fokus auf die

Zustände und Zustandsübergänge des Systems gelegt werden soll.

Im Gegensatz zu Aktivitätsdiagrammen werden auch weniger die

Aktionen des Systems, sondern eher die Reaktionen des Systems

auf die Umgebung beschrieben.

Barbara König Modellierung 290


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Anwendungen sind die Modellierung von:

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Protokolle, Komponenten verteilter Systemen

Benutzeroberflächen

Eingebettete Systemen

. . .

Zustandsdiagramme wurden 1987 von David Harel unter dem

Namen Statecharts eingeführt. Harel modellierte damit vollständig

seine Armbanduhr.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Barbara König Modellierung 291

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Wir lernen Zustandsdiagramme am Beispiel der Modellierung einer

Armbanduhr kennen (stark vereinfacht gegenüber Harels

Armbanduhr).

Die Armbanduhr hat zwei Knöpfe (a,b) und zwei Modi

(Zeitanzeige, Alarmeinstellung). Zwischen diesen Modi wechselt

man mit Hilfe von Knopf a.

Der Alarm kann aus (off) oder an (on) sein. Man kann zwischen

den Alarmzuständen mit Hilfe von Knopf b wechseln. Falls der

Alarm an ist, erzeugt die Uhr zu jeder vollen Stunde einen Piepton.

a

9:21

b

a

a

a Alarm b a Alarm b

on off

a

b

b

Barbara König Modellierung 293

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Eigenschaften von Zustandsdiagrammen:

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Zustände und Zustandsübergänge (Transitionen)

Hierarchisch aufgebaute Zustände

“Parallelschalten” von Zustandsdiagrammen durch Regionen

Historien, um sich früher besuchte Zustände zu merken und in

diese zurückzukehren

Viele dieser Eigenschaften dienen dazu, unübersichtliche

Zustandsdiagramme mit vielen Zuständen und Übergängen

übersichtlicher und kompakter zu gestalten.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Barbara König Modellierung 292

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Wir beginnen zunächst mit der Modellierung der Minutenanzeige.

after(1 min)

after(1 min) after(1 min)

0 1

2 . . .

59

after(1 min) after(1 min)

58

57

. . .

Barbara König Modellierung 294


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Zustand

Ein Zustand eines Zustandsdiagramms wird durch ein Rechteck

mit abgerundeten Ecken dargestellt.

Startzustand

Der Startzustand wird durch einen schwarzen ausgefüllten Kreis

gekennzeichnet (ähnlich wie bei Aktivitätsdiagrammen).

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Transition (= Zustandsübergang)

0

0

Barbara König Modellierung 295

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Eine Transition ist ein Pfeil, der mit Ereignis [Bedingung]/Effekt

beschriftet ist. (Bedingung und Effekt sind optional.)

Ereignis: Signal oder Nachricht, die die entsprechende

Transition auslösen.

0

after(1 min)

Bedingung: Überwachungsbedingung (auch Guard genannt).

Effekt: Effekt, der durch die Transition ausgelöst wird .

Im obigen Beispiel (Minutenanzeige) gibt es nur Ereignisse

(sogennante time events), die die Zeitspanne spezifizieren, nach

der die Transition ausgelöst wird. Es gibt aber auch andere

Ereignisse, beispielsweise Methodenaufrufe.

1

Barbara König Modellierung 297

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Endzustand

Endzustände werden wie das Aktivitätsende in

Aktivitätsdiagrammen gekennzeichnet.

A

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Für den Fall, dass man ein System modelliert, das nicht terminieren

soll, gibt es keinen Endzustand (wie in unserem Beispiel).

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Barbara König Modellierung 296

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Neben den Effekten, die durch Transitionen ausgelöst werden,

können in einem Zustand weitere Aktionen bei Eintritt, Verweilen

oder Verlassen ausgelöst werden.

Sie haben den gleichen Aufbau wie die Beschriftung einer

Transition: Ereignis [Bedingung]/Effekt. Dabei kann Ereignis unter

anderem folgendes sein:

entry: der entsprechende Effekt wird bei Eintritt in den

Zustand ausgelöst.

do: der Effekt ist eine Aktion, die nach Betreten des Zustands

ausgeführt wird und die spätestens dann endet, wenn der

Zustand verlassen wird

exit: der entsprechende Effekt wird bei Verlassen des Zustands

ausgelöst.

Barbara König Modellierung 298


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Beispiel: die Uhr soll zu jeder vollen Stunden ein Signal von sich

geben. Daher wird die Aktion beep bei Eintritt in den Zustand 0

ausgelöst.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

0

entry/beep

Barbara König Modellierung 299

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

So sieht das modifizierte Zustandsdiagramm für die Uhr jetzt aus:

h

0

23

0

entry/beep

after(1 min)/h

59

Stunden

h h

h

1 2 . . .

h

22 21

Minuten

after(1 min) after(1 min)

. . .

1 2 . . .

after(1 min) after(1 min)

58

57

. . .

Barbara König Modellierung 301

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Wie sieht es mit der Stundenanzeige aus? Diese soll parallel zur

Minutenanzeige laufen, d.h., die Uhr ist in zwei Zuständen

gleichzeitig, ein Zustand für die Stunden, der andere für die

Minuten. Diese Situation wird durch Regionen modelliert.

Region

Regionen unterteilen ein Zustandsdiagramm in zwei Bereiche, die

parallel zueinander ausgeführt werden.

Dies erlaubt uns, insgesamt nur 24 + 60 = 84 Zustände, anstatt

24 · 60 = 1440 Zustände zu zeichnen.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Bemerkungen:

Barbara König Modellierung 300

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Es gibt jetzt zwei Startzustände, die beide zu Beginn betreten

werden (Uhrzeit: 0:00).

Da Stunden- und Minutenanzeige nicht vollkommen

unabhängig voneinander arbeiten, ist eine Synchronisation

eingebaut. Die Transition in den Minutenzustand 0 löst einen

Effekt h (h für “hour”) aus.

Dieser Effekt ist dann ein Trigger, der das entsprechende

Ereignis triggert und den Übergang in den nächsten

Stundenzustand verursacht. Die beiden Transitionen werden

synchronisiert und finden gleichzeitig statt.

Barbara König Modellierung 302


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Bemerkungen:

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Transitionen verbrauchen im allgemeinen keine Zeit (im

Gegensatz zum Aufenthalt in Zuständen).

Neben Triggern, die direkt ausgeführt werden, gibt es auch

Events, die zunächst in einer Event Queue (= Warteschlange)

abgelegt werden. Diese Warteschlange wird schrittweise

abgearbeitet, wobei die entsprechenden Ereignisse ausgelöst

werden. Damit kann asynchrone Kommunikation beschrieben

werden.

Effekte können direkte Kommunikation bedeuten

(beispielsweise Methodenaufrufe), können aber auch

sogenannte Broadcasts (= Rundrufe) sein. Diese sind überall

im Zustandsdiagramm sichtbar. (Die ursprüngliche

Statecharts-Semantik von Harel verwendete nur Broadcasts.)

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Damit ergibt sich folgendes Diagramm:

Alarm

on

b b

off

a

a

h

Barbara König Modellierung 303

0

23

0

entry/beep

after(1 min)/h

59

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Stunden

h h

h

1 2 . . .

h

22 21

Minuten

after(1 min) after(1 min)

. . .

1 2 . . .

after(1 min) after(1 min)

58

57

. . .

Barbara König Modellierung 305

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Nun soll noch die Möglichkeit hinzugefügt werden, das Alarmsignal

zur vollen Stunden aus- und wieder einzuschalten. Dazu führen wir

weitere Zustände (Alarm on, off) ein, in die man durch Drücken

von a gelangt.

Problem: wir brauchen mindestens 84 mit a beschriftete

Transitionen, die aus den Stunden-/Minutenzuständen ausgehen!

Das sind ziemlich viele . . .

Dafür bieten Zustandsdiagramme folgende Lösung:

Zusammengesetzte Zustände

Zusammengesetzte Zustände dienen dazu, um Hierarchien von

Zuständen zu modellieren und damit ein- und ausgehende

Transitionen zusammenzufassen.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Barbara König Modellierung 304

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Um eine gewisse Flexibilität bei der Modellierung zu haben, werden

verschiedene Eintritts- und Austrittsmöglichkeiten bereitgestellt.

Eintrittsmöglichkeiten in einen Zustand (graphisch)

Standard-

Eintritt

Expliziter

Eintritt

Eintritt über die

flache Historie

A H H ∗

B

D E

C

Eintritt über die

tiefe Historie

Barbara König Modellierung 306


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Beschreibung der Eintrittsmöglichkeiten:

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Standard-Eintritt: dabei wird der Startzustand des

zusammengesetzten Zustands angesprungen.

(Forsetzung bei B, was schließlich zu einer Fortsetzung bei D

führt)

Expliziter Eintritt: es wird bei dem explizit angegebenen

Folgezustand fortgesetzt.

(Fortsetzung bei C.)

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Barbara König Modellierung 307

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Beschreibung der Eintrittsmöglichkeiten (Fortsetzung):

Eintritt über die flache Historie: Wurde der zusammengesetzte

Zustand bereits früher besucht, so wird der letzte vor dem

Verlassen des Zustands aktive Unterzustand der obersten

Ebene betreten.

(Falls also der zusammengesetzte Zustand das letzte Mal von

E aus verlassen wurde, so wird jetzt bei B fortgesetzt, was

letztendlich zu einer Fortsetzung bei D führt.)

Außerdem: Eintritt über einen Eintrittspunkt (wird hier nicht

behandelt).

Barbara König Modellierung 309

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Beschreibung der Eintrittsmöglichkeiten (Fortsetzung):

Eintritt über die tiefe Historie: Wurde der zusammengesetzte

Zustand bereits früher besucht, so wird der letzte vor dem

Verlassen des Zustands aktive Unterzustand der

tiefstmöglichen Ebene betreten.

(Falls also der zusammengesetzte Zustand das letzte Mal von

E aus verlassen wurde, so wird jetzt wieder bei E fortgesetzt.)

Falls man noch niemals zuvor diesen zusammengesetzten

Zustand betreten hat, so wird der Zustand betreten, der mit

der Kante gekennzeichnet ist, die aus dem H ∗ -Knoten ausgeht.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Barbara König Modellierung 308

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Wenn ein Zustand in mehrere Regionen unterteilt ist, so ergeben

sich bei den Eintrittsmöglichkeiten einige Besonderheiten.

Eintrittsmöglichkeiten bei Regionen (graphisch)

Standard-

Eintritt

A B

C D

Expliziter

Eintritt

Eintritt

über Gabelung

Barbara König Modellierung 310


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Beschreibung der Eintrittsmöglichkeiten bei Regionen:

Standard-Eintritt: dabei werden die jeweiligen Startzustände

der Regionen angesprungen.

(Fortsetzung bei A und C)

Expliziter Eintritt: ein Zustand einer Region wird direkt

angesprungen. In der anderen Region wird bei dem

entsprechenden Startzustand fortgesetzt.

(Fortsetzung bei B und C.)

Eintritt über Gabelung: ähnlich wie bei Aktivitätsdiagrammen

wird eine Gabelung eingesetzt, um die beiden anzuspringenden

Zustände in den Regionen zu kennzeichnen.

(Fortsetzung bei B und D.)

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Beschreibung der Austrittsmöglichkeiten:

Barbara König Modellierung 311

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Austritt aus einem zusammengesetzten Zustand: sobald das

mit der Transition assoziierte Ereignis stattfindet, wird jeder

beliebige (Unter-)Zustand von A verlassen.

Austritt aus einem inneren Zustand: die Transition wird nur

genommen, wenn man sich gerade im entsprechenden Zustand

(hier: Zustand E) befindet (und das entsprechende Ereignis

stattfindet).

Außerdem: Austritt über einen Austrittspunkt, über einen

Endzustand oder Terminator (wird hier nicht behandelt).

Barbara König Modellierung 313

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Austrittsmöglichkeiten aus einem Zustand (graphisch)

A

B

D E

C

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Beispiel zu Austrittsmöglichkeiten:

A

B C

E

a

Austritt aus

einem zusammengesetzten Zustand

Austritt aus einem

inneren Zustand

Barbara König Modellierung 312

D

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

entspricht B C

A

E

a a

Barbara König Modellierung 314

a

D


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Auch für Austrittsmöglichkeiten müssen wir untersuchen, was sich

bei Regionen ändert.

Austrittsmöglichkeiten bei Regionen (graphisch)

Austritt aus einem

zusammengesetzten

Zustand

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

A B

C D

Austritt aus einem

inneren Zustand

Austritt

über Vereinigung

Barbara König Modellierung 315

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Beschreibung der Austrittsmöglichkeiten bei Regionen

(Fortsetzung):

Austritt über Vereinigung: ähnlich wie bei

Aktivitätsdiagrammen wird eine Vereinigung eingesetzt, um

mehrere Regionen zusammenzuführen. Der zusammengesetzte

Zustand kann nur verlassen werden, wenn man sich in den

Zuständen befindet, von denen Pfeile in die Vereinigung

hineinführen.

(Austritt nur, wenn man sich in B und D befindet.)

Barbara König Modellierung 317

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Beschreibung der Austrittsmöglichkeiten bei Regionen:

Austritt aus einem zusammengesetzten Zustand: dabei wird

der zusammengesetzte Zustand verlassen, egal in welchen

Unterzuständen man sich gerade befindet.

Austritt aus einem inneren Zustand: der zusammengesetzte

Zustand wird nur verlassen, wenn man sich in der jeweiligen

Region in dem Zustand befindet, der durch den Pfeil verlassen

wird. In den anderen Regionen kann man sich in beliebigen

Zuständen befinden.

(Austritt nur, wenn man sich in der ersten Region in B

befindet.)

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Barbara König Modellierung 316

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Wieder zurück zur Armbanduhr. Es gibt ein weiteres Problem:

wenn man aus der Alarmeinstellung zurückkehrt, ist die Zeit auf

0:00 zurückgesetzt!

Lösung: Verwendung des Eintritts über die (flache) Historie.

Da man im Fall der Zeitanzeige in zwei Regionen gleichzeitig

eintreten muss, verwenden wir eine Gabelung.

Barbara König Modellierung 318


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Alarm

on

b b

off

H

a

a

H

H

h

0

23

0

entry/beep

after(1 min)/h

59

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Was fehlt noch?

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Stunden

h h

h

1 2 . . .

h

22 21

Minuten

after(1 min) after(1 min)

. . .

1 2 . . .

after(1 min) after(1 min)

58

57

. . .

Barbara König Modellierung 319

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

� Beim Wechseln zwischen den Alarm-Zuständen (on,off) muss

ein Flag (genannt al) gesetzt werden, um damit den beep-Effekt zu

kontrollieren.

Dieses Flag muss mit Hilfe einer Bedingung im Minutenzustand 0

abgefragt werden.

Außerdem betreten wir den Zustand Alarm nun nicht mehr über

die flache Historie, sondern fragen mit Hilfe von Bedingungen ab,

wie al belegt ist. (Damit ist die Markierung des Anfangszustands

eigentlich überflüssig geworden.)

Barbara König Modellierung 321

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Weiteres Problem: wenn man längere Zeit im Alarm-Zustand

verbringt, so wird in dieser Zeit die Minuten-/Stundenanzeige nicht

entsprechend aktualisiert. Das Time Event (after(1 min)) bezieht

sich nur auf die Zeit, die seit dem Eintritt in den entsprechenden

Zustand vergangen ist.

Die Zeitanzeige müsste deshalb entsprechend aktualisiert werden.

Dieses Problem wird hier nicht gelöst.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

b/al=0

Alarm

on

off

b/al=1

a[al==1]

a

a[al==0]

Barbara König Modellierung 320

H

H

h

0

23

0

after(1 min)/h

59

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Stunden

h h

h

entry[al==1]/beep

1 2 . . .

h

22 21

Minuten

. . .

after(1 min) after(1 min)

1

after(1 min) after(1 min)

58

Barbara König Modellierung 322

57

. . .

. . .


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Wir modellieren, dass die Batterie der Uhr kaputtgehen kann und

gewechselt werden muss.

In diesem Fall will man den zusammengesetzten Zustand nicht

über die flache oder tiefe Historie betreten! Es wird also hier

tatsächlich die Zeit auf 0:00 zurückgesetzt.

Außerdem setzen wir das Flag al beim Einsetzen der Batterie

zurück auf den Anfangswert 1.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Barbara König Modellierung 323

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Ein großer Teil der Modellierungsmöglichkeiten von

Zustandsautomaten dient dazu, Zustandsdiagramme kompakt und

übersichtlich zu notieren.

Oft kann man Zustandsdiagramme “flachklopfen” und

zusammengesetzte Zustände auflösen, wodurch man äquivalente

Zustandsdiagramme erhält, die die gleichen Übergänge erlauben.

Dabei erhält man jedoch im allgemeinen mehr Zustände und/oder

Transitionen.

Wir sehen uns einige Beispiele an . . .

Barbara König Modellierung 325

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

b/al=0

Alarm

on

off

b/al=1

a[al==1]

a

a[al==0]

H

H

h

0

23

0

after(1 min)/h

Uhr

59

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Stunden

h h

h

entry[al==1]/beep

Batterie kaputt

1 2 . . .

h

22 21

Minuten

. . .

after(1 min) after(1 min)

1

after(1 min) after(1 min)

58

Batterie geht kaputt Neue Batterie wird eingesetzt/al=1

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Barbara König Modellierung 324

57

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Beispiel 1: Wandeln Sie folgendes Zustandsdiagramm in ein

“flaches” Zustandsdiagramm um:

f

A

B

a

b

e

C

c d

D

Barbara König Modellierung 326

. . .

. . .


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Lösung zu Beispiel 1:

f

A

B

e

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

a

b

e

C

c d

Idee: die Transition, die von dem zusammengesetzten Zustand

wegführt, durch mehrere Transitionen ersetzen, die von den inneren

Zuständen ausgehen.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Lösung zu Beispiel 2:

A

a

D

Barbara König Modellierung 327

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

b c

(B,E) (C,E) (D,E)

e e e

(B,F)

h

b c

(C,F)

(D,F)

Idee: Kreuzprodukt der Zustandsmengen der Regionen bilden.

h

G

Barbara König Modellierung 329

g

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Beispiel 2: Wandeln Sie folgendes Zustandsdiagramm in ein

“flaches” Zustandsdiagramm um:

a b c

A B C D

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

G

e

E F

h

Barbara König Modellierung 328

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Beispiel 3: Wandeln Sie folgendes Zustandsdiagramm in ein

“flaches” Zustandsdiagramm um:

A

a f

B

b

e

H

C

c d

D

x

X

Barbara König Modellierung 330

g


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Lösung zu Beispiel 3:

A(C)

a f a f

B(C)

b

A(D)

B(D)

e

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

C

c d

Idee: in den äußeren Zuständen muss man sich merken, aus

welchem Zustand man den zusammengesetzten Zustand verlassen

hat. Dies führt zu zusätzlichen Zuständen.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

b

e

D

x

Barbara König Modellierung 331

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Zusammenfassung:

Nach Harel werden Zustandsdiagramme bzw. deren Eigenschaften

durch folgende “Formel” beschrieben:

UML-Zustandsdiagramme =

Zustandsübergangsdiagramme + Tiefe + Orthogonalität

(+ Broadcast-Kommunikation)

Dabei steht “Orthogonalität” für die Parallelität, die durch

Regionen erreicht werden kann.

Barbara König Modellierung 333

X

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Zustandsdiagramme

Weitere Elemente von Zustandsdiagrammen:

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Unterscheidung zwischen verschiedenen Arten von

Ereignissen: call event, signal event, change event, time event,

any receive event

Verzögern und Ignorieren von Ereignissen

Entscheidungen und Kreuzungen

Rahmen und Wiederverwendung von Zustandsdiagrammen

Außerdem: Generalisierung und Spezialisierung von

Zustandsdiagrammen

Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 332

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Sequenzdiagramme (sequence diagrams) sind die bekanntesten

Vertreter von Interaktionsdiagrammen in UML.

Sie dienen dazu, um Kommunikation und Interaktion zwischen

mehreren Kommunikationspartnern zu modellieren und beruhen

auf dem Basiskonzept der Interaktion:

Interaktion

Eine Interaktion ist das Zusammenspiel von mehreren

Kommunikationspartnern.

Typische Beispiele: Versenden von Nachrichten, Datenaustausch,

Methodenaufruf

Barbara König Modellierung 334


Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Sequenzdiagramme waren bereits vor Aufnahme in die UML unter

dem Namen message sequence charts bekannt.

Im Gegensatz zu Aktivitätsdiagrammen oder Zustandsdiagrammen

beschreiben sie im allgemeinen nicht alle Abläufe eines Systems,

sondern nur einen oder mehrere mögliche Abläufe.

Sequenzdiagramme

Beispiel Restaurant

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Petra

:Gast

Menü bringen

bestellen

Getränk servieren

Essen servieren

Barbara König Modellierung 335

Robert

:Kellner

bestellen

Essen abholen

bezahlen

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Ina

:Köchin

Mustafa

:Kassierer

Barbara König Modellierung 337

Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Sequenzdiagramme beschreiben Interaktionen in zwei Dimensionen:

Von links nach rechts: Anordnung der Kommunikationspartner

als Lebenslinien

Oft wird der Partner, der den Ablauf initiiert, ganz links

angegeben.

Von oben nach unten: Zeitachse

Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Kommunikationspartner

Barbara König Modellierung 336

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Die Kommunikationspartner in einem Sequenzdiagramm werden

ähnlich wie in Objektdiagrammen als Rechtecke notiert.

Manchmal werden die Rechtecke auch weggelassen. Menschliche

Partner werden auch durch ein Strichmännchen symbolisiert:

Von jedem Kommunikationspartner führt eine gestrichelte

Lebenslinie nach unten.

Barbara König Modellierung 338


Sequenzdiagramme

Ausführungsbalken

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Aktivitäten eines Kommunikationspartners werden durch

sogenannte Ausführungsbalken dargestellt.

Parallele Tätigkeiten eines Kommunikationspartners werden dabei

durch übereinander liegende Ausführungsbalken beschrieben (siehe

rechts oben).

Während die Balken aktive Zeit anzeigen, symbolisieren die

gestrichelten Linien passive Zeit.

Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Synchrone und asynchrone Nachrichten

Barbara König Modellierung 339

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Bei synchroner Kommunikation warten Sender und Empfänger

aufeinander. Der Sender macht erst dann weiter, wenn er weiß,

dass der Empfänger die Nachricht erhalten hat. Sie wird durch eine

schwarze ausgefüllte Pfeilspitze dargestellt.

Barbara König Modellierung 341

Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Nachrichten

Die Nachrichten beschreiben die Kommunikationen bzw.

Interaktionen der Kommunikationspartner und werden durch Pfeile

dargestellt. Eine Nachricht hat einen Sender und einen Empfänger.

Die Stellen, an denen die Pfeile auf den Lebenslinien auftreffen,

nennt man auch Sendeereignis und Empfangsereignis.

Sendeereignis

Sequenzdiagramme

Sender

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Name der Nachricht

Empfänger

Empfangsereignis

Barbara König Modellierung 340

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Synchrone und asynchrone Nachrichten (Fortsetzung)

Bei asynchroner Kommunikation wartet der Sender nicht darauf,

dass der Empfänger die Nachricht erhalten hat. Er arbeitet einfach

weiter. Die Nachricht wird durch eine einfache Pfeilspitze wird

dargestellt.

Bei asynchronen Nachrichten kann es zu einer Zeitverzögerung

zwischen Sende- und Empfangsereignis kommen, die durch einen

geneigten Pfeil beschrieben wird (siehe oben rechts).

Barbara König Modellierung 342


Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Bei asynchroner Kommunikation (aber nicht bei synchroner

Kommunikation) kann auch der Fall eintreten, dass sich

Nachrichten überholen oder kreuzen.

Das Überholen der Nachrichten (oben links) ist nur dann nicht

möglich, wenn man explizit einen FIFO-Kanal fordert.

Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 343

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Es ist jedoch möglich, eine Nachricht an sich selbst zu schicken.

:Gast

Gericht aussuchen

Bei einer synchronen Nachricht sollte man dabei parallele

Ausführungsbalken verwenden, da das Sende- und

Empfangsereignis parallel stattfinden müssen.

Barbara König Modellierung 345

Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Was jedoch nicht möglich ist, ist eine Nachricht, die “rückwärts”

in der Zeit läuft und vor dem Senden ankommt.

Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 344

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Nachrichten, die als Antworten auf frühere Nachrichten gedacht

sind, werden durch gestrichelte Pfeile notiert. Dabei sollte der

Name der ursprünglichen Nachricht wiederholt werden.

Nachfrage

Antwort auf Nachfrage

Barbara König Modellierung 346


Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Wir machen uns nun Gedanken über die Reihenfolge der Ereignisse

in einem Sequenzdiagramm. Dazu ist es nützlich sich

klarzumachen, was eine (partielle) Ordnung ist.

Partielle Ordnung

Gegen sei eine Menge X . Eine partielle Ordnung auf X ist eine

Relation R ⊆ X × X mit folgenden Eigenschaften:

Reflexivität: für jedes x ∈ X gilt (x, x) ∈ R

Transitivität: aus (x1, x2) ∈ R und (x2, x3) ∈ R für

x1, x2, x3 ∈ X folgt (x1, x3) ∈ R.

Antisymmetrie: aus (x1, x2) ∈ R und (x2, x1) ∈ R für

x1, x2 ∈ X folgt x1 = x2.

Sequenzdiagramme

Totale Ordnung

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 347

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Eine partielle Ordnung ≤ heißt total, wenn für zwei beliebige

Elemente x1, x2 ∈ X immer x1 ≤ x2 oder x2 ≤ x1 gilt.

Beispiele:

Die ≤-Relation auf den ganzen Zahlen Z ist eine totale

Ordnung.

Ein typisches Beispiel für eine partielle Ordnung, die nicht

total ist, ist die Inklusionsordnung ⊆ auf Mengen.

Barbara König Modellierung 349

Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Weitere Bezeichnungen:

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Partielle Ordnung bezeichnet man oft mit dem Zeichen ≤ und

notiert in Infix-Schreibweise (x1 ≤ x2 statt (x1, x2) ∈ R).

Wir schreiben x1 < x2, falls x1 ≤ x2 und x1 �= x2.

Vorsicht: Die Relation < ist selbst keine partielle Ordnung.

Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 348

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Reflexiv-transitive Hülle

Für eine gegebene Relation R ⊆ E × E beschreiben wir deren

reflexiv-transitive Hülle R ∗ . Man erhält sie aus R, indem man

alle Paare (e, e) mit e ∈ E zu R hinzufügt und

bei (e1, e2), (e2, e3) ∈ R auch (e1, e3) zu R hinzufügt. Dieser

Prozess wird so lange wiederholt, bis keine neuen Paare mehr

hinzukommen.

Die reflexiv-transitiv Hülle R ∗ einer Relation R ist immer

reflexiv und transitiv. Sie ist jedoch nicht immer

antisymmetrisch und daher nicht notwendigerweise eine

Ordnung.

Die Relation R ∗ ist die kleinste reflexive und transitive

Relation, die R enthält.

Barbara König Modellierung 350


Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Beispiel: Zugrundeliegende Menge E = {1, 2, 3, 4, 5}

Die reflexiv-transitive Hülle von

ist

Sequenzdiagramme

Petra

:Gast

P1

P2

P3

P4

P5

Menü bringen

bestellen

R = {(1, 2), (2, 3), (3, 4), (3, 5)}

R ∗ = {(1, 2), (2, 3), (3, 4), (3, 5),

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Robert

:Kellner

R3

Getränk servieren

R5

Essen servieren

R1

R2 bestellen

R4

Essen abholen

R6

bezahlen

(1, 1), (2, 2), (3, 3), (4, 4), (5, 5),

(1, 3), (1, 4), (1, 5), (2, 4), (2, 5)}

Barbara König Modellierung 351

Ina

:Köchin

I1

I2

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Mustafa

:Kassierer

M1

R1 < P1 < P2 <

R2 < R3 < I1 <

R4 < P3 < I2 <

R5 < R6 < P4 <

P5 < M1

Barbara König Modellierung 353

Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Die Elemente von Sequenzdiagrammen, die nun geordnet werden,

sind die Ereignisse, d.h., Sende- und Empfangsereignisse.

In den Sequenzdiagrammen, wie wir sie bisher kennengelernt

haben, sind die Ereignisse immer total geordnet, nach folgendem

Schema:

(Sendeereignis der Nachricht N) < (Empfangsereignis von N)

Die restlichen Ereignisse sind entsprechend dem zeitlichen

Verlauf geordnet.

Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 352

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

In einem einfachen Sequenzdiagramm (Erweiterungen werden noch

besprochen) werden daher die Ereignisse immer in eine Reihenfolge

gebracht. Die Ordnung ist daher total. Im folgenden Diagramm gilt

beispielsweise:

A1 < B1 < C1 < D1

A1

A B C D

B1

C1 D1

Barbara König Modellierung 354


Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Nicht so günstig sind Diagramme, aus denen die Reihenfolge von

Nachrichten nicht klar hervorgeht:

A1

A B C D

A B

B1 C1 D1

Insbesondere ist die Darstellung echter Parallelität in

Sequenzdiagrammen nicht vorgesehen.

Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 355

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Bisher haben wir gesehen, wie man mit einem Sequenzdiagramm

einen möglichen Ablauf beschreiben kann. In manchen Fällen

möchte man jedoch mehrere (vielleicht sogar alle) Abläufe

beschreiben.

Dazu gibt es die Möglichkeit, kombinierte Fragmente zu

verwenden, bei denen mehrere (Interaktions-)Operanden (=

Teil-Sequenzdiagramme) mit Hilfe von Interaktions-Operatoren

zusammengesetzt werden.

Wir betrachten im folgenden einige dieser Interaktions-Operatoren.

Barbara König Modellierung 357

Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Äquivalenz von Sequenzdiagrammen

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Zwei Sequenzdiagramme sind äquivalent, wenn sie die gleichen

Ereignisse enthalten und die Reihenfolge der Ereignisse identisch

ist.

Dabei können die Diagramme durchaus verschieden gezeichnet sein

(andere Reihenfolge der Kommunikationspartner, verschiedene

Abstände zwischen den Ereignissen, . . . ).

Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Interaktionsoperator par (Parallelität)

Barbara König Modellierung 356

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Hier sind die Operanden in beliebiger Reihenfolge ausführbar. Die

Reihenfolge der Ereignisse in den Operanden muss aber gewahrt

werden, ansonsten gibt es keine Bedingungen.

par

:X :Y

X1 Y1

X2 Y2

X3 Y3

Dabei wird der Operator par

links oben in der Ecke

angegeben.

Eine gestrichelte waagrechte

Linie trennt die verschiedenen

Operanden.

Barbara König Modellierung 358


Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Nachrichten, die von einem Operanden in einen anderen laufen,

sind nicht zugelassen.

Sequenzdiagramme

par

X1

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

:X :Y

Y1

Barbara König Modellierung 359

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Weitere Bemerkungen: um die Ereignis-Ordnung innerhalb eines

par-Operators zu bestimmen . . .

verwendet man die partiellen Ordnungen der einzelnen

Operanden (≤1, ≤2)

und vereinigt diese. Die Vereinigung ≤1 ∪ ≤2 ist ebenfalls

eine partielle Ordnung und beschreibt alle möglichen

Reihenfolgen von Ereignissen.

Jede Ereignisreihenfolge, bei der ein Ereignis X immer vor einem

Ereignis Y auftritt, falls X


Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Ordnung auf den Ereignissen:

X1 < Y1 < Z1 < W1 (Operand 1)

X2 < Y2 (Operand 2)

X1 < X2 (Lebenslinie von X)

Y1 < Y2 (Lebenslinie von Y)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Dieses Sequenzdiagramm beschreibt neun verschiedene Abläufe,

beispielsweise:

X1, X2, Y1, Z1, W1, Y2

X1, Y1, X2, Y2, Z1, W1

. . .

Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 363

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Bei Interaktions-Operanden ist es außerdem möglich, zusätzliche

Ordnungsbeziehungen einzuführe, die ansonsten nicht abgedeckt

sind. (Durch gestrichelte Linien mit Pfeil in der Mitte.)

par

X1

X2

:X

:Y :Z :W

Y1

Y2

Z1 Z2

Die neue partielle Ordnung kann man hier dadurch bestimmen,

indem man die neuen Paare hinzufügt und die reflexiv-transitive

Hülle der Gesamtrelation bildet.

Barbara König Modellierung 365

Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Weitere Bemerkungen: um die Ereignis-Ordnung innerhalb eines

seq-Operators zu bestimmen . . .

verwendet man die partiellen Ordnungen der einzelnen

Operanden (≤1, ≤2),

außerdem die partiellen Ordnungen der einzelnen Lebenslinien

(≤X , ≤Y , . . . ),

vereinigt diese und bestimmt die reflexiv-transitive Hülle.

Dabei entsteht eine partielle Ordnung, die alle möglichen

Reihenfolgen von Ereignissen beschreibt.

Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 364

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Weitere Interaktions-Operatoren (Liste ist nicht vollständig):

strict (Strikte Sequenz): Die Reihenfolge der Ereignisse wird

von oben nach unten strikt eingehalten (wie in einem

einzelnen Operanden).

alt (Alternative): entspricht einer If-Then-Else-Anweisung (mit

Bedingungen)

neg (Negation): beschreibt eine ungültige

Nachrichtenreihenfolge

loop (Schleife): beschreibt die Wiederholung eines Operanden

Barbara König Modellierung 366


Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Beispiel: wir modellieren ein Protokoll, bei dem ein

Client-Rechner S einen E-Mail an einen anderen Client R

verschickt.

Weitere Beteiligte sind der Mail-Server von S, der Mail-Server

von R und der DNS-Server, der benötigt wird, um Mail-Adressen

in die IP-Adressen des entsprechenden Servers umzuwandeln (DNS

= domain name system).

Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 367

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Bemerkung: dieses Sequenzdiagramm ist an den Ablauf im

SMTP-Protokoll angelehnt (SMTP = send mail transport

protocol), ist jedoch erheblich vereinfacht.

Sequenzdiagrammen zu vielen TCP/IP-Netzwerkprotokollen findet

man unter:

http://www.eventhelix.com/Realtimemantra/Networking/

Barbara König Modellierung 369

Sequenzdiagramme

S1

:Client

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Mail einliefern

S2

:Server

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

par Mail ausliefern

Bestätigung Einliefern

Sequenzdiagramme

Frage nach IP-Adresse

IP-Adresse von E2

E2

:DNS :Server

Kontaktaufnahme

Verifiziere, ob

Name von S2 korrekt

Antwort Verifikation

Bestätigung der Kontaktaufnahme

Verschicken der Mail

Bestätigen der Mail

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

E1

:Client

Bestätigung Ausliefern

Barbara König Modellierung 368

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Es gibt noch einige weitere Arten von Nachrichten:

Gefundene und verlorene Nachrichten

Bei gefundenen und verlorenen Nachrichten werden das Sendebzw.

das Empfangsereignis nicht explizit modelliert. Die

Nachrichten tauchen quasi aus der Umgebung auf und

verschwinden wieder dorthin.

Solche Nachrichten

werden benötigt, wenn

die entsprechenden

Kommunikationspartner

nicht mitmodelliert

werden.

Lärm

Gefundene Nachricht

Ruhe!

Verlorene Nachricht

:Person

schließen

:Fenster

Barbara König Modellierung 370


Sequenzdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Erzeugung und Dekonstruktion von Objekten

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Außerdem kann es passieren, dass Objekte nicht während des

ganzen Ablaufs zur Verfügung stehen. Sie können während des

Ablaufs dynamisch erzeugt und wieder zerstört werden.

Dies erfolgt zumeist durch

sogenannte Erzeugungs- und

Dekonstruktionsnachrichten

und wird folgendermaßen

dargetellt:

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Kommunikationsdiagramme

:Zentrale

Erzeugungsnachricht

eröffnen

:Filiale

schließen

Dekonstruktionsnachricht

Barbara König Modellierung 371

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Das Sequenzdiagramm Restaurantbesuch Diagramm wird

folgendermaßen als Kommunikationsdiagramm dargestellt:

Petra

:Gast

Mustafa

:Kassierer

7: bezahlen

1: Menü bringen

2: bestellen

4: Getränk servieren

6: Essen servieren

Robert

:Kellner

3: bestellen

5: Essen abholen

Ina

:Köchin

Barbara König Modellierung 373

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Kommunikationsdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Kommunikationsdiagramme enthalten dieselbe Information wie

Sequenzdiagramme, werden jedoch anders dargestellt.

Während bei Sequenzdiagrammen der Fokus eher auf dem

zeitlichen Ablauf liegt, heben Kommunikationsdiagramme eher die

Kommunikationsbeziehungen der Teilnehmer hervor.

Kommunikationsdiagramme gehören – genau wie

Sequenzdiagramme – zur Klasse der Interaktionsdiagramme.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Kommunikationsdiagramme

Barbara König Modellierung 372

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Dabei werden die Kommunikationspartner wie bisher durch

Rechtecke oder Strichmännchen dargestellt. Es wird jedoch kein

zeitlicher 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 die

Reihenfolge an. Durch Buchstaben hinter den Nummern

(2a,2b,. . . ) beschreibt man parallele Nachrichten, die in beliebiger

Reihenfolge angeordnet sein können.

Barbara König Modellierung 374


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Überblick über weitere UML-Diagramme

Wir schließen die Vorlesung mit einem kurzen Überblick über die

noch fehlenden Typen von UML-Diagrammen ab.

Zuletzt gibt es dann noch ein paar Abschlussbemerkungen.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 375

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Überblick über weitere UML-Diagramme

UML-Diagramme (blau: bereits behandelte Diagramme)

Klassendiagramm

Komponentendiagramm

Kompositionsstrukturdiagramm

Strukturdiagramme

Objektdiagramm

Verteilungsdiagramm

Paketdiagramm

Sequenz-

diagramm

Diagramme

der UML

Verhaltensdiagramme

Aktivitäts- Anwendungsfalldiagramm

diagramm

Interaktionsdiagramme

Kommunikationsdiagramm

Zustands-

diagramm

Interaktionsübersichtsdiagramm

Zeitverlaufs-/

Timing-Diagramm

Barbara König Modellierung 377

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Überblick über weitere UML-Diagramme

UML-Diagramme Liste

Klassendiagramm

Komponentendiagramm

Kompositionsstrukturdiagramm

Strukturdiagramme

Objektdiagramm

Verteilungsdiagramm

Paketdiagramm

Sequenzdiagramm

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Diagramme

der UML

Interaktionsdiagramme

Verhaltensdiagramme

Aktivitäts- Anwendungsfalldiagramm

diagramm

Kommunikationsdiagramm

Zustands-

diagramm

Interaktionsübersichtsdiagramm

Zeitverlaufs-/

Timing-Diagramm

Barbara König Modellierung 376

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Überblick über weitere UML-Diagramme

Wir beginnen zunächst mit den beiden noch fehlenden Arten von

Interaktionsdiagrammen:

Timing-Diagramme bzw. Zeitverlaufsdiagramme

Interaktionsübersichtsdiagramme

Barbara König Modellierung 378


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Timing-Diagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Timing-Diagramme sind in der Elektrotechnik weit verbreitet und

zeigen an, zu welchem Zeitpunkt welcher Kommunikationspartner

welchen Zustand einnimmt.

Dabei wird von links nach rechts (horizontal) die Zeit aufgetragen

und von oben nach unten werden die Kommunikationspartner und

deren Zustände aufgetragen.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Interaktionsübersichtsdiagramme

Barbara König Modellierung 379

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Interaktionsübersichtsdiagramme sind im wesentlichen

Aktivitätsdiagramme, die – anstatt der Aktionen – hierarchisch

weitere Interaktionsdiagramme (Sequenzdiagramme,

Kommunikationsdiagramme, Timing-Diagramme) enthalten

können.

Sie werden eingesetzt, wenn es eine größere Menge verschiedener

Arten von Aktionen gibt, über die man sonst nur schwer den

Überblick behalten kann.

Als Beispiel betrachten wir ein Interaktionsübersichtsdiagramm,

das den Ablauf eines Freistosses in einem Fussballspiel modelliert.

Barbara König Modellierung 381

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Timing-Diagramme

Beispiel: Ampelschaltung

:Autoampel

:Fussgaengerampel

gruen

gelbrot

gelb

rot

gruen

rot

0 10 20 30

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Interaktionsübersichtsdiagramme

ref Mauer

positionieren

sd Fussball positionieren

:Schuetze

ref

0..3 sec Freistoss

freigeben

sd Freistoss ausfuehren

schiessend

laufend

stehend

:Fussball :Schuetze

fliegend

ruhend

sec

positionieren

0 1 2 3

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Sekunden

Barbara König Modellierung 380

:Fussball

[ruhend]

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

[Fussball nach links]

sd Linkssprung

:Torwart

nach links

springen

sd Fussball fangen

:Torwart

fangen

sd Stehenbleiben

[Fussball gerade]

stehen

bleiben

:Fussball

[fliegend]

[Fussball nach rechts]

sd Rechtssprung

:Torwart :Torwart

nach rechts

springen

Barbara König Modellierung 382


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Interaktionsübersichtsdiagramme

Bemerkungen:

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Interaktionsreferenzen (Schlüsselwort ref) werden verwendet,

um an anderer Stelle definierte Interaktionsdiagramme

wiederzuverwenden.

Anstatt der Aktionen wie in Aktivitätsdiagrammen werden

ganze Interaktionsdiagramme verwendet, die alle sd als

Diagrammtyp für Interaktionsdiagramme erhalten.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Anwendungsfalldiagramme

Beispiel: Restaurant

Gast

1

1

1..*

1..*

Gericht bestellen

Gericht verspeisen

Rechnung bezahlen

Mit Kreditkarte

bezahlen

Barbara König Modellierung 383

Restaurant

≪include≫

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Kreditkarte prüfen

Kellner

≪actor≫

Kreditkartengesellschaft

Barbara König Modellierung 385

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Anwendungsfalldiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

In frühen Stadien der Entwicklung und bei der Kommunikation mit

dem Auftraggeber spielen auch Anwendungsfalldiagramme (engl.

use case diagrams) eine grosse Rolle.

Anwendungsfalldiagramme modellieren die Funktionalität des

Systems

auf einem hohen Abstraktionsniveau;

aus der Black-Box-Sicht des Anwenders (d.h., nur das von

außen Sichtbare soll beschrieben werden, nicht die interne

Realisierung);

durch Spezifikation der Schnittstellen.

Die Anwender bzw. Nutzer tauchen als sogenannte Akteure in den

Diagrammen auf.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Anwendungsfalldiagramme

Barbara König Modellierung 384

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Anwendungsfalldiagramme bestehen aus folgenden Komponenten:

Systemgrenze

Die Systemgrenze ist ein Rechteck, das beschreibt, was sich

außerhalb und innerhalb des zu erstellenden Systems befindet.

Restaurant

Barbara König Modellierung 386


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Anwendungsfalldiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Akteur

Ein Akteur ist ein Typ oder eine Rolle, die ein externer Benutzer

oder ein externes System während der Interaktion mit dem System

einnimmt. Menschliche Akteur werden durch Strichmännchen

symbolisiert, andere Akteure durch ein Rechteck, das mit dem

Schlüsselwort ≪actor≫ gekennzeichnet ist

Gast

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Anwendungsfalldiagramme

≪actor≫

Kreditkartengesellschaft

Barbara König Modellierung 387

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Assoziation

Wie bei Klassendiagrammen gibt es Assoziationen, vor allem

zwischen Akteuren und Anwendungsfällen (welcher Akteur kann

welchen Anwendungsfall nutzen?).

Assoziationen dürfen die üblichen Beschriftungen besitzen

(Multiplizitäten, etc.).

Gast

1 1..*

Restaurant

Gericht bestellen

Barbara König Modellierung 389

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Anwendungsfalldiagramme

Anwendungsfall

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Ein Anwendungsfall ist eine Menge von Aktionen, die von dem

System bereitgestellt werden und die einen Nutzen für einen oder

mehrere Akteure bringen. (D.h., es handelt sich dabei um eine Art

“Service” des Systems.) Ein Anwendungsfall wird durch eine

Ellipse dargestellt.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Anwendungsfalldiagramme

Generalisierung/Spezialisierung

Mit Kreditkarte

bezahlen

Barbara König Modellierung 388

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Anwendungsfälle können andere Anwendungsfälle spezialisieren,

d.h., sie können von ihnen erben. Dabei werden – wie bei Klassen –

auch alle Assoziationen geerbt.

Rechnung bezahlen

Mit Kreditkarte

bezahlen

Auch Spezialisierungsbeziehungen zwischen Akteuren sind möglich.

Barbara König Modellierung 390


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Anwendungsfalldiagramme

Include-Beziehung

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Bei einer Include-Beziehung wird modelliert, dass ein

Anwendungsfall die Funktionalität eines anderen Anwendungsfalles

auf jeden Fall nutzt. D.h., der zweite Anwendungsfall wird immer

als eine Art “Unterprozedur” aufgerufen.

Mit Kreditkarte

bezahlen

≪include≫

Kreditkarte prüfen

Es gibt auch sogenannte Extend-Beziehungen, bei denen ein

Anwendungsfall nur unter bestimmten Bedingungen in einen

anderen Anwendungsfall eingebunden wird.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Barbara König Modellierung 391

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Überblick über weitere UML-Diagramme

Wir sehen uns nun noch (ganz kurz) die fehlenden vier Typen von

Strukturdiagrammen an. UML-Übersicht

Kompositionsstrukturdiagramme

Paketdiagramme

Verteilungsdiagramme

Komponentendiagramme

Im weitesten Sinne dienen sie alle dazu die (übergeordnete)

Struktur bzw. Architektur eines Systems darzustellen.

Barbara König Modellierung 393

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Anwendungsfalldiagramme

Bemerkungen:

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Anwendungsfalldiagramme sollten nicht zu viele Details

enthalten.

Sie sind ein einfaches Mittel, um Anwenderwünsche zu

diskutieren und sollten nur eine grobe Sicht auf die

Funktionalität des Systems darstellen.

Bei Bedarf müssen bestimmte Anwendungsfälle dann noch

textuell oder mit Hilfe anderer UML-Diagramme genauer

beschrieben werden.

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Kompositionsstrukturdiagramme

Barbara König Modellierung 392

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Kompositionsstrukturdiagramme (engl. composite structure

diagrams) beschreiben die interne Struktur von Komponenten

(z.B. Klassen) in einer White-Box-Darstellung. Instanzen von durch

Komposition verbundenen Klassen werden dabei als sogenannte

Parts innerhalb der Klasse dargestellt.

:Fernsehgeraet

Port

SatEmpfangsAnlage

Antennenkabel

Antenneneingang

SatAusgang

SatKabel

Part

:SatReceiver

:SatAntenne

Barbara König Modellierung 394


Paketdiagramme

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Ein großes Softwaresystem muss in Pakete bzw. Module gegliedert

werden. Paketdiagramme (engl. package diagrams) beschreiben die

statische Struktur eines großen Systems durch Zusammenfassen

von Klassen in Paketen.

bank

kundenverwaltung personalverwaltung

Kunde

kontenverwaltung

Konto

Angestellter

Girokonto Sparkonto

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Komponentendiagramme

Barbara König Modellierung 395

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Komponentendiagramme (engl. component diagrams) beschreiben

im Gegensatz dazu die Software-Architektur eines Systems. Es

beantwortet die Frage, wie Klassen zur Laufzeit zu größeren

Komponenten zusammengefasst werden und welche Schnittstellen

(Services) angeboten und genutzt werden.

≪component≫

MailEingang

≪component≫

MailAusgang

Betrieb

überwachen

≪component≫

≪use≫

MailManagement

Mail

abholen

Barbara König Modellierung 397

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Verteilungsdiagramme

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Verteilungsdiagramme (engl. deployment diagrams) beschreiben

die Hardware-Komponenten, die in einem System benutzt werden

und wie diese in Beziehung stehen.

Sie können auch konkrete physische Informationseinheiten

(Dateien, etc.) enthalten, die als Artefakte bezeichnet werden.

Host

:Mehrprozessorsystem

1

1

≪Internet≫

1

≪WLAN≫

0..50

≪LAN≫

0..10

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Abschließende Bemerkungen

:PC

0..50

:Laptop

:PC

UML als semi-formale Modellierungsmethode

≪deploy≫

≪deploy≫ ≪artifact≫

≪deploy≫

:DBClient

Barbara König Modellierung 396

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

UML ist eine semi-formale Modellierungsmethode, d.h., nicht bei

jedem Sprachelement gibt es vollständige Einigkeit über die

Bedeutung.

Trotz dieser Kritik ist die UML ein großer Fortschritt gegenüber

früher genutzten Modellierungsmethoden, da sie vereinheitlichte

Diagramme bereitstellt, die von jedem Beteiligten am

Softwareentwicklungsprozess verstanden werden können.

Barbara König Modellierung 398


Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Abschließende Bemerkungen

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Konsistenz von Modellen

Bei der Beschreibung eines großen Systems durch mehrere Modelle

ist auch darauf zu achten, dass die Modelle untereinander

konsistent sind. (Beispielsweise: Klassennamen, die in einem

Sequenzdiagramm verwendet werden, tauchen auch im

Klassendiagramm auf.)

Es gibt Ansätze, solche Konsistenz (halb-automatisch) zu

erreichen, indem man sogenannte Modelltransformationen

durchführt und verschiedene Diagramme ineinander übersetzt.

Barbara König Modellierung 399

Einführung in die Modellierung

Petrinetze

Unified Modeling Language (UML)

Abschließende Bemerkungen

Klassen- und Objektdiagramme

Verhaltensdiagramme

Überblick über weitere UML-Diagramme

Es gibt noch viele Aspekte in der UML, die wir nicht betrachtet

haben. Ein wichtiger Teil der UML ist beispielsweise die OCL

(Object Constraint Language), eine formale Beschreibungssprache,

in der man zusätzliche Bedingungen und Invarianten ausdrücken

kann.

Weitergehende Informationen über UML gibt es in zahllosen

Büchern (siehe Literaturliste) und auf den Seiten der OMG (Object

Management Group):

http://www.omg.org/technology/documents/formal/uml.htm

Und natürlich gibt es neben UML und Petri-Netzen noch

zahlreiche andere Modellierungsmethoden!

Barbara König Modellierung 400

Weitere Magazine dieses Users
Ähnliche Magazine