Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer...

23
Technische Universität München Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung Wintersemester 2010/11 Prof. Dr. Dr. h.c. Manfred Broy Unter Mitarbeit von Dr. M. Spichkova, J. Mund, P. Neubeck Lehrstuhl Software & Systems Engineering

Transcript of Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer...

Page 1: Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen Startzustände sind

Technische Universität München

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Wintersemester 2010/11

Prof. Dr. Dr. h.c. Manfred Broy

Unter Mitarbeit von Dr. M. Spichkova, J. Mund, P. Neubeck

Lehrstuhl Software & Systems Engineering

Page 2: Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen Startzustände sind

Technische Universität München

Zustandssicht Systeme als Zustandsmaschinen

Page 3: Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen Startzustände sind

Technische Universität München

Broy SS 12: Modellierung verteilter Systeme

Einleitung

Systeme besitzen in der Regel Zustände

Verhalten eines Systems lässt sich durch Übergänge zwischen

Zuständen modellieren

Übergänge können gekoppelt sein mit (ausgelöst werden durch)

Aktionen

Ein- und Ausgabe

Beispiele

Rechner und Schaltungen Gatterzustand und Schaltvorgang

Imperative, zuweisungsorientierte Programme Variablenwerte, Programmzeiger und Zuweisungen, Sprünge

Anwendung bei formalen Sprachen Reguläre Sprachen als endliche Automaten, Buchstaben auf Übergängen

3

Page 4: Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen Startzustände sind

Technische Universität München

Broy SS 12: Modellierung verteilter Systeme 4

Definition: Nichtdeterministische Zustandsmaschine (ZM)

Page 5: Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen Startzustände sind

Technische Universität München

Broy SS 12: Modellierung verteilter Systeme

Beispiel: Zähler

Zustandsmenge entspricht den natürlichen Zahlen

Startzustand ist die Null

Übergang zur nächst größeren Zahl

counter(x) = {x + 1}

Interpretation als Programm: Zahl als Variable und wiederholtes

inkrementieren

Genau ein unendlicher Ablauf: 0,1, 2, …

0 1 2

5

Page 6: Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen Startzustände sind

Technische Universität München

Broy SS 12: Modellierung verteilter Systeme

Beispiel: Sortierer

Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen

Startzustände sind (, t) mit beliebiger Sequenz t

Die durch t gegebene Sequenz soll sortiert werden, so dass

schließlich ein Zustand (s, ) erreicht wird, wobei s der Sequenz

entspricht, die durch Sortieren aus t entsteht.

Forderung:

Von jedem Startzustand (, t) wird

nach endlich vielen Schritten der Endzustand (s, ) erreicht,

wobei s der Sequenz entspricht, die durch Sortieren aus t entsteht.

6

Page 7: Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen Startzustände sind

Technische Universität München

Broy SS 12: Modellierung verteilter Systeme

Beispiel: Sortierer - erzeugt aufsteigende Sortierung

Diagramm für Permutationen von 1, 2, 2

, 122 1, 22 12, 2 122,

, 212 2, 12

, 221 2, 21 22, 1

7

Page 8: Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen Startzustände sind

Technische Universität München

Broy SS 12: Modellierung verteilter Systeme

Definition: Erreichbare Zustände

Ein Zustand heißt erreichbar, wenn er in einem Ablauf enthalten ist.

Induktive Konstruktion der Menge R aller erreichbaren

Zustände

Andere Charakterisierung:

R ist die kleinste Zustandsmenge, die folgende Ungleichung für die

Menge R erfüllt

R

)(R 0

i1 (i)

R ii0U

8

Page 9: Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen Startzustände sind

Technische Universität München

Broy SS 12: Modellierung verteilter Systeme

Definition: Permanente Invariante & Stabiles Prädikat

Wir übertragen die Beweismethode der Induktion auf

Zustandsmaschinen:

Ein Prädikat auf Zuständen p: B heißt (permanente) Invariante,

wenn p für alle erreichbaren Zustände gilt

Ein Prädikat auf Zuständen p: B heißt stabil, wenn für alle

Zustände und ’ gilt:

p()'()p(')

9

Page 10: Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen Startzustände sind

Technische Universität München

Broy SS 12: Modellierung verteilter Systeme

Zusammenhang von Stabilität und Invarianz

Sei p: B ein Prädikat auf Zuständen einer ZM Δ 0, dann gilt:

Ist p stabil und gilt für jeden Anfangszustand 0 0, dann ist p eine

permanente Invariante.

Sei p: B eine permanente Invariante und q: B ein Prädikat

auf Zuständen. Gilt für jeden (erreichbaren) Zustand

dann ist auch q eine permanente Invariante.

p()q()

10

Page 11: Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen Startzustände sind

Technische Universität München

Broy SS 12: Modellierung verteilter Systeme

Definition: Nichtdet. ZM mit markierten Übergängen

Eine nichtdeterministische ZM mit markierten Übergängen Δ A, 0

besteht

aus einer Zustandsmenge ,

einer Aktionsmenge A,

Anfangszuständen 0 (oder einem 0 ) und einer

Zustandsübergangsfunktion Δa: () für jedes a A.

Eine Aktion a A heißt bereit im Zustand , wenn

Δa() ≠

gilt.

Wir schreiben dann enabled(a, )

11

Page 12: Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen Startzustände sind

Technische Universität München

Broy SS 12: Modellierung verteilter Systeme

Definition: Nichtdet. ZM mit markierten Übergängen

Für ‘ Δa() schreiben wir kurz

