SOFTWARE-ENTWICKLUNG FÜR EMBEDDED SYSTEMS Stimmungsbild zu den Herausforderungen bei der Software-Entwicklung für Embedded Systems
Motivation In dieser Umfrage geht es um die Entwicklung von Software für eingebettete Systeme. Wir wollen feststellen, welche Anforderungen an die Hardund die Software gestellt werden. Zudem wollen wir herausfinden, welches die größten Probleme in der Software-Entwicklung sind und in welchem Umfang Werkzeuge genutzt werden, um diese zu lösen. Was verstehen wir unter eingebetteten Systemen? Wir verstehen darunter Rechnersysteme, welche nicht für sich allein stehen, sondern in anderen Produkten eingebettet sind. Dies können mobile Endgeräte sein, aber auch Fahrzeuge, Fertigungsstraßen und Kraftwerke. Folie 2
Rahmendaten Zielgruppe: Software-Entwickler für eingebettete Systeme (Branchen: Automotive, Automatisierung, Telekommunikation und Avionik) Fokus: Neue Herausforderungen durch den Einsatz von eingebetteten Systemen Interviews Zeitraum: November 212 Januar 213 Teilnehmer: 7 Online-Fragebogen Zeitraum: 26. Februar 3. April 213 Teilnehmer: 51 Folie 3
Interviews Zur Vorbereitung des Online-Fragebogens wurden ab November 212 in einer ersten Phase sieben einstündige Interviews mit Software-Experten aus den Branchen Automotive, Automation und Telekommunikation durchgeführt. Alle Teilnehmer gaben an, dass die Werkzeugunterstützung sowie die Interoperabilität zwischen Werkzeugen verbessert werden muss. Speziell zur Unterstützung des Debugging, also dem Finden und Beheben von Programmfehlern, wünschen sich die Entwickler Werkzeuge. Folie 4
Teilnehmer und Arbeitsumfeld Folie 5
In welcher Branche sind Sie überwiegend tätig? 2% 1% 8% 35% Automatisierung Andere Automotive Telekommunikation Die meisten Befragten arbeiten in den Branchen Automatisierung und Automotive. Die Gruppe Andere beinhaltet Teilnehmer aus Branchen wie Medizintechnik, Home-Automation etc. Avionik 27% Folie 6
In welchen Bereichen sind Sie überwiegend tätig? Entwicklungswerkzeuge Mensch-Maschine-Interaktion Software für Netzwerkmanagement Software für Netzwerksicherheit Software für Bildverarbeitung und Sensorik Software für Protokollverarbeitung Software für Steuerung und Regelung Software mit weichen Echtzeitanforderungen Software für Signalverarbeitung Software für Antriebssteuerung Software mit harten Echtzeitanforderungen Systemsoftware (Firmware, Betriebssystem, Systemarchitektur Branchenübergreifend gaben die meisten Befragten an, in den Bereichen Systemsoftware, Systemarchitektur oder Software für Steuerung und Regelung tätig zu sein. 5 1 15 2 25 3 35 Automotive Automatisierung Telekommunikation Avionik Andere Mehrfachangaben möglich Folie 7
Auf welche Softwareeigenschaften wird in Ihrem Umfeld besonders Wert gelegt? 5 4 3 2 1 Auf Performanz, deterministisches Verhalten und Echtzeit wird im Durchschnitt sehr viel Wert gelegt. Security (Datensicherheit) spielt die geringste Rolle. Angaben als Durchschnitt () = kein Wert (5) = sehr viel Wert Folie 8
Wenn sich Ihre Software an Zeitschranken halten muss, in welcher Größenordnung liegen diese? % der Teilnehmer 6 5 4 3 2 1 Zeitschranken zwischen 1µs und 1ms kommen am häufigsten vor. 2/3 aller Antworten Mehrfachangaben möglich Folie 9
Multicore Folie 1
Was ist in Ihrem Arbeitsumfeld die treibende Kraft für den Einsatz von Multicore-Prozessoren? % der Teilnehmer 6 5 4 3 2 1 Schon heute werden Multicore-Prozessoren vielfach eingesetzt. Benötigt werden sie vor allem für rechenintensive Algorithmen. Daneben sind Kosten und Durchsatz Einsatzgründe. Mehrfachangaben möglich Folie 11
Wie sieht die Nutzung von Multicore-Systemen in fünf Jahren aus? (Einschätzung) % der Teilnehmer 7 6 5 4 3 2 1 Die Prognose ist, dass Multicore-Prozessoren flächendeckend eingesetzt werden. die Anzahl der CPU- Kerne weiter ansteigt. zukünftige Multicore- Prozessoren eher heterogene Systeme sind, z.b. Kopplungen mit FPGAs oder DSPs. Mehrfachangaben möglich Folie 12
Softwareentwicklung Folie 13
Welche Aufgaben gehören in Ihrem Projektumfeld zu den aufwändigsten? 5 4 3 Debugging, Test, Implementierung und Spezifikation der Software sind die aufwändigsten Arbeiten. 2 1 Angaben als Durchschnitt () = wird nicht gemacht (5) = sehr aufwändig Folie 14
Bei der Entwicklung von eingebetteter Software, welches sind die größten Probleme? % der Teilnehmer 6 5 4 3 2 1 Die größten Probleme: Debugging zeitkritischer Software Reproduzierbarkeit von Fehlern Ungenügende Anforderungen Entgegen den qualifizierten Interviews sind Werkzeugunterstützung und Austauschformate nur ein geringes Problem. Mehrfachangaben möglich Folie 15
Werkzeuge Folie 16
Für welche der folgenden Aufgaben benötigen Sie Werkzeuge? % der Teilnehmer 1 9 8 7 6 5 4 3 2 1 5 4 3 2 1 Die aufwändigste Aufgaben benötigen am häufigsten Werkzeugunterstützung. Trotz hoher Anforderungen an die Rechenleistung werden Werkzeuge für Optimierung nur selten benötigt. Bedarf Werkzeuge Aufwand Mehrfachangaben möglich Folie 17
Welcher Art sind die tatsächlich eingesetzten Werkzeuge? % der Teilnehmer 7 6 5 4 3 2 1 kommerziell frei/offen selbstentwickelt Mehrfachangaben möglich Vor allem in den frühen Phasen (V-Modell) der Softwareentwicklung werden kommerzielle Werkzeuge eingesetzt. In späteren Phasen kommen auch freie oder quelloffene sowie selbstentwickelte Werkzeuge dazu. Der hoher Anteil selbstentwickelter Testwerkzeuge schließt unternehmensspezifische Testsuiten mit ein. Folie 18
Sofern Sie selbstentwickelte Werkzeuge nutzen, was hat zu deren Entwicklung geführt? % der Teilnehmer 7 6 5 4 3 2 1 Hauptgründe für Eigenentwicklungen sind das Fehlen passender Werkzeuge oder Funktionen. Hohe Anschaffungskosten werden oft als Grund angegeben. Mehrfachangaben möglich Folie 19
Was die Anwender sagen Die Werkzeugunterstützung zur Validierung von Anforderungen z. B. mittels Simulation muss verbessert werden. Die Werkzeugunterstützung zum Entwurf der Softwarearchitektur muss verbessert werden, um z. B. semi-formale Notationen zur einfachen Beschreibung/Modellierung/ Simulation von nicht-funktionalen (Quality-of-Service) und funktionalen Anforderungen (Zustandsmaschinen, physikalische Prozesse, Algorithmen) zu verbessern und im Idealfall in einen Ablauf zu integrieren. Folie 2
Panthermedia Was die Anwender sagen Wir brauchen eine Programmiersprache in der Parallel-Strukturen besser formuliert werden können. Vorhandene Vorschläge z. B. für C, Ada oder OpenCL sind meines Erachtens nicht ausreichend. Außerdem sollten auch parallele Konzepte wie SIMD besser unterstützt werden. Außerdem mangelt es noch an der breiten Ausbildung. Viele Software-Entwickler haben noch immer ein sequentielles Gedankenmodel. Folie 21
Panthermedia Was die Anwender sagen Die Testmöglichkeiten müssen ausgebaut werden. So sind für moderne Entwicklungsprozesse Unit-Tests auf der Zielhardware wünschenswert. Die Werkzeuge sollten interoperabler, einheitlicher und nach Möglichkeit quelloffen sein. Viele Tools wirken leider eher notdürftig zusammengeflickt und bezüglich ihrer Bedienphilosophie wenig durchdacht und damit produktivitätshemmend. Folie 22
FAZIT 1. Die Hauptgründe für den Einsatz von Multicore-Prozessoren sind Durchsatz und komplexere Algorithmen. Dies führt häufiger zu Problemen bei der Entwicklung paralleler Software. 2. Debugging und Test sind die aufwändigsten Aufgaben. Die größten Probleme sind dabei die Reproduzierbarkeit von Fehlern und das Debugging von zeitkritischer sowie von paralleler Software. Dies spiegelt sich auch in dem hohen Bedarf an Werkzeugen wieder sowohl für das Debugging als auch für das Testen der Software. Folie 23
FAZIT 3. Datensicherheit hat derzeit als Softwareeigenschaft eine nur geringe Bedeutung. Durch Forschungsprogramme wie Industrie 4. und die Bestrebungen zur Vernetzung von z. B. Fahrzeugen wird die Bedeutung der Sicherheit in Zukunft vermutlich zunehmen. 4. Als wesentliche Gründe für selbstentwickelte Werkzeuge wurden fehlende Funktionalität und zu hohe Anschaffungskosten angegeben; dies ist interessant da Eigenentwicklungen bis auf wenige Ausnahmen teurer sind als fremdentwickelte Werkzeuge. Folie 24
F&E zu Multicore beim Fraunhofer ESK Werkzeuge zur Analyse von Multicore Software http:///de/projekte/tracing.html http:///de/projekte/oprofilebm.html MUCOS: http:///de/projekte/mucos.html WEMUCS: www.multicore-tools.de Test von Software in eingebetteten Systemen TIP: http:///de/projekte/tip.html Werkzeuge zur frühen Validierung zeitkritischer Funktionen ERNEST: http:///de/projekte/ernest.html Folie 25
Detaillierte Ergebnisse pro Branche Folie 26
Auf welche Softwareeigenschaften wird in Ihrem Umfeld besonders Wert gelegt? 5 4 3 2 1 Automotive (1 Teilnehmer) Telekommunikation (5 Teilnehmer) Automatisierung (18 Teilnehmer) Avionik (4 Teilnehmer) Angaben als Durchschnitt () = kein Wert (5) = sehr viel Wert Folie 27
Wenn sich Ihre Software an Zeitschranken halten muss, in welcher Größenordnung liegen diese? % der Teilnehmer 8 7 6 5 4 3 2 1 < 1µs 1µs - 1µs 1µs - 1µs 1µs - 1ms 1ms - 1ms 1ms - 1ms 1ms - 1s > 1s Keine Zeitschranken Automotive (1 Teilnehmer) Telekommunikation (5 Teilnehmer) Automatisierung (18 Teilnehmer) Avionik (4 Teilnehmer) Mehrfachangaben möglich Folie 28
Was ist in Ihrem Arbeitsumfeld die treibende Kraft für den Einsatz von Multicore-Prozessoren? % der Teilnehmer 8 7 6 5 4 3 2 1 Kosten Energieeffizienz Durchsatz Rechenintensive Algorithmen Redundanz Kein Multicore Automotive (1 Teilnehmer) Telekommunikation (5 Teilnehmer) Automatisierung (18 Teilnehmer) Avionik (4 Teilnehmer) Mehrfachangaben möglich Folie 29
Wie sieht die Nutzung von Multicore-Systemen in fünf Jahren aus? (Einschätzung) % der Teilnehmer 9 8 7 6 5 4 3 2 1 Automotive (1 Teilnehmer) Telekommunikation (5 Teilnehmer) Automatisierung (18 Teilnehmer) Avionik (4 Teilnehmer) Mehrfachangaben möglich Folie 3
Welche Aufgaben gehören in Ihrem Projektumfeld zu den aufwändigsten? 5 4 3 2 1 Automotive (1 Teilnehmer) Telekommunikation (3 Teilnehmer) Automatisierung (18 Teilnehmer) Avionik (4 Teilnehmer) Angaben als Durchschnitt () = wird nicht gemacht (5) = sehr aufwändig Folie 31
Bei der Entwicklung von eingebetteter Software, welches sind die größten Probleme? 12 % der Teilnehmer 1 8 6 4 2 Automotive (1 Teilnehmer) Telekommunikation (5 Teilnehmer) Automatisierung (18 Teilnehmer) Avionik (4 Teilnehmer) Mehrfachangaben möglich Folie 32
Für welche der folgenden Aufgaben benötigen Sie Werkzeuge? % der Teilnehmer 12 1 8 6 4 2 Automotive (1 Teilnehmer) Telekommunikation (5 Teilnehmer) Automatisierung (18 Teilnehmer) Avionik (4 Teilnehmer) Mehrfachangaben möglich Folie 33
Welcher Art sind die tatsächlich eingesetzten Werkzeuge? Automotive (1 Teilnehmer) Automatisierung (18 Teilnehmer) % der Teilnehmer 8 7 6 5 4 3 2 1 kommerziell frei/offen selbstentwickelt % der Teilnehmer 7 6 5 4 3 2 1 kommerziell frei/offen selbstentwickelt Telekommunikation (5 Teilnehmer) Avionik (4 Teilnehmer) % der Teilnehmer 5 4 3 2 1 kommerziell frei/offen selbstentwickelt % der Teilnehmer 1 8 6 4 2 kommerziell frei/offen selbstentwickelt Mehrfachangaben möglich Folie 34
Sofern Sie selbstentwickelte Werkzeuge nutzen, was hat zu deren Entwicklung geführt? % der Teilnehmer 9 8 7 6 5 4 3 2 1 Automotive (1 Teilnehmer) Telekommunikation (5 Teilnehmer) Automatisierung (18 Teilnehmer) Avionik (4 Teilnehmer) Mehrfachangaben möglich Folie 35