Software-Entwicklungswerkzeug

Ist mein Entwicklungswerkzeug für sicherheitsrelevante Anwendungen geeignet?

20.01.11 | Redakteur: Hendrik Härter

Sicherheitsrelevante Anwendungen mit dem richtigen Entwicklungswerkzeug erstellen: Eine Validierungssuite liefert Antworten (Bild: Thorben Wengert, pixelio.de)
Sicherheitsrelevante Anwendungen mit dem richtigen Entwicklungswerkzeug erstellen: Eine Validierungssuite liefert Antworten (Bild: Thorben Wengert, pixelio.de)

Embedded Software und die zugehörigen Entwicklungswerkzeuge, wie Codegeneratoren und Compiler, sind sehr komplex und die Anforderungen aus den Sicherheitsnormen sind für viele Entwickler schwer zu überblicken. Wissen Sie, ob Ihr Entwicklungswerkzeug qualifiziert für sicherheitsrelevante Anwendungen ist? Eine Validierungssuite liefert belastbare Antworten.

Embedded Software wird heute oft modellbasiert entwickelt. Modelle können Funktionen in einer graphischen Notation beschreiben, die entweder datenflussorientiert wie bei Simulink oder kontrollflussorientiert wie bei Stateflow sind.

Um aus Modellen ausführbaren Steuergeräte-Code zu erhalten, wird in der Regel eine Kette von Werkzeugen unterschiedlicher Hersteller eingesetzt:

  • Ein Code-Generator übersetzt das Modell in C-Code.
  • Ein Target-Compiler übersetzt den C-Code weiter in Target-Code.

Das Gespann aus Generator und Compiler wird häufig als Einheit betrachtet und zusammen mit den gewählten Einstellungen, beispielsweise Target- oder Compileroptionen, als Entwicklungswerkzeug (EW) bezeichnet. Die EW-Bestandteile sind oft komplex und ihre Zusammenstellung ist häufig einzigartig für ein Projekt und damit unerprobt. Die Kernfrage ist hier, ob das EW sicher bzw. qualifiziert für den Einsatz ist? Verhält sich der resultierende Target-Code so wie das Modell? Sind durch das EW unbemerkt Fehler eingeschleust worden? Fehler in EWs sind keine Seltenheit und haben, wenn sie unbemerkt bleiben, fatale Folgen!

Entwicklungswerkzeuge auf Fehler analysieren

Validierungssuite schafft Vertrauen: Der Programmcode wird in der Validierungssuite geprüft
Validierungssuite schafft Vertrauen: Der Programmcode wird in der Validierungssuite geprüft

Sicherheitsnormen wie die ISO26262 fordern daher, dass jedes EW, das direkten Einfluss auf ein sicherheitsrelevantes Produkt hat, auf potentielle Fehler hin analysiert wird. Für jeden potentiellen Fehler muss es entweder eine ausreichende Fehler-erkennung im Prozess geben, oder die Abwesenheit des Fehlers wird durch eine EW-Qualifizierung hinreichend gezeigt.

Die ISO26262 schlägt je nach Sicherheitslevel (ASIL) des Produkts und der Erkennungswahrscheinlichkeit von EW-Fehlern unterschiedliche Qualifzierungsmethoden vor. Bei hohem ASIL und niedriger Fehlererkennung reichen Argumentationen über Betriebsbewährtheit oder Prozessassessments für die EW-Bestandteile nicht aus. Die ISO26262 schreibt in solchen Situationen vor, dass entweder das gesamte EW selbst nach einem Sicherheitsstandard entwickelt wird oder eine Validierung des EWs stattfindet!

Qualifizierung der Entwicklungswerkzeuge ist Aufgabe des Anwenders

Da die Hersteller der EW-Bestandteile nicht den genauen Anwendungskontext kennen, ist die EW-Qualifizierung Sache des EW-Anwenders. Der Anwender hat auch die Möglichkeit aus fehlerbehafteten EW-Bestandteilen eine qualifiziertes EW zu formen, indem er die Nutzung einschränkt oder die Fehlervermeidung verstärkt. Das kann er beispielsweise durch Richtlinienchecks machen.

