JAXA

Evaluation der Qualität von sicherheitskritischen Softwaresystemen

Kontinuierliches Managen der Softwareproduktqualität ist integraler Bestandteil des Softwareprojektmanagements und besonders bei der Entwicklung von sicherheitskritischen Systemen wichtig. Softwarequalitätsmodelle erfassen das Wissen und die Erfahrungen bezüglich der Qualitätseigenschaften, die von Interesse sind (wie Zuverlässigkeit, Wartbarkeit oder Betriebssicherheit (Safety)), der zu erfassenden Messdaten (wie Resultate einer statischen Code-Analyse) und der Mechanismen für die Bewertung der Qualität der Software als Ganzes (wie die Erstellung von Evaluierungsschwellen und Baselines). Noch immer ist es eine Herausforderung, geeignete Qualitätsmodelle für ein Unternehmen zu erstellen: Erstens gibt es kein Universalmodell, das in jeder Umgebung verwendet werden kann, da Qualität stark von der Anwendungsdomäne, von den Stakeholdern, dem Einsatzzweck und dem konkreten Projektkontext abhängt. Es gibt sowohl in der Praxis als auch in der Forschung viele verschiedene Qualitätsmodelle. Um das »richtige« Modell zu finden, müssen die Ziele klar sein, die durch den Einsatz des Modells erreicht werden sollen. Zweitens müssen Qualitätsmodelle auf Unternehmensspezifika zugeschnitten werden und durch entsprechende Werkzeuge unterstützt werden. Bestehende Normen (wie die ISO/IEC 25000 Reihe) sind oft zu generisch und in einem Unternehmen in ihrer Gesamtheit schwer umzusetzen. Um nachhaltige Qualitätsmodelle zu erstellen, muss drittens der Beitrag und der Wert der Unternehmensziele geklärt werden, und die Modelle müssen in die Entwicklungsprozesse integriert werden (z. B. durch die Definition geeigneter Quality Gates).

Im Rahmen der fortlaufenden strategischen Zusammenarbeit mit der japanischen Weltraumagentur JAXA (Japan Aerospace Exploration Agency) lag der Fokus 2012 und 2013 auf der Entwicklung eines Modells für die Evaluierung der Qualität von sicherheitskritischer Software für Satellitensysteme, die von externen Zulieferern stammt. Primär ging es darum, die Resultate einer klassischen Sicherheitsanalyse mit einer statischen Code-Analyse zu verknüpfen, um sicherheitskritische Softwarefunktionen und Komponenten mit schlechter Code-Qualität und somit hohem Ausfallrisiko zu identifizieren. Mit solch einem Modell kann JAXA den von seinen Zulieferern gelieferten Quellcode systematisch evaluieren und Qualitätssicherungsaktivitäten auf die als sicherheitskritisch eingestuften Teile des Codes mit schlechter Softwarequalität konzentrieren. Dieser Aufwand sollte die Qualität der zugelieferten sicherheitskritischen Software weiter verbessern und JAXA somit in die Lage versetzen, qualitativ hochwertige Software in seinen Satelliten zu verwenden und so seine primäre Mission zu erfüllen.

Dafür wurde gemeinsam mit den Experten von JAXA ein Qualitätsmodell entwickelt, dessen Fokus auf Qualitätseigenschaften sowie entsprechenden Metriken für das Messen derjenigen Eigenschaften lag, die nachgewiesenermaßen einen starken Einfluss auf funktionelle Sicherheit haben. Das anfängliche Modell wurde auf Basis von Informationen aus der Literatur und mit-hilfe externer Experten für die Entwicklung sicherheitskritischer Systeme erstellt. Anschließend wurde das Modell auf die speziellen Bedürfnisse von JAXA zugeschnitten und anhand einer Zuordnungstabelle zwischen den identifizierten Ursachen für Systemausfälle und den damit verbundenen Funktionen mit Informationen aus einer klassischen Fehlerbaumanalyse angereichert.

2012 wurde das Qualitätsmodell mithilfe des Fraunhofer-Messrahmenwerks M-System implementiert, das eine Datenabfrage aus statischen Code-Analysewerkzeugen ermöglicht und Mittel zur Visualisierung bietet, um die Analyseresultate zu durchsuchen und mit der Visualisierung zu interagieren (z. B. tiefer in die Daten einzudringen). 2013 wurde das Modell auf ein Beispielsystem von JAXA angewendet und erstmals auf seine praktische Verwendbarkeit hin evaluiert.

2014 soll nach der Integration der letzten Verbesserungsempfehlungen der Einsatzbereich des Modells auf Software erweitert werden, die tatsächlich Teil aktueller Satellitensysteme von JAXA ist, damit JAXA die Qualitätsbewertung sicherheitskritischer Softwaresysteme in größerem Umfang durchführen kann. Ferner soll die Integration weiterer raumfahrtrelevanter Normen und Bestimmungen evaluiert werden, um die Funktionalität des ursprünglichen Qualitätsmodells zu erweitern.