Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Ähnliche Dokumente
Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

c) {abcde, abcfg, bcade, bcafg} d) {ade, afg, bcde, bcfg} c) {abcabc} d) {abcbc, abc, a} c) {aa, ab, ba, bb} d) {{aa}, {ab}, {ba}, {bb}}

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Überblick. Modellbildung in der Entwicklung mit Schwerpunkt Architekturen Schnittstellen. Schnittstelle. Schnittstelle

Grundlagen der Informatik II

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Rekursiv aufzählbare Sprachen

Typ-1-Sprachen. Satz 1 (Kuroda ( ) 1964)

Funktionale Programmierung Teil 2 Methodik: Spezifikation, Implementierung, Verifikation

Stochastik I. Vorlesungsmitschrift

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

Grundlagen der Programm- und Systementwicklung. Anweisungen: Referenzen, Zeiger und organisierter Speicher

Probeklausur Lösungen

Transaktionen. Michael Löwe 04/15/16. FHDW Hannover, Freundallee 15, Hannover address:

Automaten und Formale Sprachen ε-automaten und Minimierung

Kongruenz modulo g definiert auf K[x] eine Äquivalenzrelation g : h g f h f ist durch g teilbar, und [f] g ist die Äquivalenzklasse von f.

2.4 Kontextsensitive und Typ 0-Sprachen

Analysis I - Stetige Funktionen

Diskrete Strukturen Kapitel 2: Grundlagen (Relationen)

Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014

Operationen auf endlichen Automaten und Transduktoren

Konstruktion der reellen Zahlen

Was bisher geschah: Formale Sprachen

Reguläre Sprachen und endliche Automaten

Herzlich willkommen!!!

Einführung in die Theoretische Informatik

Software & Systems Engineering - The Easy Way

Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012

Formale Methoden 1. Gerhard Jäger 9. Januar Uni Bielefeld, WS 2007/2008 1/23

Formale Methoden 2. Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2015/2016

Einführung in die Informatik

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen

Kapitel 7: Kellerautomaten und kontextfreie Sprachen

Klausur zur Akademischen Teilprüfung, Modul 2,

5.4 Endliche Automaten

Grundbegriffe der Informatik

Programmieren für Fortgeschrittene

Kapitel 1. Grundlagen Mengen

2. Übungsblatt 6.0 VU Theoretische Informatik und Logik

Einführung in die Theoretische Informatik

Formale Sprachen. Spezialgebiet für Komplexe Systeme. Yimin Ge. 5ahdvn. 1 Grundlagen 1. 2 Formale Grammatiken 4. 3 Endliche Automaten 5.

Kapitel 1. Grundlagen

Semestralklausur zu Modellierung verteilter Systeme

Das Banach-Tarski-Paradox

(1.18) Def.: Eine Abbildung f : M N heißt

Abschnitt 3: Mathematische Grundlagen

Grundlagen der Theoretischen Informatik

18 Höhere Ableitungen und Taylorformel

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14

Endliche Automaten. Endliche Automaten J. Blömer 1/23

Einführung Grundbegriffe

Grundbegriffe. Grammatiken

Protokoll-Spezifikationen

3 Bedingte Wahrscheinlichkeit, Unabhängigkeit

Automaten und Coinduktion

Konvergenz, Filter und der Satz von Tychonoff

8 Der Kompaktheitssatz und der Satz von Löwenheim und Skolem

Mengen. Eigenschaften. Spezielle Mengen (1) Prominente Mengen. ! Mengenzugehörigkeit

WS 2009/10. Diskrete Strukturen

Kapitel 2: Formale Sprachen Gliederung

Formale Sprachen und endliche Automaten

Streaming Data: Das Modell

Diskrete Strukturen. Abgabetermin: 15. Januar 2013, 14 Uhr in die DS Briefkästen

9. Primitivwurzeln. O. Forster: Einführung in die Zahlentheorie

GTI. Hannes Diener. 18. Juni. ENC B-0123,

Kapitel 1. Aussagenlogik

2 2 Reguläre Sprachen. 2.2 Endliche Automaten. Übersicht

