Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 20.6.2013: Sicherheitsnormen
Fragen zur Wiederholung Wie funktioniert ein Code-Review? Probleme? Toolunterstützung? Abgrenzung Code-Review / Code-Checking / Model-Checking? Was versteht man unter ALM / PLM?
Wo stehen wir? Einleitung, Begriffe, Software-Qualitätskriterien Testverfahren, Teststufen, Testüberdeckung automatisierte Testfallerstellung Verifikation und Validierung, Modellprüfung statische und dynamische Analysetechniken Softwarebewertung, Softwaremetriken Codereview- und andere Inspektionsverfahren Zuverlässigkeitstheorie, Fehlerbaumanalyse Qualitätsstandards, Qualitätsmanagement, organisatorische Maßnahmen
Standards und Normen Produktstandards Prozessstandards Interoperabilität (z.B. Schraubgewinde) Vergleichbarkeit (z.B. Maßeinheit “Fuß”) Prozessstandards Objektivierung, Vereinheitlichung Überprüfbarkeit Verschiedene Arten von Software-Normen Normierung von Sprachen, Protokollen, Schnittstellen Referenzmodelle für Vorgehensweisen (z.B. CMMI) Sicherheitsnormen (z.B. ISO 61508) Qualitätsmanagementnormen (z.B. EN ISO 9001, IEC 25000)
IEC EN 61508 Generische Sicherheitsnorm Funktionale Sicherheit sicherheitsbezogener elektrischer/elektronischer/programmierbarer elektronischer Systeme Branchenspezifische Ausprägungen CENELEC EN 50128 (Bahntechnik) ISO 26262 (Automotive) DO 178 C (Aerospace) IEC 61511 (Prozessindustrie) ...
Funktionale Sicherheit Schutz gegen Gefahren, die von einer gestörten oder fehlerhaften Funktion ausgehen Sicherheit einer Anlage bzw. Anwendung ist von der sicheren Funktion der Überwachungseinrichtungen bestimmt; Funktionale Sicherheit ist gegeben, wenn jedes Risiko über Schutzeinrichtungen abgesichert ist Sicherheit muss beim normalen Betrieb gewährleistet sein und darf beim Ausfall einzelner Komponenten nicht verloren gehen “Sicherer Zustand” ? Nachweise: FMEA, FTA, ... (nächsten Dienstag) Numerische Betrachtungen zum Restrisiko!
Iterativer Sicherheitsprozess
Aufbau der IEC 61508 Veröffentlicht 1998, revidiert 2010 steigende Bedeutung in der Industrie (insbesondere Spezialisierungen) Teil 1: Allgemeine Anforderungen Teil 2: Anforderungen an sicherheitsbezogene e/e/pe Systeme Teil 3: Anforderungen an Software Teil 4: Begriffe und Abkürzungen Teil 5: Beispiele zur Ermittlung der Stufe der Sicherheitsintegrität Teil 6: Anwendungsrichtlinien Teil 7: Übersicht über Techniken und Maßnahmen zentraler Begriff: Sicherheitsanforderungsstufe (SAS, engl.: SIL – Safety Integrity Level) alle Anforderungen sind SIL-abhängig Normativ Informativ
Merkmale der 61508 betrachtet alle Phasen im Lebenszyklus eines Produkts, ganzheitliche Betrachtung Anforderungen zur funktionalen Sicherheit: Vermeidung systematischer Fehler (QM) Beherrschung systematischer Fehler / Ausfälle Beherrschung zufälliger Ausfälle Dokumentation Fehlerwahrscheinlichkeit und Zuverlässigkeit Management der funktionalen Sicherheit
Schadensart und -Häufigkeit
SIL-Klassen SIL = safety integrity level System-SIL wird bestimmt durch RAMS-Analyse (Reliability, Availability, Maintainability, Safety)
Bestimmung der Software-SIL Software-SIL richtet sich nach System-SIL „… werden auf Basis der Risikostufe für den Einsatz der Software im System entschieden…“ (EN 50128) Im Allgemeinen ist Software-SIL gleich der System-SIL „Without further precautions, the software safety integrity level shall be, as a minimum, identical to the system safety integrity level.“ Ausnahmen möglich, falls zusätzliche Sicherungsmaßnahmen eingeführt werden „if mechanisms exist to prevent the failure of a software module from causing the system to go to an unsafe state, the software safety integrity level of the module may be reduced“ Beispiel: HW-Watchdog, Voter o.ä.
Risikograph
61508-Anforderungsschwerpunkte
Wichtigkeit der Maßnahmen
Wirksamkeit der Maßnahmen
Maßnahmen in den Lebensphasen
V-Modell nach 61508
Ablauf der Phasen
Beispiel: SW-Architektur
Forderungen an den Entwicklungsprozess
Maßnahmen (1) HW
Maßnahmen (2) SW
Annex: Auswahl von Verfahren und Techniken
Betriebsbewährtheit Bootstrapping-Problematik!
Coding Rules
noch: Codierregeln
61508 Dokumentationsanforderungen
Allgemeine Anforderungen
Dokumentenstruktur
Anforderungen an Dokumente Für jedes Dokument gibt es detaillierte Anforderungen in Bezug auf den Inhalt Struktur ist firmenspezifisch! Beispiel: Requirements