Sie sind hier: HomeRubrikenAutomotiveTools

Software-Entwicklung leicht gemacht: Statische Analyse-Tools tragen zur Erfüllung der ISO 26262 bei

Der Software-Anteil im Kraftfahrzeug nimmt kontinuierlich zu, wobei die Einsatzgebiete von unkritischen Funktionen wie der Klimaanlage bis zu sicherheitsrelevanten Bereichen, beispielsweise den Bremsen oder der Airbag-Steuerung, reichen. So enthält ein modernes Oberklassefahrzeug nach Expertenmeinung Software im Umfang von mehr als zehn Mio. Programmzeilen. Es ist daher nicht wunderlich, dass Software und Elektronik zusammen bis zu 40 Prozent der Produktionskosten eines Autos ausmachen.

Mit dem vermehrten Software-Einsatz lassen sich Funktionen realisieren, die nicht nur den Komfort, sondern auch die Sicherheit der Fahrzeuginsassen gravierend verbessern. Allerdings hat das seinen Preis. Denn sobald sicherheitskritische Funktionen im Auto per Software gesteuert werden, können sich dort Fehler einschleichen. Diese sind im günstigsten Fall nur störend, im schlimmsten Fall können auch Menschenleben gefährdet werden. Die Seltenheit solcher Ereignisse bezeugt zwar die hohe Qualität der Software. Allerdings gab es in der Vergangenheit immer wieder Rückrufaktionen infolge von Software-Problemen.

Nicht unterschätzt werden sollte das Risiko böswilliger externer Eingriffe in software-gesteuerte Automotive-Systeme. So gibt es Beispiele dafür, dass die Tachometeranzeige verfälscht werden, der Fahrer am Bremsen gehindert oder der Motor zerstört werden konnte. Die Sicherheit der in Fahrzeugen zum Einsatz kommenden Software soll die Norm ISO 26262 gewährleisten. Ein zentrales Konzept dieser Norm ist die so genannte Sicherheitsanforderungsstufe, besser unter der englischen Bezeichnung Automotive Safety Integrity Level (ASIL) bekannt. Hier reicht die Skala von A (niedrigste Sicherheit) bis D (höchste Sicherheit).

Auch wenn sie in der ISO 26262 nicht ausdrücklich vorgeschrieben ist, kann die statische Analyse das Design, die Implementierung und das Testen der Software entscheidend vereinfachen und verbessern. Die von GrammaTech entwickelten Tools zur statischen Analyse, CodeSonar und CodeSurfer, lassen sich gemeinsam oder auch einzeln einsetzen, um die ISO-26262-Aktivitäten zu unterstützen. Grundsätzlich verursacht das Aufdecken etwaiger Fehler während der Entwicklungsphase deutlich niedrigere Kosten, als wenn die Fehler erst in der Testphase bemerkt werden oder im fertigen Produkt auftreten.

CodeSonar unterzieht den gesamten C- oder C++-Quell-Code einer interprozeduralen Analyse und identifiziert Programmierfehler, die Systemabstürze auslösen, Speicherinhalte verfälschen oder andere Probleme hervorrufen können. Außerdem beinhaltet das Tool Funktionen zur Automatisierung des Arbeitsablaufs, darunter ein API für eigene Integrationen sowie Unterstützung für Ergänzungen mit individuellen Checks. CodeSurfer dagegen nimmt eine präzise Analyse des Quellcodes vor und berechnet diverse Darstellungen, die entweder mit der grafischen Benutzeroberfläche untersucht oder über ein optionales Programmier-API weiterverwendet werden können. Während CodeSonar die Fehler automatisch findet, ermöglicht CodeSurfer eine schnelle und einfache manuelle Untersuchung des Codes.

Für Aktivitäten im Zusammenhang mit der ISO 26262 überzeugen die statischen Analyse-Tools mit einem erheblichen Nutzwert. Aufgrund der Analysefunktionen beider Tools lässt sich die Software-Entwicklung unterstützen und die Qualität des resultierenden Systems verbessern. Überdies helfen die bei CodeSonar enthaltenen Report-Funktionen und Aufzeichnungs-Mechanismen, den in der Norm festgeschriebenen Dokumentationspflichten nachzukommen.

Des Weiteren verfügen CodeSurfer und CodeSonar über Mechanismen für den Umgang mit den ASILs der einzelnen Komponenten. Insbesondere CodeSonar ist in der Lage, die vergebenen ASILs auf der Warn-Report-, Analyse- und Projektebene zu speichern. Außerdem lässt sich das Tool erweitern, um die entsprechenden ASILs automatisch zu berechnen und zuzuweisen.