Durchgehender Einsatz von formaler Modellierung und Beweis als Mittel zur Zertifizierung sicherheitsrelevanter Software
|
|
- Siegfried Bayer
- vor 5 Jahren
- Abrufe
Transkript
1 Christoph Lüth: SAMS 1 safetronic, , München Durchgehender Einsatz von formaler Modellierung und Beweis als Mittel zur Zertifizierung sicherheitsrelevanter Software Christoph Lüth Deutsches Forschungszentrum für Künstliche Intelligenz, Bremen safetronic, , München
2 Sicherungskomponente für Autonome Mobile Serviceroboter Thema: Fahrwegsicherung für Autonome Mobile Serviceroboter Christoph Lüth: SAMS 2 safetronic, , München
3 Christoph Lüth: SAMS 3 safetronic, , München Fahrwegsicherung Stand der Technik: Statische Schutzfelder Ein Schutzfeld für alle Situationen
4 Christoph Lüth: SAMS 3 safetronic, , München Fahrwegsicherung Stand der Technik: Statische Schutzfelder Ein Schutzfeld für alle Situationen Nötig: Dynamische Schutzfelder Indiziert durch Geschwindigkeit und Lenkwinkel
5 Christoph Lüth: SAMS 4 safetronic, , München Projektziele Fahrwegsicherung für Serviceroboter Kollisionsvermeidung mittels Laserscanner dynamische Berechnung des Schutzfeldes Formale Verifikation der Implementation Zertifizierung durch TÜV (Software) Konsortium und Förderung:
6 Arbeitsfelder Christoph Lüth: SAMS 5 safetronic, , München
7 Christoph Lüth: SAMS 6 safetronic, , München Neue Aspekte Robotik: Zertifizierung und Verifikation Zertifizierung: Algorithmisch anspruchsvolle Sicherheitsfunktion Durchgängig formale Modellierung und Verifikation Neuartige Kombination
8 Christoph Lüth: SAMS 7 safetronic, , München Der Algorithmus im Detail 1. Bremsmodell Grundannahme: kurventreu 2. Schutzfelder Während Bremsvorgangs überstrichene Fläche 3. Sonderfälle Schutzaufschläge Schleichfahrt
9 Christoph Lüth: SAMS 8 safetronic, , München Bestimmung des Bremsmodells Kriterien: Einfach und sicher Methode: Messung Geraudeausfahrt, Berechnung Kurve s(v,ω) s G (v) s(v,ω) = s G ( v 2 + D 2 ω 2 )
10 Christoph Lüth: SAMS 9 safetronic, , München Bestimmung der Schutzzonen Grundprinzip: beim Bremsen überstrichene Fläche
11 Bestimmung der Schutzzonen Grundprinzip: beim Bremsen überstrichene Fläche Schutzaufschläge (Reaktionszeit, Zykluszeit, Messdaten) Christoph Lüth: SAMS 9 safetronic, , München
12 Bestimmung der Schutzzonen Grundprinzip: beim Bremsen überstrichene Fläche Schutzaufschläge (Reaktionszeit, Zykluszeit, Messdaten) Als Polygon (Laserscannerschutzfeld) Christoph Lüth: SAMS 9 safetronic, , München
13 Bestimmung der Schutzzonen Grundprinzip: beim Bremsen überstrichene Fläche Schutzaufschläge (Reaktionszeit, Zykluszeit, Messdaten) Als Polygon (Laserscannerschutzfeld) Sonderfall: Schleichfahrt Christoph Lüth: SAMS 9 safetronic, , München
14 Christoph Lüth: SAMS 10 safetronic, , München Projektdokumente Sicherungskomponente für Autonome Mobile Systeme Eine Kooperation zwischen DFKI-Labor Bremen Leuze lumiflex Universität Bremen Planung Anforderungsspezifikation Lastenheft Konzeptpapiere Sicherheitsanforderungsspezifikation Über dieses Dokument: Im Dokument Sicherheitsanforderungsspezifikation werden die Sicherheitsanforderungen (Safety Requirements) der für den Betrieb der Sicherungskomponente notwendigen Software (On-Board-Software und die benötigte Konfigurationssoftware) spezifiziert. Entwurfsspezifikation Projekt: SAMS Dokument: Sicherheitsanforderungsspezifikation.doc Pfad: Projektdokumente/Gesamtsystemspezifikation-Pflichtenheft Version: 1.5 Bearbeitungszustand: Vg. (TÜV) Verantwortlich: Dennis Walter Erstellt: Letzte Änderung: Verifikationsumgebung Administration Semantische Dokumentvernetzung
15 Christoph Lüth: SAMS 10 safetronic, , München Projektdokumente Sicherungskomponente für Autonome Mobile Systeme Eine Kooperation zwischen DFKI-Labor Bremen Leuze lumiflex Universität Bremen Sicherheitsanforderungsspezifikation Über dieses Dokument: Im Dokument Sicherheitsanforderungsspezifikation werden die Sicherheitsanforderungen (Safety Requirements) der für den Betrieb der Sicherungskomponente notwendigen Software (On-Board-Software und die benötigte Konfigurationssoftware) spezifiziert. Planung Anforderungsspezifikation Lastenheft Konzeptpapiere Bremsmodell, Schutzfelder, Schleichfahrt Entwurfsspezifikation Projekt: SAMS Dokument: Sicherheitsanforderungsspezifikation.doc Pfad: Projektdokumente/Gesamtsystemspezifikation-Pflichtenheft Version: 1.5 Bearbeitungszustand: Vg. (TÜV) Verantwortlich: Dennis Walter Erstellt: Letzte Änderung: Verifikationsumgebung Administration Semantische Dokumentvernetzung
16 Christoph Lüth: SAMS 10 safetronic, , München Projektdokumente Sicherungskomponente für Autonome Mobile Systeme Eine Kooperation zwischen DFKI-Labor Bremen Leuze lumiflex Universität Bremen Sicherheitsanforderungsspezifikation Über dieses Dokument: Im Dokument Sicherheitsanforderungsspezifikation werden die Sicherheitsanforderungen (Safety Requirements) der für den Betrieb der Sicherungskomponente notwendigen Software (On-Board-Software und die benötigte Konfigurationssoftware) spezifiziert. Projekt: SAMS Dokument: Sicherheitsanforderungsspezifikation.doc Pfad: Projektdokumente/Gesamtsystemspezifikation-Pflichtenheft Version: 1.5 Bearbeitungszustand: Vg. (TÜV) Verantwortlich: Dennis Walter Erstellt: Letzte Änderung: Planung Anforderungsspezifikation Lastenheft Konzeptpapiere Bremsmodell, Schutzfelder, Schleichfahrt Entwurfsspezifikation Fehlerbaumanalyse Sicherheitsanforderungsspezfikation, Detailspezifikation (Software) Verifikationsumgebung Administration Semantische Dokumentvernetzung
17 Christoph Lüth: SAMS 10 safetronic, , München Projektdokumente Sicherungskomponente für Autonome Mobile Systeme Eine Kooperation zwischen DFKI-Labor Bremen Leuze lumiflex Universität Bremen Sicherheitsanforderungsspezifikation Über dieses Dokument: Im Dokument Sicherheitsanforderungsspezifikation werden die Sicherheitsanforderungen (Safety Requirements) der für den Betrieb der Sicherungskomponente notwendigen Software (On-Board-Software und die benötigte Konfigurationssoftware) spezifiziert. Projekt: SAMS Dokument: Sicherheitsanforderungsspezifikation.doc Pfad: Projektdokumente/Gesamtsystemspezifikation-Pflichtenheft Version: 1.5 Bearbeitungszustand: Vg. (TÜV) Verantwortlich: Dennis Walter Erstellt: Letzte Änderung: Planung Anforderungsspezifikation Lastenheft Konzeptpapiere Bremsmodell, Schutzfelder, Schleichfahrt Entwurfsspezifikation Fehlerbaumanalyse Sicherheitsanforderungsspezfikation, Detailspezifikation (Software) Verifikationsumgebung Spezifikation der Funktionalität, Konzept, Validation Administration Semantische Dokumentvernetzung
18 Semantische Dokumentenvernetzung Christoph Lüth: SAMS 11 safetronic, , München
19 Christoph Lüth: SAMS 12 safetronic, , München Entwicklungsmodell: Rolle der Formalisierung Systemintegrationstests Sicherheitsanforderungsspezifikation Validation Validationstests Globale Sicherheitseigenschaften Systemarchitektur Dekomposition Beweis Systementwurf Integrationstests Eigenschaften einzelner Module und Funktionen Modulentwurf Implementierung Unit Tests IEC
20 Domänenmodellierung Welt: zweidimensional, veränderlich Objekte: Verhalten R + 0 α Verhalten des Roboters robot : R + 0 R2 Globale Sicherheitseigenschaft (für statische Hindernisse): ( t, t. o Obs. o(t) = o(t ) ) = t. o Obs. robot(t) / o(t) Christoph Lüth: SAMS 13 safetronic, , München
21 Christoph Lüth: SAMS 14 safetronic, , München Von der Domänenmodellierung zum Programm Drei Abstraktionsebenen: Domänenmodellierung Stetiges Verhalten R + 0 α Roboter robot : R + 0 R2 Reaktives Programm Diskrete Verhalten N α Kontrollprogramm stop : N bool Imperativer Code Zustandstransformer (I S) (O S) Programmzustand S, Eingabe I, Ausgabe O
22 Verifikation in SAMS Basis: annotierter Quellcode Nutzung vorhandenen Quellcodes Automatische Konsistenz von Verifikation und ausgeführtem Code Spezifikation über Vor- und Nachbedingungen, Invarianten Implementierung: Aufbauend auf Isabelle/HOL = λ β Isabelle HOL α Korrekt bewiesene Regeln Christoph Lüth: SAMS 15 safetronic, , München
23 Christoph Lüth: SAMS 16 safetronic, , München Unterstützte Sprachteilmenge Teilmenge von MISRA-C: Kein goto Kein break oder switch Keine union Eingeschränkte Zeigerarithmetik Auswertungsreihenfolge muss definiert sein Keine Seiteneffekte in Ausdrücken Reine Funktionen frei verwendbar Ein Ausgangspunkt pro Funktion am Ende des Rumpfes
24 Christoph Lüth: SAMS 17 safetronic, , München Annotierter \ v a l i d ( out ) && \ array ( ps, ps_len \ f o r a l l i n t i ; 0 <= i < ps_len ==> out >x <= ps [ i ]. x && ( out >x == ps [ i ]. x => out >y <= ps [ i ]. y out >x, out >y / void select_min_xy ( Point ps, i n t ps_len, Point out ) ;
25 Christoph Lüth: SAMS 18 safetronic, , München Verifikation von C-Programmen Annotierter Quellcode \result >= x \result >= y \forall int z >= x && z >= => z >= int max(int x, int y) { if (x > y) return x; else return y; } VCG Parser & statische Analyse Semantische Repräsentation Ausführbare Datei.exe, a.out Generierung der Verifikationsbedingungen Automatische Beweise Interaktive Beweise Domänenmodellierung Isabelle
26 Korrektheit der Verifikation Quellprogramm Syntaktisches Front End Abstrakte Syntax C Syntaxgesteuerte Regelanwendung (VCG) Denotationelle Semantik Verifikationsbedingungen Zustandstransformer und Zustandsrelationen Korrektheitsbeweis der Regeln Isabelle/HOL Christoph Lüth: SAMS 19 safetronic, , München
27 Christoph Lüth: SAMS 20 safetronic, , München Korrektheit des Beweisers Reduktion des Korrektheitsproblems: Kleiner logischer Kern verkapselt alle kritische Funktionen Konservative Erweiterung erhält Korrektheit
28 Christoph Lüth: SAMS 21 safetronic, , München Umfang der Verifikation Funktionale Korrektheit Termination einzelner Funktionen Grenzen: Laufzeitgarantien Ein/Ausgabe
29 Christoph Lüth: SAMS 22 safetronic, , München Zusammenfassung SAMS Dynamische Fahrwegsicherung für mobile Serviceroboter Zertifizierung und Verifikation Neu: Zertifizierung und formale Methoden in der Robotik
30 Christoph Lüth: SAMS 22 safetronic, , München Zusammenfassung SAMS Dynamische Fahrwegsicherung für mobile Serviceroboter Zertifizierung und Verifikation Neu: Zertifizierung und formale Methoden in der Robotik Semantische Dokumentenvernetzung Explizite Verwaltung der Abhängigkeiten und Bezüge
31 Christoph Lüth: SAMS 22 safetronic, , München Zusammenfassung SAMS Dynamische Fahrwegsicherung für mobile Serviceroboter Zertifizierung und Verifikation Neu: Zertifizierung und formale Methoden in der Robotik Semantische Dokumentenvernetzung Explizite Verwaltung der Abhängigkeiten und Bezüge Durchgängig formale Modellierung Annahmen werden explizit Zertifizierungsprozess fokussiert auf Kernfragen
32 Christoph Lüth: SAMS 22 safetronic, , München Zusammenfassung SAMS Dynamische Fahrwegsicherung für mobile Serviceroboter Zertifizierung und Verifikation Neu: Zertifizierung und formale Methoden in der Robotik Semantische Dokumentenvernetzung Explizite Verwaltung der Abhängigkeiten und Bezüge Durchgängig formale Modellierung Annahmen werden explizit Zertifizierungsprozess fokussiert auf Kernfragen Formale Verifikation Spezifikation durch Annotation in Quellcode Verringerter Testaufwand, garantierte Korrektheit
SAMS 1 Sicherheitskomponente für Autonome Mobile Serviceroboter
SAMS 1 Sicherheitskomponente für Autonome Mobile Serviceroboter Dr. Christoph Lüth, Dr. Udo Frese, Holger Täubig, Dennis Walter Deutsches Forschungszentrum für Künstliche Intelligenz, Fachbereich Sichere
MehrEin SIL-3-konformes Werkzeug zur formalen Verifikation von C-Programmen
D. Walter: SAMS Verifikationsumgebung 1 [16] Ein SIL-3-konformes Werkzeug zur formalen Verifikation von C-Programmen Dennis Walter Deutsches Forschungszentrum für Künstliche Intelligenz, Bremen Universität
MehrSicherungskomponente für Autonome Mobile Serviceroboter
Christoph Lüth: SAMS 1 [12] Sicherungskomponente für Autonome Mobile Serviceroboter Christoph Lüth Deutsches Forschungszentrum für Künstliche Intelligenz, Bremen SAMS Abschlusspräsentation, 13.10.09, Bremen
MehrFormale Modellierung Vorlesung 13 vom : Rückblick und Ausblick
Rev. 2226 1 [19] Formale Modellierung Vorlesung 13 vom 01.07.13: Rückblick und Ausblick Serge Autexier & Christoph Lüth Universität Bremen Sommersemester 2013 2 [19] Fahrplan Teil I: Formale Logik Teil
Mehr3D Kollisionsvermeidung in Bewegung durch Echtzeitberechnung aller überstrichenen Volumen
Deutsches Forschungszentrum für Künstliche Intelligenz GmbH 3D Kollisionsvermeidung in Bewegung durch Echtzeitberechnung aller überstrichenen Volumen Holger Täubig Udo Frese (DFKI Bremen) Augsburg, 26.
Mehrn 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -
n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik n "Informatik" = Kunstwort aus Information
Mehrn 1. Erste Schritte n 2. Einfache Datentypen n 3. Anweisungen und Kontrollstrukturen n 4. Verifikation n 5. Reihungen (Arrays)
n 1. Erste Schritte n 2. Einfache Datentypen n 3. Anweisungen und Kontrollstrukturen n 4. Verifikation n 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation n Spezifikation: Angabe, was ein
MehrChapter A. Korrekte Programme. Korrektes Programm. Lecture Algorithmen & Datenstrukturen
Chapter A Lecture Algorithmen & Datenstrukturen.09.01 Berner Fachhochschule Technik und Informatik A.1 Das Programm endet nach endlich viel Zeit. Das Programm endet nach endlich viel Zeit. Damit dies erfüllt
Mehr! 1. Erste Schritte! 2. Einfache Datentypen! 3. Anweisungen und Kontrollstrukturen! 4. Verifikation! 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -
! 1. Erste Schritte! 2. Einfache Datentypen! 3. Anweisungen und Kontrollstrukturen! 4. Verifikation! 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation! Spezifikation: Angabe, was ein Programm
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
MehrÜbersicht Formale Semantik. Übersicht Axiomatische Semantik. Inhaltsübersicht HPS WS 2003/04. Vorlesung Höhere Programmiersprachen,
Vorlesung Höhere Programmiersprachen, WS 2003/04 Teil 2: Formale Semantik Axiomatische Semantik Inhaltsübersicht - Grundlagen (1,2) - Konzepte imperativer Programmiersprachen (2,3) - Deklarative Programmiersprachen
MehrFormale Modellierung Vorlesung vom : Beyond JML
Rev. 1702 1 [12] Formale Modellierung Vorlesung vom 07.05.12: Beyond JML Till Mossakowski & Christoph Lüth Universität Bremen Sommersemester 2012 2 [12] Heute im Programm Grenzen der JML Nach JML: UML
Mehr1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation Spezifikation: Angabe, was ein Programm tun
MehrInformatik I - Programmierung Globalübung Hoare-Kalkül. Thomas Weiler. Fachgruppe Informatik RWTH Aachen. T. Weiler, RWTH Aachen - 1 -
Informatik I - Programmierung Globalübung 11.11.2003 Hoare-Kalkül Thomas Weiler Fachgruppe Informatik RWTH Aachen T. Weiler, RWTH Aachen - 1 - Ariane 5 Die Ariane 5 ist das jüngste Modell der Trägerrakete
Mehr1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation Spezifikation: Angabe, was ein Programm tun
MehrFormale Spezifikation mit Java Modeling Language
Formale Spezifikation mit Java Modeling Language Daniel Bruns Praxis der Software-Entwicklung, 25 November 2010 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Universität des Landes Baden-Württemberg und nationales
MehrSPARK95. Ingmar Wirths. 12. Juli 2007
SPARK95 Ingmar Wirths 12. Juli 2007 Motivation Ada wurde zur Programmierung von Mikroprozessoren entwickelt. Motivation Ada wurde zur Programmierung von Mikroprozessoren entwickelt. Ein Systemversagen
MehrSicherheit und automatisches Fahren
Seminar Sommersemester 2015: Automobile Systeme in der Automatisierung Prof. Dr. Dieter Zöbel, Universität Koblenz-Landau, FB Informatik Sicherheit und automatisches Fahren Patrick Schmitz Eingereicht:
MehrAbstarkte Interpretation I
Lehr- und Forschungseinheit Theoretische Informatik Hauptseminar Programmanalyse SS 2009 Abstrakte Interpretation I Prof. Dr. Martin Hofmann Referent: Gliederung I. Grundlagen der abstrakten Interpretation
MehrVerifizierende Testverfahren
Spezifikation Um einen Algorithmus zu schreiben, muss das zu lösende Problem genau beschrieben sein. Eine Spezifikation ist Verifizierende Testverfahren vollständig, wenn alle Anforderungen/alle relevanten
MehrMathematische Beweise und Symbolische Tests
Mathematische Beweise und Symbolische Tests Arne Meier Universität Hannover Institut für praktische Informatik Fachgebiet Software Engineering Seminar Werkzeuggestützte Softwareprüfungen 19. April 2006
MehrProblem: Gegeben Spezifikation (P,Q) und Implementierung S Gesucht formaler (automatisierbarer?) Beweis, dass S (P,Q) erfüllt.
Formale Verifikation von Algorithmen 1.3 Verifikation Problem: Gegeben Spezifikation (P,Q) und Implementierung S Gesucht formaler (automatisierbarer?) Beweis, dass S (P,Q) erfüllt. Bisher nicht möglich
MehrWarum Programme Verträge schließen sollten
1 Warum Programme Verträge schließen sollten RALF HINZE Institut für Informatik, Lehrstuhl Softwaretechnik, Universität Freiburg Georges-Köhler-Allee, Gebäude 079, 79110 Freiburg i. Br. Email: ralf@informatik.uni-bonn.de
MehrFormale Programmverifikation. Referentin: Kirsten Hradek
Formale Programmverifikation Referentin: Kirsten Hradek Formale Programmverifikation 2 Formale Programmverifikation Einführung/Motivation 2 Formale Programmverifikation Einführung/Motivation Softwareverifikation
MehrSoftware Entwicklung 1. Spezifikation von Prozedureigenschaften. Spezifikation prozeduraler Programme. Warum Spezifikationen?
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Spezifikation von Prozedureigenschaften Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 27
MehrKorrekte Software: Grundlagen und Methoden Vorlesung 11 vom : Funktionen und Prozeduren
18:10:49 2016-07-07 1 [14] Korrekte Software: Grundlagen und Methoden Vorlesung 11 vom 06.06.16: Funktionen und Prozeduren Serge Autexier, Christoph Lüth Universität Bremen Sommersemester 2016 Korrekte
MehrPhilosophie des Intuitionismus und sein Einfluß auf die Informatik
Philosophie des Intuitionismus und sein Einfluß auf die Informatik Christoph Kreitz Was ist Intuitionismus? Unterschiede zur klassischen Mathematik Historische Entwicklung Bezüge zur Informatik Ähnlichkeit
MehrTesten mit Use Cases. Chris Rupp Dr. Stefan Queins
Testen mit Use Cases Chris Rupp Dr. Stefan Queins Das Problem Requirements- Engineering Was kann passieren? Was ist das gewünschte Verhalten? Was soll ich testen? Welche Eingaben benötigt mein Testpfad?
MehrAusblick: Kollisionsvermeidung im dreidimensionalen Raum
Deutsches Forschungszentrum für Künstliche Intelligenz GmbH Ausblick: Kollisionsvermeidung im dreidimensionalen Raum Udo Frese Holger Täubig Sichere Kognitive Systeme Motivation SAMS Algorithmus in 3D
MehrC. A. R. Hoare. An Axiomatic Basis for Computer Programming. Nicolas Schelp. Proseminar Assertions SS 2007
C. A. R. Hoare An Axiomatic Basis for Computer Programming Nicolas Schelp Proseminar Assertions SS 2007 Inhalt Motivation Kurze Biographie Der Hoare-Kalkül Axiome und Inferenzregeln des Hoare-Kalküls Die
MehrKorrektheit imperativer Algorithmen
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Abschnitt 9 Korrektheit imperativer Algorithmen Skript zur Vorlesung Einführung in die Programmierung im Wintersemester
MehrFormale Sprachen. Inhaltsverzeichnis. M. Jakob. 10. Dezember Allgemeine Einführung. Aufbau formaler Sprachen
M. Jakob Gymnasium Pegnitz 10. Dezember 2014 Inhaltsverzeichnis Allgemeine Einführung Aufbau formaler Sprachen Notationsformen formaler Sprachen Backus-Naur-Formen Erkennen formaler Sprachen Implementierung
MehrSchlussbericht des Projektes SAMS
Sicherungskomponente für Autonome Mobile Serviceroboter Schlussbericht des Projektes SAMS Prof. Bernd Krieg-Brückner Hinweis Das diesem Bericht zugrunde liegende Vorhaben wurde mit Mitteln des Bundesministeriums
MehrTesten und abstrakte Interpretation
E. Vorobev: Testen und abstrakte Interpretation 1 [20] Testen und abstrakte Interpretation Elena Vorobev Universität Bremen Fachbereich 3, Mathematik und Informatik Universität Bremen, Cartesium, 13.10.09
MehrLogik für Informatiker
Vorlesung Logik für Informatiker 1. Einführung Bernhard Beckert Universität Koblenz-Landau Sommersemester 2006 Logik für Informatiker, SS 06 p.1 Formale Logik Ziel Formalisierung und Automatisierung rationalen
MehrWas ist mathematische Logik?
Was ist mathematische Logik? Logik untersucht allgemeine Prinzipien korrekten Schließens Mathematische Logik stellt zu diesem Zweck formale Kalküle bereit und analysiert die Beziehung zwischen Syntax und
Mehr2.3 Spezifikation von Abstrakten Datentypen
Abstrakte Datentypen (ADT) 2.3 Spezifikation von Abstrakten Datentypen Sichtbare Schnittstelle: Typbezeichner Signaturen der Operationen Spezifikation der Operationen Abstraktionsbarriere Implementierung
Mehr5.3 Korrektheit und Verifikation
5.3 Korrektheit und Verifikation Korrektheit bedeutet, dass ein Algorithmus oder ein Programm das in der Spezifikation beschriebene Problem für beliebige Eingabedaten korrekt löst. Die Korrektheit kann
Mehr5.3 Korrektheit und Verifikation
5.3 Korrektheit und Verifikation Korrektheit bedeutet, dass ein Algorithmus oder ein Programm das in der Spezifikation beschriebene Problem für beliebige Eingabedaten korrekt löst. Die Korrektheit kann
MehrGeheimnisprinzip: (information hiding principle, Parnas 1972)
2. Abstrakte Datentypen 2.0 Begriffe Geheimnisprinzip: (information hiding principle, Parnas 1972) Zugriffe auf Teile einer Programmeinheit, die für die reguläre Benutzung nicht erforderlich sind, sollten
MehrSchlussbericht des Projektes SAMS
Deutsches Forschungszentrum für Künstliche Intelligenz GmbH Research Report RR-10-01 Schlussbericht des Projektes SAMS Christoph Lüth March 2010 Deutsches Forschungszentrum für Künstliche Intelligenz GmbH
MehrIII.1 Prinzipien der funktionalen Programmierung - 1 -
1. Prinzipien der funktionalen Programmierung 2. Deklarationen 3. Ausdrücke 4. Muster (Patterns) 5. Typen und Datenstrukturen 6. Funktionale Programmiertechniken III.1 Prinzipien der funktionalen Programmierung
MehrCompilerbau für die Common Language Run-Time
Compilerbau für die Common Language Run-Time Syntax und Semantik von Programmiersprachen 2 Compilerbau Sprachbeschreibung vs. Implementierung Beschreibung: formale oder informale (engl.) Lexik, Syntax,
MehrBeispiel 1 zur Verifikation eines bedingten Anweisung. Hoare-Regel für die bedingte Anweisung. else
Hoare-Regel für die bedingte Anweisung I1 : I2 : {B P } S 1 {Q} { nicht B P } {Q} {P } if (B) then S 1 {Q} {B P } S 1 {Q} { nicht B P } S 2 {Q} {P } if (B) then S 1 else S 2 {Q} In der Regel für bedingte
MehrBounded Model Checking mit SystemC
Bounded Model Checking mit SystemC S. Kinder, R. Drechsler, J. Peleska Universität Bremen {kinder,drechsle,jp}@informatik.uni-bremen.de 2 Überblick Motivation Formale Verifikation Äquivalenzvergleich Eigenschaftsprüfung
MehrZusammenfassung. Definition. 1 (x i ) 1 i n Sequenz von Registern x i, die natürliche Zahlen beinhalten. 2 P ein Programm. Befehle: 1 x i := x i + 1
Zusammenfassung Zusammenfassung der letzten LVA Einführung in die Theoretische Informatik Christina Kohl Alexander Maringele Georg Moser Michael Schaper Manuel Schneckenreither Eine Registermaschine (RM)
Mehr6. Funktionen, Parameterübergabe
6. Funktionen, Parameterübergabe GPS-6-1 Themen dieses Kapitels: Begriffe zu Funktionen und Aufrufen Parameterübergabearten call-by-value, call-by-reference, call-by-value-and-result in verschiedenen Sprachen
MehrAbschnitt 11: Korrektheit von imperativen Programmen
Abschnitt 11: Korrektheit von imperativen Programmen 11. Korrektheit von imperativen Programmen 11.1 11.2Testen der Korrektheit in Java Peer Kröger (LMU München) in die Programmierung WS 16/17 931 / 961
MehrWas bisher geschah Modellierung von Daten durch Mengen Beziehungen (Zusammenhänge und Eigenschaften) durch Relationen, Graphen und Funktionen
Was bisher geschah Modellierung von Daten durch Mengen Beziehungen (Zusammenhänge und Eigenschaften) durch Relationen, Graphen und Funktionen Anforderungen durch Logiken Modellierung zusammenhängender
Mehr13 Formale Spezifikation von Anforderungen
13 Formale Spezifikation von Anforderungen Mögliche Formalitätsgrade einer Spezifikation 0 Ideen und Vorstellungen der Auftraggeber informale Spezifikation Zeit teilformale Spezifikation 100% formale Spezifikation
MehrWerkzeuge zur Programmentwicklung
Werkzeuge zur Programmentwicklung B-15 Bibliothek Modulschnittstellen vorübersetzte Module Eingabe Editor Übersetzer (Compiler) Binder (Linker) Rechner mit Systemsoftware Quellmodul (Source) Zielmodul
MehrVerifikation von Programmen
http://scam-trap.com/i/stophacking1.gif Verifikation von Programmen OOPM, Ralf Lämmel 380 Was tun? (Mit den Spezifikationen) Dokumentation Überprüfen der Bedingungen zur Laufzeit Verifizieren der Bedingungen
MehrZwischencode-Erzeugung. 2. Juni 2009
Zwischencode-Erzeugung im Rahmen des Seminars "Übersetzung von künstlichen Sprachen" Sebastian Hanneken 2. Juni 2009 1 / 32 1 Einleitung Einordnung Funktion von Zwischencode 3-Adresscode (3AC) 2 Erzeugung
MehrStatisches Programmverständnis. pk12w16,
Statisches Programmverständnis pk12w16, 10. 12. 2012 1 Verifikation einer Klasse für jede Methode und jeden Konstruktor: Annahme: Vorbedingungen und Invarianten erfüllt Nachbedingungen und Invarianten
MehrSAMS Verifikationsumgebung Referenzhandbuch
Sicherungskomponente für Autonome Mobile Systeme Eine Kooperation zwischen DFKI-Labor Bremen Leuze lumiex Universität Bremen SAMS Verifikationsumgebung Referenzhandbuch Zusammenfassung Dieses Dokument
MehrAn Overview of the Signal Clock Calculus
An Overview of the Signal Clock Calculus, Jennifer Möwert Inhaltsverzeichnis Synchrone Programmiersprachen Clock Calculus Synchrone Paradigmen SLTS Clocks SIGNAL Definitionen Endochrony Bäume, Jennifer
MehrGliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung
Gliederung n Teil I: Einleitung und Grundbegriffe l 1. Organisatorisches l 2. Grundlagen von Programmiersprachen n Teil II: Imperative und objektorientierte Programmierung l 1. Grundelemente der Programmierung
MehrLogik. Logik. Vorkurs Informatik Theoretischer Teil WS 2013/ September Vorkurs Informatik - Theorie - WS2013/14
Logik Logik Vorkurs Informatik Theoretischer Teil WS 2013/14 30. September 2013 Logik > Logik > logische Aussagen Logik Logik > Logik > logische Aussagen Motivation Logik spielt in der Informatik eine
MehrFormale Methoden der Softwaretechnik 1 Vorlesung vom : Grundlage von Isabelle
1 Formale Methoden der Softwaretechnik 1 Vorlesung vom 16.11.09: Grundlage von Isabelle Christoph Lüth, Lutz Schröder Universität Bremen Wintersemester 2009/10 2 Fahrplan Teil I: Grundlagen der Formalen
MehrBeispiel 1 zur Verifikation eines bedingten Anweisung. Hoare-Regel für die bedingte Anweisung. Beispiel 2 zur Verifikation eines bedingten Anweisung
Hoare-Regel für die bedingte Anweisung I1 : I2 : {B und P } S 1 {Q} { nicht B und P } {Q} {P } if (B) then S 1 {Q} {B und P } S 1 {Q} { nicht B und P } S 2 {Q} {P } if (B) then S 1 S 2 {Q} In der Regel
MehrFormale Systeme Logik: Verifikation von Aussagen über Algorithmen. Ana Sokolova statt Robert Elsässer
Formale Systeme Logik: Verifikation von Aussagen über Algorithmen 20.12.2012 Ana Sokolova statt Robert Elsässer Verifikation von Aussagen über Algorithmen Hoaresche Logik: Kalkül zum Beweisen von Aussagen
MehrKorrektheit und Hoare-Kalkül für Imperative Programme
Korrektheit und Hoare-Kalkül für Imperative Programme Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 Ziele Partielle und totale Korrektheit kennen lernen Die Regeln des Hoare-Kalkül
Mehr1 Algorithmische Grundlagen
1 Algorithmische Grundlagen Klocke/17.03.2003 1.1 1.1 Begriffsklärung Fragen Begriffsklärungen Abstraktionsebenen für Algorithmen und Datenstrukturen Algorithmus Qualität von Algorithmen Klocke/17.03.2003
MehrEinführung in die Programmierung
Einleitung Gliederung Einführung in die Programmierung Wintersemester 2017/18 Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering
MehrKapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren
Kapitel 1: Einleitung Wintersemester 2006/07 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Gliederung Zum Begriff Informatik
MehrAlgorithmus. Was ist ein Algorithmus? Ibn Musa Al-Chwarismi persischer Mathematikers 9. Jahrhundert Buch: Regeln der Wiedereinsetzung und Reduktion.
Algorithmus Was ist ein Algorithmus? Ibn Musa Al-Chwarismi persischer Mathematikers 9. Jahrhundert Buch: Regeln der Wiedereinsetzung und Reduktion. Hier einige informelle Erklärungen zum Algorithmus P
MehrKapitel 4: Formale Verifikation
Kapitel 4: Formale Verifikation Inhalt 4.1 Grundlagen 4.2 Verifikation auf axiomatischer Basis 4.3 Verifikation einzelner Eigenschaften 4.4 Stärken und Schwächen formaler Verifikation Schlüsselbegriffe
MehrEinführung in die Programmierung
Einleitung Gliederung Einführung in die Programmierung Wintersemester 08/09 Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering
MehrClient-Server-Beziehungen
Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server
MehrTheoretische Grundlagen des Software Engineering
Theoretische Grundlagen des Software Engineering 6: Formale Logik Einführung schulz@eprover.org Formale Logik Ziel Formalisierung und Automatisierung rationalen Denkens Rational richtige Ableitung von
MehrKonzeptpapier Bremsmodell
Eine Kooperation zwischen Sicherungskomponente für Autonome Mobile Systeme DFKI-Labor Bremen Leuze lumiex Universität Bremen Konzeptpapier Bremsmodell Zusammenfassung Dieses Dokument beschreibt das Konzept
MehrFachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn. Testen. Tutorial im Rahmen des Software(technik)praktikums SS 2012
Testen Tutorial im Rahmen des Software(technik)praktikums SS 2012 Grundlagen (1) Software ist ein fundamentales Element in der Softwarequalitätssicherung Software wird am häufigsten eingesetzt Viele Organisationen
MehrEinführung in die Programmierung Wintersemester 2016/17
Einführung in die Programmierung Wintersemester 2016/17 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Einleitung Gliederung Zum Begriff Informatik Zum
MehrVor- und Nachbedingungen in imperativen Programmen OOPM, Ralf Lämmel
Wer ist denn das? Vor- und Nachbedingungen in imperativen Programmen OOPM, Ralf Lämmel Programmspezifikation mit Vor- und Nachbedingungen (C) 2007-2018, Ralf Lämmel, Universität Koblenz-Landau 2 3 Gesprächsprotokoll
Mehr{P} S {Q} {P} S {Q} {P} S {Q} Inhalt. Hoare-Kalkül. Hoare-Kalkül. Hoare-Tripel. Hoare-Tripel. Hoare-Tripel
Inhalt Hoare-Kalkül Formale Verifizierung Hoare-Kalkül while-sprache Terminierung Partielle / totale Korrektheit 4.0 Hoare-Kalkül entwickelt von C.A.R. (Tony) Hoare (britischer Informatiker), 1969 formales
MehrTheoretische Grundlagen der Objektorientierung
Theoretische Grundlagen der Objektorientierung Benedikt Meurer Fachbereich Mathematik Universität Siegen Übersicht 1. Einleitung 2. Funktionale Objekte 3. Typsicherheit 4. Vererbung 5. Fazit Benedikt Meurer
MehrKapitel 1. Software-Entwicklung und formale Spezifikation
Seite 1 Kapitel 1 Software-Entwicklung und formale Spezifikation Prof. Dr. Rolf Hennicker 22.04.2010 Ziele Seite 2 Die Grundprinzipien der Software-Entwicklung verstehen. Die Rolle formaler Methoden in
MehrEinführung in die Informatik 1
Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag,
MehrObjektorientierte Programmierung (OOP)
orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,
MehrImplementierung eines LR-Parser-Generators mit syntaktischen Prädikaten
Implementierung eines LR-Parser-Generators mit syntaktischen Prädikaten Aufgabenbeschreibung 29. Juli 2011 1 Einleitung und Motivation Der Parser-Generator Antlr [Par07] bietet die Möglichkeit, die Auswahl
MehrUberblick 1. Problemstellung 2. Kongurationsraum 3. Bewegungsplanung fur einen Punktroboter 4. Minkowski Summen 5. Pseudo-Scheiben 6. Bewegungsplanung
Vorlesung Geometrische Algorithmen Bewegungsplanung fur Roboter (Robot Motion Planning) Sven Schuierer Uberblick 1. Problemstellung 2. Kongurationsraum 3. Bewegungsplanung fur einen Punktroboter 4. Minkowski
MehrErsetzbarkeit und Verhalten
Ersetzbarkeit und Verhalten U ist Untertyp von T, wenn eine Instanz von U überall verwendbar ist, wo eine Instanz von T erwartet wird Struktur der Typen für Ersetzbarkeit nicht ausreichend Beispiel: void
MehrC-Propädeutikum Anweisungen
C-Propädeutikum Anweisungen Stefan Freitag freitag@uni-leipzig.de Universitätsrechenzentrum Universitätsbibliothek Universität Leipzig basiert auf den Originalfolien von Jörn Hoffmann Ausdrücke Institut
MehrTheorembeweiser und ihre Anwendungen
Theorembeweiser und ihre Anwendungen Prof. Dr.-Ing. Gregor Snelting Dipl.-Inf. Univ. Daniel Wasserrab Lehrstuhl Programmierparadigmen IPD Snelting Universität Karlsruhe (TH) IPD Snelting, Uni Karlsruhe
MehrWas bisher geschah Modellierung in Logiken: klassische Prädikatenlogik FOL(Σ, X) Spezialfall klassische Aussagenlogik AL(P)
Was bisher geschah Modellierung in Logiken: klassische Prädikatenlogik FOL(Σ, X) Spezialfall klassische Aussagenlogik AL(P) Syntax Semantik Signatur, Variablen Terme (induktive Definition, Baumform) Atome
MehrQualitätssicherung in der Softwareentwicklung
VU 3 Institut für Softwaretechnologie (IST) TU Graz Sommersemester 2012 Übersicht der Vorlesung 1 Invarianten in JML 2 3 4 5 JML Beispiele Invariant package org.jmlspecs.samples.jmlrefman Purse [Burdy
MehrKontrollfluss. man Verzweigungen und Sprünge. o bisher linear (von oben nach unten) o Für interessante Programme braucht
Kontrollanweisungen Kontrollfluss o bisher linear (von oben nach unten) o Für interessante Programme braucht man Verzweigungen und Sprünge Kontrollfluss o bisher linear (von oben nach unten) o Für interessante
MehrInterdisziplinäre fachdidaktische Übung: Modelle für Sprachen in der Informatik. SS 2016: Grossmann, Jenko
Interdisziplinäre fachdidaktische Übung: Modelle für Sprachen in der SS 2016: Grossmann, Jenko Die Beschreibung orientiert sich am Begriffssystem der Beschreibung natürlicher Sprachen Sprache in der steht
MehrCell Decomposition & Potential Field
Seminar EXRPR Cell Decomposition & Potential Field Gruppe 2: Thomas Janu Martin Koch Adrian J. Merkl Matthias Schneider Cell Decomposition & Potential Field 20.06.2005 Gruppe 2 Gliederung (1) 1.Cell Decomposition
MehrFormale Verifikation von Software. 10. Juli 2013
Formale Verifikation von Software 10. Juli 2013 Überblick Wann ist formale Softwareverifikation sinnvoll? Welche Techniken gibt es? Was ist Model Checking und wie kann man es zur Verifikation einsetzen?
MehrBeispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio)
Beispiel Beispiel: Namensliste konvertieren (Karl Egon Meier Meier, Karl Egon). s/(.*) (.*)/$2, $1/; Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) s/(.*) (.*)/$2, $1/; s/(.*) ([a-z]+
MehrPraktische Informatik 3: Funktionale Programmierung Vorlesung 11 vom : Monaden als Berechnungsmuster
16:02:16 2017-01-17 1 [30] Praktische Informatik 3: Funktionale Programmierung Vorlesung 11 vom 10.01.2017: Monaden als Berechnungsmuster Christoph Lüth Universität Bremen Wintersemester 2016/17 Frohes
Mehr1 Funktionale vs. Imperative Programmierung
1 Funktionale vs. Imperative Programmierung 1.1 Einführung Programme einer funktionalen Programmiersprache (functional programming language, FPL) bestehen ausschließlich aus Funktionsdefinitionen und Funktionsaufrufen.
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Fehlerarten. Validation. Wintersemester 2012/13. Dr. Tobias Lasser
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 01/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 1 Einführung Mathematische Grundlagen
MehrProgrammierkurs II. Prof. Dr. Wolfgang Effelsberg. Universität Mannheim. Sommersemester Wolfgang Effelsberg Programmiersprachen
Prof. Dr. Wolfgang Effelsberg Universität Mannheim Sommersemester 2005 1-1 Inhalt (1) Teil I: Die Programmiersprache C 2. Datentypen und Deklarationen 3. Operatoren und Ausdrücke 4. Ablaufsteuerung (Kontrollstrukturen)
Mehr