Adaptive Software, die sich selbst beschreibt

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

© Fraunhofer ESK

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 ESK erarbeitet 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 ESK 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 wird 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 wird 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 wird 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 Wissenschaftlern des Fraunhofer ESK 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. Auf der ESK-Webseite kann das Framework ERNEST des Fraunhofer ESK kostenlos heruntergeladen werden.

Ergebnis

Die im Projekt RT-DESCRIBE erarbeiteten 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.