CI/CD trifft Embedded Automotive Development

In der modernen Softwareentwicklung sind Continuous-Integration- und Continuous-Deployment-(CI/CD-)Pipelines unverzichtbar, um Codequalität sicherzustellen und Entwicklungszyklen zu beschleunigen. In der Embedded-Programmierung – insbesondere im Automotive-Bereich – gestaltet sich die Umsetzung dieser Prinzipien jedoch schwierig, da Hardwareabhängigkeiten und eingeschränkte Laufzeitumgebungen besondere Anforderungen stellen.
Das Forschungsprojekt TwinSpace setzt genau hier an: Es integriert CI-Praktiken in den Entwicklungsprozess eingebetteter Systeme und ermöglicht automatisierte Leistungsanalysen bereits in frühen Entwicklungsphasen – noch bevor ausführbarer Code vorliegt. Durch die automatisierte Messung von Laufzeitparametern und die Bereitstellung hardwarebezogener Einblicke fördert TwinSpace eine datengetriebene Hardwareauswahl und macht Leistungsengpässe frühzeitig sichtbar.
Damit leistet TwinSpace einen wichtigen Beitrag zur Transformation klassischer Embedded-Entwicklung hin zu einer modernen, effizienten und transparenten Softwareentwicklung für eingebettete Systeme.

Validierung beschleunigen mit Digitalen Zwillingen

Automotive-Software folgt weiterhin langen V-Modell-Zyklen, bei denen zentrale Designentscheidungen erst spät validiert werden. Das führt zu langsamen Feedbackschleifen und teurer Nacharbeit. Rapid Prototyping verkürzt diesen Zyklus, indem Algorithmen und Lastverhalten frühzeitig evaluiert werden – idealerweise über mehrere Zielplattformen hinweg. Das vorgeschlagene „TwinSpace“ ermöglicht dies über digitale Zwillinge, die mit einer Load Profile Description Language (LPDL) beschrieben werden. Damit können Teams Komponenten virtualisieren und realistische Ausführungsprofile testen, ohne ein vollständiges System zu integrieren. Plattformoptionen lassen sich so einfacher vergleichen, Performance-Auswirkungen bewerten und Ressourcen von Beginn an optimieren. TwinSpace ist prozessunabhängig, schließt aber im V-Modell gezielt die Lücke zwischen linker und rechter Seite. Ergebnis: frühere Validierung, plattformunabhängiges virtuelles Prototyping und höhere Sicherheit – mehr Agilität in ansonsten starren Entwicklungsrahmen.

Komplex, aber nicht kompliziert: TwinSpace auf der Systemebene

Um die nichtfunktionalen Charakteristiken von Softwaresystemen bewerten zu können, müssen die einzelnen Softwarekomponenten in ein Gesamtsystem integriert werden. Dies geht im TwinSpace-Universum vergleichsweise einfach – die Zwillinge sind funktional unabhängig voneinander und liegen als integrierbare C-Codes vor. Um dem Originalsystem nahe genug zu kommen, müssen allerdings die OS- und Middleware-Schichten nachgebaut werden.

Die Zweite Dimension von TwinSpace: Was sind virtuelle Prototypen, und warum sind sie wichtig?

Software-Zwillinge ermöglichen die Integration neuer Softwarekomponenten selbst in Entwicklungsphasen in denen sowohl Vertraulichkeit als auch Flexibilität erforderlich ist. Ihre Effektivität hängt im besonderen Maße von ihrer Fähigkeit ab den Ressourcenverbrauch des Originalsystems abzubilden. Die genaue Nachahmung des Zeitverhaltens von Instruktionen, Speicherzugriffsmustern und Aufgabenplanung ist keine triviale Angelegenheit.

Erforschung funktionaler und nicht-funktionaler Aspekte in Automobilsoftware, um digitales Zwillings-basiertes HW/SW-Co-Design für eine frühzeitige Schätzung und Ressourcenoptimierung voranzutreiben

Der Doktorand Muhammet USLU, Teil des TwinSpace Konsortiums und in Zusammenarbeit mit dem Industriepartner CARIAD SE, konzentriert sich auf Fahrzeug-Software. In seiner Forschung untersucht er, wie funktionale und nicht-funktionale Aspekte von Automobilsoftware getrennt werden können. Ziel ist es, die Laufzeitleistung zu verbessern, die Energieeffizienz zu steigern und den Entwicklungsprozess zu rationalisieren.

