Was macht ein Embedded Software Engineer?
Computerbenutzer sind wahrscheinlich am besten mit der Software vertraut, die auf ihren Betriebssystemen ausgeführt wird. Sie sind jedoch oft nicht so erfahren mit der Software, die den Betrieb bestimmter hochentwickelter Hardwarekomponenten regelt. Diese Komponenten werden von Fachleuten, sogenannten Embedded Software Engineers, programmiert.
Hardwarekomponenten, die bestimmte und spezielle Funktionen ausführen, werden als eingebettete Systeme bezeichnet . Diese fungieren als Computer in Computern mit eigenen Prozessoren und eigenem Speicher. Eingebettete Systeme nehmen Daten von bestimmten Hardwarekomponenten auf, führen ihre Programmierung durch und geben sie dann an andere Hardwareteile in der Maschine weiter. Die Rolle eines eingebetteten Systems kann so komplex sein, wie das Konvertieren von Daten von einer internen Antenne in ein Datenformat, das der Rest des Geräts verwenden kann, oder so einfach wie das Übertragen bestimmter Signale, wenn diese per Knopfdruck aktiviert werden. Ein Entwickler für eingebettete Software erstellt die Programme, mit denen diese Geräte ausgeführt werden.
Die Arbeit eines Entwicklers für eingebettete Software ähnelt der eines Entwicklers für Software, der Programme für Desktop-Computer erstellt. Der Quellcode zum Konvertieren von Daten in einem Format in ein anderes ist auf einem Personalcomputer derselbe wie in einem eingebetteten System. Die Aufgabe des Entwicklers für eingebettete Software besteht darin, zusätzlichen Code für das Programm hinzuzufügen, der auf der speziellen Hardware ausgeführt wird, die als eingebettetes System fungiert.
Zu den Betriebssystemen, auf denen Desktop-Anwendungen ausgeführt werden, gehört eine Vielzahl von Treibersoftware. Dies ist für diese Systeme aufgrund des Hardwarebereichs, der sich auf dem Computer befinden kann, und der Software, die ein Benutzer möglicherweise ausführt, angemessen. Eingebettete Systeme sind eigenständig 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 Entwicklers für eingebettete Software umfasst normalerweise das Ermitteln der kleinsten Anzahl von Treibern, die das Programm zum Betreiben des eingebetteten Geräts benötigt.
Nachdem ein Embedded-Software-Entwickler 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, müssen andere Techniker folgende Informationen kennen:
- welche Daten das eingebettete System erwartet
- welches Datenformat die Programmierung erwartet
- Wie das Gerät auf verschiedene Eingaben reagiert
- Das Format der Daten, die das Gerät ausgibt
Diese Informationen sind dann in der technischen Dokumentation enthalten, die die Entwickler der eingebetteten Software selbst erstellen, häufig in Form eines Handbuchs. Manchmal erstellen technische Redakteure anstelle der eigentlichen Ingenieure solche Handbücher anhand der von den Software-Ingenieuren bereitgestellten Notizen. Die Dokumentation, auf die verwiesen wird, ist für Benutzer von unschätzbarem Wert.