Software Engineering in der Praxis

Ähnliche Dokumente
Prädikatenlogik - Micromodels of Software

Software Engineering in der Praxis

Foundations of Systems Development

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

Bisher. Wiederholung NFA Modellierung durch NFA Kripke-Struktur

Software Engineering in der Praxis

2. Vorlesung. Slide 40

Formeln. Signatur. aussagenlogische Formeln: Aussagenlogische Signatur

Kapitel 4: (Einige) Andere Logiken

Einführung - Systeme

Theoretische Grundlagen des Software Engineering

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

Temporale Logiken: CTL und LTL

Logik für Informatiker

Seminar über Software Model Checking Vortrag zum Thema Predicate Abstraction

M. Sc. Mirjana Jakšić Dipl.-Inf. Christian Schönberg Dipl.-Inf. Franz Weitl

Praktikum Software Engineering: Verfahren und Werkzeuge

Grundlagen der Theoretischen Informatik - Sommersemester Übungsblatt 1: Lösungsvorschläge

Grundlagen der Künstlichen Intelligenz

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen.

Theorie der Informatik

Grundbegriffe der Informatik

Vorlesung Methoden des Software Engineering. Martin Wirsing. Einheit C.3,

Modellbasierter Test mit der UML

Satz. Für jede Herbrand-Struktur A für F und alle t D(F ) gilt offensichtlich

3.2 Spezifikationen mit Zeit

Seminar Model-Based Testing - Preorder. Marcel Bosling

Semantic Web Technologies I!

Semestralklausur zu Modellierung verteilter Systeme

Kapitel 7 Dr. Jérôme Kunegis. Logische Kalküle. WeST Web Science & Technologies

Planen als Model Checking

Endlicher Automat (EA)

7. Formale Sprachen und Grammatiken

Safer Software Formale Methoden für ISO26262

Muster für die Verifikation von Formeln in Temporaler Logik

Beschreibungslogiken. Daniel Schradick

Reguläre Sprachen Endliche Automaten

Formale Methoden II. Gerhard Jäger. SS 2008 Universität Bielefeld. Teil 8, 11. Juni Formale Methoden II p.1/30

Erfüllbarkeit und Allgemeingültigkeit

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

Spezifikation und Modellprüfung mittels (extended) Labelled Transition Systems (LTS/eLTS)

y(p F x) gebunden und in den Formeln F xy

5. Aussagenlogik und Schaltalgebra

Übungen zu Modellierung verteilter Systeme

Einführung in Petri-Netze

The TLC Model Checker

Wissensbasierte Systeme

Theoretische Grundlagen des Software Engineering

Modellierung von Geschäftsprozessen Teil 6 - Petri-Netze

1) Einführung in die formale Verifikation

Entwicklung eines korrekten Übersetzers

Model-Checking eines Materialflusssystems mittels UPPAAL und SMV

6. Explizite Zeit und Zeitautomaten

Universität Koblenz-Landau, Abteilung Koblenz FB 4 Informatik. Seminar Entscheidungsverfahren für logische Theorien. Endliche Modelle.

Seamless Model-based Engineering of a Reactive System

Einführung in die Fuzzy Logic

Wissensrepräsentation und -verarbeitung in Logiken. bereinigt Pränex Skolem ( -Eliminierung) Klausel (Menge von Klauseln, Notation ohne Quantoren)

VBA-Programmierung: Zusammenfassung

Software-Engineering SS03. Zustandsautomat

Übungen Workflow Management. Blatt 2

Vorlesung : Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz

IP=PSPACE. t Joachim Kneis t IP = PSPACE t 16. Dezember 2003 t

Nichtmonotones Schließen

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

Logik & Semantik 7. Vorlesung Prädikatenlogik 1. Syntax der Prädikatenlogik Semantik der Prädikatenlogik: Grundbegriffe (Variablen-)Substitutionen

Logische Folgerung. Definition 2.11

Diskrete Strukturen und Logik WiSe 2007/08 in Trier. Henning Fernau Universität Trier

Rechnergestützter VLSI-Entwurf

Seminar Analyse von Petrinetz-Modellen

WS 2008/09. Diskrete Strukturen

