Qualifikation - warum ist das so?
Industriestandards wie KT-178 oder ISO 26262 beschreiben Prozesse zum Erstellen robuster Software. Wenn Sie diesen Beschreibungen folgen, wird die Erstellung einer solchen Software zu einer bürokratischen Hölle, die für immer andauern wird. Es gibt jedoch Software, die einen erheblichen Teil dieser Prozesse automatisieren kann. Eine solche Software wird als Werkzeug bezeichnet. Und wenn Sie ein Werkzeug verwenden, muss es zuverlässig sein (ISO 26262 führt sogar den Begriff „Vertrauen in das Werkzeug“ ein). Um die Zuverlässigkeit des Instruments zu bestätigen, wird dessen Qualifizierung durchgeführt.
Qualifikation - Theorie
Industriestandards haben ein Konzept der Sicherheitsstufe. In verschiedenen Standards werden sie unterschiedlich bezeichnet: Softwarestufe in CT-178, Vollständigkeitsstufe für Fahrzeugsicherheit in ISO 26262. Für Entwicklungswerkzeuge werden Werkzeugqualifizierungsstufen (CT-178) oder Werkzeugklassifizierungsstufen (ISO 26262) verwendet. Diese Stufen werden basierend auf der Kritikalität der Werkzeuge zugewiesen. Je mehr Einfluss ein Werkzeug auf die Entwicklung hat, desto höher ist die Fähigkeitsstufe, die ihm zugewiesen wird. In diesem Fall ist eines der Hauptkriterien zur Bestimmung des Einflusses eines Werkzeugs das Maß seines Einflusses auf die resultierende Software.
Betrachten Sie als Beispiele einen Quellcode-Generator und einen statischen Code-Analysator. Der generierte Code geht in die Firmware des Geräts, die an Bord eines Flugzeugs oder Autos installiert wird. Somit hat der Codegenerator einen direkten Einfluss auf die resultierende Software. Da ein Codegenerator eine komplexe Sache ist und fehlerhaften Code generieren kann, werden strenge Anforderungen an die Qualität dieses Codegenerators gestellt, und das Niveau seiner Qualifikationen ist maximal. Eine andere Sache ist ein statischer Analysator, dessen Ergebnis nicht in die Onboard-Software gelangt und dessen Einfluss minimal ist. Daher ist die Fähigkeitsstufe für einen statischen Analysator niedriger als für einen Codegenerator.
Und das Qualifikationsniveau wirkt sich direkt auf die Arbeitskosten aus: Für die Luftfahrt, zum Qualifizieren eines Werkzeugs auf dem höchsten Niveau von KT-178S, sind 76 Kontrollmaßnahmen erforderlich, und auf dem niedrigsten Niveau - nur 14.
Ein weiterer wichtiger Punkt ist, dass die Qualifizierung von Werkzeugen nicht vom Entwickler des Werkzeugs durchgeführt wird, sondern direkt vom Softwareentwickler, und die Qualifizierung muss für jedes Projekt durchgeführt werden!
Qualifikation - Übungsnotizen
Wie im theoretischen Teil erwähnt, ist die Werkzeugqualifizierung ein kostspieliger Prozess, der jedoch auf verschiedene Weise vereinfacht wird:
- Unterstützung des Qualifizierungsprozesses durch Werkzeughersteller (Anbieter)
- Richtlinien zur Instrumentenqualifizierung aus Standards
Betrachten wir sie der Reihe nach. Zunächst bieten die Anbieter selbst Support-Pakete für die Toolqualifizierung an. Zweitens bieten Industriestandards Leitlinien für die Qualifizierung von Tools, mit denen die Arbeitsbelastung verringert werden kann.
Ich möchte auf den zweiten Punkt eingehen. Schauen wir uns noch einmal den Codegenerator an. Der mit seiner Hilfe erzeugte Code muss noch getestet werden, die Codeabdeckung wird gesammelt, seine Analyse wird durchgeführt, dh verifiziert.
Industriestandards sagen uns, dass die Qualifikation des Codegenerators selbst nicht erforderlich ist, wenn wir die Tools qualifizieren, die für die Codeüberprüfung verantwortlich sind. Daher bieten die Standards selbst Anleitungen, anhand derer Sie die Qualifikationskosten erheblich senken können.
Für die Qualifizierung von Verifizierungswerkzeugen schreiben die Standards den Nachweis ihres Verhaltens unter normalen Bedingungen vor. In der Praxis sieht es so aus:
- Der Anbieter liefert eine Reihe von Dokumentvorlagen, Vorschriften und Benchmarks für das Instrument und deren Referenzergebnisse.
- Sie füllen Dokumentvorlagen aus und führen die bereitgestellten Tests in Ihrer Umgebung aus.
- Die Ergebnisse der von Ihnen durchgeführten Tests werden mit den Benchmarks verglichen. Wenn die Ergebnisse eine Diskrepanz aufweisen, beseitigen Sie die Diskrepanz.
Es ist anzumerken, dass der beschriebene Prozess auch viel Zeit in Anspruch nimmt und wie jede Entwicklung in Zusammenarbeit mit den Zertifizierungsstellen durchgeführt wird.
MathWorks-Tools und ihre Qualifikationen
Tools wie Simulink, DSP Toolbox und Control System Toolbox sind der Industriestandard für die Entwicklung von Steuerungssystemen und die digitale Signalverarbeitung. Es ist nicht überraschend, dass sie in der Luftfahrt, in der Automobilindustrie und in anderen Branchen eingesetzt werden. Die entwickelten Modelle werden verwendet, um C / C ++ - Code zu generieren, der sich bewegt und fliegt. Entwickler stehen natürlich vor der Frage der Werkzeugqualifikation. Die Qualifizierung der MathWorks-Tools für KT-178S erfolgt für Tools zur Modell- und Codeüberprüfung:
- Simulink Check
- Simulink-Abdeckung
- Simulink-Anforderungen
- Simulink Design Verifier
- Simulink-Test
- Simulink Report Generator
- Polyspace Bug Finder
- Polyspace Code Prover
- Simulink Code Inspector
Für ISO 26262 werden Zertifikate geliefert für:
- Simulink Check
- Simulink-Abdeckung
- Simulink-Anforderungen
- Simulink Design Verifier
- Simulink-Test
- Simulink Report Generator
- Polyspace Bug Finder
- Polyspace Code Prover
- Eingebetteter Codierer
- HDL-Codierer
- SPS-Codierer
Je nach Branche wird ein DO-Qualifizierungskit für die Luftfahrt oder ein IEC-Zertifizierungskit für die Automobil-, Schienen- und andere Branchen bereitgestellt .
Anstelle von Schlussfolgerungen
Dieser Artikel bietet einen allgemeinen Überblick über den branchenüblichen Werkzeugqualifizierungsprozess. Beim Schreiben dieses Artikels wurde ich von folgenden Quellen geleitet:
- R-330, "Software Tools Qualification Guide", insbesondere:
- S. 2.0 Zuordnung von Werkzeugqualifikationen
- S. 3.1. Qualifikationsstufen
- Referenz D Frage D7
- GOST R ISO 26262-8, Kapitel 11, "Vertrauen in die Verwendung von Toolkit-Software"
Wenn Sie daran interessiert sind, wie Systeme mit erhöhter Zuverlässigkeit erstellt werden, schreiben Sie in die Kommentare, was Sie in den folgenden Artikeln beachten müssen.