Modellbasierte Software-Entwicklung eingebetteter Systeme

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmentheorie 08 – Dynamische Programmierung (1)
Advertisements

der Universität Oldenburg
Daniel Neumann Seminar Systementwurf Wintersemester 2006/07 Zustandsautomaten/ Kripke-Strukturen Daniel Neumann
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Eingebettete Systeme Qualität und Produktivität
Modellbasierte Software-Entwicklung eingebetteter Systeme
Modellbasierte Software-Entwicklung eingebetteter Systeme
Eingebettete Systeme Qualität und Produktivität
Prof. Dr. Holger Schlingloff
Qualitätssicherung von Software (SWQS)
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Prof. Dr. Holger Schlingloff
Eingebettete Systeme Qualität und Produktivität
Qualitätssicherung von Software (SWQS)
Modellbasierte Software-Entwicklung eingebetteter Systeme
Zusammenfassung der Vorwoche
Lineare Suche Divide-and-Conquer-Suche Kombinationssuche
Hauptseminar Modellüberprüfung Kathrin Ott
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2012.
Spec# Proseminar Assertions im SS 2007 Uni Paderborn Andreas Martens Betreuer: Dipl. Inform. Björn Metzler.
Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS : Software Model Checking.
Qualitätssicherung von Software
Qualitätssicherung von Software Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FIRST.
Qualitätssicherung von Software
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Prof. Dr. Holger Schlingloff
Management großer Softwareprojekte - Auswertung der Fragebögen - Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin, Institut für Informatik Fraunhofer.
Eingebettete Systeme Qualität und Produktivität
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Spezifikation, Verifikation, Testtheorie Prof. Dr. Holger Schlingloff Institut für Informatik und Fraunhofer FIRST.
Prof. Dr. Holger Schlingloff
Management großer Softwareprojekte Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin, Institut für Informatik Fraunhofer Institut für Rechnerarchitektur.
Software Verification 2 Automated Verification Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität and Fraunhofer Institut für.
LE LM 10 - LO3 Verfahren zur Qualitätssicherung
Algorithmentheorie 04 –Hashing
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
Prinzipien des Algorithmenentwurfs Backtracking Prof. Dr. Th. Ottmann
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 2 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Symbolisches Model Checking mit Binary Decision Diagrams
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Semantische Fehler Seminar im Grundstudium WS2002/2003:
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Tino Reindanz - FSU Jena Seminar Aktive Datenbanken – SS 2007 Folie 1 Seminar Aktive Datenbanken Rule Development Rule Development for Active Database.
Institut für Theoretische Informatik TU Carolo-Wilhelmina zu Braunschweig Teamprojekt in Software Systems Engineering und Theoretischer Informatik Einsatz.
Simulation komplexer technischer Anlagen
Zusammenfassung der Vorlesung
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Zentralübung Automotive Software Engineering – Übungsblatt 8
Softwaretechnik und Informationssysteme (Gebiet und Modul II.1.1, Module III.1.x) Dozenten der Softwaretechnik.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Prof. Dr. Walter F. Tichy Dr. Matthias Müller Sommersemester 2006 Empirische Softwaretechnik.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Modellbasierte Software-Entwicklung eingebetteter Systeme
Modellbasierte Software-Entwicklung eingebetteter Systeme
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Qualitätssicherung von Software Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FIRST.
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Software Verification 2 Automated Verification Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität and Fraunhofer Institut für.
Modellbasierte Software-Entwicklung eingebetteter Systeme
 Präsentation transkript:

Modellbasierte Software-Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer Institut für Rechnerarchitektur und Softwaretechnik

Achtung Headhunting! Sehr geehrter Herr Prof. Dr. Schlingloff, rechtzeitig zum Semesterende bieten wir Ihren Studierenden jetzt schon unsere exklusiven CareerVenture Recruiting-Veranstaltungen für dem Herbst 2011 an. Diese Events richten sich an Studierende, Absolventen, Doktoranden und Young Professionals aller Studiengänge und bieten die einzigartige Möglichkeit, an nur einem Tag mehrere vorterminierte, 45-minütige Einzelinterviews mit Vertretern der attraktivsten Arbeitgeber Deutschlands zu führen. Für eingeladene Kandidaten ist die Teilnahme kostenlos; die Anfahrt und Übernachtung wird im Rahmen des Sponsoringprogramms finanziell unterstützt.  Die Bewerbung erfolgt online über www.career-venture.de. CareerVenture information technology spring:  07. Oktober 2011 in Berlin Bewerbungsschluss: 14. September.2011 Bisher teilnehmende Unternehmen: Capgemini, Deloitte, Platinion, Senacor Technologies, Deutsche Telekom, u.a.

Verifikation was passiert hier?

Statische Analyse aus Programmiersprachen bekannt z.B. Java: Initialisierung von Variablen wird geprüft int k; if (terminates(TMi,i)) k=0; ... ??? Terminierung nicht garantiert; Abstraktion! was finden statische Analysatoren? Range and Bounds Checker Pointer and Storage Allocation Race Conditions

Statische Analyse: Compiler Typkorrektheit Initialisierung von Variablen Programmflussgraph Unerreichbarer Code Unveränderliche Felder Konstante Terme und Bedingungen Feldgrenzenverletzung ? Nullzeiger-Dereferenzierung ? Synchronisationsfehler ?

