Siemens Valeo Siemens Valeo

Volvo-Cars: Mehr Drive für Volvo Automotive

Die Volvo Cars Corporation (VCC) ist eine der renommiertesten und angesehensten Automarken der Welt. Das Unternehmen hat sich den Ruf erworben, Kunden weltweit mit der neuesten Technologie und Sicherheit zu bedienen. Im VCC-Entwicklungszentrum am Stadtrand von Göteborg, Schweden, arbeiten Tausende von Ingenieur:innen an der Entwicklung von Technologien für die nächste Generation von PKW. Der Schwerpunkt der Forschung und Entwicklung von Volvo Cars liegt auf der Leistungssteigerung von Komponenten des Antriebsstrangs (Motor, Getriebe, Schaltgetriebe), unabhängig davon, ob sie sich auf Elektro-, Verbrennungs- oder Hybridsysteme beziehen. Dabei spielt die Steuerungssoftware für die Anwendungen von innovativen Antrieben eine entscheidende Rolle.

Die Tragweite der hauseigenen Softwareentwicklung von Volvo Cars erhöhen

Volvo Auto Torslanda Anlage 2004
Bild 1: Volvo Auto Torslanda Anlage 2004

Die Volvo Cars Corporation (VCC) hat vor etwa 20 Jahren die interne modellbasierte Softwareentwicklung für die Motor- und Antriebsstrangsteuerung eingeführt. Der Vorteil an der modellbasierten Entwicklung ist, dass das Fachwissen der Entwicklungsingenieur:innen mit der automatisierten Erstellung hochwertiger Software kombiniert werden kann. Die Funktionsmodelle der zukünftigen Steuerungssoftware werden von Funktionsentwickler:innen erstellt, welche Experten:innen auf ihrem jeweiligen Gebiet sind. Die Funktionsentwickler:innen konzentrieren sich auf das mechatronische System und sein funktionales Verhalten. Die Software-Generierungs-Toolchain unterstützt die Funktionsdesigner:innen bei der Erstellung leicht lesbarer, testfähiger und wartungsfähiger Softwaremodelle, einschließlich des Controller-Codes. Die Abteilung für Antrieb und Antriebsstrang von VCC begann 2002 mit einem eher bescheidenen Team von etwa 10 Software-Entwicklern:innen und einem unkomplizierten, einfachen Entwicklungsprozess. Zu dieser Zeit wurden manuelle Bat-Dateien für die Codegenerierung und den Aufbauprozess der Software verwendet.

In den letzten Jahren wurde die Software der Steuergeräte um immer mehr Funktionalität erweitert, da Anforderungen aus einer Vielzahl unterschiedlicher Fahrzeugprojekte wuchsen, wie z.B. unterschiedliche Antriebsstrangvarianten und erweiterte Verbrennungsfunktionalität. Die Komplexität und die schiere Anzahl der Funktionen nahmen ebenfalls exponentiell zu. Dies führte dazu, dass immer mehr Validierungs- und Verifikationsschritte in die Entwicklungskette eingefügt werden mussten. Das Entwicklungsteam ist dabei in letzter Zeit auf mehr als 100 Domänenexperten:innen und Funktionsentwickler:innen angewachsen. Mit dieser Erweiterung des Teams bestand die größte Herausforderung darin, die verschiedenen Softwarekomponenten in ein funktionierendes System zu integrieren und die Anzahl der Fehler zu bewältigen, die im Software-Repository verfolgt werden mussten. Jede einzelne Veröffentlichung eines neuen Softwareprodukts wurde immer mehr zu einer herausfordernden Anstrengung. Zu dieser Zeit wurde Apache SVN als Rückgrat für die Verwaltung der verschiedenen in Entwicklung befindlichen Softwareversionen verwendet.

Volvo Cars stellt auf Continuous Integration um

