Durchgehender Einsatz von formaler Modellierung und Beweis als Mittel zur Zertifizierung sicherheitsrelevanter Software

Größe: px
Ab Seite anzeigen:

Download "Durchgehender Einsatz von formaler Modellierung und Beweis als Mittel zur Zertifizierung sicherheitsrelevanter Software"

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 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

Mehr

Ein SIL-3-konformes Werkzeug zur formalen Verifikation von C-Programmen

Ein 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

Mehr

Sicherungskomponente für Autonome Mobile Serviceroboter

Sicherungskomponente 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

Mehr

Formale Modellierung Vorlesung 13 vom : Rückblick und Ausblick

Formale 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

Mehr

3D Kollisionsvermeidung in Bewegung durch Echtzeitberechnung aller überstrichenen Volumen

3D 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.

Mehr

n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -

n 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

Mehr

n 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) 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

Mehr

Chapter A. Korrekte Programme. Korrektes Programm. Lecture Algorithmen & Datenstrukturen

Chapter 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 - ! 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

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. 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

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. 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,

Ü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

Mehr

Formale Modellierung Vorlesung vom : Beyond JML

Formale 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

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 - 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

Mehr

Informatik I - Programmierung Globalübung Hoare-Kalkül. Thomas Weiler. Fachgruppe Informatik RWTH Aachen. T. Weiler, RWTH Aachen - 1 -

Informatik 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

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 - 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

Mehr

Formale Spezifikation mit Java Modeling Language

Formale 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

Mehr

SPARK95. Ingmar Wirths. 12. Juli 2007

SPARK95. 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

Mehr

Sicherheit und automatisches Fahren

Sicherheit 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:

Mehr

Abstarkte Interpretation I

Abstarkte 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

Mehr

Verifizierende Testverfahren

Verifizierende 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

Mehr

Mathematische Beweise und Symbolische Tests

Mathematische 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

Mehr

Problem: Gegeben Spezifikation (P,Q) und Implementierung S Gesucht formaler (automatisierbarer?) Beweis, dass S (P,Q) erfüllt.

Problem: 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

Mehr

Warum Programme Verträge schließen sollten

Warum 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

Mehr

Formale Programmverifikation. Referentin: Kirsten Hradek

Formale Programmverifikation. Referentin: Kirsten Hradek Formale Programmverifikation Referentin: Kirsten Hradek Formale Programmverifikation 2 Formale Programmverifikation Einführung/Motivation 2 Formale Programmverifikation Einführung/Motivation Softwareverifikation

Mehr

Software Entwicklung 1. Spezifikation von Prozedureigenschaften. Spezifikation prozeduraler Programme. Warum Spezifikationen?

Software 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

Mehr

Korrekte Software: Grundlagen und Methoden Vorlesung 11 vom : Funktionen und Prozeduren

Korrekte 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

Mehr

Philosophie des Intuitionismus und sein Einfluß auf die Informatik

Philosophie 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

Mehr

Testen mit Use Cases. Chris Rupp Dr. Stefan Queins

Testen 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?

Mehr

Ausblick: Kollisionsvermeidung im dreidimensionalen Raum

Ausblick: 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

Mehr

C. 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 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

Mehr

Korrektheit imperativer Algorithmen

Korrektheit 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

Mehr

Formale Sprachen. Inhaltsverzeichnis. M. Jakob. 10. Dezember Allgemeine Einführung. Aufbau formaler Sprachen

Formale 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

Mehr

Schlussbericht des Projektes SAMS

Schlussbericht 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

Mehr

Testen und abstrakte Interpretation

Testen 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

Mehr

Logik für Informatiker

Logik 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

Mehr

Was ist mathematische Logik?

Was 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

Mehr

2.3 Spezifikation von Abstrakten Datentypen

2.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

Mehr

5.3 Korrektheit und Verifikation

5.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

Mehr

5.3 Korrektheit und Verifikation

5.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

Mehr

Geheimnisprinzip: (information hiding principle, Parnas 1972)

Geheimnisprinzip: (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

Mehr

Schlussbericht des Projektes SAMS

Schlussbericht 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

Mehr

III.1 Prinzipien der funktionalen Programmierung - 1 -

III.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

Mehr

Compilerbau für die Common Language Run-Time

Compilerbau 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,

Mehr

Beispiel 1 zur Verifikation eines bedingten Anweisung. Hoare-Regel für die bedingte Anweisung. else

Beispiel 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

Mehr

Bounded Model Checking mit SystemC

Bounded 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

Mehr

Zusammenfassung. 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. 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)

Mehr

6. Funktionen, Parameterübergabe

6. 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

Mehr

Abschnitt 11: Korrektheit von imperativen Programmen

Abschnitt 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

Mehr