Zusammenhänge präzisieren im Modell

Modellbasierte Testgenerierung aus Spezifikationen mit parallelem Verhalten

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

Logik für Informatiker

Klausur Formale Systeme Fakultät für Informatik WS 2009/2010

Theoretische Informatik

Zur Definition von Definition Albert J. J. Anglberger, Peter Brössel

FernUniversität Hagen

Studienarbeit: Komposition von Web Services. Luhme IX Christian Stahl

Grammatiken. Einführung

Requirements Engineering WS 11/12

Software Engineering in der Praxis Praktische Übungen

Relationales Datenmodell

Kapitel DB:V (Fortsetzung)

Einführung in die Computerlinguistik

Übungsaufgaben zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 8

Einführung Low-Level-Netze High-Level-Netze Referenzen. Petrinetze. Benjamin Daeumlich

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

Inhalt 12 Petri-Netze Grundlagen

Inhalt Software-Metriken Software-Metriken mit Together FindBugs. Software-Metriken. Raimar Lill Matthias Meitner David Föhrweiser Marc Spisländer

1 Transitionssysteme. 1.1 Motivation: Model-Checking

Grundbegriffe der Informatik

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

Beispiele zur Verifikation und pratkische Probleme

Technische Informatik II

Formale Methoden: Ein Überblick

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler

Die Spezifikationssprachen Z und VDM. Michael Hildebrandt

Java Einführung Operatoren Kapitel 2 und 3

Prozessmodellierung mit Petri-Netzen

Transkript:

Software Engineering in der Praxis Praktische Übungen

Marc Spisländer Josef Adersberger Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg 10. November 2008

Inhalt Nachlese Lernziele der letzten Übung Model Checking Computational Tree Logic Syntax von CTL Interpretation von CTL Zusammenfassung Model Cheking mit NuSMV

Lernziele der letzten Übung Zeitbehaftete Petrinetze Wichtigste Punkte Standardpetrinetze um Zeitaspekt erweitert Jeder Transition wird ein Zeitintervall zugeordnet Eine PN-schaltbereite Transition muss genau in diesem Zeitintervall schalten Erreichbarkeitsrelation wird auf Zustandsklassen definiert

Model Checking Ziel Fehlerentdeckung in der Systemspezifikation Vorgehensweise 1. Modellierung des Systems durch endlichen Automaten 2. Formulierung der Anforderungen, die das System erfüllen muss, durch logische Formeln 3. Automatisches Beweisen, dass das System die Anforderung erfüllt oder nicht erfüllt

Model Checking Ziel Fehlerentdeckung in der Systemspezifikation Vorgehensweise 1. Modellierung des Systems durch endlichen Automaten 2. Formulierung der Anforderungen, die das System erfüllen muss, durch logische Formeln 3. Automatisches Beweisen, dass das System die Anforderung erfüllt oder nicht erfüllt

Model Checking Ziel Fehlerentdeckung in der Systemspezifikation Vorgehensweise 1. Modellierung des Systems durch endlichen Automaten 2. Formulierung der Anforderungen, die das System erfüllen muss, durch logische Formeln 3. Automatisches Beweisen, dass das System die Anforderung erfüllt oder nicht erfüllt

Model Checking Ziel Fehlerentdeckung in der Systemspezifikation Vorgehensweise 1. Modellierung des Systems durch endlichen Automaten 2. Formulierung der Anforderungen, die das System erfüllen muss, durch logische Formeln 3. Automatisches Beweisen, dass das System die Anforderung erfüllt oder nicht erfüllt

Model Checking im Praktikum Werkzeug NuSMV http://nusmv.irst.itc.it Formalismus Computational Tree Logic (CTL)

Computational Tree Logic Idee Betrachte Modell eines Systems:

Computational Tree Logic Idee Frage Gibt es einen Übergangspfad aus dem Startzustand in den Zustand C? Formal Ist die CTL-Formel S = EF (a = 1 b = 1) wahr?

Syntax von CTL Atomare CTL-Formeln Definition Sei A eine endliche Menge von Aussagen. Falls A A, dann ist A eine CTL-Formel.

