Aktuell gilt der internationale Dachstandard für Funktionale Sicherheit IEC 61508 in seiner stark überarbeiteten Fassung von 2010. Dieser Standard und alle, die sich hiervon ableiten, kommt in vielen verschiedenen Branchen zum Einsatz, in denen erhöhte Anforderungen hinsichtlich Zuverlässigkeit und Sicherheit gestellt werden, wie etwa der Prozessindustrie, dem Schienenverkehr oder der Gebäudeautomatisierung. Für Automotive-Systeme gilt der 2011 veröffentlichte branchenspezifische Standard ISO 26262. Er bildet das Rückgrat für die meisten sicherheitsbezogenen Entwicklungsprozesse. In einer modernen Automotive-Plattform finden sich eine Vielzahl von Sicherheitsfunktionen und auch ein Grundbedürfnis, gefährliche Systemfehler zu vermeiden, angefangen bei den Bremsen über Traktions- und Motorsteuerung bis zur Darstellung wichtiger Informationen für den Fahrer. Insbesondere die Entwicklung hin zu Hybrid- und Elektronikfahrzeugen bedeutet eine weitere Flut von neuen sicherheitsbezogenen Herausforderungen wie beispielsweise regeneratives Bremsen und Batteriemanagement.

Manche Tools sind bereits von unabhängiger Seite zertifiziert, dass sie den Anforderungen der IEC 61508 und der ISO 26262 entsprechen.

Manche Tools sind bereits von unabhängiger Seite zertifiziert, dass sie den Anforderungen der IEC 61508 und der ISO 26262 entsprechen.IAR

Tools: validieren und qualifizieren

Vor dem Start eines Projektes mit sicherheitsrelevanten Funktionalitäten oder Anforderungen für funktionale Sicherheit gilt es sicherzustellen, dass selbst die verwendeten Entwicklungstools für die Safety-relevante Entwicklung qualifiziert sind. Die genauen Anforderungen, wie solche Tools zu qualifizieren sind, variieren je nachdem zugrundeliegenden Standard sowie bis zu einem gewissen Maß je nach Gefährlichkeit eines nicht oder fehlerhaft funktionierenden Produktes. Sogar die Art des Tools gilt es einzubeziehen: Ein Compiler, der einen Code erzeugt, welcher direkt in ein Produkt einfließt, kann komplizierter zu qualifizieren sein als das Quellcode-Metrik-Tool, welches wiederum schwieriger zu qualifizieren sein kann als ein Versionskontrollsystem oder ein Anforderungsmanagementsystem.

Die verschiedenen Standards haben verschiedene Definitionen von Sicherheitsintegrität, also dem Level der Gefährdung, dem ein Produkt zugeordnet wird. Auch die Klassifizierung der Tools ist unterschiedlich. So hält der Standard IEC 61508 fest, dass ein Tool wie der Compiler vorzugsweise „zertifiziert“ sein sollte – ohne dabei formal zu definieren, was „zertifiziert“ bedeutet. Außerdem hält er fest, dass das Tool entsprechend seiner Spezifizierung oder Dokumentation validiert sein sollte. Im Extremfall bedeutet dies, dass das Tool vollständig im eigenen Projekt getestet werden muss, außer es kann ein entsprechender Testnachweis erbracht werden. Ferner muss eine Bewertung durchgeführt werden, um den Zuverlässigkeits-Level des Tools zu definieren.

Tools für Projekte mit funktionalen Sicherheitsanforderungen

Wer mit minimalem Aufwand ein Functional-Safety-Entwicklungsprojekt zu einem erfolgreichen Abschluss bringen möchte, entscheidet sich am Besten von vornherein für eine zertifizierte Entwicklungs-Toolchain. Bei der Auswahl des Tools sollte allerdings darauf geachtet werden, dass auch ein entsprechender Support verfügbar ist, um so die Investitionen in die Tools über den gesamten Lebenszyklus des Produktes zu schützen.

Außerdem kann ein Support-Service für funktionale Sicherheit auch sehr nützlich sein, wenn ein Projekt nicht unbedingt sicherheitsrelevanten Anforderungen unterliegt – denn an das Endprodukt könnten dennoch hohe Anforderungen hinsichtlich Integrierbarkeit und Verfügbarkeit gestellt werden.

