Embedded-Softwareentwicklung am Standort Chemnitz - Ein Blick hinter die Kulissen
Auf unserem Embedded BBQ – Open House in Chemnitz am 24.06. gaben Entwickler:innen und Ingenieur:innen Einblicke in ihre Arbeit, aktuelle Projekte und Trends. Hier gibt es eine der insgesamt vier Insight-Sessions für euch zum Nachlesen: Max berichtet aus seinem Arbeitsalltag als Entwickler. An einem Code-Beispiel zeigt Max, was er bei Vector entwickelt, wie wir zusammenarbeiten und welche Tools wir nutzen.
Max ist Softwareentwickler im Bereich Embedded Software. Sein Team beschäftigt sich mit der sicheren Kommunikation zwischen verschiedenen Steuergeräten und ist dort verantwortlich für die Softwarekomponente des „Freshness Value Manager“ im Stack. Auf dem Embedded BBQ gibt er aus erster Hand Einblicke in die Softwareentwicklung bei Vector und seinen Arbeitsbereich.
Aufgaben als Embedded-Softwareentwickler bei Vector
In modernen Fahrzeugen stecken nicht nur Motoren und Sensoren, sondern auch eine Vielzahl von Steuergeräten, die miteinander kommunizieren müssen. Diese Systeme zu planen, zu simulieren, zu konfigurieren und zu programmieren – das ist komplex. Und genau hier kommt Vector ins Spiel.
Wir entwickeln Software-Tools, die Autoherstellern helfen, diese Komplexität zu beherrschen. Unsere Lösungen unterstützen bei der Planung und Simulation der Bordelektronik, bei der Konfiguration und Programmierung von Steuergeräten – und auch bei der Diagnose. Ein Beispiel, das viele kennen: Wenn ein Auto in der Werkstatt an ein Diagnosegerät angeschlossen wird, läuft im Hintergrund oft Software von Vector.
Ein weiterer spannender Bereich ist die Entwicklung unseres eigenen Betriebssystems für Steuergeräte: MICROSAR. Was Windows für den PC ist, ist MICROSAR für das Fahrzeug. In der Produktlinie Embedded Software and Systems entwickeln wir dieses System weiter – mit vielen spezialisierten Teams für unterschiedliche Aufgabenbereiche.
Max selbst arbeitet in einem Team, das sich mit der sicheren Kommunikation zwischen Steuergeräten beschäftigt. Ein konkretes Beispiel: die Softwarekomponente Freshness Value Manager.
Max arbeitet an der Softwarekomponente Freshness Value Manager
Diese Komponente schützt moderne Fahrzeuge vor sogenannten Replay-Angriffen. Dabei wird zum Beispiel das Signal eines Funkschlüssels abgefangen und wiederverwendet – mit dem Ziel, das Auto unbefugt zu öffnen oder zu starten. Der Freshness Value Manager verhindert das, indem er jeder Nachricht einen mitlaufenden Zählerwert hinzufügt. Der Empfänger prüft, ob der Zählerstand aktuell ist – und erkennt so, ob eine Nachricht manipuliert oder veraltet ist.
So sieht ein typischer Arbeitstag von Max aus
Der Tag beginnt meist mit einem Teammeeting – online, mit Kolleg:innen aus Stuttgart und den USA. Es werden aktuelle Aufgaben besprochen, die in JIRA geplant und dokumentiert werden. Ein Beispiel: die Implementierung eines sogenannten Acceptance Windows. Dabei geht es darum, dass empfangene Nachrichten nur dann akzeptiert werden, wenn ihr Zählerstand innerhalb eines bestimmten, konfigurierbaren Bereichs liegt.
Die Umsetzung erfolgt in mehreren Schritten:
- Wir definieren neue Parameter in einer XML-Datei. Unsere hauseigene GUI (Vector Eparm) erleichtert die Bearbeitung.
- Mit einem grafischen Tool (Vector DaVinci Configurator) konfigurieren wir diese Parameter für jeden Kommunikationskanal.
- Ein Java-basierter Codegenerator erzeugt daraus automatisch C-Code – inklusive praktischer Funktionen zur Weiterverarbeitung.
- Anschließend implementieren wir die Logik in C oder C++ – je nach Plattform.
- Und natürlich testen wir alles gründlich mit Google Test, um sicherzustellen, dass die Software genau das tut, was sie soll.
Mehr als nur Coden
Etwa 70 % der Zeit verbringt Max mit Entwicklung – aber auch Bugfixing, Kundenkommunikation, Dokumentation und Sicherheitsanalysen gehören dazu. Besonders spannend findet er die Safety- und Security-Analysen, bei denen potenzielle Schwachstellen im Code identifiziert und abgesichert werden. "Da muss man sich wirklich einmal mit Papier und Stift hinsetzen und überlegen, was alles passieren kann, wenn jemand versucht, das System anzugreifen", schwärmt Max.
Ein wichtiger Bestandteil der Arbeit ist der Code-Review-Prozess. Über GitLab reichen wir Änderungen ein, diskutieren im Team über Verbesserungen und sorgen gemeinsam dafür, dass unser Code nicht nur funktioniert, sondern auch wartbar und sicher ist. Bevor etwas live geht, durchläuft es unsere CI-Pipeline mit automatisierten Tests und Analysen – alles muss „grün“ sein, bevor gemerged wird.
Und warum das alles
Weil wir Software entwickeln, die in sicherheitskritischen Systemen eingesetzt wird – und weil wir unseren Kunden eine benutzerfreundliche, zuverlässige und flexible Lösung bieten wollen. Das bedeutet für uns: Teamarbeit, Qualität und Freude an der Technik.