Formale Methoden: Ein Überblick



Ähnliche Dokumente
The B Method. B ist eine Methode zur Spezifikation zum Entwurf zur Implementierung von Software Systemen. Bücher zur B-Methode

Grundbegriffe der Informatik

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

DSL Entwicklung und Modellierung

Was ist Logische Programmierung?

IT-Basics 2. DI Gerhard Fließ

Prolog basiert auf Prädikatenlogik

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Seminar aus dem Bereich E-Learning

Grundlagen der Künstlichen Intelligenz

Fehlverhalten bei der Bedienung von Benutzungsschnittstellen. Henning Wachsmuth 1

Verhaltensanalysegraph für Petrinetze

Semantik von Formeln und Sequenzen

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln

Software Systems Engineering

Softwarequalität: Zusammenfassung und Ausblick. 17. Juli 2013

Konzentration auf das. Wesentliche.

Design by Contract with JML

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Xesar. Die vielfältige Sicherheitslösung

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Abschnitt 12: Strukturierung von Java-Programmen: Packages

Algorithmik II. SS 2003 Prof. Dr. H. Stoyan Lehrstuhl für Informatik 8 ( Künstliche Intelligenz) stoyan@informatik.uni-erlangen.

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Reaktive Programmierung Vorlesung 16 vom : Theorie der Nebenläufigkeit

Programmiersprachen und Übersetzer

Professionelle Seminare im Bereich MS-Office

Logische Folgerung. Definition 2.11

2.11 Kontextfreie Grammatiken und Parsebäume

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

Wärmebildkamera. Arbeitszeit: 15 Minuten

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

SEP 114. Design by Contract

Beweisbar sichere Verschlüsselung

1 Mathematische Grundlagen

Unternehmensleitbild. Vision Mission Werte Spielregeln

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Informationsblatt Induktionsbeweis

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

Grundbegriffe der Informatik

Assertions (Zusicherungen)

micura Pflegedienste München/Dachau GmbH

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

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

Schulinternes Curriculum für Informatik (Q2) Stand April 2015

Grundlagen der Theoretischen Informatik, SoSe 2008

Some Software Engineering Principles

Passung von Partnern: Der Einfluss von Persönlichkeitsmerkmalen auf Beziehungsqualitäten

Daten haben wir reichlich! The unbelievable Machine Company 1

Mächtigkeit von WHILE-Programmen

SCHULVERSUCH INFORMATIK IN BADEN-WÜRTTEMBERG. Gerhard Liebrich Peter-Petersen-Gymnasium Mannheim

Programmieren Lernen mit BYOB. Gerald Futschek 5. November 2012

Die richtigen Partner finden, Ressourcen finden und zusammenführen

Erfahrungen mit Hartz IV- Empfängern

QM: Prüfen -1- KN

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

Theoretische Informatik I

Lange Nacht der Wissenschaft. Ein Klassiker. Die Mathematik der Kürzesten Wege

Die Spezifikationssprachen Z und VDM. Michael Hildebrandt

Programmieren Formulierung eines Algorithmus in einer Programmiersprache

Theoretische Grundlagen des Software Engineering

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Grammatiken. Einführung

Arbeit zur Lebens-Geschichte mit Menschen mit Behinderung Ein Papier des Bundesverbands evangelische Behindertenhilfe e.v.

Einführung in die Informatik

Rhetorik und Argumentationstheorie.

Das Blabla des LiLi-Webteams. Browser. HTML-Dateien. Links & Webadressen. ROXEN.

Das Gewissen Sekundarstufe 1 2 Std.

Universität Paderborn Die Universität der Informationsgesellschaft. Validierung und Verifikation (inkl. Testen, Model-Checking, Theorem Proving)

Information zum wissenschaftlichen Arbeiten

fungen Debugging Boris Tripolskij

Mediation der Mitarbeiter oder Coaching des Chefs?

Objektorientierte Programmierung

KI im Weltall: Der Remote Agent

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Gesucht und Gefunden: Die Funktionsweise einer Suchmaschine

Grundbegriffe der Informatik

Lehrpläne NRW Sek.stufe 2. Lernen im Kontext

Naturgewalten & Risikoempfinden

