Für Sicherheit das richtige Tool

AUTOSAR-Konformität zur Einhaltung der ISO 26262

20. April 2022, 13:15 Uhr | Autor: Miroslaw Zielinski, Redaktion: Irina Hübner
Das Anwenden der Programmierrichtlinien gemäß AUTOSAR-C++ lassen sich mit Bemühungen rationalisieren. Doch die richtige Auswahl der statischen Entwicklungswerkzeuge ist entscheidend für den Erfolg. Wichtige Tipps für die Praxis
© Syda Productions/stock.adobe.com Aufmacher

Durch das Anwenden der Programmierrichtlinien gemäß AUTOSAR-C++ lassen sich die Bemühungen rationalisieren, die notwendig sind, um den Safety-Standard ISO 26262 einzuhalten. Doch die richtige Auswahl der statischen Entwicklungswerkzeuge ist entscheidend für den Erfolg. Wichtige Tipps für die Praxis.

Jahrelang dominierte die Programmiersprache C den Automobilbereich, aber heute reicht sie nicht mehr aus, um die steigende Komplexität von Softwarearchitekturen im Automobilbereich zu bewältigen. Zudem ist C++ mit der Forderung nach objektorientiertem Design für viele Automobilteams eine naheliegende Wahl. Aber C++ ist eine komplizierte Sprache und verlangt großen Aufwand, um Vorhersagbarkeit, Sicherheit und Schutz zu gewährleisten.

Die ISO-26262-Norm für die funktionale Sicherheit im Automobilbereich bietet einige Anhaltspunkte für die Softwareentwicklung und die V&V-Prozesse (Verifizierung & Validierung), geht aber auf der Ebene der Sprachkonstrukte nicht in die Tiefe. Um eine solche Anleitung zu erhalten, greifen Unternehmen auf Programmierstandards wie MISRA C/C++ oder AUTOSAR C++ zurück. Wie sich ISO 26262 mithilfe eines statischen Analysewerkzeugs, das mit AUTOSAR C++ 14 Compliance Checkern konfiguriert ist, ein- halten lässt, ist Thema des Beitrags.

Anbieter zum Thema

zu Matchmaker+

ISO-26262-Konformität mit AUTOSAR C++

Das Einhalten einer Norm für funktionale Sicherheit wie der ISO 26262 bedeutet großen Aufwand und muss von Anfang an ein integraler Bestandteil des Projekts sein. Selbst bei den Softwarekomponenten erfordert dies spezifische Aktivitäten während der Anforderungserfassung, Planung und Implementierung. Es gibt definitiv nichts, was »später hinzugefügt« werden kann.

Die ISO 26262 spezifiziert eine Reihe von Methoden, die notwendig sind, um die Norm zu erfüllen. Um die Konformität zu gewährleisten, müssen die Anwender den Nachweis erbringen, dass alle maßgeblichen Anforderungen und Verfahren umgesetzt wurden. Allerdings sind nicht alle Methoden für jeden anwendbar. Ihre Eignung hängt vom Automotive Safety Integrity Level (ASIL) ab, einer in der Norm definierten Risikoklassifizierung. ASIL A steht dabei für den niedrigsten und ASIL D für den höchsten Gefährdungsgrad von Fahrzeugen. Man unterscheidet bei den Methoden zwischen sehr empfohlen, empfohlen oder neutral.

Die Herausforderung, vor der die Teams bei der Konformität mit der Norm stehen, besteht in der Regel darin, wie sie die für ihre Prozesse empfohlenen Verfahren umsetzen. Oft basiert die Entscheidung, wie eine bestimmte Methode oder Anforderung erfüllt werden kann, auf den Erfahrungen des Teams. In einigen einfachen Situationen können manuelle Verfahren und Überprüfungen eine Lösung sein, aber in den meisten Fällen versuchen die Teams, Werkzeuge zu finden, um die erforderlichen Verfahren zu automatisieren.