Der Anwender kann zudem den Aufwand für die EW-Qualifizierung senken, indem er zusätzliche Maßnahmen zur Fehlererkennung vorsieht. Da aber manche Maßnahmen von sich aus sehr aufwändig sind, wie Codeinspektionen, oder Folgekosten verursachen, wie die Wartung für Prüftools, kann dies nur zu einer Verlagerung des Aufwands führen.

Die Aufgaben einer Validierungssuite

Die Validierungssuite (VASE) ist eine Methode zur Qualifizierung eines EWs im Anwendungskontext und ist gemäß ISO26262 eine für alle Sicherheitslevel (ASIL) empfohlene Qualifizierungsmethode. Das EW wird dabei zahlreichen Prüfungen unterzogen, die aus Anforderungen in Sicherheitsnormen abgeleitet sind. Die VASE nimmt ein EW als Eingabe und liefert als Ausgabe einen Qualifizierungsbericht, der das geprüfte EW definiert und dessen Schwächen herausstellt.

Ergänzendes zum Thema
 
Ein durch die VASE qualifiziertes EW bringt Ihnen folgenden Nutzen:
Die VASE-Prüfungen sind teils manuell und teils automatisch. Der manuelle Teil besteht aus Reviews zur Prüfung der nicht-testbaren Anforderungen, beispielsweise ob die Modellierungssprache typisiert ist. Der automatische Teil besteht aus einer Testsuite. Das ist eine Sammlung von mehreren tausend Testfällen, die aus formalen Spezifikationen generiert wurden und so gestaltet sind, dass sie den im Projekt genutzten Sprachumfang des EWs abdecken.

Die Testfälle bestehen jeweils aus einem Modell (EW-Eingabe) sowie einem Satz von Stimuli- und Referenzverläufen, die über einen Referenzinterpreter berechnet werden. Der Referenzinterpreter definiert das aus der Dokumentation der EW-Bestandteile und den gewählten Einstellungen vorgegebene Idealverhalten von Modellen. Das EW hat die Aufgabe dieses Idealverhalten im erzeugten Target-Code nachzubilden.

Die Testausführung wird durch eine Testablaufumgebung (TAU) gesteuert und überwacht. Jeder Testablauf hat folgende Schritte:

  • Die TAU setzt das EW ein, um das Testmodell in Target-Code zu trans-formieren.
  • Die TAU lädt den generierten Tar-get-Code auf ein Eval-Board. Dort be-rechnet die Target-CPU aus den Stimuli jeweils Ausgabeverläufe.
  • Die TAU vergleicht die Ausgabever-läufe auf bitgenaue Übereinstimmung mit den Referenzverläufen.

Die gefundenen Abweichungen müssen vom VASE-Anwender analysiert und im Qualifizierungsbericht mit Fehlercharakterisierungen dokumentiert werden.

Validas hat für Kunden bereits mehrere Validierungssuiten entwickelt und angewendet und damit EWs mit namhaften Codegeneratoren, sowie Target-Compilern für den MPC und den TriCore für den Einsatz in sicherheitsrelevanten Projekten qualifiziert.

Dabei wurden jeweils einige schwerwiegende Mängel in den EWs entdeckt. Durch den Erlass von präventiven Modellierungsrichtlinien und Nutzungseinschränkungen konnten diese Mängel jedoch umgangen werden und die EWs trotzdem eingesetzt werden.

* * Dr. Martin Wildmoser ist nach seiner Promotion in Informatik an der TU München im August 2006 zur Validas AG gegangen. Dort ist er seitdem in Industrieprojekten zur Qualifizierung von modellbasierten Entwicklungswerkzeugen sowie in der Entwicklung und Anwendung von Testumgebungen für Embedded Automotive Software tätig. Dr. Oscar Slotosch ist Mitgründer und Vorstand der Validas AG. Seine Interessensgebiete sind modellbasierte Entwicklung, modellbasiertes Testen und Werkzeugqualifizierung.

 

Copyright © 2017 - Vogel Business Media