Webseiten mit fragwürdigen Aufrufen von "spy & track" - Unternehmen

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

VBA-Programmierung: Zusammenfassung

T1 - Fundamentaler Testprozess

Kopfzeile. Inhaltsverzeichnis

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

Zeit lässt sich nicht wie Geld für schlechte Zeiten zur Seite legen. Die Zeit vergeht egal, ob genutzt oder ungenutzt.

BEISPIELKLAUSUR Softwareentwicklung:

CERTQUA-Servicecenter Nahtlose IT-Anbindung per Schnittstelle

Ein Vorwort, das Sie lesen müssen!

Sage 200 BI Häufige Fehler & Lösungen. Version

Use Cases. Use Cases

micura Pflegedienste Köln

Schulcurriculum Informationstechnische Grundkenntnisse und Informatik Stand:

Das in diesem Werk enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden.

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

Informatik. Christoph Treude. Elektronisches Geld. Studienarbeit

Transkript:

Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 1 Formale Methoden: Ein Überblick Heinrich Rust Lehrstuhl für Software-Systemtechnik BTU Cottbus 2004-09-16

Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 2 Szenario: der ideale Compiler Leistung: meldet neben Syntaxfehlern auch semantische Fehler Bedingung: Vorliegen einer präzisen, formalen und korrekten Spezifikation Korrektheitsprüfung für Spezifikation: letztlich nicht automatisierbar

Zwei Ziele formaler Methoden Präziser, vollständiger und verständlicher Ausdruck der Anforderungen Konsistenzrüfungen von Formalisierungen Verständnis der Anforderungen Formalisierungen Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 3

Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 4 Gliederung 1. Formale Methoden: Geisteshaltung oder Werkzeugkasten 2. Ultra-High-Level-Programmiersprachen 3. Abstraktion in Spezifikationsnotationen 4. Anwendungsbereiche: Abstrakte Datentypen und nebenläufige Prozesse 5. Spezifizieren und Beweisen, allgemeiner Fall 6. Zusammenfassung

Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 5 1. FM als Geisteshaltung Harlan Mills, 1975: "Professional programmers today are producing code at the rate of one error per year in their finished work; that performance is not possible by cut-and-try programming. The professional programmer of tomorrow will remember, more or less vividly, every error in his career." völlige Veränderung der Arbeitsweise nötig! Schlüssel: Gedankenprozess und seine Klarheit

Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 6 Zwei Haltungen zu Programmierfehlern (a) Software-Defekte sind uninteressante Nebeneffekte der Arbeit als Softwareentwickler unter Bedingungen unvollständigen Wissens. Eine Analyse der geistigen Ursachen lohnt nicht. (b) Software-Defekte sind wertvolle Hinweise auf falsche Überzeugungen der Entwickler bezüglich des zu entwickelnden Systems. Aus jedem muss man lernen.

1. FM als Werkzeugkasten automatisierte Konsistenzprüfungen vertraute Oberfläche neuartige Algorithmen Ziel: nur oberflächliches Lernen nötig zentral: Notationen (für Vertrautheit), und Unterstützung von Konsistenzbeweisen Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 7

Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 8 2. Beispiele für High-Level-Notationen Ziel: Identität von Spezifikation und Implementierung Vorschläge für funktionale Spezifikationen: ML für Prädikatenlogik: Prolog für Relationenalgebra: SQL für reguläre Sprachen: Reguläre Ausdrücke für kontextfreie Sprachen: Grammatiken in Parsergeneratoren

Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 9 Problem von High-Level-Programmiernotationen zur Spezifikation Zugeständnisse an Ausführbarkeit: von Effektivität und Effizienz wird nicht völlig abstrahiert! (a) Notationen nicht wirklich deklarativ, sondern prozedurale Aspekte wichtig in Semantik. (b) Spezifikations-Lücken nicht erlaubt.

