Radikal vereinfachte FlexRay-Entwicklung

Mit einer geschickt gewählten, plattform-neutralen Beschreibung des Zeitverhaltens ist es möglich, die Entwicklungskosten von FlexRay-Systemen um den Faktor 20 und mehr zu reduzieren. Der Beitrag skizziert die der sogenannten Timing Definition Language (TDL) zugrundeliegenden, wissenschaftlich fundierten Konzepte sowie die TDL-Entwicklung von FlexRay-Systemen, wodurch die Produktivität um den genannten Faktor erhöht werden kann.

Mit einer geschickt gewählten, plattform-neutralen Beschreibung des Zeitverhaltens ist es möglich, die Entwicklungskosten von FlexRay-Systemen um den Faktor 20 und mehr zu reduzieren. Der Beitrag skizziert die der sogenannten Timing Definition Language (TDL) zugrundeliegenden, wissenschaftlich fundierten Konzepte sowie die TDL-Entwicklung von FlexRay-Systemen, wodurch die Produktivität um den genannten Faktor erhöht werden kann.

Develop once, deploy anywhere

Das Schlagwort “modellbasiert” wird zur Zeit gerne als Attribut für Methoden und Werkzeuge gebraucht, um damit zu suggerieren, dass die Software-Entwicklung einfacher und damit kostengünstiger wird. Leider ist das oft nicht der Fall. Das liegt daran, dass Entwicklungskosten nur dann eingespart werden können, wenn geeignete Konzepte zur Abstraktion von den Details eines Systems oder eines Problems exisitieren. Meist wird aber nur eine grafische Darstellung ohne Abstraktion von Details geboten, die nicht ausreicht, um die Software-Entwicklung zu vereinfachen.

Bei Echtzeitsystemen spielt, wie der Name schon ausdrückt, das Echtzeitverhalten eine wesentliche Rolle, dass das System korrekt funktioniert. Die Zeitbeschreibungssprache TDL (Timing Definition Language) abstrahiert von verteilten Plattformen und erlaubt die plattform-neutrale Festlegung des Zeitverhaltens von harten Echtzeitsystemen, wie zum Beispiel von einer aktiven Hinterachslenkung oder künftigen Xby- Wire-Systemen. Aus einer TDL-Beschreibung von Software-Komponenten generieren ein Compiler und ein Bus-Schedule-Generator die nötigen Codes, um die Komponenten auf einem spezifischen FlexRay-System ausführen zu können. Dabei wird garantiert, dass das Verhalten sowohl in einer Simulation (zB in Matlab®/Simulink®) als auch auf der konkreten Plattform exakt der TDL-Beschreibung entspricht. Wenn die Plattform nicht genügend Rechenleistung bzw. Bandbreite bietet, wird kein Code generiert. Abbildung 1 skizziert schematisch die Vorteile einer wirklich modellbasierten Entwicklung mit TDL. Eine Software-Komponente (zB M1 genannt) wird nur einmal entwickelt. Die automatische Code-Generierung erlaubt die Ausführung auf einer beliebigen Plattform, die genügend Ressourcen bietet. Im Falle von FlexRay könnte M1 beispielsweise einmal auf einem FlexRay-Cluster mit PowerPC-Knoten (ECUs) und dem Betriebssystem AES von DeComSys ausgeführt werden und ein anderes mal wird der Code für ein FlexRay-Cluster mit der MicroAutoBox (dSpace) als ECU-Hardware generiert.

Der TDL Entwicklungsprozess unterscheidet sich daher fundamental von heute üblichen Ansätzen, bei denen die Plattform und die Topologie zuerst festgelegt werden müssen, bevor dann die Software auf diese Plattformgegebenheiten zugeschneidert wird. Eine Änderung der Plattform, aber auch schon nur die Änderung der Topologie (zB drei Knoten statt zwei Knoten) erfordert typischerweise eine Neuentwicklung. Die Komponente M1 hängt dabei von der Plattform ab: M1a wird für die Variante a entwickelt, M1b für die Variante b, etc.

Einsparungspotenzial mit TDL. Wir haben anhand einer Fallstudie gemessen, wieviel Zeit benötigt wird, um ein funktionierendes FlexRay-System mit dem DESIGNERPRO-Werkzeug [4] der Firma DeComSys zu entwickeln, und zwar durch einen mit diesem Werkzeug vertrauten Entwickler. Dieselbe Aufgabe wurde mit den TDL-Werkzeugen gelöst, wiederum mit einem Entwickler, der mit TDL vertraut ist. Das Ergebnis ist, dass die Entwicklungszeit mit TDL um den Faktor 20 kürzer ist als mit dem bisher gängigen Ansatz, bei dem manuell ein Bus-Schedule gefunden und editiert werden muss.

Abstraktion Das Programmiermodell von TDL beruht auf der sogenannten LET [1, 3, 5], die im Rahmen des Giotto-Projektes [1] an der University of California, Berkeley erfunden wurde. LET (siehe Abbildung 2) bedeutet, dass das beobachtbare zeitliche Verhalten einer Task unabhängig von der tatsächlichen Ausführung auf einer Plattform ist. Im Fachbericht über TDL in Heft 4 wird die LET-Abstraktion im Detail erläutert.