Eine ZM mit markierten Übergängen ist deterministisch,

wenn für jede Aktion a A und jeden Zustand die Menge der

Nachfolgezustände

{‘ : ‘ Δa() }

höchstens ein Element enthält.

a

12

Page 13: Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen Startzustände sind

Technische Universität München

Broy SS 12: Modellierung verteilter Systeme

Beispiel: Keller

Wir modellieren einen Keller über der Datenmenge Data mit

der Zustandsmenge Data*

den Aktionen

Astack = {initStack, pop} {top(d) : d Data} {push(d) : d Data}

und der Übergangsfunktion

initStack(s) {}

pop(s) { s :d Data :s d o s }

push(d)(s) { d os}

top(d)(s){s} falls first (s) d

sonst

13

Page 14: Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen Startzustände sind

Technische Universität München

Broy SS 12: Modellierung verteilter Systeme

Zustandsdiagramme

Ein Zustandsdiagramm ist ein gerichteter Graph.

Knoten heißen Kontrollzustände und stellen Mengen von Zuständen

dar.

Eine Zusicherung in einem Knoten charakterisiert dessen

Zustandsmenge

Bei markierten Zustandsmaschinen werden Kanten mit Aktionen

markiert

Kanten können mit einer Vorbedingung Q() und einer

Nachbedingung R(, ‘) genau spezifiziert werden.

Der Anfangszustand ist mit einem Pfeil mit Punkt als Anfang

gekennzeichnet.

14

Page 15: Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen Startzustände sind

Technische Universität München

Broy SS 12: Modellierung verteilter Systeme

Modellierung der Zustände mit Variablen/Attributen

Menge von Variablennamen (Identifikatoren) V

Menge von Variablenwerten M

Jede Variablenbelegung

: V M

beschreibt einen Zustand

Zustandsraum ist = (V M)

Den Variablen können Sorten zugeordnet sein

Prädikate über Zustände (Zusicherungen) werden über Variablen

formuliert

15

Page 16: Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen Startzustände sind

Technische Universität München

Broy SS 12: Modellierung verteilter Systeme

Zustandssicht Systeme als Zustandsmaschinen

16

Page 17: Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen Startzustände sind

Technische Universität München

Broy SS 12: Modellierung verteilter Systeme

Definition: Zustandsmaschinen mit Ein- und Ausgabe

Eine nichtdet. ZM Δ 0 mit Eingabealphabet I und

Ausgabealphabet O besteht aus einer Zustandsmenge ,

Anfangszuständen 0 (oder einem 0 ) und einer

Zustandsübergangsfunktion Δ: I ( O)

Solche ZM heißen auch Mealy-Automaten

Ausgabe hängt von Eingabe und Zustand ab

Spezialfall Moore-Automaten

Ausgabe hängt nur vom Zustand ab

Für (‘, o) Δa(, i) schreiben wir kurz

Notation für Übergänge in Diagrammen

oi /

'

17

Page 18: Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen Startzustände sind

Technische Universität München

Broy SS 12: Modellierung verteilter Systeme

Beispiel: Warteschlange als Zustandsmaschine

Sort Input = Data {®}

Sort Output = Data {®}

I = {(x : d) : d Input}

O = {(y : d) : d Output}

Empty Nonempty

x: d / - {q’ = q d}

{q = d} x: / y: d {q’ = }

{q = d q’ q’ =/= } x: / y: d

x: d / - {q’ = q d}

x: / y: {q’ = }

18

Page 19: Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen Startzustände sind

Technische Universität München

Broy SS 12: Modellierung verteilter Systeme

Darstellung von Zustandsmaschinen

Analytisch mit Mitteln der Mathematik und Logik

Graphisch mit Zustandsübergangsdiagrammen

Tabellarisch

Als Matrix

In der Notation einer Programmiersprache

19

Page 20: Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen Startzustände sind

Technische Universität München

Broy SS 12: Modellierung verteilter Systeme

Beispiel: Speicherzelle

Analytische Darstellung Graphische Darstellung

20

Page 21: Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen Startzustände sind

Technische Universität München

Broy SS 12: Modellierung verteilter Systeme

Tabellarische Darstellung

Eingabe in Zeilen, Zustände in Spalten

Deterministischer Mealy-Automat

Übergangstabelle: Zielzustand im Kreuzungspunkt

Ausgabetabelle: Ausgabezeichen im Kreuzungspunkt

Deterministischer Moore-Automat

Übergangstabelle, Kennzeichnung der Spalten mit Ausgabe

21

Page 22: Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen Startzustände sind

Technische Universität München

Broy SS 12: Modellierung verteilter Systeme

Tabellarische Darstellung ff.

Logikbasierte Tabelle

Bsp. Speicherzelle gemäß der Formel

(, a)={(‘,b)}

Jede Zeile definiert einen Übergang

Richtige Auswahl der logischen Formel erlaubt sehr kompakte

Darstellung

22

Page 23: Modellierung verteilter Systeme fileBroy SS 12: Modellierung verteilter Systeme Beispiel: Sortierer Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen Startzustände sind

Technische Universität München

Broy SS 12: Modellierung verteilter Systeme

Matrix-Darstellung

Mealy-Automat

|| = n; nn-Matrix (mij)

Existiert Übergang dann mij = x/y

Sonst mij = –

Moore-Automat

|| = n; nn-Matrix (mij); n-Vektor (vi)

Existiert Übergang dann mij = x und vi = y

Sonst mij = –

Six/y

Sj

Six/y

Sj

23