Einführung in die Theoretische Informatik

Kapitel 3: Reguläre Grammatiken und Endliche. Automaten

5 Grundlagen der Zahlentheorie

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 4: Zahlentheorie

Sequenz- und Kommunikationsdiagrammen. Systemmodellierung mit SysML von Michel Manthey

1. Klausur zur Vorlesung Informatik III Wintersemester 2004/2005

MAA = MAB + B AA = B CA + CAA BA A Nun sehen wir mit Proposition 10.7 aus dem Skript, dass A M AB gelten muss.

Mathematik-Vorkurs für Informatiker (Wintersemester 2012/13) Übungsblatt 8 (Relationen und Funktionen)

Theoretische Informatik I

1 Formen und äußeres Differential

Ringe. Kapitel Einheiten

8. Turingmaschinen und kontextsensitive Sprachen

Interaktionsdiagramme in UML

Was bisher geschah Modellierung von Daten durch Mengen Beziehungen (Zusammenhänge und Eigenschaften) durch Relationen, Graphen und Funktionen

3 Numerisches Rechnen

Induktive Definition

2. Teilbarkeit. Euklidischer Algorithmus

Etwas Topologie. Handout zur Vorlesung Semi-Riemannsche Geometrie, SS 2004 Dr. Bernd Ammann

Semantik von Programmiersprachen

Mengenlehre. Aufgaben mit Lösungen

Grundbegriffe der Informatik

3 Allgemeine Algebren

7. Kongruenzrechnung Definition: Proposition: Korollar: Beispiel: b ( a kongruent b modulo n ) auf Z, definiert durch:

Grundbegriffe der Wahrscheinlichkeitsrechnung

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

Topologische Aspekte: Eine kurze Zusammenfassung

Kapitel 2. Kapitel 2 Natürliche und ganze Zahlen

Theoretische Informatik 2 bzw. Formale Sprachen und Berechenbarkeit. Sommersemester Herzlich willkommen!

Lösungen zu Übungsblatt 9

Dezimaldarstellung ganzer Zahlen (Division mit Rest) 1 Division mit Rest in der Hochschule

Kontextfreie Sprachen

Transkript:

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung Wintersemester 2009/10 Prof. Dr. Dr. h.c. Manfred Broy Unter Mitarbeit von Dr. K. Spies, Dr. M. Spichkova, L. Heinemann, P. Neubeck Lehrstuhl Software & Systems Engineering Broy WS 09/10: Modellierung verteilter Systeme

Schnittstellensicht: Diskrete Datenströme und Datenflussfunktionen Broy WS 09/10: Modellierung verteilter Systeme

Schnittstelle Eine Schnittstellensicht ist definiert durch eine eine Grenze zwischen einem System und seiner Umgebung eine Grenze zwischen Systemteilen Durch die Schnittstelle wird ein System von seiner Umgebung abgegrenzt Die Schnittstelle wird gegeben durch die Angabe, welche Arten von Informationen (allgemeiner Material, Energie etc.) zwischen System und Umgebung ausgetauscht werden die Wechselwirkungen zwischen System und Umgebung Broy WS 09/10: Modellierung verteilter Systeme

Schnittstellensicht Schnittstellensicht (Außenansicht) Interaktionsmuster, die bei Nutzung des Systems auftreten Welche Informationen zwischen dem System und seiner Umgebung ausgetauscht werden Wie System und Umgebung zusammenwirken Schnittstelle Alle relevanten Informationen über das Zusammenwirken des Systems mit seiner Umgebung Schnittstellenabstraktion Übergang von der internen Sicht zur Schnittstellensicht eines Systems Broy WS 09/10: Modellierung verteilter Systeme

Schnittstellenkompatibilität Ein System A heißt zu einem System B schnittstellenkompatibel wenn A in beliebigen Umgebungen durch B ersetzt werden kann, ohne, dass sich das aus Sicht der Umgebung das Verhalten ändert. Schnittstellenkompatibilität: keine Äquivalenzrelation eine partielle Ordnung Schnittstellenäquivalenz A schnittstellenkompatibel zu B ist und umgekehrt Syntaktische Schnittstelle: Festlegung, in welcher grundsätzlichen Form ein Informationsaustausch möglich ist

