Validierungssuite. SICHERHEIT 2008, Saarbrücken, 2. April 2008.

Ähnliche Dokumente
Maßnahmen zur Qualitätssicherung beim Einsatz von automatischer Code-Generierung

Agenda. Durchgängiger Einsatz Hardware-unabhängiger Testfälle im MiL-, SiL- und HiL-Test

Programmier-Befehle - Woche 08

Simulink PLC Coder für sichere IEC Steuerungen bei MAGIRUS GmbH

Nachts ist s kälter als draußen Warum qualifizieren und nicht zertifizieren?

Spezifikationsmethode zur Generierung von Modellen und Tests. Qualifizierung von Codegeneratoren.

Einführung in die Programmierung 1

Problem: Keine Integers in JavaCard. ToDo: Rechnen mit Bytes und Shorts

Projekt Message-Logger

22. Januar Gruppe 2: TOPCASED

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Validierung von Software-Werkzeugen Medical Device Day, Dipl.-Phys. Matthias Hölzer-Klüpfel, M.Sc.

Erzeugung von Zufallszahlen mit RANUNI()

Grundlagen der Programmierung in C++ Kontrollstrukturen

Scala. Funktionale (Zustandslose) Objekte

Bit Operationen. InE1 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Funktionale Sicherheit und Simulation

Entwicklung von Medizinischen Algorithmen für die Kardiologie mit Hilfe Simulink und Modellbasiertes Design

Ausdrücke (1) Grundlegende Eigenschaften

Integration eines Application Security Management in ein ISMS nach BSI IT- Grundschutz 1. BSI IT-Grundschutztag Limburg

Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

Informatik für Mathematiker und Physiker Woche 2. David Sommer

C++ Teil 4. Sven Groß. 30. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 16

Vorkurs C++ Programmierung

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Fachforum 5: Systems Engineering Modellgetriebene Entwicklung von Schrittketten G. KRAFT Maschinenbau GmbH 06. Dezember 2017 Paderborn

Property Based Testing

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Algorithmen und Datenstrukturen

D-BAUG Informatik I. Exercise session: week 1 HS 2018

Testen von SOA-Anwendungen mit dem BPEL Testframework

Rechnungen, wo kein sinnvoller Wert rauskommt Bsp.: 1/0, *0, sqrt(-1.0) Beispiel: Quadratische Gleichungen

16. Structs und Klassen I. Rationale Zahlen, Struct-Definition, Operator-Überladung, Datenkapselung, Klassen-Typen

THE GO PROGRAMMING LANGUAGE. Michael Karnutsch & Marko Sulejic

Konvertierung von Projekten von ELOP II V3.5 auf ELOP II V4.1

UnitTest mit dem SQL-Developer Testgetriebene Entwicklung mit Oracle Werkzeugen

Erste Schritte der Programmierung in C

Informatik für Mathematiker und Physiker Woche 6. David Sommer

Abacus Formula Compiler (AFC)

Algorithmen zur Datenanalyse in C++

Good Weighing Practice

Grundlagen zu Datenobjekten und Operatoren

Multi-Tool Testlandschaft mit DDS

Formalisierung von Requirements. durch Nutzung von Templates

MDRE die nächste Generation des Requirements Engineerings

Wiederholungen / Schleifen

Einstieg in die Informatik mit Java

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

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 11. Februar 2015

Angewandte Mathematik und Programmierung

Definitionen/Vorarbeit zum Thema Java

dspace (1/3) dspace: Gegründet 1988 in Paderborn Mitarbeiter: Über 650 Mitarbeiter weltweit, davon über 70 % Ingenieure Ständiges Mitarbeiterwachstum

Testen mit Use Cases. Chris Rupp Dr. Stefan Queins

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?

Modellbasierte Software- Entwicklung eingebetteter Systeme

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

4.4 Imperative Algorithmen Prozeduren

Modellierung und Programmierung 1

Grundlagen der Informatik 2. Typen

