Traceability
Ebenfalls zu berücksichtigen ist die Nachverfolgbarkeit über alle Phasen der Produktentwicklung hinweg: von den Anforderungen in textueller Form über das modellbasierte Design bis hin zur Implementierung auf Code-Ebene sowie für das für alle ASIL geforderte anforderungsbasierte Testen.
Von zentraler Bedeutung ist die Möglichkeit, Anforderungen in das Modell und vom Modell aus nachverfolgen zu können. Das Requirements Management Interface [7] erlaubt die Erstellung von bidirektionalen Links zwischen Anforderungsmanagement-Werkzeugen wie DOORS und dem Simulink/ TargetLink-Modell. Target-Link sorgt für die Nachverfolgbarkeit vom Modell bis auf Code-Ebene. Dies geschieht zum Beispiel durch die Erzeugung von Code im HTML-Format mit entsprechenden Hyperlinks zwischen Code und Modell und/oder direkten Links zum Anforderungsmanagement-Werkzeug oder auch durch das direkte Navigieren aus dem Modell zu den entsprechenden Stellen im Code.
Phasen des sicherheitsgerichteten Entwicklungsprozesses
Software-Architektur-Design
Die Erstellung eines Architektur-Modells, das alle Software-Komponenten und deren Schnittstellen und Interaktionen beschreibt, erfüllt die ISO-26262-Forderung nach einer semiformalen Beschreibung der Software-Architektur für alle ASILs.
Durch die Möglichkeit, Architektur-Modelle hierarchisch und modular aufzubauen, lassen sich allgemeine zu berücksichtigende Designaspekte wie Wartbarkeit, Modularität und Kapselung, Komplexität und Testbarkeit adressieren. Statische Aspekte wie die konsistente Beschreibung von Schnittstellen und Signalpfaden und auch dynamische Aspekte wie Abarbeitungsreihenfolgen können dann, wie in der ISO 26262 gefordert, mit Hilfe eines solchen Modells anhand von Modell-Reviews, durch Simulation und weitere Analysen effizient verifiziert werden.
Entsprechende Software-Architektur-Modelle lassen sich in speziellen Systementwurfswerkzeugen wie SystemDesk [8] oder auch direkt in Simulink erstellen.
Software Unit Design und Implementierung
Basierend auf dem Software-Architektur-Modell lässt sich das Design der einzelnen Software Units in Form von separaten Komponenten-Modellen entwickeln. Die Implementierung der Software Units erfolgt durch automatische Code-Generierung direkt aus den Komponenten-Modellen. Vor Erzeugung des Source-Codes müssen die Komponenten-Modelle um die für die Implementierung notwendigen Informationen angereichert werden. Man spricht dann häufig auch von Implementierungs-Modellen bzw. im Kontext der ISO 26262 von Software-Unit-Design-Spezifikationen.
Für Design und Implementierung der Software Units sind die Anwendung und die Einhaltung der im Vorfeld festgelegten Modellierungs- und Codierungsrichtlinien von zentraler Bedeutung. Um sicherzustellen und nachzuweisen, dass Richtlinien angewandt wurden, empfiehlt sich der Einsatz von Richtlinien-Checkern.
Diese sind in der Lage, auch größere Modelle und umfangreichen Source-Code effizient auf Richtlinienkonformität zu prüfen, und können schon früh entwicklungsbegleitend eingesetzt werden.
Der Model Examiner [9] als ein Werkzeug zur Überprüfung von Modellierungsrichtlinien für Simulinkund TargetLink-Modelle stellt nicht nur Checks zur Überprüfung der bereits erwähnten MISRA-TargetLink-, MAAB- und TargetLink-Modellierungsrichtlinien bereit, sondern bietet auch Checks, die das Nicht-Vorhandensein von bekannten Werkzeugproblemen prüfen (Bild 2).