Ein Tool, das zur Einhaltung von ISO 26262 zum Einsatz kommt, muss im Rahmen eines formalen Prozesses, der als Tool-Qualifizierung bezeichnet wird, für die beabsichtigte Verwendung zugelassen werden. Ziel der Qualifizierung von Softwarewerkzeugen ist es, den Nachweis zu erbringen, dass es für die Entwicklung eines sicherheitsrelevanten Objekts oder Elements geeignet ist. Dies kann eine zeit- und ressourcenaufwendige Aufgabe sein. Moderne Tools wie Parasoft C/C++test integrieren ein automatisiertes Qualifizierungskit, das den Qualifizierungsprozess rationalisiert und über eine TÜV-SÜD-Zertifizierung verfügt, die in vielen Situationen für die Tool-Qualifizierung ausreicht.

Wie hilft der Codierstandard AUTOSAR-C++?

Einen Programmierstandard wie AUTOSAR C++ anzuwenden ist eine weithin akzeptierte Methode, um einige der Anforderungen aus ISO 26262 zu erfüllen. AUTOSAR C++ 14 bietet Tabellen zur Rückverfolgbarkeit, die die Prinzipien und Empfehlungen der ISO 26262 auf die entsprechenden Codierrichtlinien abbilden. Das Mapping deckt hauptsächlich Abschnitt 8 von Teil 6 der ISO 26262 ab und vereinfacht den Prozess der Konformität mit den entsprechenden Methoden und Anforderungen der Norm erheblich.

Allerdings reichen die Codierrichtlinien gemäß AUTOSAR-C++ 14 allein nicht aus, um die Konformität mit ISO 26262 für die Softwarekomponente zu erzielen. Einige Methoden in der Norm können mit der Anwendung der AUTOSAR-Richtlinien nicht abgedeckt werden, wie zum Beispiel die Methode 1g, die die »Verwendung von Styleguides« empfiehlt, oder die Methode 1h, die die »Verwendung von Namenskonventionen« vorschlägt. AUTOSAR C++ 14 enthält keine Styleguides oder Namenskonventionen. Beide Methoden lassen sich jedoch einfach mit Parasoft C/C++test implementieren, das mehr als 3000 Checker für statische Analysen (einschließlich Code-Style-Checker) enthält und ein Modul zum Erstellen eigener Regeln für statische Analysen bietet. Methoden in der Norm, die nicht mit statischer Analyse implementiert werden können, verlangen im Allgemeinen andere Testtechniken, wie beispielsweise Fehlerinjektionstests.

Schlüsselfunktionen für die Konformität

Doch welches Tool macht die Einhaltung der Bestimmungen am einfachsten? Es ist keine leichte Aufgabe, den Konformitätsprozess für Programmierstandards in den Arbeitsablauf des Entwicklungsteams einzubinden. Deshalb ist es so wichtig, ein Tool auszuwählen, das bei der Einhaltung des Standards hilft, ohne zu viel Overhead zu schaffen oder zusätzliche manuelle Verfahren zu erfordern. Die folgenden Punkte sind wichtige Entscheidungsfaktoren bei der Auswahl einer Lösung für die statische Analyse.

Abdeckung der Codierrichtlinien aus dem Standard

AUTOSAR C++ 14 definiert einen wesentlichen Teil der Richtlinien – etwa 400 sind in der aktuellen Version des AUTOSAR-Programmierstandards enthalten, von denen 350 mit statischer Analyse durchgesetzt werden können. Die Unterstützung dieser vielen Richtlinien bedeutet eine Herausforderung für die Anbieter von statischen Analysewerkzeugen, und nicht alle auf dem Markt erhältlichen statischen Analysewerkzeuge decken den Standard ausreichend ab, um ihn zu erfüllen. Hier punktet Parasoft C/C++ als Lösung, die die meisten AUTOSAR C++-Richtlinien abdeckt und täglich weitere implementiert.

