Vernetzte Fahrzeugsysteme Software-Engineering anders gedacht

ETAS GmbH

25.10.2017

Die wachsende Systemkomplexität in Fahrzeugen bringt heutige Workflows zwischen Funktions- und Softwareentwicklern, Applikationsingenieuren und Testern an Grenzen. Sie brauchen neue Methoden und Werkzeuge, die mehr als nur Übersicht und Kontrolle im Entwicklungsprozess gewährleisten.

Sponsored Content

Wohin Ingenieure bei der technischen Weiterentwicklung moderner Fahrzeuge auch schauen, Software ist zugleich Enabler und Zuverlässigkeitsgarant. Adaptive Fahrwerke und komplexe Hybridantriebe wären ohne Embedded-Software ebenso undenkbar, wie das Einhalten der Schadstofflimits bei künftigen Messungen während der Fahrt (Real Drive Emissions). Auch in aktiven Fahrerassistenzsystemen und ihrer Weiterentwicklung hin zum (teil-)automatisierten Fahren kommt Software eine Schlüsselrolle zu. Autofahrern erleichtern diese Entwicklungen das Fahren und verschaffen ihnen einen hohen Zugewinn an Sicherheit und Komfort. Dagegen bergen sie für die Entwickler der Funktionen und Steuergerätesoftware enorme Herausforderungen. Sie müssen trotz wachsender Komplexität den Durchblick behalten, die Funktionen in den zunehmend vernetzten Fahrzeugsystemen sauber aufsetzen und unter hohem Zeit- und Kostendruck absolut zuverlässige, funktional sichere Software entwickeln.

Komplexität muss beherrschbar bleiben

Virtualisierung weist den Weg aus dieser Komplexitätsfalle. Mithilfe modellbasierter Methoden können Funktions- und Softwareentwickler parallel arbeiten, wo vorher ein Schritt dem anderen folgen musste. Virtuelle Steuergeräte erlauben ihnen frühzeitiges Erproben neuer Softwarefunktionen im Detail wie auch im virtuellen Gesamtfahrzeug. Erprobungsfahrten in teuren Versuchsträgern können dadurch auf ein Mindestmaß reduziert werden; sie dienen vor allem zur Absicherung der modellbasiert erarbeiteten Systemfunktionen.

Wo Funktions- und Softwareentwicklung, Tests und Applikation so eng verzahnt sind, fallen Fehler früher auf und lassen sich mit weit geringerem Aufwand beheben, als in späteren Phasen des Entwicklungsprozesses. Auch standardisierte Abläufe entlang von Normen, wie der ISO 26262, tragen zur frühen Reife und Zuverlässigkeit der Embedded-Software bei.

Doch wo vernetzte Fahrzeugsysteme die Komplexität exponentiell ansteigen lassen, ist Virtualisierung kein Selbstläufer. Die Krux liegt darin, dass Entwickler die Grenzen und Zusammenhänge der Systeme schon in einer Phase durchschauen müssen, wo diese noch höchst abstrakt sind. Frühe Simulationen in der Funktionsentwicklung setzen aber voraus, dass Systeme und Funktionen exakt, vollständig und stimmig beschrieben werden können. Liegen unvollständige, fehlerhafte Artefakte zugrunde, ist der modellbasierte Ansatz zahnlos. Dagegen führt er auf kürzestem und effektivstem Weg zu funktional sicherem Steuergeräte-Code, wenn die Annahmen der Entwickler von Anfang an stimmen.

Damit ist die Verantwortung der Funktions- und Softwareentwickler klar umrissen. Um ihr gerecht werden zu können, brauchen sie professionelle Werkzeuge. Diese sollten nicht nur Systemzusammenhänge sichtbar machen und Systemgrenzen plausibilisieren, sondern auch dabei helfen, komplexe Gesamtsysteme in leichter handhabbare Teilbereiche zu zerlegen. Damit das trotz aller Abstraktion gelingt, sind vor allem Kontrollwerkzeuge gefragt, die Lücken und Dopplungen in den Teilsystemen aufspüren. Darüber hinaus sollten die Tools klar strukturierte Dokumentationen und übersichtliche Visualisierungen und Simulationen erlauben, damit sich auch jene Entwickler in der Fülle an Daten, Signalen, Parametern und versteckten Systemzusammenhängen zurechtfinden, die später oder an anderer Stelle zu den Projekten stoßen.

