Embedded-Software-Entwicklungs-Tools Hohe Sicherheit für Infotainment-Anwendungen

Das Analyse-Tool CodeSonar von GrammaTech, ursprünglich für Avionik-Applikationen entwickelt, kommt vermehrt im Automotive-Bereich zum Einsatz. Vorteil der Technologie ist deren Fähigkeit, sowohl in Ein- als auch in Mehrkernanwendungen kritische Defekte aufzuspüren. Hierdurch eignet sie sich für Software-Entwicklungs-Unternehmen, deren Fehlertoleranz gegen Null geht.

Die erste Anwendung im Automotive-Sektor war die Analyse von Software zur Steuerung von Schweißrobotern. Nun nutzen Hersteller im Automotive-Umfeld CodeSonar, um die Software-Systeme innerhalb des Automobils zu untersuchen, beispielsweise die Antriebsstrang- und Fahrwerkssteuerung, Sicherheitsvorrichtungen sowie Infotainment-Lösungen. Warum auf die Technologie setzen? Zum einen nimmt die Zahl der Infotainment-Systeme im Fahrzeug stetig zu. Weil hier eine große Menge an Codezeilen anfallen, sind herkömmliche Software-Qualitätssicherungsmethoden schwer anzuwenden. Zum anderen wird die Steuerungs-Software zunehmend komplexer, so dass sich das Testen und Analysieren schwieriger gestalten lässt. Daher entscheiden sich viele Automobilhersteller für automatisierte Testtechnologien, wie CodeSonar.

“Die Software moderner Automobile kann ohne weiteres mehr als zehn Millionen Codezeilen umfassen”, betont Paul Anderson, Vice President of Engineering von GrammaTech. “Unter solchen Umständen werden die Einschränkungen und Kosten herkömmlicher Testmethoden offensichtlich. Unternehmen erkennen in automatisierten Prüftechnologien wie dem statischen Analyse-Tool CodeSonar einen effizienten Weg zu mehr Zuverlässigkeit und zur Lösung komplexer Probleme.”

Ein weiterer Faktor, der Software immer komplexer macht, ist der Einsatz von Mehrkernprozessoren. “Multicore verbessert die Leistung, fordert aber die Zuverlässigkeit heraus, da die für Multicore geschriebene Software sehr anfällig für Nebenäufigkeitsfehler ist”, fährt Anderson fort. “Dynamische Tests finden Fehler, die bei bestimmten Ausführungen eines Programms auftauchen, mit einem festen Satz an Eingabedaten. Die statische Analyse hingegen findet Defekte bei nebenläufigen Programmbefehlen durch die formale Prüfung aller oder der meisten möglichen Ausführungen – dies checkt das Programm viel gründlicher durch als es mit dynamischen Tests möglich ist. Ein weiterer Vorteil der statischen Analyse liegt darin, dass keine Testfälle erforderlich sind, da das Programm nie wirklich ausgeführt wird.”

Eine weitere Herausforderung ist das Thema Sicherheit. Autos werden immer netzwerkfähiger und damit anfälliger für Cyber-Angriffe.  Eine gute Sicherheitsarchitektur ist daher notwendig. Allerdings nutzt ein großer Prozentsatz der Angriffe Programmierfehler aus. „Die statische Analyse kann viele solcher Programmierungsdefekte erkennen, die gewöhnlich zu Anfälligkeiten führen, wie etwa zu Pufferüberläufen”, so Anderson.