Übungsstunde: Informatik 1 D-MAVT

Algorithmen und Datenstrukturen 03

MOSAIC: praxis-orientierte Werkzeuge und Vorlagen für Kohortenstudien und Register

Automatisierte Architekturanalyse unter Einsatz von UML 2.0 Modellen

Informatik II, SS 2014

So testen Sie Anappe.Com

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Wann lohnt sich GUI- Testautomatisierung?

Einführung in C. EDV1-04C-Einführung 1

Thomas Sillmann. Swift im Detail HANSER

Programmieren in Java

ASIL-relevante SW-Module identifiziert! Was nun?

1.10Asset und Config. Management

Android DER SCHNELLE UND EINFACHE EINSTIEG IN DIE PROGRAMMIERUNG UND ENTWICKLUNGSUMGEBUNG. EXTRA: E-Book inside. dirk LOUIS peter MÜLLER. 2.

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r

1. Referenzdatentypen: Felder und Strings

DOORS Schema IBM Rational DOORS Start-Up Training - Teil 3

Eine JAVA Einführung ... Quellcode:... COMA Übung 3. T.Bosse. A.Griewank. Vorschau JAVA Programme Sprachen Kate

Modul 122 VBA Scribt.docx

Programmieren in C. Funktionen mit Zeigern und Adressen. Prof. Dr. Nikolaus Wulff

Testen und abstrakte Interpretation

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3

Dokumentation. Dokumentation - VPN - Installations- und Benutzeranleitung. Cisco-Client

MAQSIMA LAB Patch- Releasenotes MAQSIMA LAB Detaillierte Patch-Releasenotes

Projekt Message-Logger

Übungen zur Vorlesung Wissenschaftliches Rechnen I

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz

OOSE_02E Testen mit BlueJ/JUnit 4

Repetitorium Programmieren I + II

So funktioniert Erfolg. Unsere Services zur Funktionalen Sicherheit. TÜV SÜD Product Service GmbH

Beispiel: Schriftliche Addition

Qualitätssicherung in der Softwareentwicklung

6. Iteration (Schleifenanweisungen)

Transkript:

Seite 1 SICHERHEIT 2008,, 2. April 2008. BMW AG, Dr. Stefan-Alexander Schneider PMFS IT Consulting, Pierre R. Mai TÜV-Nord, Dr. Tomislav Lovric

Seite 2 Agenda. Einführung in die Qualifizierung von Entwicklungswerkzeugen Methode der Validierungssuite Anforderungen an eine Validierungssuite Prüfschritte einer Validierungssuite Erfahrungen mit der Validierung von Entwicklungswerkzeugen Ausblick

Seite 3 Einführung in die Qualifizierung von EWs. Festschreibung von Version und Konfiguration von 1. Betriebsumgebung, 2. Codegenerator incl. relvanter Hooks, 3. Compiler mit ggf. Quellcodedateien sowie 4. Entwicklungsrichtlinien Wie z.b.: Windows, JAVA, MATLAB, TargetLink, Windriver und Modellierungsrichtlinien in einem Dokument:

Seite 4 Methode der S m eval E EW geeignete Menge von Stimuli gegebenes Modell Auswertungsfunktion eines Modells bzgl. Ausführungsumgebung Menge von Ergebnissen durch ein Entwicklungswerkzeug vermittelte Transformation Zu zeigen ist, dass für alle Modelle und alle hierfür möglichen Stimuli der Abstand d(e_m, e_m ) = 0 für geeignete Metrik d ist. Die Abbildung d definiert damit den Korrektheitsbegriff (konkret Bitgenauigkeit der Ergebnisse). Teststrategie definiert die notwendigen Modelle und Stimuli.

SICHERHEIT 2008 Seite 5 Methode der Alle Modelle werden wie folgt getestet: Referenz Interpreter Model + References Simulator MIL results C-Code Generator? Stimuli PC C code + SIL results Target PIL results 001 101010010001001001001001001111100......0100110 Analyse der Bitvergleiche