Weiterhin gilt es, die Supportkapazitäten des Toolanbieters zu berücksichtigen und bewerten. Der Support für die verwendeten Tools sollte idealerweise über die komplette Lebensdauer des sicherheitskritischen Produktes hinweg verfügbar sein.

Vorzertifizierte Tools

Dieser Validierungsaufwand, der für jedes einzelne Tool und Projekt betrieben werden muss, lässt sich durch den Einsatz von vorzertifizierten Tools auf ein Minimum reduzieren. IAR Systems bietet zum Beispiel eine sicherheitszertifizierte Version seiner Embedded-Entwicklungs-Toolchain IAR Embedded Workbench für ARM an. Dank deren Vorzertifizierung durch einen unabhängigen Dritten – in diesem Fall durch TÜV Süd – muss nicht mehr aufwändig belegt werden, weshalb dieses spezielle Tool verwendet wird.

TÜV Süd hat vor der Zertifizierung der IAR Embedded Workbench für ARM die Entwicklungsarbeit, die Fehlerbearbeitungsprozesse sowie die Test- und Verifikationsaktivitäten des Tool-Anbieters IAR Systems einer eingehenden Prüfung unterzogen. Damit wird belegt, dass die Tools den Anforderungen der IEC 61508 sowie der ISO 26262 entsprechen und auch eine gute Wahl sind, wenn C oder C++ die Programmiersprache der Wahl ist.

ISO-26262-konforme Tools

Bei der Auswahl von Tools entsprechend den Anforderungen der ISO 26262 muss eine Analyse durchgeführt werden, um den sogenannten Tool Confidence Level (TCL) festzulegen, der für das jeweilige Projekt und die Nutzungsbedingungen geeignet ist. Dieser dient wiederum als Leitlinie für die Validierungs- und Verifizierungsaktivitäten, die in Verbindung mit den Tools durchgeführt werden müssen. Die Zertifizierung durch TÜV SÜD deckt alle Kombinationen von TCL und Automotive Safety Integrity Level (ASIL).

Vorteile einer vorzertifizierten und eingefroren Tools-Release mit Support.

Vorteile einer vorzertifizierten und eingefroren Tools-Release mit Support.IAR

Dabei liefern das Zertifikat, der dazugehörige Report und die damit verbundenen Validierungsangaben mehr Informationen als ein einfaches „Validation Pack“, das oftmals das Maximum dessen darstellt, was ein Tool-Provider anbieten kann. Derartige Packages überlassen es dem Entwickler und seinem Gutachter, ob die Informationen wirklich nützlich sind oder nicht.

Eingefroren mit Support

Mit dem einfachen Kauf eines sicherheits-zertifizierten Tools ist es natürlich nicht getan. Vielmehr sollte sichergestellt sein, dass ein entsprechender Support gewährleistet ist – und das nicht nur während der Dauer des aktuellen Projektes, sondern während des gesamten Lebenszyklus‘ eines Produktes. Nicht jeder Tool-Provider bietet Unterstützung für ältere Tools oder solche, die bereits durch neuere Versionen ersetzt wurden. Das stellt übrigens ein ganz grundsätzliches Problem dar, denn für ein typisches sicherheitsbezogenes Projekt sollten Tool-Updates so weit als möglich vermieden werden.

Bugfixes für ein zuvor qualifiziertes Tool sind nutzlos, wenn das Update auch funktionale Updates enthält. Denn das würde eine erneute Qualifizierung des Tools oder eine ausführliche Wirkungsanalyse der Änderungen nötig machen sowie den Testaufwand erhöhen.

Sogenannte eingefrorene Versionen und ein entsprechender Support sind daher für Entwickler von Safety-relevanten Systemen oder Services mit hohen Anforderungen an die Verfügbarkeit von größter Bedeutung. Für diese eingefrorenen Tool-Versionen gibt es nur Updates in Form von Bugfixes, aber sie erhalten niemals neue Funktionen. Eine derartige Version kann so lange wie nötig am Leben erhalten und mit Support versorgt werden. Anbieter wie IAR Systems bieten dazu maßgeschneiderte Kundenvereinbarungen an, die in Verbindung mit der Sicherheits-zertifizierten IAR Embedded Workbench für ARM für alle Kunden standardmäßig verfügbar sind.