Code-Generierung für sicherheitsrelevante Anwendungen

Software ohne Fehler

20. Januar 2012, 14:25 Uhr | Von Dr. Darren Buttle
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 9

Vermeidung von Laufzeitfehlern

Zur Vermeidung von Laufzeitfehlern verlangt die Regel 21.1 des Standards MISRA-C:2004 explizite Prüfungen. Durch das Einfügen derartiger Prüfungen an beliebigen Stellen verliert der Code an Effizienz. Andererseits ist das Identifizieren derjenigen Stellen, an denen solche Prüfungen erforderlich sind oder ohne nachteilige Auswirkungen weggelassen werden können, gleichermaßen schwierig und fehlerträchtig.

Code-Generatoren sind in der Lage, die Stellen im Code, an denen Laufzeitfehlerprüfungen eingebaut werden sollen, systematisch zu finden. Ascet generiert explizite Prüfungen, um folgende Laufzeitprobleme zu vermeiden:

  • Division durch Null.
  • Vorzeichenbehafteter Überlauf (der Versuch, die kleinste von der Hardware darstellbare ganze Zahl durch -1 zu dividieren).
  • Unterlauf und Überlauf von Prozessor-Datentypgrößen.
  • Überschreiten von Wertebereichsgrenzen (Verwendung von Wertebereichen, welche durch das Modell festgelegt sind, zur Ausnutzung von saturierender Arithmetik).
  • Überschreiten von Indexgrenzen bei Arrays (Verhindern der Indizierung über den spezifizierten Index-Bereich hinaus).

 


  1. Software ohne Fehler
  2. Vermeiden von Fehlern im Software-Entwurf
  3. Modularität, Abstraktion und Kapselung
  4. Vermeiden von Mehrdeutigkeiten
  5. Sichere numerische Operationen
  6. Unterstützung von Echtzeit-Systemen
  7. Absicherung des Entwurfs in der Simulation
  8. Automatische Code-Generierung sorgt für reproduzierbare Ergebnisse
  9. Automatisches Einhalten von Spracheinschränkungen
  10. Vermeidung von Laufzeitfehlern
  11. Markieren von potentiellen Problemen bei der Kompilierung

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu ETAS GmbH

Weitere Artikel zu Funktionale Sicherheit/Safety