Maßnahmen zur Sicherung der Qualität bei der Software-Entwicklung
Die Qualität einer Software ist definiert als die Gesamtheit der Merkmale, die sich auf deren Eignung beziehen, festgelegte oder vorausgesetzte Erfordernisse zu erfüllen. Sie wird durch folgende Qualitätsmerkmale bestimmt: Funktionalität, Zuverlässigkeit, Benutzbarkeit, Effizienz, Änderbarkeit, Übertragbarkeit, Korrektheit, Betriebssicherheit, Robustheit und Wartbarkeit. Demgegenüber umfasst die Qualitätssicherung alle Maßnahmen, die notwendig sind, um ein angemessenes Vertrauen zu schaffen, dass die Software die vorgegebenen Qualitätsanforderungen auch tatsächlich erfüllt.
Hierzu werden sowohl konstruktive als auch analytische Verfahren angewendet. Konstruktive Verfahren sind präventiv, d.h., sie versuchen, die Entstehung von Fehlern zu verhindern. Sie verwenden Modelle, um zu einem möglichst frühen Zeitpunkt Aussagen über relevante Eigenschaften von Systemen zu gewinnen. Im Gegensatz dazu arbeiten analytische Verfahren prüfend, d.h. Fehler erkennend. Hierbei wird festgestellt, ob eine bereits vorhandene Software den Vorgaben entspricht. Nachteilig ist demzufolge, dass analytische Verfahren erst zu einem relativ späten Zeitpunkt greifen können und entweder die Fehlerfreiheit bestätigen oder existierende Fehler aufzeigen.
Die analytische Qualitätssicherung ist eine permanente, die Entwicklung begleitende Aufgabe und umfasst sowohl dynamische als auch statische Tests.
Verfahren der analytischen Qualitätssicherung:
Bei den dynamischen Tests wird zwischen Black-Box-Tests, also Prüfungen der externen Schnittstelle ohne Kenntnisse der inneren Funktionsweise des Prüfgegenstandes und White-Box-Test unterschieden, bei denen eine Prüfung der internen Abläufe anhand des Quellcodes durchgeführt wird. Als statische Tests kommen Erläuterungen der Funktionsweise des Prüfgegenstandes durch den jeweiligen Autor (Walktrough), formelle Überprüfungen eines Produktteils (Reviews) und systematische Analysen der Stärken und Schwächen (Inspektionen) zur Anwendung.
Bei allen Maßnahmen zur analytischen und konstruktiven Qualitätssicherung ist die so genannte Kritikalität von entscheidender Bedeutung. Hierunter ist die potenzielle Konsequenz zu verstehen, die sich aus dem Fehlverhalten einer Komponente in ihrer Umwelt ergeben kann.
Typische Kritikalitäten sind:
Hoch: Fehlverhalten kann zum Verlust von Menschenleben führen,
Mittel: Fehlverhalten kann die Gesundheit von Menschen gefährden oder zur Zerstörung von Sachgütern führen,
Niedrig: Fehlverhalten kann zur Beschädigung von Sachgütern führen, ohne jedoch Menschen zu gefährden,
Keine: Fehlverhalten gefährdet weder die Gesundheit von Menschen noch Sachgüter.
Maßnahmen im Projekt Fähigkeitsanpassung
Bei Abschluss des Vertrages über die Durchführung des Projektes Fähigkeitsanpassung F123 im Jahr 2005 wurden gemäß den Vorgaben des V‑Modells alle Maßnahmen zur Sicherung der Qualität bei der Systementwicklung in einem Qualitätssicherungsplan festgeschrieben und vertraglich vereinbart.
Während der Projektlaufzeit haben jedoch die Erkenntnisse und Erfahrungen aus verschiedenen anderen Projekten die Notwendigkeit aufgezeigt, bei der Entwicklung der Software eine signifikante Steigerung der Maßnahmen zur Qualitätssicherung vorzunehmen. Die zentrale Bedeutung der Fregatte 123 für die laufenden Einsätze der Flotte und die besonderen Herausforderungen bei der Umrüstung einer Schiffsklasse im laufenden Betrieb ließen keinen anderen Weg zu. Mit dem aus damaliger Sicht mutigen Schritt einer nachträglichen Beauftragung von zusätzlichen Maßnahmen zur Qualitätssicherung wurde das mit der Umrüstung verbundene Risiko für die Einsatzfähigkeit auf ein unvermeidbares Niveau minimiert.
Ausgehend von den Vorgaben des AQM wurde eine Auswahl von zusätzlichen Maßnahmen zur Qualitätssicherung vereinbart, die projektverträglich umgesetzt werden konnten. Dieses Tailoring war erforderlich, da bei einzelnen Maßnahmen eine nachträgliche Berücksichtigung nicht mehr möglich war bzw. zu unverhältnismäßig hohen zeitlichen und finanziellen Mehraufwänden geführt und damit das Projekt insgesamt gefährdet hätte. Praktische Erfahrungen zeigen, dass beispielsweise das nachträgliche Höherstufen von Kritikalitäten zu einer Vervielfachung des Entwicklungsaufwandes führt (von niedrig nach mittel: Faktor 3, von mittel nach hoch: Faktor 5). Ein wesentlicher Bestandteil der zusätzlichen Maßnahmen ist darüber hinaus die Verwendung von Softwaretools zur automatischen Durchführung von systematischen Prüfungen.
Im Einzelnen wurden folgende zusätzliche Maßnahmen vereinbart:
Neubewertung und umfassende Erhöhung der Kritikalitätseinstufungen für sicherheitskritische und komplexe Komponenten,
Verbesserung der statischen Code-Analyse durch automatisierte, werkzeuggestützte Überprüfungen zur Einhaltung von Programmierrichtlinien und systematische automatisierte Erkennung von Laufzeitfehlern,
Automatisierung der White-Box-Teste,
Verbesserung der Black-Box-Teste durch systematische Methoden zum Entwurf von Prüffällen,
Die Durchführung einer dreiteiligen Systemprüfung ausschließlich durch den öffentlichen Auftraggeber mit den Anteilen »Funktionale Prüfung«, »Usability Prüfung« sowie »Last- und Stressprüfung«.
Alle Maßnahmen wurden im laufenden Entwicklungsprozess noch vor der Systemintegration umgesetzt. Sie wurden auf alle neu entwickelten Anteile für den Waffeneinsatz und die Lagebilderstellung sowie für wesentliche von der Fregatte 124 und der Korvette 130 übernommene Anteile angewendet. Dieser mit der Stufe I geschaffene Stand der Qualitätssicherung wird auch bei der Stufe II zur Anwendung kommen.