Foundations of System Development



Ähnliche Dokumente
Foundations of Systems Development

Test-Driven Design: Ein einfaches Beispiel

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

Netzwerken ohne Strom Allianz deutscher Designer AGD

Einführung Spezifikation von Software-Systemen

Vorankündigung Die Verlagsleitung und der Erfolgsautor der Blauen Business-Reihe ist auf der Frankfurter Buchmesse 2007 vertreten.

Algorithmen & Datenstrukturen 1. Klausur

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

Windows Server 2012 R2 Essentials & Hyper-V

die wichtigsten online-tools für augenoptiker websites

PROC GCHART HBAR Zeilenumbruch in Achsenbeschriftung

Rapide An Event-Based Architecture Definition Language

NODELOCKED LIZENZ generieren (ab ST4)

Reaktive Programmierung Vorlesung 16 vom : Theorie der Nebenläufigkeit

1 Worum es geht Es werden n-dimensionale Hypercubi oder Hyperwürfel in isometrischer Projektion vorgestellt.

Grundlagen der Programmierung (Vorlesung 14)

Foundations of System Development

Lösungsvorschlag für die Probeklausuren und Klausuren zu Algebra für Informations- und Kommunikationstechniker bei Prof. Dr.

iris-laviris.de Lavaschmuck aus Berlin NinePixel.de

Fakultät Angewandte Informatik Lehrprofessur für Informatik

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

30 min locker Laufen (wenn du außer Atem bist, mache eine kurze Gehpause) min locker Laufen. Gehpause)

Ausbildung zum zertifizierten Trainer

Über Arrays und verkettete Listen Listen in Delphi

Technical Note 24 SMS Versand über analoge und ISDN Leitungen (Festnetz-SMS)

Dirk Riepe; Lerneinheit 3: Microsoft Excel: Statische Investitionsrechnung

Übungsblatt 8 Lösungen:

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 : [ ]))?

Funktional-logische Programmierung in Maude

Skripte. Beispiel. M. Fyta Computergrundlagen 73/93

Übung - Installieren eines Drucker in Windows Vista

Wie beantrage ich den mobilen TAN-Service im Online-Banking?

SZ Digital. Bedienungsanleitung zum Löschen geladener Ausgaben in der SZ Digital -App. Windows 8. Kurz- und Langversion

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

