Seminar zu den MISRA-C Regeln für die Entwicklung sicherheitskritischer Software mit ANSI/ISO-C


Der Regelkatalog MISRA-C:2012

In diesem MISRA-C Kurs wird die Entwicklung sicherheitskritischer Software mit der Programmiersprache ANSI/ISO-C in den Varianten C89/90 und C99 im Embedded System im Automobilumfeld betrachtet. Dabei werden die Fehlermöglichkeiten in einem Softwareprojekt analysiert und diskutiert. Die typischen Fehler bei der Implementierung mit Standard C werden kategorisiert und mit den MISRA-Regeln in Zusammenhang gebracht. Neben der Arbeit an den Regeln wird der Aufbau des MISRA Regeldokuments von 2012 durchgesprochen. Die Regeln selbst werden ausführlich behandelt und die Anforderungen an die Dokumentation diskutiert, die nötig ist, um die Regelkonformität nachzuweisen. Ziel des Seminars ist die Prinzipien und die Regeln kennenzulernen, die MISRA zur Fehlervermeidung in C-Projekten zur Verfügung stellt. Ergänzend zu diesem technischen Thema kann auch die Einführung von Codierrichtlinien in Softwareprojekten diskutiert werden.

Die folgenden Themen werden durchgenommen:

  • Die Motivation hinter dem MISRA Regel­katalog.
  • Der Fehler in der Software.
  • Der Fehler in der Codierung (Implementierung).
  • Überlegungen zur Entwicklung im Embedded System.
  • Sicherheits­relevante und sicherheits­kritische Software.
  • Spezielle Fehler­quellen in C.
  • Undefiniertes Verhalten von C.
  • Implementierungs­abhängiges Verhalten von C.
  • Verbreitete Fehler in C.
  • Lesbarkeit und Eindeutigkeit von C-Code.
  • Die Sprache C und die Intuition des Entwicklers.
  • Verbesserte Beschreibung der Regeln gegenüber älteren MISRA Standards.
  • Vereinfachung der Regel­beschreibung.
  • Klare Klassifizierung von Regeln und Richt­linien.
  • Automatische Überprüf­barkeit.
  • Regel-Scope.
  • Geforderte und empfohlene Regeln.
  • Regeln zu ISO C99.
  • Statische Codeanalyse.
  • Programmier­richtlinien und Coding Styles.
  • Der Entwicklungs­prozess.

Es kann ein beliebiger C Compiler eingesetzt werden der kompatibel zum Standard ISO C99 ist, was bei den meisten heute üblichen Compilern auch der Fall ist. Als Plattformen empfehlen sich Windows-, Mac OS X-, UNIX-, Linux-Systeme. Wichtig ist dabei nur, dass die Kursteilnehmer die Programmiersprache C und einfache Dateioperationen auf dem eingesetzten System beherrschen. Es werden einige Regeln anhand praktischer Programmierbeispiele durchgespielt.

Zuletzt geändert am 12.05.2024