Die anfängliche Überprüfung des bestehenden Codes mit einem statischen Analysewerkzeug führt in der Regel zu Tausenden von Verstößen, insbesondere beim Einsatz eines Standardsatzes von Regeln. Anstelle die Neuentwicklung zu stoppen, um sich auf das Beheben aller gefundenen Verstöße zu konzentrieren, ist es wichtig, einen Arbeitsablauf einzurichten, um die Verstöße im Laufe der Zeit zu beheben, ohne den Entwicklungsprozess zu unterbrechen oder die Qualität der Software zu beeinträchtigen.
Hier sind die wichtigsten Empfehlungen für den erstmaligen Einsatz von statischen Analysetools in einem Projekt:
Bei den beschriebenen Ansätzen ist die ständige Überwachung des Fortschritts und des Status der Projektkonformität über ein zentrales Dashboard wichtig. Vorteilhaft hierfür ist ein vorkonfiguriertes Tool, wie das Reporting Dashboard von Parasoft, das den Konformitätsstatus aufzeigt (Bild 3).
Entwickler können viele Fehler in der Software vermeiden, indem sie sinnvolle Beschränkungen für die Verwendung der Sprache einführen. Dies führt zu einem einheitlichen Stil, der als Disziplin in Softwareprojekten wertvoll ist. Weil die Sprachen C und C++ so vielseitig sind, können Entwickler Code schreiben, der unbeabsichtigt fehlerhaft und möglicherweise gefährlich sein kann.
Es ist relativ einfach, dass sie Code schreiben, der die Anforderungen des Sprachstandards erfüllt, aber dennoch zu unerwünschtem Verhalten und Programmabstürzen führen kann. Natürlich ist es wichtig, diese potenziellen Probleme zu erkennen. Aber das Ziel von MISRA ist es, Probleme zu verhindern, anstatt sie nur zu identifizieren. Ein Compiler findet einige dieser Probleme, aber die Nutzung eines speziellen Analysewerkzeugs ist effektiver.
Der MISRA-Standard unterstreicht, dass die Einhaltung von Programmierregeln nur eine Komponente einer erfolgreichen Softwareentwicklung ist. Die Entwickler müssen jedes Programmierprojekt in ein diszipliniertes technisches Umfeld integrieren, das methodische Entwicklungsabläufe und bewährte Validierungswerkzeuge umfasst.
Das Fachwissen und die Ausbildung des Entwicklungspersonals sind Schlüsselfaktoren, die die Softwareunternehmen häufig vernachlässigen, die aber von den Prüfern bei der Beurteilung der Produktreife oft an erster Stelle genannt werden. Auch die MISRA-Richtlinien betrachten die Kompetenz der Mitarbeiter als wichtigen Bestandteil der MISRA-Konformität. In der Praxis ist die Schulung für ein erfahrenes Team relativ kurz. Ein paar Tage können wochenlange Nacharbeit, Qualitätsprobleme und verpasste Projekttermine verhindern.
Am besten ist es, die Schulung zu Beginn des Projekts durchzuführen und einen Schulungstermin festzulegen, an dem alle Entwickler ihre Teilnahme bestätigen. Am Ende des Projekts sollte das Entwicklungsteam in der Lage sein, Folgendes nachzuweisen:
Eine weniger offensichtliche Komponente der MISRA-Konformität, die oft bis zum Ende des Projekts vernachlässigt wird, ist die Qualifizierung der im Produkt eingesetzten Entwicklungstools und der Nachweis ihrer Eignung für den Zweck gemäß dem relevanten Sicherheitsstandard sowie die Begründung, wie das Team zu dieser Schlussfolgerung gekommen ist.
Die Toolqualifizierung muss bereits bei der Toolauswahl beginnen. Lohnenswert ist, ein von einer Organisation wie dem TÜV SÜD zertifiziertes Entwicklungstool einzusetzen, das den Aufwand für die Toolqualifizierung erheblich reduziert. Parasoft C/C++test ist vom TÜV SÜD für die funktionale Sicherheit nach IEC 61508, ISO 26262 und IEC 62304 sowohl für Host- als auch für Embedded-Zielanwendungen zertifiziert. Es ebnet den Weg für eine rationalisierte Qualifizierung der statischen Analyse, der Unit-Tests und der Abdeckungsanforderungen für die sicherheitskritischen Standards.
In vielen Fällen ist eine Toolqualifizierung erforderlich, allerdings variiert die Methode, wie sie durchgeführt wird, je nach dem Risiko, das mit dem Werkzeugfehler verbunden ist, und je nach dem Grad der Softwarekritikalität. Softwareteams müssen die Kosten für die Toolqualifizierung berücksichtigen, wenn sie kommerzielle, freie und Open-Source-Tools evaluieren. Einige Standards, wie zum Beispiel DO-178C, bieten eine sinnvolle Anleitung für die Anforderungen an die Toolqualifizierung.
Traditionell war die Toolqualifizierung mit einem erheblichen Aufwand an manueller Arbeit, Tests und Dokumentation der Entwicklungswerkzeuge verbunden, um ein Zertifizierungsaudit zu bestehen. Dieser dokumentationsintensive Prozess erfordert eine manuelle Interpretation und Vervollständigung und ist zeitaufwendig und anfällig für menschliche Fehler.
Dem greift die Automatisierung des Prozesses mithilfe von Qualification-Kits entgegen. Indem sie den Anwender durch einen intuitiven Arbeitsablauf führen, reduzieren sie den Arbeitsaufwand drastisch. Mit seinem Qualification-Kit und Zertifizierungen für spezifische Sicherheitsstandards und deren Anforderungen eröffnet Parasoft Vorteile wie beispielsweise:
Es gibt kein Patentrezept, mit dem sich die Einhaltung von MISRA in sicherheitskritischen Projekten leicht erreichen lässt. Durch die Einführung des MISRA-Compliance:2020-Rahmens und die Anwendung eines praktischen, schrittweisen Ansatzes mit einem klar definierten Ziel vor Augen können Softwareentwicklungsteams die Konformität jedoch ohne größere Unterbrechung ihres Entwicklungsprozesses erzielen. Auch wenn die Konformität mit viel Aufwand verbunden ist, trägt die Automatisierung doch wesentlich dazu bei, die mühsamen manuellen Prozesse zu reduzieren.
Der Autor
Ricardo Camacho ist Director of Safety & Security Compliance bei Parasoft.