Das Software-definierte Fahrzeug ist Fakt. Und mit assistiertem – und womöglich voll automatisiertem – Fahren wird Software noch bedeutsamer. Doch Software ist nie fertig. Ihr Wesen ist kontinuierliche Veränderung. Mit dem Digital Loop in Verbindung mit Hardware- und Software in the Loop lassen sich Validierung, Homologation und Weiterentwicklung von Fahrzeugen auf ein neues Fundament stellen.
Fahrzeuge mit Software – das war vor Jahrzehnten noch unvorstellbar. Und die beiden Industrien Automobil und IT beäugten sich teils sogar kritisch. Unvergessen ist der (erfundene) Schlagabtausch zwischen Bill Gates und Jack Welch, in dem die Entwicklung des PCs mit der von Autos verglichen wurde.
Doch mit jeder neuen Generation von Autos ist der IT-Anteil im Auto gestiegen, die beiden Welten wuchsen zusammen. Das „Fahrzeug der Zukunft“ entstand und entsteht. Das bedeutet vor allem eines: Immer mehr Funktionen werden von Software übernommen. Und diese übernimmt nicht nur Aufgaben wie die Verwaltung des Entertainment-Systems, sondern auch sicherheitsrelevante Funktionen. Das Software-definierte Auto hat hohe Erwartungen an Software. Denn kaum ein Fahrer wird akzeptieren, dass sich sein Fahrzeug „ohne erkennbaren Grund einfach abschaltet“ oder dass Bremssysteme nicht funktionieren. Deshalb existieren umfangreiche Rahmenwerke, die die Entwicklung und den Einsatz von Automotive Software regeln.
Mit dem Trend, immer mehr Funktionalität in Code abzubilden – auch im Hinblick auf das autonome bzw. assistierte Fahren (ADAS/AD) – steigen die Ansprüche an Entwickler von Hardware und Software in Fahrzeugen. Etablierte Ansätze, die Daten in Testfahrten einsammeln, auswerten und für die Entwicklung bereitstellen, können mit dem Tempo, insbesondere der Automotive-Software-Entwicklung (und dem regelmäßigen Rollout von Updates) nicht mithalten. Sie sind zu langsam und liefern zu wenig Daten für die Entwicklung. OEMs müssen Lösungen finden, um die neue Dynamik ihrer „cyberphysikalischen“ Produkte zu unterstützen.
Hier kommen Connected-Car-Konzepte ins Spiel. Kunden-Fahrzeuge, die mit einem OEM-Backend vernetzt sind, liefern kontinuierliche Datenströme aus echten Verkehrssituationen und schaffen eine breite Basis für die Weiterentwicklung und Optimierung von Hardware und Software. Damit kann ein echter datengetriebener Entwicklungsprozess entstehen, und zwar nahtlos über die komplette Prozesskette hinweg. Continuous Integration, Continuous Deployment und DevOps können für das Software Development eingesetzt werden.
Der „Digital Loop“ adaptiert das Konzept von CI/CD (Continuous Integration / Continuous Deployment) aus der agilen Software-Entwicklung und erschließt es für das Automotive-Umfeld. Er unterstützt einen End-to-End-Validierungs- und Homologationsprozess für Software-Updates im Fahrzeug entlang des kompletten Lebenszyklus. Die Entwicklung von Software mit Datenanalysen, Simulationen und dem Rollout wird verknüpft mit dem Sammeln von Daten aus dem Live-Betrieb der Fahrzeuge.
Dieses kurze Video erklärt die Hauptmerkmale der Digital Loop Lösung für die Homologation von Over-the-air Software Updates anschaulich an dem Showcase eines SAE L3 Demo Fahrzeugs.
Für die Validierung und Verifizierung von Software und Hardware greift der Digital Loop auf einen SIL/HIL-Subprozess (Hardware bzw. Software in the Loop) zurück. Er sammelt die Live-Daten ein, bereitet sie auf und reichert sie mit synthetischen Daten an. Mithilfe der Daten wird das Verhalten des Fahrzeugs wiederum in typischen Verkehrssituationen simuliert und mit den gesetzten Erwartungen (KPIs) abgeglichen. Die Resultate werden an das Entwicklungsteam zurückgespielt. Sie können die Ergebnisse für die Weiterentwicklung der Hardware und Software, aber auch als automatisierte (kontinuierliche) Validierung und Simulation für den Nachweis im Homologationsprozess verwenden. Damit kann der OEM den Validierungsprozess entsprechend den regulatorischen Anforderungen weitgehend automatisieren – eine deutliche Beschleunigung und Vereinfachung.
Der Digital Loop ist die Antwort auf eine drängende Herausforderung von Entwicklungsabteilungen bei Automobilherstellern. Er schafft eine neue Basis, damit sie den Sprung in die agilere Ära Software-definierter Fahrzeuge bewältigen können. Die Auswirkungen von Software-Updates lassen sich schneller bewerten, Optimierungspotenziale lassen sich auf Basis von echten Fahrdaten identifizieren und einführen. Validierung und Homologation lassen sich automatisieren. Dies gewinnt vor allem an Bedeutung vor dem Hintergrund des autonomen oder assistierten Fahrens. Hier wird die Bedeutung von Software-Updates auf ein neues Niveau gehoben – kontinuierliche Updates in kürzeren Zyklen werden dort zur Regel.
DevOps ist eine Methodik in der Softwareentwicklung, die darauf abzielt, die Zusammenarbeit zwischen den Teams für Softwareentwicklung (Development) und IT-Betrieb (Operations) zu verbessern. Sie hat auch für die dynamische Entwicklung von Automotive Software erhebliche Bedeutung. Häufig wird für DevOps auch das Synonym agile Software-Entwicklung verwendet. Das Ziel ist es, die Bereitstellung von Software-Anwendungen (und damit die Time to Market neuer Produkte) zu beschleunigen, die Zuverlässigkeit zu erhöhen und eine kontinuierliche Lieferung von hochwertiger Software zu ermöglichen. Mit der Beschleunigung ist eine schnellere Einführung von Innovationen möglich, ebenso wie schnellere Reaktionen auf Kunden-Feedbacks und Marktentwicklungen.
DevOps automatisiert die Development-Prozesse und greift auf Continuos Integration und Continuous Deployment (CI/CD) zurück sowie eine enge Zusammenarbeit und Kommunikation zwischen den Entwicklern und Betriebsteams. Continuous Integration (CI) ist ein zentraler Bestandteil von DevOps. Es bezieht sich auf den Prozess, bei dem Entwickler ihre Code-Änderungen regelmäßig und häufig in ein gemeinsames Repository integrieren. Durch automatisierte Tests und Builds wird die Qualität des Codes sichergestellt. Das Ziel von Continuous Integration ist es, Probleme frühzeitig zu erkennen und die Integration von Code-Änderungen zu erleichtern.
Continuous Delivery (CD) und Continuous Deployment (CD) sind Erweiterungen von CI und gehören ebenfalls zum DevOps-Ansatz. Continuous Delivery bezieht sich auf den Prozess, bei dem Software in kurzen Iterationen und in einem automatisierten Workflow bereitgestellt wird, sodass sie jederzeit in Produktion gehen kann. Continuous Deployment geht einen Schritt weiter und bedeutet, dass jede erfolgreiche Code-Änderung automatisch in die Produktionsumgebung übernommen wird – ohne manuelle Eingriffe.