Letztlich geht es also darum, dass Entwickler im modellbasierten Prozess ihre eigenen Annahmen und Definitionen jederzeit überprüfen können, und dass über den gesamten Entwicklungsprozess hinweg ein effizienter Informationsfluss zwischen allen Akteuren gewährleistet ist. Klar ist, dass Werkzeuge, die all dies gewährleisten, nicht im luftleeren Raum genutzt werden. Vielmehr müssen sie sich in bestehende Prozesse einfügen, damit sie die Abläufe nicht zusätzlich verkomplizieren. Neben der Einbindung in die etablierte Eclipse-Plattform ist Kompatibilität mit gängigen Simulationslösungen gefragt.

Mit all diesen Prämissen vor Augen hat Etas nach zehn Jahren Entwicklung in der Bosch-Forschung zwei neue Werkzeuge zur Reife gebracht, die eine völlig neue Methodik in die modellbasierte Software-Entwicklung bringen. Sie bauen auf Erkenntnissen der funktionellen Morphologie auf, welche die Beziehungen zwischen Strukturen und Funktionen morphologischer Systeme untersucht. Im Zuge der Software-Entwicklung hilft diese Methode, um semantische Beschreibungen der Entscheidungspfade einer Software ebenso wie deren mathematische Beziehungen vollautomatisch zu verifizieren.

Dafür geben Entwickler zunächst tabellarisch oder grafisch in entsprechende Masken der integrierten Entwicklungsumgebung ein, wie die Entscheidungspfade des geplanten Systems laut Lastenheft umgesetzt werden sollen. Das Werkzeug Scode-Analyzer prüft die Plausibilität der Beschreibungen und zerlegt das beschriebene System dann in Teilbereiche – sogenannte Modi. Dabei gleicht das Werkzeug Gesamtsystem und Teilbereiche automatisch ab, um sowohl die Vollständigkeit und Plausibilität zu überprüfen als auch nicht benötigte Bereiche zu identifizieren. Auch lassen sich die Modi zueinander in Beziehung setzen.

Allein diese strukturierte, überprüfte Systembeschreibung schafft Übersicht über sehr komplexe Systeme. Zusätzlich gewährleistet die automatisierte Überprüfung obendrein, dass das Werkzeug direkt und ebenfalls automatisiert Programmcode aus den semantischen oder grafischen Beschreibungen ableiten kann. Dabei können die Entwickler je nach eingesetzter Simulationslösung wählen, ob das Werkzeug die Artefakte in Form von M-Files für Matlab, S-Function-Blöcken für Simulink oder ESDL-Code (Embedded Software Development Language) generiert. ESDL ist eine von ETAS entworfene Programmiersprache zur Entwicklung von C-Code mit hohen Anforderungen in Bezug auf funktionale Sicherheit und Cyber-Security. Ein Alleinstellungsmerkmal von Scode-Analyzer ist dabei, dass das Werkzeug den Nachweis unterstützt, dass alle Eingangsbedingungen betrachtet wurden. Das ist vor allem bei der Entwicklung von sicherheitskritischen Systemen, zum Beispiel solche entsprechend ISO 26262, ein wichtiger Vorteil.

Scode-Analyzer sichert die modellbasierte Funktionsentwicklung also durch übersichtliche Strukturierung und automatisch qualitätsgesicherten Code ab. Da der Simulations- und der spätere ESDL-Seriencode für Steuergeräte hier auf exakt gleichen Basisdaten aufbauen, ist eine hohe Übereinstimmung zwischen Simulationsmodell und Seriencode gewährleistet. Damit trägt der neue methodische Ansatz wie schon die Programmiersprache ESDL zu einem hohen Maß an funktionaler Sicherheit von Steuergerätesoftware bei. Das ist spätestens dann unabdingbar, wenn Fahrzeuge in Zukunft fahrerlos am Verkehr teilnehmen sollen. Voraussetzung dafür ist ein absolut verlässliches, softwaregesteuertes Zusammenspiel von mehreren Dutzend vernetzter Sensor- und Aktorsysteme, die praktisch in Echtzeit riesige Datenmengen austauschen und verarbeiten müssen. Um dieses Zusammenspiel organisieren und die jeweiligen Fahrzeugfunktionen angemessen priorisieren zu können, sind Überblick und Kontrollfunktionen in der Software-Entwicklung unabdingbar.