Die neueste Version von Parasoft C/C++test umfasst mit dediziertem Reporting die praktikable Abdeckung von AUTOSAR C++ Richtlinie
Die neueste Version von Parasoft C/C++test umfasst mit dediziertem Reporting die praktikable Abdeckung von AUTOSAR C++ Richtlinien.
© Parasoft

Unterstützung für Daten- und Flussanalysetechnik

Die im Programmierstandard AUTOSAR C++ definierten Richtlinien haben unterschiedliche Komplexitätsgrade. Einige sind einfache Richtlinien, die sich mit relativ einfacher statischer Analysetechnik durchsetzen lassen. Aber es gibt auch solche, die eine hochentwickelte Daten- und Kontrollflussanalyse erfordern, um die Pfade im analysierten Quellcode zu simulieren und zu entscheiden, ob eine bestimmte Richtlinie verletzt wird oder nicht.

Das statische Analysewerkzeug der Wahl muss die Pfade im Code auswerten, um korrekt zu bestimmen, ob der für den Zugriff auf die Daten im Container genutzte Index im richtigen Bereich liegt oder nicht. Viele kommerzielle Tools und die meisten Open-Source-Tools auf dem Markt wenden auf diese Art von Problemen nur eine sehr rudimentäre Flussanalyse an. Das führt dazu, dass sie entweder ein Problem im Code übersehen oder eine enorme Anzahl von Fehlalarmen melden, deren Überprüfung sehr viel Zeit in Anspruch nimmt und die Produktivität beeinträchtigt. Beim Benchmarking eines statischen Analysewerkzeugs sollte man sich vor allem auf den Vergleich der Ergebnisse für komplexere Richtlinien konzentrieren, die eine Technologie zur Flussanalyse erfordern.

Support bei der Tool-Qualifizierung

Obwohl AUTOSAR C++ keine explizite Qualifizierung des Tools für die Zu- lassung der angewendeten statischen Analyselösung fordert, ist dies in ISO 26262 der Fall. Plant man also, AUTOSAR C++ zur Vereinfachung der Konformität mit ISO 26262 zu verwenden, ist es sinnvoll, eine statische Analyselösung zu wählen, die Endanwender mit entsprechenden Zertifikaten und einem Qualifizierungskit unterstützt.

Das Befolgen eines Programmierstandards wie AUTOSAR C++ 14 kann Unternehmen dabei helfen, ISO 26262 einzuhalten, da die Norm mehrere Methoden und Anforderungen definiert, die durch die Konformität mit den AUTOSAR-Codierrichtlinien erfüllt werden können. Mithilfe spezieller Traceability-Tabellen veranschaulicht AUTOSAR C++14 das Mapping zwischen den ISO 26262-Anforderungen und den Codierungsrichtlinien. So erhalten Teams wertvolle Unterstützung bei der Auswahl der statischen Analysetools für ihr Projekt.

 

Der Autor

 

Miroslaw Zielinski von Parasoft
Miroslaw Zielinski von Parasoft.
© Parasoft

Miroslav Zielinski

ist Principal Software Engineer, Embedded Systems Software Quality Specialist bei Parasoft. Er ist als Product Manager für C/C++test, das Flaggschiff der Entwicklungstestlösungen von Parasoft, verantwortlich. Dazu gehört das Eruieren von Benutzeranforderungen, die Festlegung der Produktentwicklungsstrategie, bis hin zur Zusammenarbeit mit Marketing und Vertrieb zum Erstellen erfolgreicher Markteinführungspläne. Seit seinem Abschluss an der AGH University of Science and Technologie in Krakau im Jahr 2002 beschäftigt sich Zielinski mit Entwicklung und Support für Embedded Systems Test-Frameworks.

Von Miroslav Zielinski ist außerdem der folgende Fachartikel bei Elektronik automotive erschienen:


Das könnte Sie auch interessieren

Verwandte Artikel

Parasoft, Parasoft Corp.