Extraktion und Generierung von Ressourcenzwillingen

In den bisherigen Blogposts sind wir auf die Idee und die Zielsetzung des Projekts TwinSpace eingegangen und haben verschiedene Bausteine zur technischen Umsetzung präsentiert, nämlich die LPDL als Lastbeschreibungssprache sowie die dazugehörigen Extraktoren und Generatoren. Mit Hilfe der LPDL können Modelle des extra-funktionalen Verhalten von Software-Komponenten und -systemen (beispielsweise Laufzeit, Anzahl und Art der Operationen, Speicherverbrauch, Kommunikationsverhalten, …) spezifiziert werden ohne konkrete Algorithmen offenlegen zu müssen. Die Modelle können entweder mittels der Extraktoren automatisch aus vorhandenen Software-Komponenten erzeugt werden oder aber von Hand geschrieben werden. Die Modelle dienen danach als Eingabe für die Generatoren, die anhand der Spezifikation in den LPDL-Modellen passende Ressourcenzwillinge erzeugen. Diese können dann zum Beispiel genutzt werden, um verschiedene Hardwareplattformen oder Compiler zu bewerten.

Heute wollen wir die Umwandlung von Softwarekomponenten in Ressourcenzwillinge anhand eines Beispiels etwas genauer beleuchten. In späteren Blogposts werden auch die Systemebene, Metriken zur Bewertung der Zwillinge und die Einbindung in den automobilen Entwicklungsprozess ein Thema sein.

Extraktoren: Vom Programm zur LPDL

Dieser Artikel stellt die verschiedenen TwinSpace-Extraktoren vor, die verwendet werden, um Lastprofile für Programme zu generieren. Die Extraktoren arbeiten auf unterschiedlichen Abstraktionsebenen, wie der C-Ebene, Objektdateien und Tracedaten, und bieten jeweils spezifische Vorteile bei der Analyse von nicht-funktionalen Eigenschaften wie Energieverbrauch und Laufzeit. Die Analyse auf der C-Ebene ermöglicht die Berücksichtigung hochsprachlicher Eigenschaften, während Objektdateien eine genauere Abschätzung des kompilierten Programms erlauben. Die hardware-nahe Untersuchung mittels Tracedaten bietet letztlich die höchste Genauigkeit. Durch die Kombination dieser Ansätze kann ein umfassendes Bild der nicht-funktionalen Eigenschaften eines Programms erhalten werden, was für die Planung und Effizienzsteigerung in verschiedenen Anwendungen von großer Bedeutung ist.

Mit Ressourcenzwillingen zur effizienten Softwareentwicklung – der TwinSpace Ansatz

Ressourcenzwillinge sind spezialisierte Modelle, die das nicht-funktionale Verhalten von Software – wie Speicherauslastung, Laufzeit, Prozessorlast und Stromverbrauch – präzise nachbilden, ohne dabei deren funktionale Abläufe zu kopieren. Diese Methodik eröffnet vielseitige Möglichkeiten: Entwickler können den Ressourcenbedarf einer Software bereits abschätzen, bevor sie vollständig entwickelt oder ausgeliefert wird. Das schützt nicht nur geistiges Eigentum, sondern fördert auch eine effiziente Ressourcennutzung. Die Erstellung dieser Zwillinge erfolgt automatisch durch innovative Zwillingsgeneratoren, die im Rahmen des TwinSpace-Projekts entwickelt werden.

LPDL: Eine maßgeschneiderte Sprache zur Dokumentation von Lastprofilen

Digitale Zwillinge spiegeln nicht nur den aktuellen Zustand wider, sondern antizipieren auch zukünftige Entwicklungen, simulieren Szenarien und bieten wertvolle Einsichten für die Optimierung realer Entwicklungsprozesse. Doch um diese komplexen digitalen Modelle effizient und präzise zu gestalten, benötigen wir leistungsfähige Werkzeuge, die den speziellen Anforderungen dieser virtuellen Welten gerecht werden. Genau hier setzt die in TwinSpace entwickelte “Load Profile Description Language”, kurz LPDL, an.