Foundations of Systems Development



Ähnliche Dokumente
Foundations of System Development

Motivation. Motivation

Reaktive Programmierung Vorlesung 16 vom : Theorie der Nebenläufigkeit

Binäre Suchbäume (binary search trees, kurz: bst)

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Mai Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln

Bisher. Wiederholung NFA Modellierung durch NFA Kripke-Struktur

Semantik von Formeln und Sequenzen

Test-Driven Design: Ein einfaches Beispiel

1 Mathematische Grundlagen

VBA-Programmierung: Zusammenfassung

Zusammenfassung. Satz. 1 Seien F, G Boolesche Ausdrücke (in den Variablen x 1,..., x n ) 2 Seien f : B n B, g : B n B ihre Booleschen Funktionen

Gliederung. Programmierparadigmen. Sprachmittel in SCHEME. Objekte: Motivation. Objekte in Scheme

Objektorientierte Programmierung OOP

Logik für Informatiker

Grundlagen von Python

Programmierparadigmen

Objektorientierte Programmierung

Formeln. Signatur. aussagenlogische Formeln: Aussagenlogische Signatur

Software-Engineering SS03. Zustandsautomat

Praktische Mathematik: Lineare und Netzwerk-Optimierung (SS 2015) Praktikumsaufgaben

Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen

Softwaretechnologie -Wintersemester 2013/ Dr. Günter Kniesel

Fragen. f [ ] = [ ] f (x : y : ys) = x y : f ys f (x : xs) = f (x : x : xs) Wozu evaluiert f [1, 2, 3] (Abkürzung für f (1 : 2 : 3 : [ ]))?

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen

Sudoku-Informatik oder wie man als Informatiker Logikrätsel löst

Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler

GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen. Teil 1: Einführung: Wissensbasis und Ontologie.

Übungen zur Softwaretechnik

DSL Entwicklung und Modellierung

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Seminar Model-Based Testing - Preorder. Marcel Bosling

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick

Informationsblatt Induktionsbeweis

Timed Automata (Zeitbeschriftete Automaten) [R. Alur: Timed Automata]

4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum

Algorithmen & Datenstrukturen 1. Klausur

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

6.2 Petri-Netze. kommunizierenden Prozessen in der Realität oder in Rechnern Verhalten von Hardware-Komponenten Geschäftsabläufe Spielpläne

Print2CAD 2017, 8th Generation. Netzwerkversionen

Terme stehen für Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes)

Mathematik. UND/ODER Verknüpfung. Ungleichungen. Betrag. Intervall. Umgebung

Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014

Generelle Einstellungen

Theoretische Grundlagen des Software Engineering

SWE5 Übungen zu Software-Engineering

Grundlagen des Maschinellen Lernens Kap. 4: Lernmodelle Teil II

Grundbegriffe der Informatik

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Wie lässt sich die Multiplikation von Bruchzahlen im Operatorenmodell und wie im Größenmodell einführen?

Nachweis der Verhaltensäquivalenz von Feldbus-Komponenten auf unterschiedlichen Abstraktionsebenen

Finanzwirtschaft. Teil II: Bewertung

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

Lineare Gleichungssysteme

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

Dialognetze. Ziel : Beschreibung von Methoden und Beschreibungstechniken für den Entwurf und die Dokumentation von Dialogabläufen

Einführung in. Logische Schaltungen

Primzahlen und RSA-Verschlüsselung

Datentypen. Agenda für heute, 4. März, Pascal ist eine streng typisierte Programmiersprache

UserManual. Handbuch zur Konfiguration einer FRITZ!Box. Autor: Version: Hansruedi Steiner 2.0, November 2014

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie

Übung: Verwendung von Java-Threads

Professionelle Seminare im Bereich MS-Office

Was ist Logische Programmierung?

