Sprach-Test

8. April 2009, 15:29 Uhr |

Genauso wie physikalische Komponenten einer statistischen Analyse zur Bestimmung der Ausfallzeit bedürfen, muss auch untersucht werden, inwieweit für Software eine Ausfallzeit tolerierbar ist. Der MISRA-C-Standard hat viel dazu beigetragen, Qualität in der Software-Entwicklung überprüfbar zu machen.

Diesen Artikel anhören

Genauso wie physikalische Komponenten einer statistischen Analyse zur Bestimmung der Ausfallzeit bedürfen, muss auch untersucht werden, inwieweit für Software eine Ausfallzeit tolerierbar ist. Der MISRA-C-Standard hat viel dazu beigetragen, Qualität in der Software-Entwicklung überprüfbar zu machen.

Die Programmiersprachen C und C++ haben sich auch in der Automobilindustrie für die Entwicklung von Echtzeit-Anwendungen bei der Embedded-Software etabliert. Um die Verwendung von „sicherem C“ in der Automobilindustrie voranzutreiben, hat die englische Motor Industry Software Reliability Association (MISRA) 1998 einen eigenen „C-Standard“ veröffentlicht. Nach mehreren Aktualisierungen wurde er 2004 als MISRA-C:2004 freigegeben. MISRA-C nimmt bezüglich des Einsatzes von C in sicherheitskritischen Systemen nicht Stellung, versucht aber, die Verwendung der Sprache mit der größtmöglichen Zuverlässigkeit zu unterstützen. In ähnlicher Weise wird mit C++ verfahren, d.h., es wird kein Urteil darüber abgegeben, ob C++ für Einsätze außerhalb der seit 2004 veröffentlichten Richtlinien geeignet ist oder nicht. Da die objektorientierte Variante C++ in der Automobilindustrie eine immer größere Rolle spielen wird, wird auch an dieser Stelle der Standard MISRA-C++:2008 an Bedeutung gewinnen.

auto3_Tabelle1_af.jpg
Tabelle 1. Regel aus MISRAC: 2004. Allen automatischen Variablen müssen Werte zugewiesen werden.

Wie sehen die Regeln aus?

Für jede Regel enthält MISRA-C eine Regelnummer, eine Kategorie, einen Anforderungstext sowie einen Quellverweis. Der Beweggrund für die Regel wird vorangestellt – typischerweise auch ein Beispiel für Code, welcher der Regel nicht genügt (Tabelle 1). Auch MISRA-C++:2008 folgt einem ähnlichen Stil (Tabelle 2):

Die Zusammenstellung der MISRARegeln hat sich als ungemein nützlich erwiesen. Der Standard MISRA-C schafft die Voraussetzung für gute Programmierarbeit, die Einhaltung von Codierregeln, der Messung der Komplexität des Codes und der Code-Überdeckung. Bei vielen Zulieferern und OEMs kommt der MISRA-Standard in der Software-Entwicklung bereits zur Anwendung. Ohne ein passendes Verfahren, diese Regeln automatisch auf einen Code anzuwenden, war die Auswirkung dieser Regeln auf die Software-Qualität gering.

auto3_Tabelle2_af.jpg
Tabelle 2. Beispiel einer Regel aus MISRAC++: 2008.

Testwerkzeug zur statischen Analyse

Die LDRA Software Technology, spezialisiert auf das automatische Testen von Software, hat 90 Prozent der insgesamt 141 MISRA:2004-Regeln in ihr TBmisra-Testwerkzeug integriert. Damit sich der Entwickler auf das Werkzeug zur statischen Analyse seines Codes verlassen kann, muss der Werkzeug-Lieferant den Nachweis führen, dass der Validierungstest für das Werkzeug die MISRA-Regeln erfüllt. Code, der die Richtlinien nicht erfüllt, ist hervorgehoben, so dass er dokumentiert und anschließend leicht modifiziert werden kann. Nützliche alphanumerische und grafische Berichte verbessern das Verständnis des Quell-Codes und führen somit zur Verbesserung der Testbarkeit, dem Auffinden von Fehlern und ihrer anschließenden Behebung. ms


Jetzt kostenfreie Newsletter bestellen!