Beruflich Dokumente
Kultur Dokumente
Modellierungssprachen Und Formalismen - Kap 5 - Verhalten - Folien 001-048
Modellierungssprachen Und Formalismen - Kap 5 - Verhalten - Folien 001-048
und Formalismen:
V Verhalten
Prof. Dr. Holger Giese
Raum A-2.6
Tel ++49 331 5509 314
Fax ++49 331 5509 429
Email holger.giese@hpi.uni-potsdam.de
Inhaltsübersicht
2
I Einleitung
II Grundlagen
III Funktion
IV Struktur
V Verhalten
VI Nebenläufiges Verhalten
VII Zusammengesetzte Modelle
VIII Zusammenfassung
V.1 Grundlagen
V.2 Abläufe
V.3 Automaten
V.4 Zusammenfassung
Beobachtung
Zustandsraum
Eingriff
Beobachtung
Zustandsübergänge
Zustandsraum
Eingriff?
Schnittstelle
Zustandsübergänge
Zustandsraum
Eingriff?
■ Häufig reicht es beim Verhalten aus, sich auf den Fall total
geordneter Ereignisse zu beschränken. Wir nennen ein
Verhaltensmodell sequentiell, wenn die betrachteten Ereignisse
total geordnet sind.
■ Wir können bei einem sequentiellen Verhalten die total geordneten
Ereignisse dazu nutzen, verschiedene Tatsachen für das ganze
Modell auf einmal (monolithisch) zu beschreiben:
□ Zustandsänderungen
□ Änderungen der Signalverläufe
□ Senden und Empfangen von Nachrichten
Zu klärende Fragen:
■ Welche Ausprägungen können Zustände haben?
□ Die Menge der Zustände müssen definiert werden.
■ Wie sehen die Schnittstellen prinzipiell aus?
□ Die Art und Weise der betrachteten Wechselwirkung muss festgelegt
werden.
■ Wie kann man das Verhalten sinnvoll definieren?
■ Welche Eigenschaften sind für Modelle mit Verhalten relevant?
■ Übliche Ablaufmodelle:
□ Ablaufpläne
□ Struktogramme (Nassi-Shneiderman-Diagramme)
■ Ablaufmodelle orientieren sich in der Beschreibung des
Verhaltens nur am Kontrollfluss (Datenfluss ist nicht
betrachtet)
■ Ablaufmodelle definieren meistens die Berechnung einer
Funktion (Algorithmus mit Eingabe am Anfang und Ausgabe
am Ende) und kein reaktives Verhalten (ständige Ein- und
Ausgabe).
1 2 3
Eingabe Algorithmus Ausgabe
(Funktion)
Bemerkungen:
■ Der Ablauf der Schritte wird nur als Abfolge von Zuständen auf
dem Weg zur Lösung gesehen.
■ Der Wert der Ausgabe (des Endergebnisses, manchmal auch des
Endzustandes) ist entscheidend.
Beispiel:
■ Mathematische Funktionen wie sqrt(x)
Modellierungssprachen und Formalismen | Kap V - Verhalten | Holger Giese
Elemente von
Ablaufplänen
15
Unterprogramm
Aufruf Aufruf weiterer Ablaufpläne
lese A,B
Q=(A+B)/2 lese A,B lese A,B
… Q=(A+B)/2
Q=(A+B)/2 …
Ablaufplan Struktogramm
Pseudocode
X < Xmax
nein
while X < Xmax X < Xmax
N := N + 1
SUM := SUM + X
| N := N+1
| X := X + N ja
N := N + 1
X := X + N
nein
Aufgabe:
zahl = 10
n Einleseneiner
Startzahl
summe = summe + zahl
n Addieren der
Startzahl, bis das durchgang = durchgang + 1
Ergebnis > 1000
n Zahlder Durchgänge nein
Summe > 1000?
zählen und ausgeben
ja
Ende
Lies zahl
wiederhole solange summe <= 1000
summe = summe + zahl
durchgang = durchgang + 1
Schreibe durchgang
Q = 17
Ablaufplan Struktogramm
Pseudocode
n:= 100
Aufgabe:
summe = 0
n Additionen aller Zahlen
von 1 bis n
summe = summe + n
n=n-1
nein
n <= 0?
ja
Rückgabe summe
Rückgabe 0
+ sum(3)
3 + sum(2)
2 + sum(1)
1 0 sum(0)
n fib(1)=1
Rückgabe summe
n ==0?
nein
ja
Rückgabe 0
Rückgabe 1
Modellierungssprachen und Formalismen | Kap V - Verhalten | Holger Giese
Fibonacci-Funktion
als Baum
29
+ fib(4)
+ fib(2) + fib(3)
0 fib(0) 1 fib(1)
+ fib(2)
1 fib(1)
0 fib(0) 1 fib(1)
Bemerkung: Die Anzahl der
Rekursionsschritte steigt extrem schnell an für
wachsende Eingabe!
Modellierungssprachen und Formalismen | Kap V - Verhalten | Holger Giese
Eigenschaften von
Abläufen (1/2)
30
Laufzeit:
■ Ist die Laufzeit überhaupt endlich (Terminierung)?
■ Laufzeitklassen: Gibt es eine Funktion f für die Eingabe n durch die wir die
Anzahl der benötigten Schritte steps(n) abschätzen können.
d.h. 9 c 9 x0 8 x ¸ x0: steps(x) · c f(x)
Beispiele:
■ konstant O(1)
Schritte
■ logarithmisch O(log(n))
■ linear O(n)
■ quadratisch (n2)
■ polynomiell O(nm) (für festes m)
n
■ exponentiell O(en)
x0
■ …
Modellierungssprachen und Formalismen | Kap V - Verhalten | Holger Giese
Einordnung
32
Eingabe
Reaktion
Zustände:
q2Q q
Anfangszustand:
q0
q0 2 Q
Akzeptierende Zustände:
q
q2F
a
Zustandsübergänge: q q‘
(q,a,q‘) 2 d
Modellierungssprachen und Formalismen | Kap V - Verhalten | Holger Giese
Beispiel:
Getränkeautomat
36
Mealy-Automat: O = {x,y}
Eine Ausgabefunktion l : Q £ S ! O*
ordnet den Zustandsübergängen
jeweils ein Wort über dem Ausgabe-
alphabet zu.
Moore-Automat: O = {x,y}
Eine Ausgabefunktion µ : Q ! O*
ordnet den Zuständen jeweils
ein Wort über dem Ausgabe-
alphabet zu. Es wird bei Erreichen
des Zustands ausgegeben.
Zustandseigenschaften:
■ atomaren Basisaussagen
AP = { empty, filled }
filled
■ Kennzeichnung L mit
empty
■ L0 (empty) = true, L0 (filled) = false
■ L1 (empty) = false, L1 (filled) = true
■ L2 (empty) = false, L2 (filled) = true
filled
Erreichbarkeit:
■ Alle Zustände sind erreichbar
■ Zustand “0” ist erreichbar für die
Worte “e”, “2EUR
GetränkNehmen”, “2EUR
GeldRück”, “1EUR GeldRück”,
“1EUR 1EUR GetränkNehmen”,
...
■ Zustand “1” ist erreichbar für die
Worte “1EUR”, ...
■ Zustand “2” ist erreichbar für die
Worte “2EUR”, “1EUR 1EUR”, ...
Invarianten:
■ atomaren Basisaussagen
AP = { empty, filled }
filled
■ Kennzeichnung L mit
empty
■ L0 (empty) = true, L0 (filled) = false
■ L1 (empty) = false, L1 (filled) = true
■ L2 (empty) = false, L2 (filled) = true
filled
■ Mögliche Invarianten
empty Æ filled ✕
empty Ç filled ✔
n Pragmatik/Zweck: n Adäquatheit:
mögliche Interaktion mit der n Vollständig:alle Eingaben und
Umgebung beschreiben Zustände abgedeckt?
n Abgedeckte Aspekte: n Korrektheit: Richtige
reaktives Verhalten Transitionen für Eingaben?