Syntax von CTL Zusammengesetzte CTL-Formeln Definition Falls F 1 und F 2 CTL-Formeln sind, dann sind folgende Wörter ebenfalls CTL-Formeln: F 1 F 1 F 2 AXF 1 EXF 1 A[F 1 U F 2 ] E[F 1 U F 2 ]

Syntax von CTL Zusammengesetzte CTL-Formeln Definition Falls F 1 und F 2 CTL-Formeln sind, dann sind folgende Wörter ebenfalls CTL-Formeln: F 1 F 1 F 2 AXF 1 EXF 1 A[F 1 U F 2 ] E[F 1 U F 2 ]

Syntax von CTL Zusammengesetzte CTL-Formeln Definition Falls F 1 und F 2 CTL-Formeln sind, dann sind folgende Wörter ebenfalls CTL-Formeln: F 1 F 1 F 2 AXF 1 EXF 1 A[F 1 U F 2 ] E[F 1 U F 2 ]

Syntax von CTL Zusammengesetzte CTL-Formeln Definition Falls F 1 und F 2 CTL-Formeln sind, dann sind folgende Wörter ebenfalls CTL-Formeln: F 1 F 1 F 2 AXF 1 EXF 1 A[F 1 U F 2 ] E[F 1 U F 2 ]

Syntax von CTL Zusammengesetzte CTL-Formeln Definition Falls F 1 und F 2 CTL-Formeln sind, dann sind folgende Wörter ebenfalls CTL-Formeln: F 1 F 1 F 2 AXF 1 EXF 1 A[F 1 U F 2 ] E[F 1 U F 2 ]

Syntax von CTL Zusammengesetzte CTL-Formeln Definition Falls F 1 und F 2 CTL-Formeln sind, dann sind folgende Wörter ebenfalls CTL-Formeln: F 1 F 1 F 2 AXF 1 EXF 1 A[F 1 U F 2 ] E[F 1 U F 2 ]

Syntax von CTL Zusammengesetzte CTL-Formeln Definition Falls F 1 und F 2 CTL-Formeln sind, dann sind folgende Wörter ebenfalls CTL-Formeln: F 1 F 1 F 2 AXF 1 EXF 1 A[F 1 U F 2 ] E[F 1 U F 2 ]

Interpretation von CTL Interpretation der CTL-Formeln CTL-Formeln werden durch CTL-Strukturen interpretiert. Definition Eine CTL-Struktur ist ein Tripel (S, R, P), mit S endliche Zustandsmenge R S S totale Übergangsrelation P : S 2 A ordnet jedem Zustand z S alle in z wahren Aussagen zu.

Interpretation von CTL Atomare CTL-Formeln Definition A A ist wahr im Zustand s S, genau dann wenn A P(s). Schreibweise: s = A.

Interpretation von CTL Zusammengesetzte CTL-Formeln Definition Für s S und CTL-Formeln F 1 und F 2 definiert man: s = F 1 gdw. F 1 in s nicht wahr ist s = F 1 F 2 gdw. F 1 und F 2 in s wahr sind s = AXF 1 gdw. F 1 in allen direkten Nachfolgern von s wahr ist s = EXF 1 gdw. F 1 in einem direkten Nachfolger von s wahr ist

Interpretation von CTL Zusammengesetzte CTL-Formeln Definition Für s S und CTL-Formeln F 1 und F 2 definiert man: s = F 1 gdw. F 1 in s nicht wahr ist s = F 1 F 2 gdw. F 1 und F 2 in s wahr sind s = AXF 1 gdw. F 1 in allen direkten Nachfolgern von s wahr ist s = EXF 1 gdw. F 1 in einem direkten Nachfolger von s wahr ist

Interpretation von CTL Zusammengesetzte CTL-Formeln Definition Für s S und CTL-Formeln F 1 und F 2 definiert man: s = F 1 gdw. F 1 in s nicht wahr ist s = F 1 F 2 gdw. F 1 und F 2 in s wahr sind s = AXF 1 gdw. F 1 in allen direkten Nachfolgern von s wahr ist s = EXF 1 gdw. F 1 in einem direkten Nachfolger von s wahr ist