Programmiertechnisch: Schnittstelle Syntaktische (statische) Schnittstelle einer Komponente: Bestimmt, in welche Umgebungen ein Programm eingefügt werden kann, ohne dass es syntaktische Probleme gibt Semantische (dynamische) Schnittstelle (Verhalten) einer Komponente: Bestimmt die Interaktion (den Informationsaustausch) zwischen der Komponente und seiner Umgebung

Formen von Schnittstellen Gemeinsamer Speicher (vgl. parallele Komposition von Zustandsmaschinen mit überlappenden Zuständen) Informationsaustausch durch Nachrichten/Signale

Syntaktische Schnittstellen zum Nachrichtenaustausch: Kanäle Ein Kanal ist ein Medium für die Übertragung von Nachrichten: Der Datentyp (die Sorte) des Kanals gibt an, welche Nachrichtentypen übertragen werden Der Kanal überträgt Nachrichten sequentiell (eine Nachricht nach der anderen) gerichtet (nur in einer Richtung) vom Sender zum Empfänger Bemerkung: Es gibt eine Reihe unterschiedlicher Konzepte (Protokolle), wie die Übertragung der Nachrichten erfolgt (verzögert, gepuffert, synchron, asynchron,...) Wir betrachten zunächst eine elementare Form der Nachrichtenübertragung

Systeme mit Ein/Ausgabekanälen Ein System F mit Ein/Ausgabekanälen besitzt eine Menge von Eingabekanälen I eine Menge von Ausgabekanälen O jeder Kanal in I und O hat einen Identifikator und einen Typ Mit (I O) bezeichnen wir die syntaktische Schnittstelle des Systems c1: T1 f c3: T3 c2: T2 c4: T4

Zustandsmaschinen mit Ein- und Ausgabe über Kanäle Eine nichtdet. ZM (Δ, Σ 0 ) mit Ein- und Ausgabe über die Kanäle der syntaktische Schnittstelle (I O) benutzt als Eingaben Belegungen der Eingabekanäle und als Ausgaben Belegungen der Ausgabekanäle Eine Belegung x der eine Menge C von Kanälen ordnet jedem Kanal in C übertragene Nachrichten zu Sei M die Menge der Nachrichten; wir betrachten folgende Arten von Belegungen der Kanäle in C x: C M Genau eine Nachricht pro Kanal x: C M {-} Höchstens eine Nachricht pro Kanal x: C M* Eine Sequenz von Nachrichten pro Kanal Mit B[C] bezeichnen wir die Menge der Belegungen der Kanäle in C mit Sequenzen Die ZM mit Schnittstelle (I O) besteht dann aus einer Zustandsmenge Σ, Anfangszuständen Σ 0 Σ (oder einem σ 0 Σ) und einer Zustandsübergangsfunktion Δ: Σ B[I] (Σ B[O])

Tabelle für Berechnung einer Zustandsmaschine x 1 f A a B y 2 y 1 b x 2

Schnittstellenabstraktion x 1 f A a B y 2 y 1 b x 2

Schnittstellenverhalten Für ein System mit Ein- und Ausgabe über die Kanäle der syntaktische Schnittstelle (I O) definieren wir das Schnittstellenverhalten durch die Abbildung der Kanalgeschichten der Eingabekanäle auf die Kanalgeschichten der Ausgabekanäle Eine Kanalgeschichte entspricht der Belegung der Kanäle und der Ausgaben durch Datenströme Ein Datenstrom ist eine Folge (Sequenz) von Nachrichten