statische Analysewerkzeuge Spezialwerkzeuge zur tiefergehenden Analyse Lint (Splint, PCLint,…) PolySpace Verifier … Unterschiedliche Analysetiefe, unterschiedliche Ergebnisrate Problem: false positives

Lint Grundidee Einfache (schnelle!) Datenflussanalyse! Beispiel: Programmierer annotiert das Programm Lint prüft ob Annotationen erfüllt sind Einfache (schnelle!) Datenflussanalyse! Beispiel:

Buffer Overflow Verantwortlich für viele Sicherheitslücken Annotation der Puffergröße in Splint

Abstrakte Interpretation Wie beweist man solche Constraints? Ausführung des Programms mit symbolischen Werten (bzw. „Mengen von Werten“) Berechnung der möglichen Werte jeder Variablen an jeder Programmstelle („collecting semantics“) Was kann man daraus ableiten? Initialisierungen, Überlauf, Division durch Null, Indexüberschreitung, … Keine Aussage über Terminierung oder korrekte Funktionalität

Beispiel {x{2,4,6}} x=3*x+1 {x{7,13,19}}

allgemeine Vorgehensweise ergibt ein (rekursives) Gleichungssystem Lösung als kleinster Fixpunkt

Probleme Terminierung des Verfahrens ist nicht garantiert! (Limesbildung über transfinite Ordinalzahlen) Rechnen mit symbolischen Zustandsmengen z.B. Menge der Quadratzahlen, symbolische Ausdrücke wie x2+3x+5 usw. Gleichheit von beliebigen Mengenausdrücken unentscheidbar!

Abstraktion Beispiel x*y=z  (xmod n * ymod n) mod n = zmod n „mod n“ ist eine Abstraktion, die einen unendlichen Wertebereich auf {0,1,...,n-1} abbildet um zu prüfen, ob eine Multiplikation korrekt ausgeführt wurde, kann man die Abstraktion prüfen 8*7=56  2 * 1 = (8mod 3 * 7mod 3) mod 3 = 56mod 3 (8mod 3 * 7mod 3) mod 3  57mod 3  8*757 aber: 8*7  65, obwohl (8mod 3 * 7mod 3) mod 3 = 65mod 3 „false positives“: Der abstrakte Check findet keinen Fehler, obwohl noch einer enthalten ist (vgl. Test)

Abstraktion Datenabstraktion eigentlich Rechnen mit Mengen von Werten x  x mod 3 x*y  ((x mod 3) * (y mod 3) mod 3) eigentlich Rechnen mit Mengen von Werten konkreter Datenraum wird partitioniert in Mengen von Restklassen 0, 1, 2 konkrete Operationen werden abgebildet auf abstrakte; Rechnen mit Repräsentanten Eigenschaftserhaltung C erfüllt P  A erfüllt P A verletzt P  C verletzt P

statische Analyse von Modellen Polyspace Verifier: Analyse des Codes, symbolische Berechnung möglicher Fehler Rechenzeiten im Stunden- und Tagebereich False Negatives müssen manuell betrachtet werden Möglichkeit von False Positives Trotzdem massive Erhöhung der Sicherheit Initialisierung, Zeigerkonsistenz, Nulldivision, Wertebereichs- und Indexüberläufe, Speicherlecks unerreichbarer Code, Endlosschleifen und –rekursionen Teil von Simulink Verification & Validation

Modellprüfung Überprüfung eines formalen Modells des Systems gegenüber einer formalen Spezifikation der Anforderungen vollautomatisch für zustandsendliche Systeme Modellierung: UML State Machines, Stateflow, … Spezifikation: temporale Logik, Erreichbarkeit, Verklemmungsfreiheit, … 8.2.2006

bekannte Model-Checker SMV, nuSMV, Cadence SMV (CTL) SPIN, COSPAN (LTL) FDR, μCRL (Prozessalgebra) UPPAAL, Kronos, Rabbit (Realzeit) Reactis, Simulink Verifier (Simulink) HyTech (hybride Systeme) CBMC (bounded Model Checker for C/C++ programs) Java Pathfinder (für Java Bytecode) ...

Beispiel (SMV) 8.2.2006

Vorlesung im WS! Software-Verifikation 1 2 SWS 4 SP VL Do 13-15 wöch. RUD25, 4.112 H. Schlingloff UE Do 15-17 wöch. RUD25, 4.112 J. Gerlach Je mehr Software in sicherheitskritischen Systemen eingesetzt wird, umso wichtiger wird es, ihre Korrektheit objektiv nachzuweisen. Beispiele sind Signalisierungsanlagen in der Bahntechnik, Steuercomputer in Flugzeugen oder Regelungen medizinischer Geräte. In den letzten Jahren sind formale Verifikations- und Analysemethoden für solche Software so weit entwickelt worden, dass sie auch für industriell relevante Probleme einsetzbar geworden sind. Der Einsatz dieser Methoden wird von den einschlägigen Normen für hochgradig sicherheitsrelevante Software dringend empfohlen. Dieser Modul gibt einen Überblick über die wichtigsten formalen Methoden zur Software-Verifikation.

Zu den Prüfungen Jetzt gibt‘s ein paar streng geheime Tipps... Prüfungen (nach Möglichkeit) am 5. Sept. Ausweichtermin 26.9. Anmeldung bei Frau Heene Vorbereitungstreffen 30.8. 11:00 Raum 4.113 Lösungen mitbringen!

Schöne Ferien!