Was bisher geschah. Aufgaben: Diagnose, Entscheidungsunterstützung Aufbau Komponenten und Funktion

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Bevor lineare Gleichungen gelöst werden, ein paar wichtige Begriffe, die im Zusammenhang von linearen Gleichungen oft auftauchen.

Programmieren Lernen mit BYOB. Gerald Futschek 5. November 2012

Theorie der Informatik

Otto-von-Guericke-Universität Magdeburg

Modellierung biologischer. Christian Maidorfer Thomas Zwifl (Seminar aus Informatik)

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Wasserfall-Ansätze zur Bildsegmentierung

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

LINGO: Eine kleine Einführung

Kapitel MK:IV. IV. Modellieren mit Constraints

Grammatiken. Einführung

Rekursionen. Georg Anegg 25. November Methoden und Techniken an Beispielen erklärt

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Hardware - Software - Net zwerke

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt 5 1.1: VHDL 28./

Produktskizze. 28. November 2005 Projektgruppe Syspect

2. Vorlesung. Slide 40

Es gibt zwei Wege die elektronischen Daten aus Navision zu exportieren.

Softwaretechnologie -Wintersemester 2011/ Dr. Günter Kniesel

Data Mining: Einige Grundlagen aus der Stochastik

1 topologisches Sortieren

Übungsklausur vom 7. Dez. 2007

Verhaltensanalysegraph für Petrinetze

Vorkurs Informatik WiSe 15/16

Teile und Herrsche Teil 2

Version Deutsch In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen.

Use Cases. Use Cases

Einführung in die Fuzzy Logic

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

Mathematische Maschinen

Transkript:

Foundations of Systems Development Vergleich und Zusammenfassung Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer WS 2007/08

2 Ziele Wichtige Aspekte von algebraischen Spezikationen Termersetzungssystemen Prozessalgebra Temporaler Logik zusammenfassen. Maude, CCS und TLA am Beispiel der Uhr vergleichen.

1. Algebraische Spezifikation der Uhr in Maude Ein algebraische Spezifikation des Datentyps der Uhr in Maude: fmod CLOCK is protecting NAT. sort State. op init : -> State [ctor]. op tick : State -> State [ctor]. op hr : State -> Nat. op min : State -> Nat. var s : State. eq min(init) = 0. eq min(tick(s)) = if min(s) < 59 then min(s) + 1 else 0 fi. eq hr(init) = 0. eq hr(tick(s)) = if min(s) < 59 then hr(s) else if hr(s) < 23 then hr(s) + 1 else 0 fi fi. endfm 3 Jeder Zustand hat die Form: tick( tick(init) ) M-mal Strukturelle Rekursion über init und tick

1. Algebraische Spezifikation 4 Algebraische Spezifikationen dienen zur formalen Modellierung von Datentypen (Domainmodell) und von funktionalen Eigenschaften. Eine algebraische Spezifikation (Σ, E) besteht aus einer Signatur Σ zur Angabe der Datentypen und Operationen einer Schnittstelle einer Menge E von Σ-Formeln zur Spezifikation der Eigenschaften der Operationen von Σ ; meist schränkt man sich auf Gleichungen oder bedingte Gleichungen ein. Durch Konstruktoren zeichnet man die Menge der Datenelemente aus; in zustandsbasierten Systemen beschreibt man mit Konstruktoren die Menge der möglichen Zustände. Beziehungen zwischen den Konstruktoren beschreibt man durch Gleichungen; typische Beziehungen sind Kommutativität, Assoziativität, neutrales Element, Idempotenz und Distributivität.

1. Algebraische Spezifikation 5 Nichtkonstruktor-Operationen definiert man typischerweise (wie in funktionalen Sprachen) mittels struktureller Rekursion über den Konstruktoren. Die Sprache Maude unterstützt die Implementierung und Simulation von ordnungssortierten Gleichungsspezifikationen.

