Adaptive Software, die sich selbst beschreibt

Welle von oben
© iStock.com/Luka Lajst

In heutigen Fahrzeugen sind viele Funktionen ohne den Einsatz von Software nicht mehr vorstellbar. Beispiele hierfür sind Fahrerassistenzsysteme, wie der Spurassistent und die Müdigkeitserkennung. Die Softwarekomponenten dieser Systeme werden verteilt auf heterogenen Plattformen ausgeführt. Sie kommunizieren miteinander, um verschiedene Aufgaben gemeinsam zu lösen. Der Entwurfsprozess von Fahrzeugsoftware sieht derzeit vor, dass Funktionen in der Entwurfsphase spezifiziert und auf die vorhandenen Plattformen aufgeteilt werden. Zur Laufzeit bleibt das Softwaresystem jedoch unverändert – abgesehen von Updates, beispielsweise bei einem Werkstattbesuch.

Ein häufiges Problem ist jedoch, dass eine automatische Anpassung der Softwarekomponenten an veränderte interne oder externe Umstände, wie ein Hardwareausfall, verschiedene Fahrsituationen oder die dynamische Integration externer Internet und Handydienste, nur schwer umzusetzen ist. Um Ressourcen und Energie zu sparen, ist es hilfreich bestimmte Fahrzeugfunktionen temporär bereitzustellen. Beispielsweise wird während der Autobahnfahrt der Parkassistent nicht benötigt und kann deshalb deaktiviert werden.

Adaptive Softwaresysteme

Einen vielversprechenden Ansatz für zukünftige Fahrzeugsoftware bilden adaptive Softwaresysteme. Durch deren dynamische Architektur kann auf veränderte Situationen jederzeit reagiert werden. Bei Änderungen der Fahrsituation, wie dem Wechsel vom Autobahn- zum Stadtverkehr, erfolgt eine selbstständige Adaption der Softwarekomponenten. Zudem ermöglichen adaptive eingebettete Systeme die dynamische Integration externer Dienste. Da Softwarekomponenten zur Laufzeit auf verschiedenen Plattformen ausführbar sind, können die Funktionen einer fehlerhaften Plattform durch andere Plattformen übernommen werden. Dies erhöht die Fehlertoleranz des Softwaresystems und damit des gesamten Fahrzeugs.

Das Fraunhofer-Institut für Kognitive Systeme IKS (früher: Fraunhofer ESK) erarbeitete im Projekt RT-DESCRIBE (Iterative Design Process for Self-Describing Real Time Embedded Software Components) in Kooperation mit dem französischen Carnot Institut CEA LIST eine neue Methodik und Werkzeugkette, um solche adaptiven eingebetteten Softwaresysteme zu entwickeln.

Selbstbeschreibende Softwarekomponenten

Adaptive eingebettete Systeme setzen einen dynamischen Einsatz von Softwarekomponenten in verteilten Systemen voraus. Hierzu werden zur Laufzeit bestimmte Informationen über die Komponenten benötigt, wie ihre Ausführbarkeit auf verschiedenen Plattformen oder ihr Echtzeitverhalten. Diese Informationen werden modular für jede Komponente separat gehalten, wodurch eine dezentrale Organisation möglich ist. Jede Komponente beschreibt sich somit selbst.

Neben den genannten Beispielen existieren weitere Parameter, deren Kenntnis zur Laufzeit erforderlich ist. Ein Teil der Selbstbeschreibung besteht dabei aus sogenannten nichtfunktionalen Anforderungen. Diese beschreiben die Art und Weise, wie das funktionale Verhalten der Software erreicht wird. Neben den statischen, nicht-funktionalen Anforderungen enthält die Selbstbeschreibung auch Informationen über dynamische Laufzeiteigenschaften. Hierzu gehören u. a. die aktuell benutzten Ressourcen einer Softwarekomponente oder die aktuelle Auslastung einer Plattform.

Entwicklungsmethodik

Um solche adaptiven eingebetteten Softwaresysteme mit selbstbeschreibenden Softwarekomponenten iterativ zu spezifizieren, hat das Fraunhofer IKS in Kooperation mit dem französischen Carnot Institut CEA LIST eine neue Entwicklungsmethodik und Werkzeugkette im Rahmen des Projektes RT-DESCRIBE (Iterative Design Process for Self-Describing Real-Time Embedded Software Components) erforscht.

Dabei wurde das Softwaresystem zunächst in einem in der jeweiligen Domäne vorherrschenden spezifischen UML-Modell beschrieben, beispielsweise für Automotive Systeme mit der Architekturbeschreibungssprache EAST-ADL. Dieses Modell wurde mithilfe der im Projekt entwickelten sogenannten Self-X Erweiterung um Informationen für die Adaptivität ergänzt. Die Erweiterung ist domänenunabhängig und basiert auf dem zur Beschreibung eingebetteter Systeme standardisierten UML-Profil MARTE. Das entworfene Systemmodell wurde dann mit dem von CEA LIST entwickelten Werkzeug Oompass mit Containern angereichert, welche die Selbstbeschreibung beinhalten. Hierdurch wird ein Teil der Modellinformationen während der Laufzeit zur Verfügung gestellt.

Durch das von den Wissenschaftlerinnen und Wissenschaftlern des Fraunhofer IKS entwickelte Werkzeug ERNEST kann das erweiterte Laufzeitmodell noch während der Entwicklungszeit simuliert und analysiert werden, was eine mehrstufige, frühzeitige Validierung der zu entwickelnden Software ermöglicht. Fehler und Schwachstellen können so bereits in einem frühen Entwicklungsstadium entdeckt und behoben werden. Die Ergebnisse aus der Simulationsumgebung fließen zurück in das Entwicklungsmodell und ermöglichen dessen iterative Optimierung. Dieser Prozess reduziert die Entwicklungszeit und damit auch die Entwicklungskosten.

Ergebnis

Die im Projekt RT-DESCRIBE erarbeitete Entwurfsmethodik und Werkzeugkette ermöglichen, dass adaptive eingebettete Systeme effizient entwickelt werden können. Durch die iterativen Simulationsdurchläufe werden die Parameter kontinuierlich optimiert sowie die Systemstabilität und Einhaltung von Echtzeitanforderungen überprüft. Am Ende des Entwicklungsprozesses wird eine um die Selbstbeschreibungen ergänzte, ausführbare und selbstadaptive Software generiert.

Das Projekt RT-DESCRIBE wurde im Rahmen des Programme Inter Carnot Fraunhofer vom BMBF (Förderkennzeichen 01SF0804) und von der ANR gefördert.