Software-Entwicklungsprozess: Planung, Verifizierung und Zertifizierung
Phasen der Software-Entwicklung und Qualitätssicherung
SW-Planung und Meilensteine
Termine für die Einhaltung der gesetzten Ziele (Meilensteine) auf eine Grundlinie zurücksetzen, definierte Standards festlegen und die Überwachung der Arbeiten planen. (Beinhaltet auch die Kommunikation mit dem Kunden, z. B. ICD CORDY).
Anforderungsmanagement (Voraussetzungen)
Die ursprünglichen Anforderungen des Kunden erfüllen und Alternativen vorschlagen. Anforderungen müssen folgende Kriterien erfüllen:
- Korrektheit
- Vollständigkeit
- Atomarität
- Nachvollziehbarkeit und Überprüfbarkeit
- Konsistente Begründung
Rückverfolgbarkeit (Traceability)
Quellcode-Analyse und Optimierung
Änderungen auf SW-Ebene identifizieren und suchen. Prüfen, ob die gefundene Hardware gegebenenfalls durch den Code unterstützt wird, und sicherstellen, dass kein unnötiger Code vorhanden ist.
Verifizierung und Entwicklungssitzungen
Die Software sollte nachvollziehbar, überprüfbar und konsistent sein. Wenn fehlerhafte Anforderungen erfasst werden, müssen Maßnahmen zur Lebenszyklusplanung, Lösungsfindung und Beratung zur Gewährleistung der Kundensicherheit ergriffen werden.
Kodierung (Encoding)
Kompilierung mit denselben Werkzeugen wie bei den Tests. Sicherstellung des korrekten Quellcodes und Einhaltung der Zeilenlänge.
Implementierung und Kritikalitätsdefinition (DAL)
Die Kritikalität (DAL – Design Assurance Level) definieren. Dies leitet sich aus RTCA DO-178B ab und bestimmt die Art der durchzuführenden Tests und den Grad der Zufriedenheit. Es definiert auch die Elemente, die überprüft und kodiert werden müssen.
Integration
Patches auf ihre Auswirkungen auf das Gesamtsystem prüfen.
Konfigurationsmanagement (CM)
Sammlung aller Unterlagen, Archive, Kennzahlen und Berichte. Aktualisierte Dokumentation. Festlegung von Flow-Control-Points für jedes Verfahren zur Revisionskontrolle. Sicherstellung, dass Fehler mit etablierten Werkzeugen behoben und dokumentiert werden.
Verifizierung und Planung
Überprüfung der Übereinstimmung mit den Spezifikationen.
Planung und Systemanforderungen
Identifizierung der Systemanforderungen und Definition der spezifischen Prüfverfahren sowie der Vergabegrundsätze für die Tests.
Prüfungsformen und Verifizierungsgrad
- Inspektion und Revision: Einsatz von Checklisten zur Überprüfung der Vollständigkeit, Durchführung von Design-Reviews und Tests.
- Analyse: Eingehende Prüfung der Funktionalität des Systems.
- Test: Durchführung von Tests basierend auf dem anzuwendenden Verfahren. Erfassung von Problemen (Tickets und notwendige Maßnahmen). Bereitstellung der Testversion des Systems und der Ergebnisse (Exits).
- Erfahrung und Service: Nutzung früherer Erfahrungen.
Spezifische Verifizierung und Daten
Die Verifizierung wird durchgeführt. Die Daten sind die Ergebnisse. Der Grad der Überprüfung wird durch den DAL bestimmt. Der Bestätigungsplan legt Strategien fest, um zu zeigen, wie eine Implementierung die Anforderungen erfüllt.
Qualitätssicherung (QA)
Sicherstellung der Einhaltung von Schemata und Standards. Die QA beantwortet folgende Fragen:
- Was tun wir?
- Tun wir, was wir gesagt haben?
- Halten wir den Zeitplan ein?
Durchführung geplanter Revisionen zur Feststellung von Störungen. Erstellung von Zeitplänen zur Übermittlung der Ergebnisse an den Kunden. Planung zur Kontrolle des Fortschritts. Sicherstellung der Einhaltung von Fristen.
Zertifizierungs-Koordination (Certification Liaison)
Nachweis, dass ein Produkt alle Bestimmungen erfüllt. Vorschlag eines Zertifizierungsplans und Verhandlungen mit den Behörden.
Erforderliche Dokumentation umfasst:
- Beschreibung der Funktions- und Betriebssicherheit (HW/SW-Beziehung).
- FHA/PSSA (Functional Hazard Assessment / Preliminary System Safety Assessment) – Ziele und DAL.
- Beschreibung der für die Zertifizierung verwendeten Verfahren.
- Spezielle Bedingungen.
- Liste der Mitarbeiterdaten und Arbeitsnachweise.
Aufgabe ist es, Probleme zu lösen, mit der Behörde zu verhandeln und Lösungen zu finden.