|
Die Bedeutung von Software im Automobilbau hat im Laufe der
letzten 10-15 Jahre dramatisch zugenommen. Die wichtigsten
Gründe hierfür sind zum einen der Wunsch nach neuartigen
Sicherheits- und Komfortfunktionen (Fahrdynamiksysteme wie ESP,
Pre-Crash-Systeme, Navigation, etc.) zum anderen aber auch
gesteigerte Sicherheits- und Umweltschutzanforderungen an
klassische Fahrzeugkomponenten: So lassen sich beispielsweise
aktuelle Abgasnormen ohne eine ausgefeilte, softwaregestützte
Motorsteuerung nicht mehr erfüllen. Schließlich führt die
gesteigerte Komplexität der gewünschten Funktionen
bei dem gleichzeitigen Erfordernis einer Reduktion oder
zumindest Begrenzung von Fahrzeuggewicht und Herstellungkosten
zu der Notwendigkeit einer gemeinsamen Nutzung von Sensoren,
Aktuatoren sowie Teilfunktionalitäten und damit zu einer komplexen
Vernetzung fast aller Fahrzeugkomponenten.
Dies führt im Ergebnis dazu, dass die Softwaresysteme heutiger
Fahrzeuge eine sehr hohe Komplexität erreichen. So können
in aktuellen Fahrzeugen der Oberklasse deutlich über 50
Steuergeräte (und damit Ausführungseinheiten) zum Einsatz
kommen, die zusätzlich alle über Kommunikationsverbindungen
miteinander vernetzt sein können. Ein Ende dieser Entwicklung
ist derzeit noch nicht absehbar, wenn es auch Bestrebungen
gibt, die Komplexität durch eine Reduzierung der Anzahl der
Steuergeräte und auch Funktionen einzugrenzen.
Ein besonderer Reiz des Automobilbereichs als Anwendungsdomäne
liegt aus wissenschaftlicher Sicht darin, dass hier Teilsysteme
sehr unterschiedlicher Eigenschaften zu betrachten sind. So
ähnelt bspw. die Telematik (Navigationssystem, Radio,
Kommunikation, etc.) noch sehr starkt der klassischen
Anwendungsprogammierung: Relativ wenige, dafür leistungsfähige
Ausführungseinheiten, hohe Bedeutung der Benutzerschnittstelle,
relativ(!) geringe Anforderungen an Speicherbedarf, Sicherheit.
Am anderen Ende des Spektrums liegen Teilbereiche wie
Motorsteuerung oder Fahrdynamik- und Fahrassistenzsysteme die
weitgehend die typischen Eigenschaften Eingebetteter Software
aufweisen: sehr sicherheitskritisch, Funktionen häufig auf
mehrere kleine, vernetzte Ausführungseinheiten von geringerer
Leistungsfähigkeit verteilt, gar keine Benutzerschnittstelle
oder nur eine sehr einfache (z.B. Ein-/Ausschalter des ABS).
Diese unterschiedlichen Charakteristiken haben weitreichenden
Einfluß auf die verwandten Entwicklungsmethoden, -tools und
-prozesse. Für Studenten bietet das die Möglichkeit, von sehr
unterschiedlichen Anwendungsdomänen einen ersten Eindruck zu
bekommen.
Am Lehrstuhl SWT werden insbesondere die folgenden Fragestellungen
zur Entwicklung von Software im Automobilbereich schwerpunktmäßig
untersucht:
- Informationsmodellbasierte Entwicklungsunterstützung
Generell gesehen sind Methoden planmäßig angewandte, begründete Vorgehensweisen, die über eine Notation, systematische Handlungsanweisungen und Regeln zur Überprüfung der Ergebnisse verfügen. Dies trifft im Kern auch auf die zur Softwareentwicklung eingesetzten Methoden zu, so genannte Entwicklungsmethoden. Wesentliche Kennzeichen der Entwicklungsmethoden des Fahrzeugbereiches sind ihre iterative, zumeist pragmatische und Projekt-getriebene Entwicklung, ihre zumeist fragmentarische Dokumentation sowie ihre enge Kopplung an zumindest ein Werkzeug.
Entwicklungsprozesse unterstützen die Organisation einer Produktentwicklung durch die Bereitstellung von Handlungsabläufen, Rollen, Aktivitäten, etc. Die Entwicklungsprozesse des Automobilbereiches zeichnen sich durch Komplexität aus, die beispielsweise an dem hohen Parallelitätsgrad Prozess-interner Aktivitäten sowie dem hohen Maß an Prozess-übergreifenden Abhängigkeiten erkennbar ist.
Vor dem Hintergrund, dass der Einsatz von Entwicklungsmethoden und -prozessen für die Entwicklung von Fahrzeugsoftware essentiell ist, stellt ein von methodischen Brüchen weitestgehend freier Entwicklungsprozess eine besondere Herausforderung dar. Die Bewä„ltigung dieser Herausforderung erfordert die Lösung eines breiten Spektrums an Aufgaben, von denen die Organisation und Integration von Entwicklungsmethoden sowie die flexible Gestaltung des Entwicklungsprozesses Beispiele sind.
- Produktlinienorientierte Softwareentwicklung
Eine Produktlinie besteht aus einer Menge von Softwaresystemen,
zwischen denen es einen gewissen Grad an übereinstimmung gibt,
während sie andererseits aber auch wesentliche Unterschiede
aufweisen. Anstatt die einzelnen Softwaresysteme nebeneinander
und unabhängig voneinander zu entwickeln, wird bei der
produktlinienorientierten Entwicklung zunächst ein variables
Softwaresystem als gemeinsame Plattform (sog.
Produktlinieninfrastruktur) entwickelt und die einzelnen
Softwaresysteme dann hiervon abgeleitet. Jedes dieser einzelnen,
abgeleiteten Softwaresysteme unterstützt dann genau diejenigen
Funktionalitäten, die für ein spezifisches Marktsegment erforderlich
sind. Diese Funktionalitäten sind Bestandteile der Plattform und
werden beim Ableiten eines neuen Produkts wiederverwendet.
Insbesondere im Automobilbereich bietet sich hierdurch die Chance
einer effizienteren Entwicklung im Vergleich zur Einzelsystementwicklung,
weil hier eine Vielzahl unterschiedlicher Baureihen parallel
entwickelt und angeboten wird. Aufgrund der hohen Komplexität
lässt sich dies jedoch nur durch eine methodisch ausgefeilte, auf
die Eigenheiten der Automobildomäne ausgelegte Organisation der
Entwicklung erreichen.
|
-
Ansprechpartner:
-
Mark-Oliver Reiser
-
Kerstin Buhr
-
Ramin Tavakoli Kolagari
Studien- und Diplomarbeiten:
Lehrveranstaltungen:
Materialien:
|