Stefan Kauer Qualitätssicherung bei der Entwicklung sicherheitskritischer Software
© 2013 CASSIDIAN - All rights reserved Page 2 Sicherheitskritische SW / Stefan Kauer Januar 2013 Begriff Fehlerhaftes Verhalten oder Ausfall des Geräts kann zu Verlust von Menschenleben oder Sachgütern von erheblichem Wert führen Stufen der Kritikalität (Level A, B, C, D, E oder 1,2,3 je nach Standard, z.B. flight critical, mission critical, …) Verschiedene Einstufungen je nach (militärischem oder zivilen) Standard Kritikalität bestimmt –Welche Tätigkeiten –Wie durchzuführen –Wie zu dokumentieren –Tool-Qualifikation –…–…
© 2013 CASSIDIAN - All rights reserved Page 3 Sicherheitskritische SW / Stefan Kauer Januar 2013 Art der Geräte Elektronische Komponenten für militärische Fluggeräte (Hubschrauber, Flugzeuge,...) sicherheitskritisch zertifiziert entsprechend Zertifizierungsprozess (bezieht sich auf ganzes Gerät: (mechanisch / elektrisch / SW /... ) sehr lange Betriebszeit (10-30 Jahre) –Wartung –Weiterentwicklung –Archivierung alter" Tools / Rechner... –Single Source / Obszolesenz-Probleme / Management –…–… embedded (Entwicklungssystem Zielsystem!)
© 2013 CASSIDIAN - All rights reserved Page 4 Sicherheitskritische SW / Stefan Kauer Januar 2013 Art der Geräte eingeschränkte HW aufgrund Zertifizierung und anderer Randbedingungen oft keine user interaction (dafür Interface zu anderem HW-Modul / -gerät) Zusätzlich bei Projekten im Gegensatz zu Produkten: –kundenspezifisch –special purpose - das Gerät kann nichts, was nicht benutzt wird, also nicht universell", alles-in-einem –geringe Stückzahlen (einige 100) …
© 2013 CASSIDIAN - All rights reserved Page 5 Sicherheitskritische SW / Stefan Kauer Januar 2013 Avioniksystem Main Computer Bus Controller Device 1Device n …. Avionic Bus …. Redundanz bei Geräten und Bus MC überwacht Geräte per BIT-Meldung MC überwachen sich gegenseitig …
© 2013 CASSIDIAN - All rights reserved Page 6 Sicherheitskritische SW / Stefan Kauer Januar 2013 Avioniksystem interner Bus Gerät Boards
© 2013 CASSIDIAN - All rights reserved Page 7 Sicherheitskritische SW / Stefan Kauer Januar 2013 Avioniksystem HW - CPU (GPU, DSPs, MC) - Speicher (RAM, ROM, flash, Video, spezial, ….) - FPGA, CPLD, ASIC, … - spezial HW - interner Bus - I/O -… Board SW - Boot-ROM - FW - Treiber - BSP - OS - Application SW -…
© 2013 CASSIDIAN - All rights reserved Page 8 Sicherheitskritische SW / Stefan Kauer Januar 2013 Ebenen Avioniksystem Gerät Board Modul … Auf jeder Ebene gibt es Anforderungen und entsprechende Tests
© 2013 CASSIDIAN - All rights reserved Page 9 Sicherheitskritische SW / Stefan Kauer Januar 2013 Qualität - Begriffe Äußere Qualität – auch Ergebnisqualität –Kunden- bzw. Benutzersicht –Erfüllung der (Kunden)Requirements bzw. der Spezifikation Innere Qualität – auch Struktur- und Prozessqualität –Entwicklersicht –Was sind unsere Qualitätsziele?
© 2013 CASSIDIAN - All rights reserved Page 10 Sicherheitskritische SW / Stefan Kauer Januar 2013 Qualitätsziele / -kriterien Portierbarkeit (Portability) Performanz (Performance / Efficiency) Lesbarkeit (Readability) Wartbarkeit (Maintainability) –Fehlerspeicher –Wartungszugänge (z.B. serielle Schnittstelle RS232) Änderbarkeit (Changeability) Zuverlässigkeit (Reliability) –Selbsttest- / Diagnose-Funktionen (PBIT, IBIT, CBIT) –Life sign / Watchdog –…–… Robustheit (Robustness) –Inputs prüfen Sicherheit (Safety / Security) Wiederverwendbarkeit (Reusability)
© 2013 CASSIDIAN - All rights reserved Page 11 Sicherheitskritische SW / Stefan Kauer Januar 2013 Qualitätsziele / -kriterien Testbarkeit (Testability) Verwendbarkeit (Usability) teilweise widersprechende Ziele Priorisierung nötig Bei jeder Designentscheidung alle Kriterien bewerten (Qualitätsbewusstsein) Compliance: Dokumentation muss mit Gerät übereinstimmen –Fehler zugeben - concession / deviation –nicht erfüllbare Requirements nennen
© 2013 CASSIDIAN - All rights reserved Page 12 Sicherheitskritische SW / Stefan Kauer Januar 2013 Maßnahmen zur Qualitätssicherung Standardisierung in allen Entwicklungsphasen –Planung –Projektmanagement –Requirements Engineering –Architektur / Design –Implementierung (coding-Standards) –Tests / Abnahmen –Problem- und Änderungs-Management –Konfigurations-Management (Versionen / HW / SW / Konfig.-Stand / Umgebung / …) –Dokumentation / Archivierung
© 2013 CASSIDIAN - All rights reserved Page 13 Sicherheitskritische SW / Stefan Kauer Januar 2013 Maßnahmen zur Qualitätssicherung Prozessorientierung –In house Standard, z.B. V-Modell (tailoring), flyXT –Von customer / purchaser, z.B. EFA-Standard –Übergreifend, z.B. DO178B, DoD-STD-2167A Reviews auf allen Ebenen und in allen Phasen Traceability (Verfolgbarkeit, Durchgängigkeit) –Zwischen Requirements der Ebenen n und n+1 –Zwischen Tests und Requirements der Ebene n –Zwischen Requirements der niedrigsten Ebene (low level Requirements) und Implementierung –Zwischen Änderung der Implementierung und Change Request oder Problem Report –…–…
© 2013 CASSIDIAN - All rights reserved Page 14 Sicherheitskritische SW / Stefan Kauer Januar 2013 Test / Integration / Abnahme SW-Module –Entwickler-Tests –Unit Tests (White Box Tests) – nach Testplan, möglichst automatisiert -> Code Coverage Ziel: bis zu 100% (je nach Kritikalität) mit Code Inspection –Code Walk Through -> Einhaltung der Codier-Regeln Integration der SW-Module auf Board –freie Tests –Requirement based tests (black box tests) - nach Testplan, möglichst automatisiert (traceability) –Test für jeden gefixten Fehler durchführen Integration der boards im Gerät –freie Tests –Requirement based tests (black box tests) - nach Testplan, möglichst automatisiert –Formale Abnahme (konfigurierte Testdaten u. -umgebung / Protokoll Integration der Geräte in Avioniksystem
© 2013 CASSIDIAN - All rights reserved Page 15 Sicherheitskritische SW / Stefan Kauer Januar 2013 Fehlerbehandlung Formale Erfassung / Verfolgung / Bearbeitung Toolgestützt Integriert mit Versionskontrollsystem Vorgehen 1.Ist es ein Fehler? Welches Requirement ist verletzt? 2.Reproduzieren 3.Analysieren 3.Eventuell reparieren, Testfall entwickeln, testen, dokumentieren
© 2013 CASSIDIAN - All rights reserved Page 16 Sicherheitskritische SW / Stefan Kauer Januar 2013 Fehlerverfolgung open occurance describe / assign new accept accepted reassign reject closed reopen fix fixed verify not fixed
© 2013 CASSIDIAN - All rights reserved Page 17 Sicherheitskritische SW / Stefan Kauer Januar 2013 Tools Requirements-Engineering Design / Codegen (?) Versions- Konfigurationskontrolle mit integrierter Fehlerverfolgung Compiler Coverage (Testabdeckung Unit Test) Coding Standard Checker Re-Engineering: Erzeugung Klassen / Paket / Modul-Diagramme Generator für Schnittstellen-Beschreibung … Tool-Qualifikation - schwierig
© 2013 CASSIDIAN - All rights reserved Page 18 Sicherheitskritische SW / Stefan Kauer Januar 2013 The reproduction, distribution and utilization of this document as well as the communication of its contents to others without express authorization is prohibited. Offenders will be held liable for the payment of damages. All rights reserved in the event of the grant of a patent, utility model or design. Thank you for your attention!