6 1. Testen der algebraischen Spezifikation der Uhr in Maude Hilfsfunktion zum Generieren des Zustands gentick(s, M) generiert den Zustand nach M ticks : op gentick : State Nat -> State. var S : State. var M : Nat. eq gentick(s, 0) = S. eq gentick(s, s M) = tick(gentick(s, M)). Testbeispiele Beobachtung des Zustands nach 112 ticks ) reduce in CLOCK : min(gentick(init, 112)). rewrites: 561 in 9287ms cpu (4ms real) (60 rewrites/second) result NzNat: 52 ========================================== reduce in CLOCK : hr(gentick(init, 112)). rewrites: 25377 in 3148026001ms cpu (244ms real) (0 rewrites/second) result NzNat: 1

7 2. Termersetzungssystem für die Uhr in Maude mod CLOCK-MACHINE is protecting NAT. including CONFIGURATION. op CLOCK : -> Cid. op min :_ : Nat -> Attribute. op hr :_ : Nat -> Attribute. op tick : -> Msg. var C : Oid. vars M M1 H H1 : Nat. crl [tick] : tick < C : CLOCK hr : H, min : M > => < C : CLOCK hr : H1, min : M1 > if M1 := (if M < 59 then M + 1 else 0 fi ) /\ H1 := (if M < 59 then H else if H < 23 then H + 1 else 0 fi fi). Gleichungsspezifikation: Beschreibt den Zustandsraum als Multimenge von Nachrichten (Msg) und Objekten <c: ClassName attribute : value > Termersetzungsregel konsumiert die Nachricht tick endm Das Ersetzungssystem spezifiziert alle möglichen Zustandsübergange der Uhr.

8 2. Termersetzungssysteme Termersetzungssysteme werden eingesetzt zur operationellen Beschreibung von Datenstrukturen und zur operationellen Modellierung zustandsbasierter nebenläufiger Systeme. Rewriting Logic bildet eine mathematische wohldefinierte Grundlage zur Modellierung nebenläufiger verteilter Systeme, einschließlich objektorientierter Systeme. Dynamisches Verhalten und insbesondere nebenläufige Transitionen werden mittels Termersetzungsregeln (rewrite rules) definiert. Eine Rewrite Theory (Σ, E, R) besteht aus einer Gleichungspezifikation (Σ, E) der Zustandsmenge und der Grundoperationen sowie einer Menge R von Termersetzungsregeln der Form l: t -> t if cond Verteilte Konfigurationen werden durch Terme dargestellt, wobei die Verteilungsstruktur algebraisch durch die initialen Algebren einer Gleichungstheorie definiert wird.

9 2. Testen des Maude Termersetzungssystems der Uhr Hilfsfunktion zum Generieren von tick op gentick : Nat -> Configuration. eq gentick(0) = none. eq gentick(s M) = tick gentick(m). Testbeispiel rewrite in CLOCK-MACHINE : gentick(137) < C : CLOCK min : 10, hr : 7 >. rewrites: 827 in 9999749470ms cpu (23ms real) (0 rewrites/second) result Object: < C : CLOCK min : 27, hr : 9 >

10 3. Prozessalgebra Der Prozessalgebra-Ansatz dient zur Modellierung des dynamischen Verhaltens reaktiver (nebenläufiger, verteilter, mobiler) Systeme: Alles wird als Prozess aufgefasst: Die Grundoperatoren sind Konstruktoren zum Bilden von Prozessen. Der aktuelle Zustand eines Systems wird durch einen Prozess(term) beschrieben. Das Verhalten wird ebenfalls durch einen Prozess(term) (bzw. eine Menge kooperierender Prozesse) beschrieben. Systemevolution basiert auf Prozesstransformation: Ein Prozess führt eine Aktion durch und wird zu einem anderen Prozess. Die Semantik von Prozessen wird durch markierte Transitionssysteme beschrieben, die mittels strukturierter operationeller Semantik spezifiziert werden. Wichtige Prozesskalküle sind CCS (Calculus of Communicating Systems), CSP (Communicating Sequential Processes), ACP (Algebra of Communicating Processes), LOTOS (Language Of Temporal Ordering Specification) π-calculus