Auch das zweite dafür entwickelte Werkzeug, Scode-Congra, nutzt die Erkenntnisse der funktionellen Morphologie. Hier können Funktionsentwickler Systeme anhand von physikalischen Formeln aus der Literatur beschreiben und sie sich dann als interaktive, wahlweise ungerichtete oder gerichtete Graphen anzeigen lassen. Direkt in der visuellen Darstellung können sie experimentieren und so einfach nachvollziehen, wie veränderte Werte das Systemverhalten beeinflussen. Komplexe Systemzusammenhänge werden dabei ebenso sichtbar wie mangelnde Konsistenz oder Eindeutigkeit der Eingaben. Die eingängige visuelle Aufbereitung ebnet den Weg zu frühzeitigen Sensitivitätsanalysen, was das spätere Kalibrieren erleichtert. Auch Applikationsingenieure erkennen auf Anhieb, mit welchen Stellschrauben sie die Systemfunktionen beeinflussen können und ob dabei an unerwarteter Stelle unerwünschte Nebeneffekte auftreten.

Der direkte Weg zum sicheren Code

Die Übersetzung exakter, in der Literatur festgehaltener physikalischer Formeln in die übersichtliche visuelle Darstellung macht es Funktions- und Softwareentwicklern auch leichter, ihre jeweiligen Informationen mit Applikations- und Testingenieuren und allen anderen beteiligten Disziplinen zu teilen. Scode-Congra ist außerdem ein Werkzeug, durch das der modellzentrierte Ansatz komplett auf exakten mathematischen Beschreibungen basiert. Das erlaubt es, daraus komplett automatisiert Artefakte für Folgeprozesse abzuleiten. Auch hier besteht die Auswahl zwischen M-File, S-Function-Block oder ESDL-Code.

Exakte Formeln werden also mit dem neuen Werkzeug zur Basis der automatisierten Softwareentwicklung. Funktionsentwickler können ihre Arbeit damit frühzeitig durch exakte Simulation absichern. Applikationsingenieure erhalten ein zuverlässiges Werkzeug für Sensitivitätsanalysen. Software-Entwickler profitieren von abgesichertem ESDL-Code. Die Arbeit der Testingenieure wird leichter, weil die Software bereits einen hohen Reifegrad erreicht, bevor ihre Tests beginnen.

Der Komplexität begegnen

Neue methodische Ansätze – in diesem Fall aus der Funktionalen Morphologie – sind nötig, um die modellbasierte Applikationsentwicklung auf die rasant zunehmende Komplexität von Fahrzeugsystemen vorzubereiten. Erstmals bekommen Entwickler mit Scode-Analyzer und Scode-Congra die Möglichkeit, sowohl Artefakte für frühe Simulation als auch Seriencode direkt aus rein textuellen Systembeschreibungen abzuleiten – oder ihnen alternativ Beschreibungen mit exakten physikalischen Formeln zugrunde zu legen.

Zudem sichern automatisierte Kontrollen und Plausibilitätsprüfungen die Eingaben der Entwickler ab und machen Fehler sowie falsche Annahmen bereits im Frühstadium der Software-Entwicklung sichtbar. Weiterer Nutzen ergibt sich aus anschaulicher Visualisierung und strukturierter Dokumentation, die jeweils zu vertieftem Systemverständnis und effizientem Informationsfluss in allen Phasen des Entwicklungsprozesses beitragen.

Damit ist ein großer Schritt getan, um der zunehmenden Komplexität in der Entwicklung von Software für moderne Antriebs- und Fahrwerktechnologien, aktive Fahrerassistenzsysteme und autonome Fahrzeuge zu begegnen. Gut durchdachte, effiziente Werkzeuge sind der Schlüssel, um die hohen Sicherheitsanforderungen an Automotive-Software auch in Zukunft erfüllen zu können.

Bildergalerie

  • Bild: Etas

Firmen zu diesem Artikel
Verwandte Artikel