18
Stefan Kauer 29.01.2013 Qualitätssicherung bei der Entwicklung sicherheitskritischer Software

Stefan Kauer 29.01.2013 Qualitätssicherung bei der Entwicklung sicherheitskritischer Software

Embed Size (px)

Citation preview

Page 1: Stefan Kauer 29.01.2013 Qualitätssicherung bei der Entwicklung sicherheitskritischer Software

Stefan Kauer

29.01.2013

Qualitätssicherung bei der Entwicklung sicherheitskritischer Software

Page 2: Stefan Kauer 29.01.2013 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– …

Page 3: Stefan Kauer 29.01.2013 Qualitätssicherung bei der Entwicklung sicherheitskritischer Software

© 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!)

Page 4: Stefan Kauer 29.01.2013 Qualitätssicherung bei der Entwicklung sicherheitskritischer Software

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

• …

Page 5: Stefan Kauer 29.01.2013 Qualitätssicherung bei der Entwicklung sicherheitskritischer Software

© 2013 CASSIDIAN - All rights reserved Page 5

Sicherheitskritische SW / Stefan Kauer

Januar 2013

Avioniksystem

Main ComputerBus Controller

Device 1 Device n….

Avionic Bus

….

Redundanz bei Geräten und BusMC überwacht Geräte per BIT-MeldungMC überwachen sich gegenseitig…

Page 6: Stefan Kauer 29.01.2013 Qualitätssicherung bei der Entwicklung sicherheitskritischer Software

© 2013 CASSIDIAN - All rights reserved Page 6

Sicherheitskritische SW / Stefan Kauer

Januar 2013

Avioniksystem

interner Bus

Gerät

Boards

Page 7: Stefan Kauer 29.01.2013 Qualitätssicherung bei der Entwicklung sicherheitskritischer Software

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

Page 8: Stefan Kauer 29.01.2013 Qualitätssicherung bei der Entwicklung sicherheitskritischer Software

© 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

Page 9: Stefan Kauer 29.01.2013 Qualitätssicherung bei der Entwicklung sicherheitskritischer Software

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

Page 10: Stefan Kauer 29.01.2013 Qualitätssicherung bei der Entwicklung sicherheitskritischer Software

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

Page 11: Stefan Kauer 29.01.2013 Qualitätssicherung bei der Entwicklung sicherheitskritischer Software

© 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

Page 12: Stefan Kauer 29.01.2013 Qualitätssicherung bei der Entwicklung sicherheitskritischer Software

© 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

Page 13: Stefan Kauer 29.01.2013 Qualitätssicherung bei der Entwicklung sicherheitskritischer Software

© 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– …

Page 14: Stefan Kauer 29.01.2013 Qualitätssicherung bei der Entwicklung sicherheitskritischer Software

© 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

Page 15: Stefan Kauer 29.01.2013 Qualitätssicherung bei der Entwicklung sicherheitskritischer Software

© 2013 CASSIDIAN - All rights reserved Page 15

Sicherheitskritische SW / Stefan Kauer

Januar 2013

Fehlerbehandlung

• Formale Erfassung / Verfolgung / Bearbeitung

• Toolgestützt

• Integriert mit Versionskontrollsystem

• Vorgehen1. Ist es ein Fehler? Welches Requirement ist verletzt?2. Reproduzieren3. Analysieren3. Eventuell reparieren, Testfall entwickeln, testen, dokumentieren

Page 16: Stefan Kauer 29.01.2013 Qualitätssicherung bei der Entwicklung sicherheitskritischer Software

© 2013 CASSIDIAN - All rights reserved Page 16

Sicherheitskritische SW / Stefan Kauer

Januar 2013

Fehlerverfolgung

open

occurance

describe / assign

new

accept

accepted

reassign

reject

closedreopen

fix

fixedverify

verify not fixed

Page 17: Stefan Kauer 29.01.2013 Qualitätssicherung bei der Entwicklung sicherheitskritischer Software

© 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

Page 18: Stefan Kauer 29.01.2013 Qualitätssicherung bei der Entwicklung sicherheitskritischer Software

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