Flexibilität Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 10 3. Abstraktion in Spezifikationsnotationen Spezifikationsnotationen: formaler als natürliche Sprache, und flexibler als Programmiernotationen natürliche Sprache Spezifikationsnotationen Programmiernotationen Formalität

Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 11 3. Abstraktion in Spezifikationsnotationen Beispiel Abstract State Machines (Gurevich) ASM-These: "Jeder Algorithmus ist als ASM formalisierbar, die jeden intuitiven Schritt durch genau einen ASM- Schritt ausführt." intuitiver Algorithmus ASM- Formalisierung...

Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 12 3. Abstraktion in Spezifikationsnotationen: ASMs Schritt-treue Formalisierbarkeit intuitiver Algorithmen beruht wesentlich auf Flexibilität der Daten-Modellierung benötigte mathematische Strukturen werden einfach vorausgesetzt: Codierung durch primitivere Mittel unnötig hohe Anforderungen an Benutzer! Leitfunktion eingeschränkterer Formalismen fehlt

Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 13 3. Abstraktion in Spezifikationsnotationen: Zusammenfassung Hauptziele beim Benutzung von Spezifikationsnotationen: (a) abstraktionstreue Modellierung von Problem und Lösung (b) mathematische Präzision

Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 14 4. Wichtigste Anwendungsbereiche formaler Methoden 4.1 Modellierung abstrakter Datentypen (weil Abstraktion das Hauptmittel ist, um mit kognitiver Beschränktheit umzugehen) 4.2 Modellierung nebenläufiger Prozesse, inklusive Modellprüfung (weil Nebenläufigkeit besonders schwierig zu verstehen, aber praktisch sehr relevant ist)

4.1 Modellierung abstrakter Datentypen Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 15 algebraisch oder modellbasiert modellbasiert: Zustand und Übergang explizit (als Beispiel, Programmierung im Abstrakten), gewöhnlich verständlicher (Beispiele: Z, VDM, B, ASMs) algebraisch: Zustand implizit, als Äquivalenzklasse von Ereignisfolgen; schwerer verständlich; in Forschung verbreitet

Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 16 4.1 Modellierung abstrakter Datentypen: Konsistenzprüfungen Konsistenzprüfungen meist als Prüfung von Invarianten, Vor- und Nachbedingungen von Operationen auf Exemplaren der Datentypen Prüfungen in Entwurfs- und Entwicklungswerkzeuge integrierbar: Eiffel: "design by contract" Java: "extended static checking": ESCJava/2 (autom. Beweise, Beschränkung auf Spezialfälle)

Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 17 4.2 Nebenläufige Prozesse Prozessalgebren (CCS, CSP) Petrinetze hierarchische endliche Automaten (StateCharts) zeitbehaftete Automaten ("Timed Automata"; Kronos, UppAal, Rabbit) synchrone Programmiersprachen (VHDL, ESTEREL, LUSTRE)

4.2 Modellprüfung Überprüfung, ob ein Modell eine Formel erfüllt Modell: Programmlauf, oder Menge davon Formel: temporallogische Spezifikation, die eine Menge von Läufen beschreibt (temporale Operatoren: "nie", "irgendwann", "bis") in endlichen Systemen entscheidbar, ob Formel im Modell erfüllt dramatische Aufwandsprobleme ("Zustandsexplosion"): nur "kleine" Systeme analysierbar Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 18

Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 19 4.2 Modellprüfung: Beispiel Rabbit (BTU Cottbus): Erreichbarkeitsanalyse in Timed Automata, zur Verifikation von zeitbehafteten Algorithmen Zustandsexplosionsproblem: durch sehr erfolgreiche Heuristiken verkleinert

5. Theorembeweiser Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 20 Mathematik: per Varianten der Prädikatenlogik Beispiel: PVS ("Prototype Verification System", SRI) mächtiger Formalismus: sehr flexibel und entsprechend unentscheidbar verblüffend vieles ist automatisch deduzierbar! menschliche Intervention unverzichtbar, wenn letztlich Mathematik als Ganze im Werkzeugkasten liegt

6. Zusammenfassung FM: Mathematik in der Softwareentwicklung, für verständliche Spezifikationen und Konsistenzbeweise FM: Geisteshaltung oder Werkzeugkasten Korrektheitsgarantie uneinlösbar! Notationen: High-level-Programmierung, Spezifikation Wichtigste Anwendungsgebiete: abstrakte Datentypen und nebenläufige Prozesse Konsistenzbeweise: vollautomatisch für Spezialfälle durch Modellprüfung, nicht- oder halb-automatisch durch Theorembeweiser Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 21