Dateisysteme. Lokale Linux Dateisysteme. Michael Kürschner (m

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

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

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

Programmierkurs Java

5. Übung: PHP-Grundlagen

8. Bintec Router Redundancy Protocol (BRRP) 8.1 Einleitung

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

teischl.com Software Design & Services e.u. office@teischl.com

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

Rainer Stropek cubido. Baumschule Expression Trees in C#, CLR und DLR

Motivation. Motivation

Stapellift LW Die Produktivität der Schneidmaschine erhöht sich um bis zu 10%, da die Arbeitshöhe beim Be-/Entladen konstant bleibt

Finanzwirtschaft. Teil II: Bewertung

Übungen zur Softwaretechnik

KONZEPTE UND ERFAHRUNGEN ZUM EINSATZ EINES DIGITALEN SCHULBUCHS IM MATHEMATIKUNTERRICHT. Dr. Andreas Pallack Aldegrever-Gymnasium Soest

Klassendefinitionen verstehen

Wie Fernsehen die Aufmerksamkeit steuert

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

Kommunalwahl 2014 Stolberg

RVK. Volksinitiative Für eine öffentliche Krankenkasse. 14. Juni Pascal Strupler, Direktor BAG

Projektierungsmatrix Geräteschutzschalter CB TM1 F1 Planungshilfe für die Sekundärseite Ihrer Stromversorgung

Print2CAD 2017, 8th Generation. Netzwerkversionen

Sortierte Folgen 250

Angewandte Ökonometrie, WS 2012/13, 1. Teilprüfung am Lösungen. Das folgende Modell ist ein GARCH(1,1)-Modell:

Test: Wie sehr wird Ihr Lebensalltag durch den Schmerz bestimmt?

QISPOS. Benutzerhandbuch Prüfungsanmeldung. für. Die Rolle: Student

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Virtuelle COM-Schnittstelle umbenennen

Lernprogramm "Veröffentlichen von WMS- Services"

Seminar Model-Based Testing - Preorder. Marcel Bosling

my f lyer.de Datenblätter für Register DIN A5 mit 5 / 6 / 7 / 8 / 9 / 10 / 11 / 12 Blättern Wählen Sie bitte die passende Blattzahl aus.

Aufgabe 2: HRU-Beispiel Fernuni

TEIL 1 Live Online Support für Komponenten und Lieferantenteile NTRglobal und CADENAS. (c) CADENAS Dipl.-Ing.

CATCH ME IF YOU CAN! Grundlagenstudie zur Multi-Screen-Nutzung. Key Facts

Kapitel MK:IV. IV. Modellieren mit Constraints

Was ist Logische Programmierung?

Benutzeranleitung. Neue Immobilie erstellen. Mietverträge kaufen, erstellen, ändern. Benutzerkonto ändern. Haus & Grund

SAAGE TREPPEN... wir machen s einfach.

Prüfungsvorbereitung: Präsentation und Anwenderschulung

Virtualisierung als Chance für die Organisation. Vortragender: Dipl.-Ing. Rainer Wendt, PMP, CBAP Systemhaus SAR GmbH, Baesweiler

Informatik Grundlagen, WS04, Seminar 13

Bei der Benutzung des NetWorker Client Configuration Wizards könnten Sie die Namen Ihrer Datenbanken verlieren

Fachtagung. Content Management Systems. Targeting. Online Marketing Suite. Namics.

Bei Verwendung von Internet Explorer 9 und höher (für Internet Explorer 8 siehe nachfolgende Seiten ab Seite 5)

Ein subjektiver Vergleich zwischen SSIS und Kettle mit Ausblick auf die Generierung von BI-Lösungen

Anleitung OpenCms. Einfügen eines Template-Umschalters für den Wechsel zwischen mobiler und Dektop-Ansicht

Summenbildung in Bauteiltabellen mit If Then Abfrage

VBA-Programmierung: Zusammenfassung

Business Intelligence Praktikum 1

Als eine Art interaktive Werbeanzeige haben sich Banner Weltweit durchgesetzt.

Ihre Informationen zum neuen Energieausweis.

Vorkurs Informatik WiSe 15/16

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra

Design by Contract with JML

PDF-Dateien erstellen mit edocprinter PDF Pro

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1

FÜR 2 BIS 4 SPIELER AB 8 JAHREN

Grundlagen der Künstlichen Intelligenz

CRM-Anpassung. Passen Sie CRM On Demand perfekt an Ihre Geschäftsprozesse

Künstliches binäres Neuron

Computer Vision I. Nikos Canterakis. Lehrstuhl für Mustererkennung, Universität Freiburg,

Bauteilattribute als Sachdaten anzeigen

Systemisches Projektmanagement - Komplexe Projekte sicher(er) zum Erfolg führen

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder


Transkript:

Foundations of System Development Martin Wirsing in cooperation with Axel Rauschmayer WS 05/06 Vergleich am Beispiel der Uhr: Maude und TLA 2

1. Uhr in TLA TLA spezifiziert die Menge aller möglichen (unendlichen) Abläufe der Uhr: 3 2. Uhr in Maude (algebraische Spez.) Maude spezifiziert alle möglichen Zustände der Uhr: fmod CLOCK is 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 4

2. Testen der Uhr in Maude (algebraische Spez.) 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 5 2. Uhr mit Sekundenangabe in Maude (algebraische Spez.) fmod CLOCK2 is sort State2. op init2 : -> State2 [ctor]. op tick2 : State2 -> State2 [ctor]. op hr : State2 -> Nat. op min : State2 -> Nat. op sec : State2 -> Nat. var s : State2. eq sec(init2) = 0. eq sec(tick2(s)) = if sec(s) < 59 then sec(s) + 1 else 0 fi. eq min(init2) = 0. eq min(tick2(s)) = if sec(s) < 59 then min(s) fi.... else if min(s) < 59 then min(s) + 1 else 0 fi 6

2. Uhr mit Sekundenangabe in Maude (algebraische Spez.)... eq hr(init2) = 0. eq hr(tick2(s)) = if (sec(s) < 59 or min(s) < 59) then hr(s) else if hr(s) < 23 then hr(s) + 1 else 0 fi fi. endfm 7 3. Uhr in Maude (Termersetzungssystem) Das Ersetzungssystem spezifiziert alle möglichen Zustandsübergange der Uhr: mod CLOCK-MACHINE is 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). endm 8

3. Testen der Uhr in Maude (Termersetzungssystem) 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 > 9 3. Verfeinerung MTLA: Verfeinerung als Implikation CLOCK2 => CLOCK Maude: Wechsel der Datenstruktur CLOCK2 als Verfeinerung von CLOCK: Erweitere CLOCK2 um passendes Minuten-Tick zu CLOCK-BY-CLOCK2 Konstruiere Umbenennung σ: sig(clock) > sig(clock-by-clock2) Dann gilt: CLOCK-BY-CLOCK2 simuliert bzgl. σ, d.h. CLOCK-BY-CLOCK2 > σ CLOCK 10

3. Verfeinerung Erweiterung von CLOCK2 fmod CLOCK-BY-CLOCK2 is protecting CLOCK2. op tick : State2 -> State2. var s : State2. eq tick(s) = tick2(tick2( tick2(s) )). endfm 60-mal Umbenennung σ: sig(clock) > sig(clock-by-clock2) σ(state) = State2, σ(init) = init2 Simulationsbeweis Ax(CLOCK-BY-CLOCK2) => Ax(CLOCK[State2/State, init2/init]) 11 Zusammenfassung: TLA vs. Maude TLA Temporal Logic of Actions : Spezifikation der Menge aller möglichen (unendlichen) Abläufe der Abläufe der Uhr Verfeinerung als Implikation Maude Algebraische Spezifikation Spezifikation der möglichen Zustände der Uhr Ablesen der Zeit durch Beobachtungsfunktionen (min, hr) Verfeinerung als Wechsel der Datenstruktur Maude Dynamisches Verhalten Spezifikation der Zustandsübergange der Uhr Testen endlicher Abläufe 12

Vielen Dank für Ihre Aufmerksamkeit und Mitarbeit! Axel Rauschmayer und ich wünschen Ihnen viel Erfolg in der Klausur und eine angenehme vorlesungsfreie Zeit! Auf Wiedersehen! 13