Interpretation von CTL Zusammengesetzte CTL-Formeln Definition Für s S und CTL-Formeln F 1 und F 2 definiert man: s = F 1 gdw. F 1 in s nicht wahr ist s = F 1 F 2 gdw. F 1 und F 2 in s wahr sind s = AXF 1 gdw. F 1 in allen direkten Nachfolgern von s wahr ist s = EXF 1 gdw. F 1 in einem direkten Nachfolger von s wahr ist

Interpretation von CTL Zusammengesetzte CTL-Formeln Definition s = AF 1 U F 2 gdw. für alle Pfade (z 0 = s, z 1, z 2,...) gilt: Es existiert ein i 0 mit z i = F 2 und z j = F 1 für alle j i. Definition s = EF 1 U F 2 gdw. es gibt einen Pfad (z 0 = s, z 1, z 2,...) für den gilt: Es existiert ein i 0 mit z i = F 2 und z j = F 1 für alle j i.

Interpretation von CTL Zusammengesetzte CTL-Formeln Definition s = AF 1 U F 2 gdw. für alle Pfade (z 0 = s, z 1, z 2,...) gilt: Es existiert ein i 0 mit z i = F 2 und z j = F 1 für alle j i. Definition s = EF 1 U F 2 gdw. es gibt einen Pfad (z 0 = s, z 1, z 2,...) für den gilt: Es existiert ein i 0 mit z i = F 2 und z j = F 1 für alle j i.

Interpretation von CTL Abkürzungen für CTL-Formeln AFF A[True U F ] F ist unvermeidbar EFF E[True U F ] F ist möglich AGF EF F Auf allen Pfaden, die im aktuellen Zustand starten, ist F in jedem Zustand des Pfades wahr. EGF AF F Es ex. ein Pfad, der im aktuellen Zustand startet, so dass F in jedem Zustand des Pfades wahr ist.

Zusammenfassung Grafische Veranschaulichung der CTL-Formeln EGF EXF EFF E[F 1 U F 2 ] AGF AXF AFF A[F 1 U F 2 ]

Zusammenfassung Das Model-Checking-Problem Gegeben CTL-Struktur, Zustand s und CTL-Formel F. Gesucht Gilt s = F?

Zusammenfassung Das Model-Checking-Problem Gegeben CTL-Struktur, Zustand s und CTL-Formel F. Gesucht Gilt s = F?

Model Checking mit NuSMV NuSMV erlaubt: die Formulierung einer CTL-Struktur die Simulation von Zustandsübergängen in der CTL- Struktur Model Checking (Lebendigkeit, Deadlocks,... )

Das NuSMV-Modell Das NuSMV-Modell besteht aus benannten Modulen; eins davon muss main heißen. Innerhalb von Modulen kann man Variablen deklarieren, ihnen einen Initialwert zuweisen und ihren Wert im sog. nächsten Schritt definieren. Variablen haben endlichen Definitionsbereich

Das NuSMV-Modell Der Zustandsraum von CTL-Strukturen Module werden instanziiert. Alle Modulinstanzen zusammen definieren den Zustandsraum einer CTL-Struktur: S = D xa D ya D xb... wobei D xa der Definitionsbereich der Variablen x in der Modulinstanz a ist.

Das NuSMV-Modell Die Übergangsrelation von CTL-Strukturen Die Instanziierungsart der Module definiert die Übergangsrelation der CTL-Struktur. Zwei Arten von Modulinstanziierungen: synchron Der nächste Zustand wird definiert, indem alle Variablen aller Modulinstanzen auf ihren Wert im nächsten Schritt gesetzt werden. asynchron Der nächste Zustand wird definiert, indem alle Variablen genau einer Instanz auf ihren Wert im nächsten Schritt gesetzt werden.

Beispiel MODULE main VAR semaphore : { red, red_yellow, green, yellow } INIT semaphore = red ; ASSIGN next ( semaphore ) := case semaphore = red : red_yellow ; semaphore = red_yellow : green ; semaphore = green : yellow ; semaphore = yellow : red ; esac ;

Model Checking Spezifikation von Anforderungen durch CTL-Formeln: SPEC AG ( ( semaphore = green > AF semaphore = red ) & ( semaphore = red > AF semaphore = green ) ) ; SPEC AG AF semaphore = green ;