Seite 6 Herleitung der EW-Besonderheiten. Anpassungen an TVS und/oder RefInt EW Besonderheiten Schleife, solange bis alle NOKs zugewiesen sind, entweder als Anpassungen an TVS, RefInt oder EW TVS-Entwickler Zuweisung Unabhängiger Entwickler Analyse Entwicklungswerkzeug Ergebnisse PIL und RefInt weichen in mindestens einem Bit im Ergebnis voneinander ab NOK TVS-Entwickler Analyse ERR Spezifizierte Tests TVS-Testrechner Test-Ergebnisse Qualifizierungsbericht Entwicklungswerkzeug Abkürzungen: TVS TargetLink-Validierungssuite NOK not OK ERR Abbruch bei der Codegenerierung OK Kritisch dann, wenn es möglicherweise zu einer nicht bemerkten fehlerhaften Codegenerierung kommt, trotz sowohl 1. Beachtung der Modellierungsrichtlinien als auch 2. Einsatz des ES-Richtliniencheckers als auch 3. Aufbereitung des TargetLink Modells mittels TL-Toolkette als auch 4. Beachtung sämtlicher Hinweise aus den Log-Datei.

Seite 7 Herleitung der Anforderungen. Problem: Keine direkt passenden Prüfkriterien für eine EW- Validierungssuite in Normen existent Aufgabe: Herleitung von Anforderungen an eine VS Filterprozess Nutzung und Verfeinerung der Anforderungen: VS-Anforderungen V2.0 Resultat: 113 abgestufte Anforderungen funktionale nicht-funktionale IEC 61508 ISO 26262 BMW Grob PTB EXP 39 12 7 4 51

Seite 8 Anforderungen an eine VS-Anforderungen VS-Anforderungen V2.0 Herleitung und Leitfaden Generelle Struktur der Anforderungen: Anforderungen an eine VS für die VS Hauptprüfung (Hauptteil) Anforderungen für eine Vorprüfung (=Anhang; prinzipielle Anforderungen)

Seite 9 Anforderungen an eine Gliederung der Anforderungen an eine VS (Hauptteil) 1. Anforderungen an die Funktionen der VS, z.b. an Testausführung; Protokollierung von Konfigurationsdaten; 2. Anforderung an Dokumentation und Reportgenerierung z.b. Erstellung eines EW-Qualifizierungsberichtes 3. Anforderungen an Struktur und Aufbau der VS z.b. Testdatenbank; verschiedene Testkategorien mit systematisch aus aus der Sprachdefinition hergeleiteten Tests 4. Anforderung and die Validierung der korrekten Umsetzung von EW-Input z.b. Modular aufgebauter EW-Input 5. Anforderungen an die Validierung der Zwischendarstellung z.b. Lesbarkeit 6. Anforderungen an sonstige Funktionsprüfungen am EW z.b. Einbindung von weiteren Modulen in den Code 7. Anforderungen an Verifizierung und Validierung der VS z.b. Strukturierte und plangemäße V&V Aktivitäten 8. Anforderungen an Qualität der VS z.b. Konfig. Management; Planung und Ausführung von QS Maßnahmen Gliederung der Anforderungen für eine Vorprüfung 1. Unterstützung und Ermöglichung von geeignetem EW-Input 2. Eigenschaften der Zwischendarstellung und des EW-Output 3. Sonstige Funktionsprüfungen am EW 4. Qualität des EW

