Debugging von Software für Embedded Multicore Was Software-Entwickler herausfordert

In einer Umfrage unter rund 50 Software-Entwicklern hat das Fraunhofer ESK aktuelle Probleme bei der Entwicklung von Software für eingebettete Systeme mit Multicore-Prozessoren identifiziert.

Am wichtigsten waren den Entwicklern Software-Werkzeuge für Debugging und Test, die bis jetzt noch nicht ausreichend vorhanden sind. Multicore CPUs werden eingesetzt, da sie einen höheren Befehlsdurchsatz bieten und komplexere Algorithmen verarbeiten können. Die Befragten gaben an, dass die Verbreitung von Multicore-Prozessoren in den nächsten fünf Jahren auch bei eingebetteten Systemen steigen wird.
Die Umfrage erfolgte in zwei Phasen: Am Anfang standen persönliche Interviews mit sieben Software-Entwicklern mit Multicore-Erfahrung. In der zweiten Phase beantworteten 51 Personen einen offenen Online Fragebogen. Diese waren vor allem in den Branchen Automotive, Automation und Telekommunikation tätig. Ziel der Umfrage war es, die Problemfelder zu erkennen, die durch den Einsatz von Multicore-Prozessoren in eingebetteten Systemen entstehen.
Als wichtigste Anforderungen an Software für eingebettete Systeme haben die Befragten Performanz, deterministisches Verhalten und Echtzeit identifiziert. Dabei spielt sich Echtzeit in der Regel zwischen 10μs und 10ms ab. Die aufwändigsten Arbeitsschritte bei der Entwicklung sind Test, Debugging und Implementierung. In diesem Umfeld besteht auch umfangreicher Unterstützungsbedarf, denn als größte Probleme wurden das Debugging zeitkritischer Software, die Reproduzierbarkeit von Fehlern und unzureichend spezifizierte Anforderungen genannt.
Die aufwändigsten Aufgaben, Implementierung, Debugging und Test, benötigen am häufigsten Werkzeugunterstützung. Eingesetzt werden sowohl kommerzielle als auch quelloffene und selbstentwickelte Werkzeuge. Die Nutzung kommerzieller Software-Werkzeuge korreliert mit dem V-Modell: In den frühen Phasen werden sie häufig genutzt, in die späten Phasen werden sie oft durch freie, quelloffene und selbstentwickelte Werkzeuge ersetzt. Gründe für die Eigenentwicklung sind bei 60 Prozent der Befragten das Fehlen passender Werkzeuge und bei 40 Prozent nicht vorhandene Funktionen. Ein weiterer Grund sind die hohen Anschaffungskosten für Softwarewerkzeuge.
Neben dem Fehlen geeigneter Werkzeuge und deren mangelnde Integration in eine Werkzeugkette, wurde die Schwierigkeit, parallele Strukturen mit bestehenden Programmiersprachen abzubilden, bemängelt. Angesichts des Trends zum Einsatz von Multicore Prozessoren in sicherheitskritischen eingebetteten Systemen besteht hier deutlicher Entwicklungsbedarf.