AAES

01. Okt. 2008 bis 31. Juli 2009

Motivation

Der Anteil softwarebestimmter Systeme im Automobil ist in den letzten Jahren sprunghaft angestiegen. Der Softwareanteil im Automobil verdoppelt sich alle 2 bis 3 Jahre. 90% zukünftiger Innovationen im Fahrzeug entstehen durch Software in eingebetteten Systemen. Die Entwicklung von solchen eingebetteten Systemen im Automobilbereich ist gekennzeichnet von zunehmend steigender Komplexität. Die Handhabung dieser Komplexität im Softwareentwicklungsprozess wird jedoch nicht über adäquate Werkzeuge (Entwicklungsumgebungen für Embedded-Code) abgedeckt. Als eine Schwachstelle erweist sich insbesondere die fehlende Durchgängigkeit der eingesetzten Werkzeugketten, welche derzeit keine werkzeugübergreifende Softwareentwicklung und Konsistenz der jeweils erzeugten Artefakte bereitstellen. Infolgedessen sind in der Entwicklungspraxis häufig Schnittstelleninkonsistenzen oder fehlerhafte bzw. nicht nachvollziehbar umgesetzte Anforderungen zu beobachten. Immer komplexere Systeme erfordern daher den Einsatz von neuen Entwicklungsmethoden und Werkzeugen, die eine Beherrschung dieser Systeme noch ermöglichen.
Unter der modellgetriebenen Entwicklung werden heute zwei Vorgehensweisen beschrieben, die von ihren Konzepten sehr unterschiedlich sind, aber für die Systementwicklung eingebetteter Systeme beide eine notwendige Basis bieten. Zum einen gibt es die blockdiagrammgestützte Funktionsentwicklung, mit der sich Steuerungen und Regelkreise sehr gut darstellen lassen. Toolbeispiele dafür sind ASCET oder Matlab/Simulink. Zum anderen entwickeln sich objektorientierte Ansätze für Anforderungsanalyse und Design auch in der Entwicklung eingebetteter Systeme immer mehr zum Standard. Dabei wird meist die UML oder SysML als einheitliche Modellierungssprache verwendet. Die Herausforderung ist hier die technische wie auch die semantische Verbindung der beiden Modellwelten und der Werkzeuge, um aus den Synergien die optimale modellgetriebene Entwicklung für eingebettete Systeme zu fördern.

Ziel und Ergebnis

Auf der Basis vorhandener Entwicklungen (Tür-Demonstrator aus dem Projekt EASP) wurde für unseren Partner eine Demonstrationsumgebung für die »Embedded Software Entwicklung von morgen« erstellt.

Dieser Demonstrationsaufbau besteht einerseits aus einer durchgängigen Software-Werkzeugkette, die vom Modellentwurf bis zur Microcontroller-Programmierung reicht und andererseits aus einer realen Fahrzeug-Komponente (Autotür). In dieser Kombination dient das System zum Nachweis der Möglichkeiten zur Beschleunigung von Software-Entwicklungsprozessen in der Automobilbranche sowie der Praxistauglichkeit im realen Einsatz bei der Ansteuerung von Bord-Elektronik.

Hierbei werden drei Aspekte besondere Berücksichtigung finden:

  • Anwendung der modellbasierten Entwicklung im Bereich Embedded-Automotive
  • Optimierte Entwicklungsmethodik von Embedded-Software mit Standard-Tools der Automobilindustrie
  • Dynamische, UML-basierte Microcontroller-Programmierung
  • Als Proof-of-Concept und zur Demonstration der Funktionsfähigkeit der aufzubauenden Werkzeugkette wird eine PKW-Tür vom BMW E90 verwendet, die Ansteuerungsmöglichkeiten für Fensterheber, Zentralverriegelung und Spiegeleinstellung bietet.

In dem verfolgten Ansatz können bestehende Software-Artefakte (z.B. Bibliotheken, Legacy-Code) und weitere Modelle (z.B. Matlab/Simulink) referenziert und in ein UML-Modell der Steuergeräte-Software eingebunden werden. Daraus ergibt sich ein optimierter und durch Automatisierung ermöglichter, durchgängiger Entwicklungsprozess, der automatisierte Codegenerierung, Kompilierung und den Flash-Prozess der entstehenden Software auf das eingebettet Steuergerät beinhaltet.

Die optimierte Vorgehensweise basiert auf den Konzepten der Model-Driven Architecture (MDA) und insbesondere der angestrebten Entwicklungsmethodiken. Für die Entwicklung einer neuen Fahrzeugfunktion, welche in Software realisiert werden soll, kann der Systementwickler diese Funktionalität in einem UML-Modell, Matlab/Simulink-Modellen oder C-Code spezifizieren. Die angestoßene Codegenerierung ermöglicht sodann einen Automatismus, welcher diese Spezifikation in Embedded-Code realisiert und schließlich auf dem realen Steuergerät ausführt. Der entstandene Code wird hierbei über HIS-konforme Treiber auf den Mikrocontroller geflasht.

Der Systementwickler erhält somit sofort die Möglichkeit, seinen Entwurf unmittelbar in einer realen Umgebung bzw. an einem Steuergerät angeschlossenen Aktuator sichtbar zu machen.