11 3. Uhr in CCS In value passing CCS wird eine einfache Uhr spezifiziert durch ein System von 3660 Prozessen; jeder dieser Prozesse ist mit einem Zeitpunkt (h,m) indiziert und gibt diesen auf dem Kanal tick aus. Zeit wird hier gesehen als logische Zeit : Immer wenn ein tick gesendet wird (bzw. mit tick interagiert wird), schreitet die Zeit voran. In value passing CCS spezifizieren wir die Menge aller möglichen (unendlichen) Abläufe der Uhr. Stottern ist nicht erlaubt.

Temporale Logik 4. Temporale Logik ist eine Erweiterung der mathematischen Logik um Aussagen, deren Wahrheitswert zu verschiedenen Zeitpunkten unterschiedlich sein kann Linear Temporal Logic LTL verwendet diskrete lineare Zeit und hat als grundlegende Operatoren next (X), always (G), sometime (F) und until. Model Checking von PLTL ist PSPACE-vollständig. Computational Tree Logic CTL* verwendet diskrete Zeit mit Bäumen zur Darstellung der möglichen Entwicklungen der Zukunft Hat zusätzliche Pfadquantoren für alle Pfade, es gibt einen Pfad. CTL beschränkt Quantoren auf Form EX φ, EF φ, E[φ until ψ], AX φ, Model Checking von PCTL ist polynomial (bzgl. Zeit). 12

13 4. TLA TLA (Temporal Logic of Actions) erweitert LTL um spezielle Formeln zur Beschreibung von Zustandsübergängen (Aktionen). Eine Aktionsformel hat typischerweise die Form [A] v ( Wenn sich eines der v ändert, wird die Aktion A ausgeführt ), wobei v eine Liste von flexiblen Variablen ist, die (globale) Zustandskomponenten repräsentieren. Eine Systemspezifikation hat i.a. die Form wobei Init die Menge der Anfangszustäde spezifiziert und Next eine Disjunktion von Aktionen und L eine Konjunktion von Fairnessbedingungen ist. Verfeinerung und Strukturierung werden in TLA durch logische Operatoren ausgedrückt: Verfeinerung entspricht der Implikation, parallele Komposition der Konjunktion und die Kapselung der Existenzquantifizierung über flexible Variable. Eine wesentliche Voraussetzung dafür ist die Stotterinvarianz von TLA-Formeln.

4. Uhr in TLA 14 TLA spezifiziert die Menge aller möglichen (unendlichen) Abläufe der Uhr. Dabei ist Stottern erlaubt!

15 Zusammenfassung der Beispiele: Maude, CCS, TLA Algebraische Spezifikation in Maude Spezifikation der möglichen Zustände der Uhr Ablesen der Zeit durch Beobachtungsfunktionen (min, hr) Verfeinerung als Wechsel der Datenstruktur Dynamisches Verhalten in Maude Spezifikation der Zustandsübergange der Uhr Testen endlicher Abläufe CCS Calculus of Communicating Systems Spezifikation eines Systems von Prozessen; jeder dieser Prozesse gibt einen Zeitpunkt auf dem Kanal tick aus. Spezifikation der unendlichen nicht-stotternden Abläufe der Uhr Prozessäquivalenz durch Bisimulation oder Trace-Äquivalenz (oder weitere Äquivalenzbegriffe) TLA Temporal Logic of Actions Spezifikation der Menge aller möglichen stotternden unendlichen Abläufe der Abläufe der Uhr Verfeinerung als Implikation

16 Vielen Dank für Ihre Aufmerksamkeit und Mitarbeit! Moritz Hammer, Axel Rauschmayer und ich wünschen Ihnen viel Erfolg in der Prüfung und eine angenehme vorlesungsfreie Zeit!