Laufzeitverifikation



Ähnliche Dokumente
Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Version 0.3. Installation von MinGW und Eclipse CDT

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

Übung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter

Generatives Programmieren

Algorithmische Methoden zur Netzwerkanalyse Vorlesung für den Bereich Master Informatik

Some Software Engineering Principles

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

Validierung und Verifikation!

Prinzipien Objektorientierter Programmierung

Seamless Model-based Engineering of a Reactive System

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw,

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Softwarequalitätssicherung

Qualitätssicherung. Was ist Qualität?

Fehlermonitor. Software zur seriellen Verbindung PC-Airdos Visualdatensignale und Fehlermeldungen-Ausagabe per SMS / Drucker

Algorithmische Methoden zur Netzwerkanalyse Vorlesung für den Bereich Master Informatik

Eine Bürokratiekostenfolgenabschätzung zum zweiten Gesetz für moderne Dienstleistungen am Arbeitsmarkt im Hinblick auf die Einführung einer Gleitzone

MSXFORUM - Exchange Server 2003 > Konfiguration Sender ID (Absendererkennu...

3D Visualisierung von UML Umgebungsmodellen

Vortrag von: Ilias Agorakis & Robert Roginer

support Kurzanleitung Kunde Version 5.1.1

Research Note zum Thema: Laufzeit von Support-Leistungen für Server OS

Internet Explorer Version 6

Übung 8: Semaphore in Java (eigene Implementierung)

Datenübernahme easyjob 3.0 zu easyjob 4.0

Comparing Software Factories and Software Product Lines

HighQSoft GmbH AVALON Distributor. Skalierbarkeit und Ausfallsicherheit. Dieter Müller

SAFEYTEAMS-Newsletter Nr. 5

Semantik von Formeln und Sequenzen

Telling TestStories Modellbasiertes Akzeptanz Testen Serviceorientierter Systeme

Software-Entwicklungsprozesse zertifizieren

GA Seite 1 (04/2012) 154. Änderungen

Dokumentation EGVP-Übertmittlungsfehler bei Server-Engpässen Vorgehensweise Seite 1 von 5

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

Anforderungen an die HIS

Übung: Verwendung von Java-Threads

Doing Economics with the Computer Sommersemester Excel Solver 1

Kapitel 4. Einführung in den Scannergenerator Flex. Einführung in den Scannergenerator Flex Wintersemester 2008/09 1 / 9

ANLEITUNGEN ZUR WEBEX NUTZUNG

Hinweise zur Installation der USB Treiber für Windows XP 32bit

6. Bayes-Klassifikation. (Schukat-Talamazzini 2002)

Übersetzung von UML-Software-Spezifikationen in Simulationsmodelle

Whitebox-Tests: Allgemeines

Big Data Projekte richtig managen!

Grammatiken. Einführung

Information Systems Engineering Seminar

A Domain Specific Language for Project Execution Models

Seminar Programmierung und Reaktive Systeme

Petri-Netze / Eine Einführung (Teil 2)

Analyse zum Thema: Laufzeit von Support-Leistungen für ausgewählte Server OS

Objektorientierte Programmierung OOP

Die Orgadata AG ist ein stark expandierendes Software-Unternehmen aus Leer. Mit unserem System LogiKal

Komponentenbasierter Taschenrechner mit CORBA

Abacus Formula Compiler (AFC)

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

ARAkoll 2013 Dokumentation. Datum:

Grundbegriffe der Informatik

Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen

Techniken der Projektentwicklungen

Hier finden Sie häufig gestellte Fragen und die Antworten darauf.

1 Einleitung. 1.1 Motivation und Zielsetzung der Untersuchung

Typisierung des Replikationsplan Wirries, Denis Datenbankspezialist

Inhaltsverzeichnis. Beschreibung. Hintergrund

Bisher. Wiederholung NFA Modellierung durch NFA Kripke-Struktur

ABACONNECT VERWENDUNG VON APACHE TCPMON UTILITY MIT ABACONNECT WEBSERVICES

Umsetzung des OrViA-Frameworks mit ARIS

lippmannstr hamburg tel: fax:

Arbeitsschritte EAÜ Leistungserbringer Einnahmen erfassen

Prädikatenlogik - Micromodels of Software

Vorhersagemodell für die Verfügbarkeit von IT-Services

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

» Export von Stud.IP-Daten auf eigene Web-Seiten» Workshop Donnerstag,

Benutzerhandbuch Online-Banking

Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen. Wir bringen Qualität. Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen

Integrierte IT Portfolioplanung

Theoretische Grundlagen des Software Engineering

Universität Zürich Informatikdienste. SpamAssassin. Spam Assassin Go Koordinatorenmeeting 27. April

Language Workbench. Aktuelle Themen der Softwaretechnologie. Vortrag von: Arthur Rehm Steven Cardoso. Betreut von: Prof. Dr.

Modeling Security Aspects of Network Aggregation Protocols. Fachgespräch Sensornetze August 2009

Datenstrukturen & Algorithmen

Kompilieren und Linken

SALSAH eine virtuelle Forschungsumgebung für die Geisteswissenschaften

Softwaretechnikpraktikum SS Qualitätsmanagement I. 1. Überblick. Qualität. Qualitätsmerkmal

Usability ohne Maus und ohne Bildschirm

Validierung und Verifikation

Transkript:

Laufzeitverifikation Martin Möser Seminar Fehlertolerante und Selbstheilende Systeme: Verifikation und Validierung autonomer Systeme Martin Möser - 1

Einführung / Motivation Autonome Systeme Komplexes Ein-/Ausgabeverhalten kein einfaches Testszenario Häufiges Ändern des Modells Ausführungspfade schwer vorhersehbar Menschliche Analyse kaum möglich Formale Verifikation nicht anwendbar Zustandsraumexplosion Laufzeitverifikation Seminar Fehlertolerante und Selbstheilende Systeme: Verifikation und Validierung autonomer Systeme Martin Möser - 2

Laufzeitverifikation 1/2 Hybrider V&V-Ansatz Verbinden formaler Methoden mit traditionellen V&V- Ansätzen Ausnutzen der formalen Spezifikation der Systeme Anwenden temporaler Logik Test von Universellen Eigenschaften Spezifischen Eigenschaften Seminar Fehlertolerante und Selbstheilende Systeme: Verifikation und Validierung autonomer Systeme Martin Möser - 3

Laufzeitverifikation 2/2 Technik Formale Spezifikation übersetzen in Monitor Anwendungsgebiete Testphase Verifikation des Programms mit Hilfe von Testeingabe und Monitor Betriebsphase Überprüfen der Ausführungspfade mit Hilfe des Monitors Seminar Fehlertolerante und Selbstheilende Systeme: Verifikation und Validierung autonomer Systeme Martin Möser - 4

Laufzeitverifikation von Programmen Unabhängig Generierung eines Logs zur Analyse Testeingabe Zielausgabe Eigenschaften Programm Log Verifizierer Akzeptieren /Ablehnen Integriert Analysecode eingebettet in das Testsystem Seminar Fehlertolerante und Selbstheilende Systeme: Verifikation und Validierung autonomer Systeme Martin Möser - 5

Eagle Entwickelt am NASA Ames Research Center Framework für Laufzeitverifikation Definition von temporalen Logiken Festlegen von Eigenschaften, die überprüft werden können Übersetzen der Logik in Code Kontrolle der Ausführungspfade Folge von Zuständen, die Werte von Variablen beinhalten x=0, y=0 x=1, y=0 x=0, y=1 x=1, y=1 Seminar Fehlertolerante und Selbstheilende Systeme: Verifikation und Validierung autonomer Systeme Martin Möser - 6

Eagle Temporale Logik Aufbauend auf future LTL Zentrale Operatoren: max Always(F) = F AND @Always(F) min Even(F) = F OR @Even(F) min Until(F 1, F 2 ) = F 2 OR (F 1 AND @Until(F 1, F 2 )) max Unless(F 1, F 2 ) = Until(F 1, F 2 ) OR Always(F 1 ) Seminar Fehlertolerante und Selbstheilende Systeme: Verifikation und Validierung autonomer Systeme Martin Möser - 7

Eagle - Monitore Monitor entspricht Formel, die überprüft werden kann: Es gilt immer: Wenn x positiv ist, wird eventuell auch y positiv Always(x > 0 Even(y > 0)) Parametrisiert: x > 0, y 0 liveness Anforderung: Even(y > 0) AND Always(x > 0 Even(y > 0)) Seminar Fehlertolerante und Selbstheilende Systeme: Verifikation und Validierung autonomer Systeme Martin Möser - 8

Eagle Implementierung 1/2 Implementiert in Java Dynamisches Erzeugen der Monitore zur Laufzeit Sukzessives Prüfen der Zustände über die Formeln Fehlermeldung, wenn eine Formel false ergibt Überprüfung der Ergebnisse am Ende und ggf. Ausgabe von Warnungen Seminar Fehlertolerante und Selbstheilende Systeme: Verifikation und Validierung autonomer Systeme Martin Möser - 9

Eagle Implementierung 2/2 Spezifikation Java-Klasse Java-Klasse Java-Klasse Bytecode Bytecode Mointoring Engine Bytecode x=0, y=0 Ausführungspfad x=1, y=0 x=0, y=1 x=1, y=1 Always(x > 0 Even(y > 0)) AND Even(y > 0) Seminar Fehlertolerante und Selbstheilende Systeme: Verifikation und Validierung autonomer Systeme Martin Möser - 10

Eigenschaften von Planungswerkzeugen Eingabe: Menge von Zielen Ziel: Effiziente Modelle des Einsatzgebiets durch Einsatz von Heuristiken Kein einfacher Ausgaberaum schwierige Definition von Monitoren Schlüsselaktivitäten: Modellbildung Sicherstellung der Effizienz der eingesetzten Heuristik Tests elementar Laufzeitverifikation Seminar Fehlertolerante und Selbstheilende Systeme: Verifikation und Validierung autonomer Systeme Martin Möser - 11

Anwendungsbeispiel: PLASMA C++-Bibliothek zum Aufbau von Planungssystemen Eingesetzt im MAPGEN-Projekt: Planung der Kommandosequenzen für Mars Rover Problemstellung: Justierung von Kameraeinstellungen und Aufnahme von Bildern Seminar Fehlertolerante und Selbstheilende Systeme: Verifikation und Validierung autonomer Systeme Martin Möser - 12

Prädikate Camera::off() Camera::ready() Camera::takePic(Position p) Attitude::pointAt(Position p) Attitude::turn(Position from, Position to) Seminar Fehlertolerante und Selbstheilende Systeme: Verifikation und Validierung autonomer Systeme Martin Möser - 13

PLASMA - Planung Seminar Fehlertolerante und Selbstheilende Systeme: Verifikation und Validierung autonomer Systeme Martin Möser - 14

Laufzeitverifikation von PLASMA PLASMA generiert eigenen EventLog keine Codeinstrumentierung durch Eagle Einfaches parsen des EventLogs zur Aktualisierung der Eagle-Zustände Eagle PLASMA EventLog Seminar Fehlertolerante und Selbstheilende Systeme: Verifikation und Validierung autonomer Systeme Martin Möser - 15

Fazit Einordnung in FTS Effiziente Fehlererkennung zur Laufzeit Dadurch Umgehung/Behebung der Fehler möglich Vorteile Verhindern der Zustandsraumexplosion durch nur einen Ausführungspfad Konstruktion von Monitoren sowohl bzgl. des Plans selbst als auch dessen Berechnung Effizientes Abfangen von Strategieänderungen Nachteile Nur ein Ausführungspfad pro Durchlauf Einsatz hauptsächlich in Tests Seminar Fehlertolerante und Selbstheilende Systeme: Verifikation und Validierung autonomer Systeme Martin Möser - 16

Verwandte Arbeit / Referenzen Verwandte Arbeiten Workshops für Laufzeitverifikation seit 2001 Rammig et al.: Model-based Runtime Verification Framework for Self-optimizing Systems Viele Ansätze beschränkt auf Model-Checking Referenzen Havelund et al.: Runtime Verification of Autonomous Spacecraft Software Havelund et al.: Rule-Based Runtime Verification Mayer, Stumptner: Model-Based Debugging using Multiple Abstract Models http://en.wikipedia.org/wiki/formal_verification Seminar Fehlertolerante und Selbstheilende Systeme: Verifikation und Validierung autonomer Systeme Martin Möser - 17