Ein Angebot von

Funktionale Sicherheit über den Entwicklungs-Lebenszyklus hinaus sicherstellen

| Autor / Redakteur: Mark Pitchford * / Sebastian Gerstl

Bild 1: V-Modell der Softwareentwicklung mit Bezugnahmen auf ISO 26262 und Standard-Entwicklungstools
Bild 1: V-Modell der Softwareentwicklung mit Bezugnahmen auf ISO 26262 und Standard-Entwicklungstools (Bilder: LDRA)

Im Zeitalter konstant mit dem Internet verbundener Systeme kann Softwareentwicklung nie als endgültig abgeschlossen betrachtet werden – sobald eine neue Sicherheitslücke auftaucht, muss diese auch sofort geschlossen werden. Wie bekommt man diesen Kreislauf in den Griff?

Wenn Sie Software entwickeln, die funktional sicher sein muss, ist die bidirektionale Rückverfolgbarkeit der Anforderungen enorm wichtig. Mit dieser wird sichergestellt, dass das Design die Anforderungen widerspiegelt, die Softwareimplementierung dem Design entspricht und die Prüfprozesse die korrekte Implementierung bestätigen. Ebenso muss klar sein, welche Folgewirkungen von geänderten Anforderungen ausgehen, denn Sie müssen herausfinden, welcher Code sich ändert und welche Tests zu wiederholen sind. Dieser Zyklus endete mit der Abgabe des Produkts; von etwaigen kleinen Nachbesserungen abgesehen war die Entwicklung abgeschlossen.

Bei den heute verfügbaren vernetzten Systemen ändern sich allerdings die Anforderungen immer weiter, wann immer eine neue Schwachstelle aufgedeckt wird oder ein Hacker einen neuen Angriff entwickelt. Dies kann jederzeit passieren, solange das System im Einsatz ist. Sobald Änderungen erforderlich werden, muss der überarbeitete Code statisch analysiert werden, und auch alle betroffenen Modul- und Integrationstests müssen erneut durchgeführt (regressionsgetestet) werden. Jede neu entdeckte Schwachstelle bringt eine geänderte oder neue Anforderung hervor, auf die natürlich umgehend reagiert werden muss, auch wenn das System selbst von den Entwicklungsingenieuren schon lange nicht mehr in die Hand genommen wurde.

Dies verändert das Wesen der Produktinstandhaltung und verleiht den Tools und Techniken für die automatische Rückverfolgung der Anforderungen (Requirements Traceability) einen neuen Stellenwert. Durch die Verknüpfung der Anforderungen, des Codes, der Ergebnisse der statischen und dynamischen Analyse sowie der Tests auf Modul- und System-Ebene wird der gesamte Softwareentwicklungszyklus rückverfolgbar. Für die Teams wird es so einfach, Probleme zu identifizieren und Lösungen schneller und kosteneffektiver zu implementieren – auch nach der Markteinführung des Produkts.

Prozesszielsetzungen und Prozessphasen

Wir ziehen im Folgenden die Funktionssicherheits-Norm ISO 26262 aus dem Automobilbereich als Beispiel heran, jedoch lassen sich die gleichen Grundsätze auch auf andere safety-kritischen Branchen und Normen wie DO-178C, IEC 61508 oder IEC 62304 anwenden. Allen gemeinsam ist die Praxis, die an die Hard- und Software gestellten Funktionssicherheits-Anforderungen zu spezifizieren und sicherzustellen, dass diese vom Design, der Implementierung und den Tests abgedeckt werden. Bild 1 illustriert die Beziehungen zwischen der Norm ISO 26262 und ihren softwarespezifischen Subphasen.

In der Systemdesigns-Phase geht es um die genauere Ausarbeitung der Anforderungen in Sachen Funktion, Security und funktionale Sicherheit sowie die Abbildung dieser Anforderungen auf die Hard- und Software. Bei den daraus resultierenden Artefakten handelt es sich um CAD-Zeichnungen, Spreadsheets und Textdokumente in einer derartigen Vielfalt an Formaten, dass das Wahren der Rückverfolgbarkeit zwischen den Anforderungen und den sich anschließenden Phasen dem Projektmanagement echte Kopfschmerzen bereitet.

Das Spektrum der idealen Werkzeuge für das Anforderungsmanagement reicht von einfachen Spreadsheets oder Microsoft-Word-Dokumenten bis zu speziell entwickelten Requirements Management Tools wie IBM Rational DOORS Next Generation oder Siemens Polarion REQUIREMENTS. Auf jeden Fall ist die Entscheidung für die richtigen Tools hilfreich für das Sicherstellen der bidirektionalen Rückverfolgbarkeit zwischen den verschiedenen Entwicklungsphasen.

Anforderungen an die Sicherheit der Software

Diese Teilphase konzentriert sich auf das Spezifizieren der Anforderungen an die funktionale Sicherheit der Software, um die nachfolgenden Designphasen zu unterstützen. Sie bildet die Schnittstelle zwischen dem für das gesamte Produkt geltenden Systemdesign-Standard und den softwarespezifischen Anforderungen, wobei auf die zuvor verwendeten Requirements Management Tools zurückgegriffen werden dürfte.

Design der Software- Architektur

Die Implementierung von Softwarearchitektur-Artefakten beispielsweise aus MathWorks Simulink, IBM Rational Rhapsody und ANSYS SCADE kann in einer späteren Entwicklungsphase mithilfe der Kontroll- und Datenfluss-Analyse verifiziert werden, um zum Vergleich mit dem Design grafische Darstellungen der Beziehung zwischen den Codekomponenten zu erstellen.

Bild 2 ist kennzeichnend für die Tabellen in der Norm ISO 26262-6:2011. Gezeigt werden die Codier- und Modellierrichtlinien, die bei der Implementierung durchzusetzen sind – hier ergänzt durch eine Angabe, an welchen Stellen automatisierte Tools helfen können.

Implementierung der Software-Module

Die Befolgung dieser Richtlinien sorgt dafür, dass der Code nicht nur zuverlässiger und weniger fehleranfällig, sondern auch einfacher zu prüfen und zu pflegen ist. Zwar kommt den Peer Reviews weiterhin eine große Bedeutung zu. Aber das Automatisieren dieser mühsamen Checks ist weit effizienter, reproduzierbarer, besser nachweisbar und weniger fehleranfällig. Sprach-Teilmengen können intern oder durch Industriestandards wie MISRA oder CERT C vorgegeben werden – möglicherweise mit zusätzlichen projektspezifischen Anpassungen.

Neben der definitiven Markierung etwaiger Verletzungen von Codierregeln oder Designprinzipien liefern statische Analysetools Komplexitäts-, Kohäsions- und Kopplungs-Kennzahlen (Bild 3), die genauer Auskunft über die Qualität des Codes geben können. In der Praxis entwickelt sich die Rolle eines solchen Tools mit der Zeit von einer Lernhilfe zu einem Mittel zur Bestätigung eines hohen Qualitätsniveaus.

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45583548 / Safety & Security)