Was macht ein Embedded-Software-Ingenieur?

Computerbenutzer sind wahrscheinlich am besten mit der Software vertraut, die auf ihren Betriebssystemen ausgeführt wird. Viele haben jedoch nicht so viel Erfahrung mit der Software, die den Betrieb bestimmter hochentwickelter Hardwarekomponenten regelt. Diese Komponenten werden von Fachleuten programmiert, die als Embedded Software Engineers bezeichnet werden.

Hardwarekomponenten, die spezifische und spezialisierte Funktionen ausführen, werden als eingebettete Systeme bezeichnet. Diese fungieren als Computer innerhalb von Computern mit ihren eigenen Prozessoren und Speicher. Eingebettete Systeme nehmen Daten von bestimmten Hardwarekomponenten auf, führen deren Programmierung durch und geben die Daten dann an andere Hardwarekomponenten der Maschine weiter. Die Rolle eines eingebetteten Systems kann so komplex sein wie die Konvertierung von Daten von einer internen Antenne in ein Datenformat, das der Rest des Geräts verwenden kann, oder so einfach wie die Übertragung bestimmter Signale, wenn sie durch eine Taste aktiviert werden. Ein Embedded-Software-Ingenieur erstellt die Programme, die diese Geräte ausführen.

Der Job eines Embedded-Software-Ingenieurs ähnelt dem von Software-Ingenieuren, die Programme für Desktop-Computer erstellen. Der Quellcode zum Konvertieren von Daten eines Formats in ein anderes ist auf einem PC der gleiche wie in einem eingebetteten System. Eine andere Aufgabe des Embedded-Software-Ingenieurs besteht darin, zusätzlichen Code hinzuzufügen, damit das Programm auf der spezialisierten Hardware läuft, die als eingebettetes System fungiert.

Die Betriebssysteme, auf denen Desktop-Anwendungen ausgeführt werden, umfassen eine Vielzahl von Treibersoftware. Dies ist für diese Systeme aufgrund des Umfangs der Hardware, die sich im Computer befinden kann, und der Software, die ein Benutzer ausführen kann, angemessen. Eingebettete Systeme sind in sich abgeschlossen und führen nur ein einziges Programm aus. Aus diesem Grund muss der Programmierer nur eine begrenzte Anzahl von Treibern und das Programm selbst in den begrenzten Speicher des Geräts laden. Die Aufgabe des Embedded-Software-Ingenieurs besteht normalerweise darin, die kleinste Anzahl von Treibern zu bestimmen, die das Programm benötigt, um das eingebettete Gerät zu betreiben.

Nachdem ein Embedded-Software-Ingenieur die Programmierung eines Geräts abgeschlossen hat, muss seine Arbeit dokumentiert werden. Eingebettete Systeme werden nie alleine verwendet, sondern als Teil eines größeren Projekts. Um das Gerät nutzen zu können, benötigen andere Ingenieure Informationen wie:

welche Daten das eingebettete System erwartet

welches Datenformat seine Programmierung erwartet

wie das Gerät auf verschiedene Eingaben reagiert

das Format der Daten, die das Gerät ausgibt

Diese Informationen fließen dann in die technische Dokumentation ein, die die Embedded-Software-Ingenieure selbst erstellen, oft in Form eines Handbuchs. Manchmal erstellen technische Redakteure und nicht die eigentlichen Ingenieure solche Handbücher aus den Notizen der Software-Ingenieure. Für Benutzer ist es von unschätzbarem Wert, auf eine Dokumentation zu verweisen.