Im Jahr 2014 beschloss das technische Management von Volvo Cars die Einführung von Best Practices, Tools und Ansätzen, die ihren Ursprung in der fortschrittlichen Softwareindustrie haben. In der heutigen Softwareindustrie werden Continuous Integration (CI) und Nightly Builds verwendet, um sicherzustellen, dass verschiedene Komponenten eines Softwaresystems problemlos in ein vollwertiges Softwaresystem integriert werden können. Ferner soll gewährleistet werden, dass die bestehende Legacy-Funktionalität nicht durch neue Funktionen beschädigt wird. Darüber hinaus erhalten die einzelnen Entwickler:innen eine schnelle Rückmeldung über ihren Beitrag zum Softwaresystem und ressourcenintensive Testprozesse werden über Nacht auf einem größeren Server durchgeführt. Der "Integrationsalbtraum", der sich normalerweise entfaltet, wenn man auf den Tag der Veröffentlichung wartet, um seine Teile in den Releasezweig einzubinden, kann erfolgreich durch die Verwendung von Regressionstests, Nightly Builds und Continuous Integration vermieden werden. Diese wichtigen Prinzipien von CI wurden in die gesamte Toolchain der elektronischen Steuermodule von VCC eingeführt.
Eine weitere Entwicklung wurde 2018 adaptiert, nämlich ein neues CI-System, das auf ZUUL von OpenStack basiert. ZUUL’s Motto ist: „Kein Zusammenführen von beschädigtem Code“. Daher darf nur der getestete und analysierte Code auf dem Master zusammengeführt werden. ZUUL hat viele Vorteile, aber einer der wichtigsten ist der spekulative Fusionsschritt, der eine große Parallelisierung ermöglicht. ZUUL basiert auf dem Änderungsmanagementsystem GIT, einem schnellen, skalierbaren, dezentralen Revisionskontrollsystem. Darüber hinaus wird das GIT-Add-On "Gerrit" für die gemeinschaftliche Überprüfung des Codes verwendet. Daher steht ZUUL im Zentrum des Prozesses, verfolgt die Ereignisse in Gerrit und schickt Aufträge an Jenkins. Die neu eingeführte CI-basierte Entwicklungskette wird als die Volvo Cars ECM CI-Kette bezeichnet. Vom Beginn der Implementierung der Software an löst jeder einzelne neue Commit automatisch eine Reihe von Integrations- und Regressionstests aus. Die von den Entwickler:innen vorgenommenen Änderungen werden durch automatisierte Tests gegen den Build validiert. Dieser neue Entwicklungsansatz entspricht voll und ganz dem Konzept des Frontloading von Qualitätssicherungsprozessen. Darüber hinaus wurde das Hauptziel, die Anzahl der Probleme nach der Integration auf das absolute Minimum zu reduzieren, relativ schnell erreicht.

Einsatz von MES-Tools bei Volvo Cars

Bild 2: Heutige & zukünftige VOLVO CI-Toolchain für ECM Software Erschaffung
Bild 2: Heutige & zukünftige VOLVO CI-Toolchain
für ECM Software Erschaffung

Bislang lag der Schwerpunkt bei VCC auf der BackboneTechnologie für die Versionsverwaltung, die Codegenerierung und die Qualität des endgültigen Codes. Beim modellbasierten Design hängt die Qualität des endgültigen Codes jedoch von der Einrichtung der Softwaremodelle ab, die die Grundlage für die automatische Codegenerierung bilden. Das funktionale Modell stellt das zentralste Objekt dar und eine gründliche Überprüfung des Softwaremodells ist der Schlüssel zum endgültigen Ergebnis der Codequalität. Aus diesem Grund hat sich Volvo Cars Powertrain auf die Suche nach fortschrittlichen, praktischen Modellqualitätsmetriken und Tools zur Qualitätssicherung begeben, um die Lücke zu schließen.

Im Jahr 2017 evaluierte VCC eine Reihe von Tools zur Sicherstellung der Modellqualität, die von Model Engineering Solutions entwickelt wurden. VCC beschloss, den MES Model Examiner® (MXAM) zur Richtlinienüberprüfung und das Tool MES M-XRAY® (MXRAY) (das seit 2020 ein vollintegrierter Teil von MXAM ist) zur Prüfung der Modellstruktur schrittweise in die bestehende CI-Toolkette einzuführen. Die MES-Tools berechnen Qualitätsmetriken und analysieren die Einhaltung von Richtlinien für jedes einzelne Modell, das die CI-Toolchain durchläuft. Die gesammelten Metriken werden als Quality Gates im Prozess verwendet und ein erfolgreiches Commit eines Softwaremodells ist für die Entwickler:innen nur möglich, wenn die Qualitätsschwelle nicht überschritten wurde. Die Ergebnisse der Analyse werden an die einzelnen Funktionsdesigner:innen zurückgemeldet, die für ihre Moduländerung voll verantwortlich sind. Die Abbildungen 2 und 3 zeigen die gesammelten Ergebnisse eines Check Gates und die Art und Weise, wie sie zurückgemeldet werden. Durch Klicken auf den Link werden detailliertere Ergebnisse angezeigt, die den Entwickler:innen bei der Reparatur des Modells effizient unterstützen.

Erstellte Software-Metriken aus Berichten

Feedback-Tabelle zur Modellkomplexität
Bild 3: Feedback-Tabelle zur Modellkomplexität

