Statische Analyse Bugs und Defekte in Multitasking-Software eliminieren

Autor / Redakteur: David Kalinsky * / Martina Hafner

Werkzeuge für die statische Analyse spüren Multitasking-Fehler auf, die mit Softwaretests nur schwer gefunden werden. Diese Tools eignen sich auch für das riesige Spektrum an Fehlern, bei denen es zu Interaktionen zwischen mehreren Tasks sowie mit einem Echtzeitbetriebssystem (RTOS) kommt.

Anbieter zum Thema

Wo steckt der Fehler? Bestimmte Defekte in Multitasking-Software im Embedded-Umfeld lassen sich mit Hilfe von Tools für die statische Analyse aufsprüren.
Wo steckt der Fehler? Bestimmte Defekte in Multitasking-Software im Embedded-Umfeld lassen sich mit Hilfe von Tools für die statische Analyse aufsprüren.
(Bild: gemeinfrei / CC0 )

Vor etwa 30 Jahren, in meinem ersten Job im Bereich Echtzeitsysteme, leitete ich ein Softwareentwicklungsteam, das an einem Erste-Hilfe-Monitor arbeitete (das Gerät war etwa einen Kubikmeter groß, also nicht so kompakt wie die Monitore in modernen medizinischen Geräten, wie wir sie heute kennen).

Bildergalerie
Bildergalerie mit 6 Bildern

Eines Tages rief mich der Firmenchef zu sich und fragte mich: „David, warum schaffen Sie es nicht, dass Ihre Software auf Anhieb fehlerfrei läuft?“ Er fuhr verärgert fort: „Laut Ihren Berichten haben Sie die Software doch fertig gestellt, aber danach sind Sie noch monatelang damit beschäftigt, sie von sogenannten Bugs zu befreien. Können Sie die Software denn nicht einfach von Anfang an richtig programmieren? Sie würden sich eine Menge Frust und ich mir einen Haufen Geld sparen.“

Damals in den Siebzigern hatte ich noch keine Antwort auf diese Fragen. Ich dachte, dass er mich feuern würde und meine Karriere im Embedded-Bereich damit beendet sei.

Machen wir einen Zeitsprung in die Gegenwart. Dreißig Jahre sind inzwischen vergangen, und Embedded-Entwickler haben viel über Wirtschaftlichkeit und Management in der Softwareentwicklung gelernt. Trotzdem wird auch heute noch gut die Hälfte der Entwicklungszeit dafür aufgewendet, Fehler im Softwarecode zu finden und zu beheben.

Seit kurzem gibt es einen Hoffnungsschimmer am Horizont der Softwareentwicklung — eine neue Generation von Tools für die statische Codeanalyse. Diese analysieren Softwarecode auf Bugs und andere Defekte, ohne dass die Programme selbst ausgeführt werden müssen.

Sie basieren auf bestehenden Analysatoren wie beispielsweise MISRA-C-Compilern und LINT und verwenden Algorithmen, die den Quellcode akribisch auf Softwarefehler prüfen und gefundene Fehler zuverlässig und hochpräzise anzeigen.

(ID:44759460)