Die Grenzen zwischen Automobil und Software verschwimmen mit dem Aufkommen neuer Technologien immer mehr: Während sich Fahrzeuge zu hochentwickelten, mit Technik regelrecht vollgestopften Smart Machines entwickeln, spielt die Software-Entwicklung eine entscheidende Rolle bei der Ausarbeitung, Implementierung und Absicherung ihrer Funktionalitäten. Technologien wie Java haben ihre Nische in der Automobilindustrie gefunden und ermöglichen Anwendungen, die dem Fortschritt und dem Fahrerlebnis in Fahrzeugen dienen. Mit dem voranschreitenden Aufkommen autonomer Fahrzeuge, der Integration von Künstlicher Intelligenz wie dem „Very Enhanced Road Assistant“ und dem Bedarf an robuster Cybersicherheit steigt auch die Nachfrage nach innovativen Softwarelösungen im Automobilsektor. Dieser Artikel taucht ein in die Feinheiten der Software-Entwicklung im Automotive-Bereich und wirft ein Licht auf aktuelle Trends, Herausforderungen und eine vielversprechende Zukunft für uns alle.
- Pionierarbeit auf dem Weg nach vorn: Die integrale Rolle der Software-Entwicklung bei Automobil-Innovationen
- Software-Entwicklung im Automotive: Eine elektronische Geschichte
- Software-Entwicklung mit Java: Nur so fährt die automobile Welt in die Zukunft
- Software Development: Wie technologische Paradigmen Automotive Software Trends steuern
- Software-Entwicklung und die Straße ins Morgen: Wie navigieren wir durch das Labyrinth kommender Automobilsoftware?
- Software-Entwicklung: Der Nexus, der die automobile Zukunft antreibt
Marc
Marketing Professional
30.10.23
Ca. 16 min
Pionierarbeit auf dem Weg nach vorn: Die integrale Rolle der Software-Entwicklung bei Automobil-Innovationen
Es ist keine Frage, dass die Konvergenz von Software-Entwicklung und Automobil eine drastische Änderung unserer Erfahrungen mit Fahrzeugen mit sich bringt. Wo Fahrzeuge, gefühlt bis vor Kurzem, rein mechanische Konstruktionen waren, sind sie heute voll mit fortschrittlichen Softwarelösungen, die nahezu jeden Aspekt der Fahrt optimieren. Infotainment-Systeme und Navigation, ausgefeilte Fahrerassistenzfunktionen vom Spurhalte- bis zum Notbremsassistenten, der auch dem Verfasser dieser Zeilen in der vergangenen Urlaubssaison schon rettend zur Seite stand: Die Software-Entwicklung ist das wahre Rückgrat dieser Verbesserungen. Teslas Autopilotsystem wäre nicht denkbar, ohne sich auf komplizierte Software-Algorithmen zu verlassen, die autonomes Fahren überhaupt erst ermöglichen. Das gesamte Batteriemanagement mit seinen diversen Überwachungen und Anzeigen von Ladestand, Temperatur oder dem Auffinden der nächsten Ladestation basiert auf moderner Software-Entwicklung und wäre ohne diese nicht existent.
Ein iDrive-System von BMW dient als Infotainmentsystem und basiert ebenfalls auf fortschrittlicher Software, die eine nahtlose Benutzeroberfläche ermöglicht, in der Unterhaltung, Navigation und Kommunikation verschmelzen, und zwar in jedem genutzten Fahrzeug. Mit dem Aufkommen von generativer K.I. an Bord, wie gesehen bei Google und Continental oder Cognizant Mobility steht die nächste Konvergenz an, wenn sich Software-Entwicklung und Data Science miteinander befassen. Die Vernetzung verschiedenster Dienste, deren Aktualität, auch der rasante Aufstieg des Einsatzes von K.I.-Anwendungen erzeugen eine hohe Nachfrage im Bereich Connected Car. Diese Nachfrage kann nur von effizienter und aktueller Software-Entwicklung bedient werden und wird weiterhin enorm zunehmen: Ereignisreiche Änderungen warten schon am automobilen Horizont (den hoffentlich auch ein Tesla bald nicht mehr mit LKWs verwechselt).
Software-Entwicklung im Automotive: Eine elektronische Geschichte
Wo die Software-Entwicklung heute ein nicht wegzudenkender, integraler Bestandteil der Automobilindustrie ist, spielte sie vor rund 60 Jahren noch keine Rolle. Immerhin begann der Einzug von Elektronik ins Fahrzeug erst in den späten 1960er und 1970er Jahren des vergangenen Jahrhunderts. Grundlegende Systeme wie elektronische Zündungen und Kraftstoffeinspritzungen gaben zu diesem Zeitpunkt einen ersten Vorgeschmack auf das Kommende. Ein zögerlicher Anfang, aber ein wichtiger erster Schritt in Richtung verbesserter Effizienz und reduzierter Emissionen. Als in den Folgejahren immer weitere elektronische Komponenten ihren Weg in moderne Fahrzeuge fanden, wurde in den 1980er Jahren die ECU eingeführt, abgekürzt für „Electronic Control Unit“, also das Steuergerät, bis heute ein extrem wichtiges Thema in vernetzten Fahrzeugen: Die Zentrale, das Gehirn, das nun verschiedenste Fahrzeugfunktionen steuern konnte, und der Beginn der Software-Entwicklung für Automobile.
In den 90er und 00er Jahren drehte sich schließlich alles um neue Funktionen: Antiblockiersystem, Airbags und erste Infotainmentsysteme hielten Einzug. Mit jeder neuen Funktion wuchs analog auch die Bedeutung der Software-Entwicklung. Nicht länger waren es „nur“ Mechaniker und Ingenieure, die Fahrzeuge entwickelten, nun waren es auch Programmierer und Software-Entwickler. Dies brachte sogar völlig neue Berufe hervor, Mechatroniker, beispielsweise, und natürlich den „Automotive Software Engineer“ – eine Rolle, die grundlegend dem klassischen Software-Entwickler aus dem Silicon Valley glich, aber spezifisch auf den Automobilbereich zugeschnitten war.
Heute, 2023, mit dem Jahr 2024 schon im Anmarsch, fühlt sich der Begriff des „Automobils“ oft schon beinahe unzulänglich an, wenn man nicht den Begriff „smart“ im Kontext verwendet. Fahrzeuge sind nicht nur mobil, sie sind intelligent. Mit Funktionen wie hochmodernem Infotainment, mit dem Smartphone verbunden (man sieht: Auch vor dem Telefon macht die Intelligenz nicht halt), Over-the-Air-Updates (oft mit „OTA“ abgekürzt) und autonomem Fahren ist die Software-Entwicklung nicht länger Teil der Entwicklungshistorie eines Autos: Sie definiert die Gesamtfahrzeugentwicklung in erheblichem Maße und wird dies auch weiterhin tun, während das Fahrzeug, das Smart Car, das Connected Car im Grunde zum modernen Computer wird, der sich zufällig auch bewegen kann, dabei aber nicht nur selbständig fährt, sondern auch an den Hochzeitstag der Besten von Allen denkt. Danke, K.I.T.T.!
In historischem Kontext, um diesen Absatz zu finalisieren, mag noch erwähnt werden, dass sich die Software-Entwicklung natürlich ebenfalls, pun intended, entwickelt. Wo es früher um einfache, isolierte Aufgaben und einzelne Funktionen ging, geht es heute um vernetzte Ökosysteme, Cloud-Integrationen und generative K.I., die Fahrzeuge und Geräte effizienter und smarter machen. Die Software-Entwicklung steht also auch, mehr als nur sinnbildlich, für die Innovationskraft der Menschen: Von einfachen elektronischen Komponenten bis zu komplexen Software-Landschaften haben sich Fahrzeuge enorm weiterentwickelt. Software-Entwicklung verschiebt die Grenzen der Technik und wird – man verzeihe das erneute Wortspiel – das Automobil auch weiterhin antreiben. Umso wichtiger, nicht nur die Historie, sondern auch die Zukunft im Blick zu behalten.
Software-Entwicklung mit Java: Nur so fährt die automobile Welt in die Zukunft
Eine besondere Rolle in der Software-Entwicklung für die Automobilbranche kommt der Programmiersprache Java zu. Deren „write once, run anywhere“-Philosophie gewährleistet einen hohen Grad an Interkompatibilität zwischen verschiedenen Systemen im Fahrzeug, aber auch verschiedenen Entwicklungsplattformen. In diesem Zusammenhang ist der Entwicklungsstandard AUTOSAR ebenfalls von höchster Wichtigkeit, weshalb wir diesem Thema auch einen eigenen, ausführlichen Artikel gewidmet haben.
Java gilt außerdem als Programmiersprache mit robusten und sicheren Ergebnissen, was insbesondere für sicherheitskritische Automobilanwendungen von höchster Wichtigkeit ist. Noch dazu ist Java sehr gut skalierbar und erleichtert die Software-Entwicklung, die auf größere Überholungen des Codes oft verzichten kann. Außerdem bietet Java umfangreiche Bibliotheken mit vielfältigen Funktionalitäten, die für komplexe Automotive-Systeme unerlässlich sind. Entsprechend finden sich Java-gestützte Systeme beinahe überall im Fahrzeug: In modernen Touchscreen-Schnittstellen und Multimediasystemen, in erweiterten Fahrerassistenzsystemen (ADAS) oder in der Telematik und Konnektivität, wo Java-basierte Anwendungen beispielsweise die Kommunikation von Fahrzeug zu Fahrzeug oder die Datenübertragung in Echtzeit ermöglichen.
Kein Wunder also, dass der Beruf des Java-Software-Entwicklers Automotive anspruchsvoll ist. Immerhin sind Kenntnisse in den Kernkonzepten und fortgeschrittenen Funktionen von Java nötig, in Embedded Systems, um Umgebungen mit eingeschränkter Hardware zu optimieren, das Verständnis von Automobilprotokollen wie CAN, LIN und anderen Kommunikationsstandards, und dann sind da auch noch Normen für Sicherheit und Schutz wie die ISO26262 erforderlich, Stichwort Funktionale Sicherheit. Für alle Unternehmen, die Fernüberwachung und -diagnose von Fahrzeugen ermöglichen wollen, Over-the-Air-Updates fahren oder intelligente Navigationssysteme anbieten möchten, geht es also nicht ohne Java.
Das bedeutet nicht, dass sich Software-Entwicklung im Automobilbereich ausschließlich auf Java beschränkt, aber es macht einen wesentlichen Teil des benötigten Kompetenzbereichs aus.
Software Development: Wie technologische Paradigmen Automotive Software Trends steuern
Die Gegenwart der Automobilindustrie, so scheint es zumindest aktuell, kann nicht ohne die Entwicklung von autonomen Fahrzeugen stattfinden. Die Entwicklung von Software für eigenständig fahrende Autos ist indes überaus kompliziert und oft noch eher theoretisch als praktisch anwendbar. Von der Sensorintegration bis zu hochkomplexen und robusten Entscheidungsalgorithmen (wen überfährt das Fahrzeug im Falle einer nicht zu vermeidenden Kollision: Kind oder Senior?) spielt Software und somit die Software-Entwicklung eine entscheidende Rolle. Schon die Datenverarbeitung in Echtzeit – und wir sprechen von gewaltigen Datenmengen von beispielsweise Sensoren – ist eine Herausforderung für sich.
Auch im Bereich der Fahrzeugkommunikation ist die Software-Entwicklung die Triebfeder, heute auch gerne „Vehicle-to-Everything“ (V2X) Kommunikation genannt. Die Erleichterung der Kommunikation mit anderen Fahrzeugen, der Infrastruktur und Verkehrsteilnehmern ist für die Sicherheit und den Verkehrsfluss essenziell.
Aktuelle Verordnungen wie die UNECE R155 (und R156, verbunden mit ISO-Vorgaben wie der ISO/SAE 21434) legen außerdem Vorgaben für die Cybersecurity fest: Maßnahmen zur Bekämpfung von Cyber-Bedrohungen und -Schwachstellen für Fahrzeuge sind unerlässlich, um den Schutz aller elektronischen Systeme zu gewährleisten, teils über die gesamte Lebensdauer des Fahrzeugs hinweg. Schließlich müssen Over-the-Air-Updates für ganze Fahrzeugflotten frei von intelligenten Bedrohungen sein, Schwachstellen müssen gefunden und schnellstmöglich behoben werden. Dies kann nur innovative und zeitaktuelle Software-Entwicklung bieten. Die Form folgt also nicht länger dem Design, sondern geht diesem – weit – voran.
Ebenfalls ein Thema der Gegenwart ist Künstliche Intelligenz, im Verbund mit maschinellem Lernen, für verbessertes Fahren und ein optimiertes Nutzererlebnis. Beispiele wären hier, wie eingangs erwähnt, das Smart Cockpit von Google und Continental oder auch der Very Enhanced Road Assistant von Cognizant Mobility, der herkömmlichen Transport sowohl privat als auch im ÖPNV zu interaktiven Erlebnissen macht und K.I. nutzt, um beispielsweise Empfehlungen oder auch sinnvolle Warnungen auszusprechen. Dazu kommen für den Aftersales-Bereich relevante Aspekte wie Predictive Maintenance (auch wenn dies mitunter noch wenig konkret scheint) und user-spezifische Interaktionen, die Kundenverhalten transparenter und nachvollziehbarer machen können und über einen entsprechenden Datenaustausch erfasst werden können.
Werfen wir abschließend noch einen Blick in die Zukunft der Software-Entwicklung und der damit verbundenen Herausforderungen, um die Timeline der Moderne abzuschließen. Hier dürfte es vor allem das Management der zunehmenden Komplexität von Software in Fahrzeugen sein, das weit oben auf der automobilen Agenda liegt. Durch die stetige Zunahme der Funktionen hat sich Fahrzeugsoftware inzwischen zu komplizierten, vielschichtigen „Multilayered Architectures“ entwickelt, die fortschrittliche Tools und Frameworks für eine optimale Integration erfordern. Der Bedarf an standardisierten Softwaremodulen, die schnell aktualisiert oder ersetzt werden können, ohne das gesamte System zu beeinträchtigen, wird mit der zunehmenden Vernetzung von Fahrzeugen zweifelsfrei steigen. Was auch bereits ein gutes Stichwort ist: Die Vernetzung von Systemen bringt freilich das Risiko mit sich, dass ein Fehler in einem System Auswirkung auf andere Systeme haben könnte. Umfassendes Testing und Mechanismen sind daher von entscheidender Bedeutung, auch über die reine Software-Entwicklung hinaus.
Wohin also sollte sich Software-Entwicklung für, sagen wir, das kommende Jahrzehnt orientieren? Ein passender Stichpunkt sind Quantencomputer. Mit steigendem Rechenbedarf könnte Quantencomputing eine zentrale Rolle bei der Echtzeitverarbeitung von Daten in Fahrzeugen spielen, vor allem in Teilbereichen wie dem Verkehrsmanagement oder der Energieeffizienz. Auch in der Cybersecurity werden Post-Quantenalgorithmen eine wesentliche Rolle spielen. Über die Integration von Blockchain könnten nicht nur Finanztransaktionen abgesichert werden. Blockchain ist auch für die Validierung und Sicherung von Software-Updates, der Verifzierung der Echtheit von Teilen und sogar für die Aufzeichnung der Fahrzeughistorie denkbar.
Ebenfalls nur noch einen kleinen Schritt in der Zukunft liegt kognitive Software, die nicht nur von ihrer Umgebung lernt, sondern auch die Emotionen des Fahrers versteht und Kabineneinstellungen oder Fahrmuster entsprechend anpassen kann. Cabin Sensing ist das Buzzword, das hier sofort an die Oberfläche treibt, wenngleich nicht ausschließlich. Dass generative K.I. im Fahrzeug aber die Zügel der Zukunft in der virtuellen Hand hält, ist keine Zukunftsmusik, sondern schon jetzt aktuelle Entwicklung, wie sich auch auf der IAA Mobility 2023 in München deutlich beobachten ließ.
Software-Entwicklung: Der Nexus, der die automobile Zukunft antreibt
Wenn aus diesem Artikel eines klar hervorgeht, dann sicherlich, dass die Zukunft der Automobilindustrie untrennbar mit der Software-Entwicklung verbunden ist. In der lebendigen Welt der automobilen Metamorphose ist Software nicht länger „nur“ eine Schicht – sie ist der Puls. Die Zeiten, in denen Fahrzeuge nur Nutzungsobjekte sind, nur stumpf von A nach B bringen sollen, reine Maschinen sind; sie sind vorbei. Autos sind heute bewusste, beinahe lebendige, dynamische Ökosysteme, denen Software das Leben einhaucht. Im Gegensatz zu den klaren Abgrenzungen von Software und Hardware in den vergangenen Jahren verwischt das Auto von morgen, mitunter schon das Auto von heute, diese Grenzen und bildet eine Symbiose, in der das Eine nicht ohne das Andere funkionieren kann. Die Schönheit der technischen Wahrheit über Software-Entwicklung liegt eben nicht mehr in der gekonnten isolierten Entwicklung, sondern im harmonischen, multimodalen Tanz der mechanischen und digitalen Evolution, der final offenbart: Der Körper des Autos von morgen mag elektrisch, von Wasserstoff betrieben oder mit E-Fuels befeuert werden. Doch die Seele der nächsten Fahrzeuggeneration wird der Code sein, den die Software-Entwicklung schreibt.