Mit der Unterstützung von MES-Experten:innen hat die VCC-Abteilung für Antrieb und Antriebsstrang die Qualitätsrichtlinien für ihre Projekte untersucht und passende Modelle ausgewählt. Infolgedessen wurden Modellierungsrichtlinien für reguläre Entwicklungsprojekte und für hochgradig sicherheitskritische Projekte bei Volvo Cars Propulsion zusammengestellt und auf der Grundlage des spezifischen Modellierungsstils getestet, welcher in diesem Bereich erforderlich ist.

In der ECM-CI-Kette löst jeder einzelne Commit eine automatisierte Reihe von Tests aus, einschließlich der Komplexitätsanalyse und der Überprüfung der Einhaltung von Modellierungsrichtlinien durch MXAM. Die Ergebnisse, wie z.B. die Einhaltung von Modellierungsrichtlinien, Komplexität, Unit-Test-Ergebnisse und Code-Review-Ergebnisse, werden den Entwickler:innen in Form von zusammengefasstem Feedback mit Links zu detaillierten Berichten zur Verfügung gestellt. Das übergeordnete Ziel ist es, einen Lernzyklus einzurichten, der eine frühzeitige und selbstverantwortliche Fehlervermeidung im Prozess ermöglicht.

Die ECM-CI ist so konzipiert, dass sie alle Prozessschritte vom ersten Modell-Commit bis zur Überprüfung des autogenerierten Codes umfasst. Es ist auch in der Lage, Konfigurationseinstellungen in die Toolchain zu integrieren, die die Prüfungen, die Testkonfiguration und den Workflow beeinflussen.

Erzielte Ergebnisse mit der CI-gesteuerten Entwicklungskette

Andreas Wikerstål, Ph.D.
Bild 4: Andreas Wikerstål, Ph.D.

Obwohl die Einführung der neuen CI-gesteuerten Toolchain einige Zeit und Mühe erforderte, hat sie bereits zahlreiche Vorteile gezeigt. Zunächst einmal hat es die Zusammenarbeit zwischen den Software-Teams erheblich verändert. Das Hauptziel des Frontloading von Überprüfung und Qualitätssicherung wurde erreicht, die Produktivität verbessert und die Belastung durch mühsame manuelle Arbeit deutlich verringert. Die größte Verbesserung kam jedoch mit den MES-Tools zustande, da eine reduzierte Komplexität hilft, die Funktionalität besser zu verstehen, was wiederum eine schnellere und robustere Abstimmung der Antriebsstrangkennwerte (Kalibrierung) bedeutet. Die Komplexitätsreduzierung führt auch zum Refactoring von Modellen und dazu, dass Unit-Tests einfacher zu erstellen sind. Laut Andreas Wikerstål, PhD, ECM-SW-Architekt bei Volvo Cars Propulsion, bietet uns die ECM-CI-Kette "das notwendige Instrument, um das ständig wachsende Volumen an softwarebasierter Funktionalität zu bewältigen und gleichzeitig die Stabilität und Qualität der Software zu erhalten. Auf der Ebene der Funktionsmodelle ermöglichen uns die MES-Tools, die Qualität in einem frühen Stadium des Prozesses zu messen und zu erhöhen. Dadurch sparen wir in den kritischen Endphasen der Code-Erstellung und -Integration viel Zeit und Geld."

Der Weg zu einer vollständig integrierten CI-Kette

Johannes Foufas
Bild 5: Johannes Foufas

In den kommenden Jahren will Volvo Cars seinen modellbasierten Designprozess schrittweise auf alle Entwicklungsprojekte ausweiten. Immer mehr Anwender:innen werden die Toolchain nutzen, in der MXAM eine wichtige Rolle spielt. Volvo Cars ist fest entschlossen, die ECM-CI-Toolkette weiter auszubauen und die verbleibenden halbautomatischen Schritte vollständig zu automatisieren. Johannes Foufas, Product Owner CI/CD bei Volvo Cars Propulsion erklärt folgendes: "Wir untersuchen derzeit den Übergang zu ZUUL v3, da wir mit diesem Produkt eine In-Repo-Konfiguration, Live-Konfigurationsänderungen, native Unterstützung für Multi-Node-Jobs und Ansible Job-Inhalte erhalten werden. Wir werden auch hart daran arbeiten, alle manuellen Schritte zu entfernen und nur an Peer-Reviews festzuhalten. Die Genehmigung und Freigabe von Produkten durch den Product Owner auf der Grundlage von GIT-Tags wird beibehalten. Alle anderen Schritte sollten nach Möglichkeit automatisiert werden." In Zukunft wird die Einrichtung der Software-CI-Toolchain automatisch den nächsten Schritt in der Kette auslösen, ohne dass die Benutzer:in eingreifen muss. Schritt für Schritt werden aufwändigere Modellierungsrichtlinien eingeführt, um den Frontload noch weiter voranzutreiben und die Einhaltung der Modellrichtlinien schrittweise zu verbessern.