Was 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 Was bisher geschah Modellierung von Daten durch Mengen Beziehungen (Zusammenhänge und Eigenschaften) durch Relationen, Graphen und Funktionen Anforderungen durch Logiken Modellierung zusammenhängender

Mehr

13 Formale Spezifikation von Anforderungen

13 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

Mehr

Werkzeuge zur Programmentwicklung

Werkzeuge zur Programmentwicklung Werkzeuge zur Programmentwicklung B-15 Bibliothek Modulschnittstellen vorübersetzte Module Eingabe Editor Übersetzer (Compiler) Binder (Linker) Rechner mit Systemsoftware Quellmodul (Source) Zielmodul

Mehr

Verifikation von Programmen

Verifikation 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

Mehr

Zwischencode-Erzeugung. 2. Juni 2009

Zwischencode-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

Mehr

Statisches Programmverständnis. pk12w16,

Statisches 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

Mehr

SAMS Verifikationsumgebung Referenzhandbuch

SAMS 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

Mehr

An Overview of the Signal Clock Calculus

An 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

Mehr

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung

Gliederung. 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

Mehr

Logik. Logik. Vorkurs Informatik Theoretischer Teil WS 2013/ September Vorkurs Informatik - Theorie - WS2013/14

Logik. 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

Mehr

Formale Methoden der Softwaretechnik 1 Vorlesung vom : Grundlage von Isabelle

Formale 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

Mehr

Beispiel 1 zur Verifikation eines bedingten Anweisung. Hoare-Regel für die bedingte Anweisung. Beispiel 2 zur Verifikation eines bedingten Anweisung

Beispiel 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

Mehr

Formale Systeme Logik: Verifikation von Aussagen über Algorithmen. Ana Sokolova statt Robert Elsässer

Formale 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

Mehr

Korrektheit und Hoare-Kalkül für Imperative Programme

Korrektheit 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

Mehr

1 Algorithmische Grundlagen

1 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

Mehr

Einführung in die Programmierung

Einfü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

Mehr

Kapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren

Kapitel 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

Mehr

Algorithmus. 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. 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

Mehr

Kapitel 4: Formale Verifikation

Kapitel 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

Mehr

Einführung in die Programmierung

Einfü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

Mehr

Client-Server-Beziehungen

Client-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

Mehr

Theoretische Grundlagen des Software Engineering

Theoretische 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

Mehr

Konzeptpapier Bremsmodell

Konzeptpapier 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

Mehr

Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn. Testen. Tutorial im Rahmen des Software(technik)praktikums SS 2012

Fachgebiet 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

Mehr

Einführung in die Programmierung Wintersemester 2016/17

Einfü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

Mehr

Vor- und Nachbedingungen in imperativen Programmen OOPM, Ralf Lämmel

Vor- 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

{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

Mehr

Theoretische Grundlagen der Objektorientierung

Theoretische 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

Mehr

Kapitel 1. Software-Entwicklung und formale Spezifikation

Kapitel 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

Mehr

Einführung in die Informatik 1

Einfü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,

Mehr

Objektorientierte Programmierung (OOP)

Objektorientierte 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,

Mehr

Implementierung eines LR-Parser-Generators mit syntaktischen Prädikaten

Implementierung 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

Mehr

Uberblick 1. Problemstellung 2. Kongurationsraum 3. Bewegungsplanung fur einen Punktroboter 4. Minkowski Summen 5. Pseudo-Scheiben 6. Bewegungsplanung

Uberblick 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

Mehr

Ersetzbarkeit und Verhalten

Ersetzbarkeit 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

Mehr

C-Propädeutikum Anweisungen

C-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

Mehr

Theorembeweiser und ihre Anwendungen

Theorembeweiser 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

Mehr

Was 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) 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

Mehr

Qualitätssicherung in der Softwareentwicklung

Qualitä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

Mehr

Kontrollfluss. man Verzweigungen und Sprünge. o bisher linear (von oben nach unten) o Für interessante Programme braucht

Kontrollfluss. 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

Mehr

Interdisziplinäre fachdidaktische Übung: Modelle für Sprachen in der Informatik. SS 2016: Grossmann, Jenko

Interdisziplinä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

Mehr

Cell Decomposition & Potential Field

Cell 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

Mehr

Formale Verifikation von Software. 10. Juli 2013

Formale 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?

Mehr

Beispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio)

Beispiel. 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]+

Mehr

Praktische Informatik 3: Funktionale Programmierung Vorlesung 11 vom : Monaden als Berechnungsmuster

Praktische 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

Mehr

1 Funktionale vs. Imperative Programmierung

1 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.

Mehr

Programm 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) 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

Mehr

Programmierkurs II. Prof. Dr. Wolfgang Effelsberg. Universität Mannheim. Sommersemester Wolfgang Effelsberg Programmiersprachen

Programmierkurs 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