Unbeschränkte Datenströme Mit IN = {0, 1, 2,... } bezeichnen wir die natürlichen Zahlen Mit IN + = {1, 2,... } bezeichnen wir die echt positiven natürlichen Zahlen Sei M die Menge der Nachrichten; wir betrachten folgende Arten von unbeschränkten Strömen s: IN + M Unendlicher Strom von Nachrichten aus M s: IN + (M {-}) Unendlicher Strom von Nachrichten aus M mit leeren Stellen Mit M bezeichnen wir die Menge der unendlichen Ströme Mit (M*) bezeichnen wir die Menge der unendlichen Ströme von Sequenzen von Nachrichten aus M s: IN + M* Eine Sequenz von Nachrichten pro Kanal

Diskrete Zeit Ein Strom s: IN + M* kann als Kommunikationsgeschichte eines Kanals über der diskreten Zeit IN + gesehen werden. Die Zeit wird durch eine Folge von Zeitintervallen dargestellt. Jede Zahl t IN + bezeichnet dann ein Zeitintervall. Für jede Zeit t IN + bezeichnet dann s(t) die Sequenz der Nachrichten, die im Zeitintervall t gesendet wurde.

Belegungen von Kanälen mit Strömen Eine Belegung x der eine Menge C von Kanälen ordnet jedem Kanal in C den Strom der übertragenen Nachrichten zu Sei M die Menge der Nachrichten; wir betrachten folgende Arten von Belegungen x: C (IN + M) x: C (IN + M {-}) x: C (IN + M*) Mit IH[C] oder mit! C Genau eine Nachricht Höchstens eine Nachricht Eine Sequenz von Nachrichten bezeichnen wir die Menge der Belegungen der Kanäle mit Strömen Sequenzen von Nachrichten, die den Typen der Kanäle entsprechen

Schnittstellenverhalten: Verhaltensfunktionen Für ein System mit Ein- und Ausgaben über die Kanäle der syntaktischen Schnittstelle (I O) definieren wir sein Schnittstellenverhalten f durch die Abbildung der Kanalgeschichten der Eingabekanäle auf die Kanalgeschichten der Ausgabekanäle f :! I "! O Durch f wir jeder Eingabehistorie x (Belegung der Eingabekanäle durch Ströme) eine Ausgabehistorie y = f(x) (Belegung der Ausgabekanäle durch Ströme) Die Eigenschaften der Verhaltensfunktionen betrachten wir später.

Verhaltensmodell: Kanäle und Ströme

Schnittstellenmodell für Systeme

Beispiel: Spezifikation eines Systems a:t TMC a ~ b b:t

Schnittstellenzusicherung Eine Funktion f mit f :! I "! O erfüllt die Spezifikation mit Schnittstellenzusicherung Q, wenn gilt x, y: y = f(x) Q[x(i 1 )/i 1,..., x(i m )/i m, y(o 1 )/o 1,..., y(o n )/o n ] wobei I = {i 1,..., i m }, O = {o 1,..., o n }

Verifikation von Eigenschaften Aus Schnittstellenspezifikationen lassen sich Eigenschaften beweisen Sicherheit {m}#b > 0 TMC(a, b) {m}#a > 0 Lebendigkeit {m}#a > 0 TMC(a, b) {m}#b > 0

Schnittstellenabstraktion für Zustandsmaschinen Eine Zustandsmaschine (Δ, Λ) mit synt. Schnittstelle (I O) besteht aus Σ Zustandsmenge Λ Σ Anfangszustände Transitionsfunktion: Δ : Σ Ε Σ Α in nichtdeterministischer Version: wobei: Δ : Σ Ε (Σ Α) E = I M* A = O M*

Berechnungen Eine Zustandsmaschine (Δ, Λ) definiert für jeden Anfangszustand σ 0 Λ und jede Folge von Eingaben e 1, e 2, e 3,... E eine Folge von Zuständen σ 1, σ 2, σ 3,... Σ und eine Folge von Ausgaben a 1, a 2, a 3,... A durch (σ i+1, a i+1 ) Δ(σ i, e i+1 ) Ist die Zustandsmaschine (Δ, Λ) deterministisch und total, dann ist die Folge der Zustände und die Folge der Ausgaben durch den Anfangszustand und die Folge der Eingaben eindeutig bestimmt.