Seite 10 Prüfschritte der Strukturiertes schrittweises Vorgehen bei der TVS-Prüfung Prüf-Phase Prüfgegenstand Fragen Vorprüfungen (Prinzipielle Eignung des EW) EW Definition EW + Dokumentation EW-Hersteller Audits Bsp: Ermöglicht das EW Modulare Programmierung? VS Teilprüfung: TAU Eignung VS Tst-Ablauf Umgebung VS Teilprüfung: Testfälle Eignung VS Testfall-Planung TAU + Dokumentation TAU-Hersteller Audits VS-Teststrategie VS-Testplan VS-Testspezifikation Bsp: Protokollierung von aller Daten? Bsp: Eingung der Test-Kateg. zu Sprachkonstrukten, ; zu Bausteinen für modular. Prog... Hauptprüfung: VS Eignung der VS insgesamt VS-Dokumentation VS-Entwicklung, V&V VS-Hersteller Audits -> Ermittlung des abgestuften Erfüllungsgrades zu jeder Anforderung Bsp: Testfälle und Ausführung zu Sprachkonstrukten, ; VS- V&V Pläne / Berichte Gesamt-Ergebnis: Die Anforderungen werden in zufrieden stellender Weise erfüll

Seite 11 Erfahrungen mit der

Seite 12 Erfahrungen mit der? Konvertierung mit float to unsigned long and round to zero anstatt mit float to unsigned long?

Seite 13 Erfahrungen mit der Validierungssuite

Seite 14 Erfahrungen mit der Bei dem Versuch das Maximum aus drei Konstanten (-32768,-32768 und 0.5) als Int zu bilden scheitert der Codegenerator und generiert Code statt das Maximum einfach zu berechnen /* MinMax: P_Model/MinMax_3 P_Model/MinMax_3: folded operation max to constant value -32768 Variable 'Sa1_MinMax_3' replaced by 'Aux_S16' */ Aux_S16 = -32768 /* -32768. */; if (0 /* 0.5 */ > Aux_S16) { /* Variable 'Sa1_MinMax_3' replaced by 'Aux_S16' */ Aux_S16 = 1 /* 0.5 */; } /* TargetLink outport: P_Model/Out1 3 */ Sa1_Out1 3 = (sint32) Aux_S16; Besonders beachtenswert ist dabei das UNTERSCHIEDLICHE Runden von 0.5 einmal zu 0 in der Abfrage und mal zu 1 in der Zuweisung.

Seite 15 Erfahrungen mit der Beschreibung: Der Shift-Operator, z.b. angewendet auf Uint16, hat unerwatetes Verhalten. If a value is shifted by more than 16, than the result is not allways 0 (as might be expected and currently computed by the reference interpreter), e.g. 13 << 237 = 40960 für SIL und MIL, aber 0 für PIL und 46 << 204 = 57344 für SIL, MIL und PIL Status

Seite 16 Ausblick. Die beiden referenzierten Dokumente 1. VS-Anforderungen - Herleitung und Leitfaden zur Anwendung, und 2. VS-Anforderungen - Anforderungen an eine Validierungssuite für Entwicklungswerkzeuge sind aus bestehenden Normen systematisch abgeleitet wurden angewandt und sind Praxiserprobt schließen somit die normative Lücke für Anforderungen an eine Validierungssuite für Entwicklungswerkzeuge. Der Einsatz einer Validierungssuite wird empfohlen sowohl in der IEC 61508-3, 2nd Edition, Bemerkung 3 zu 7.4.4.11 als auch ISO WD 26262-8, 10.4.5 mit Tabellen 10.1 und 10.2. Die Dokumente setzten somit den Stand der Technik. BMW plant darüber hinaus den Einsatz der Validierungssuite ganz allgemein für die Qualifizierung von Entwicklungswerkzeugen aus Qualitätssicherungsaspekten heraus.

Seite 17 Abschluß. Vielen Dank für die Aufmerksamkeit. Kontakt Dr. Stefan-Alexander Schneider, BMW AG Stefan-alexander.schneider@bmw.de +49 (0) 89 382-54566 Dr. Tomislav Lovric, TÜV NORD TLovric@tuev-nord.de +49 (0) 201 825-4101 Herr Pierre Mai, PMSF IT Consulting pmai@pmsf.de +49 (0) 8332 93669 13