Schnittstellenabstraktion für det. Zustandsmaschinen Wir erhalten Berechnungen Für einen Anfangszustand σ definieren wir die Funktion durch a " 1 / b 1 a 0 ## $ " 2 / b 2 a 1 ### $ " 3 / b 3 2 ### $ " 3... f :! I "! O f σ (x) = y σ i : σ = σ 0 i IN: (σ i+1, x(i+1)) = Δ(σ i, y(i+1))} f σ heißt die Schnittstellabstraktion der Zustandsübergangsfunktion. Abs((Δ, σ )) = f σ

Ströme (1) Entsprechen endlichen und unendlichen Sequenzen von Datenelementen (Signalen, Nachrichten, Aktionen, Ereignisse, Zuständen) Dienen zur Darstellung der Folge von Datenelementen, die über ein sequentielles Kommunikationsmedium zur Übertragung geschickt werden Sorte α mit Trägermenge M = M { } steht für undefiniert Es gelte M = M \ { } sort Stream α hat die Trägermenge M ω M ω = M* M

Stromverarbeitende Funktionen (1): Operationen _&_ : α Stream α Stream α rest : Stream α Stream α first : Stream α α : Stream α _ˆ_: Stream α Stream α Stream α linksstrikt Axiome für x M first(x & s) = x rest(x & s) = s & s = (x & s 1 ) ˆ s 2 = x & (s 1 ˆ s 2 )

Zeitabstraktion Gegeben ein Strom x: IN + M* der aus einer Folge von Sequenzen besteht. Wir definieren die Zeitabstraktion timeabs: (IN + M*) M ω wie folgt: timeabs(s) = s(1)ˆs(2)ˆs(3)... Die Zeitabstraktion timeabs(s) ist endlich, genau dann, wenn in s nur für endlich viele t IN + nicht leer ist

Zeitabstraktion: Notation Abkürzend schreiben wir: timeabs(s) = s s bezeichnet die Zeitabstraktion von s

Time Abstraction s = 1 4 7 8 9 5 3 _ s = 1 4 7 8 9 5 3

Zeitunabhängigkeit Eine Verhaltensfunktion f :! I "! O heißt zeitunabhängig, wenn für alle x, x und y, y gilt f(x) = y f(x ) = y c I: timeabs(x(c)) = timeabs(x (c)) c O: timeabs(y(c)) = timeabs(y (c)) d.h. die Nachrichtenfolge timeabs(y(c)) in den Ausgabekanälen c O hängt nur von den Nachrichtenfolgen in den Eingabekanälen, aber nicht von deren Eingabezeitpunkten ab.

Zeitunabhängigkeit Ist f zeitunabhängig, f :! I "! O dann existiert zu I = {i 1,..., i n } für jeden Ausgabekanal c O eine Funktion auf Strömen f : M ω... M ω M ω mit f(x) = y f (timeabs(x(i 1 )),..., timeabs(x(i n )) ) = timeabs(y(c)) f heißt dann Zeitabstraktion für f

Stromverarbeitende Funktionen Zeitabstraktion führt auf stromverarbeitende Funktionen Wir können auch Algorithmen durch Funktionen auf Strömen darstellen

Stromverarbeitende Funktionen (3)

Stromverarbeitende Funktionen (4)

Stromverarbeitende Funktionen (5)

Stromverarbeitende Funktionen (6)

Beispiel: Das Sieb des Eratosthenes Unendlicher Strom aller Primzahlen:

Beispiel: Nutzer und System (1)

Beispiel: Nutzer und System (2)

Abschließende Bemerkungen Schnittstellenverhalten kann durch die Interaktionsgeschichten (Austausch der Nachrichten über die Zeit) erfasst werden Kanäle und Ströme sind ein Konzept für die Beschreibung von Schnittstellen Spezielle Zustandsmaschinen arbeiten auf Strömen Auch Algorithmen können über Ströme formuliert werden Später behandeln wir Komposition von Systemen über die Verbindung von Kanälen

Präfixordnung auf Strömen

Stromverarbeitende Funktionen (2) f : Stream T 1... Stream T n Stream M 1... Stream M m Monotonie: