In vielen technischen Geräten arbeitet Software im Verborgenen. Sie steuert Sensoren, verarbeitet Daten, löst Funktionen aus und muss im richtigen Moment zuverlässig reagieren.
Genau hier liegt eine der größten Herausforderungen der Embedded-Entwicklung: Hinter jeder Software stehen Entwickler, und Entwickler können Fehler machen. In sicherheitskritischen Systemen darf ein solcher Fehler jedoch nicht dazu führen, dass Menschen gefährdet werden. Auf der Embedded World in Nürnberg zeigte iSystem, wie Entwicklungs- und Testwerkzeuge dabei helfen können, solche Risiken zu reduzieren. Das Unternehmen stellt Werkzeuge bereit, mit denen Entwickler tief in laufende Embedded Systeme hineinsehen, Softwareverhalten überprüfen und Tests möglichst nah an der realen Hardware automatisieren können.
Am Messestand wurde das Thema zunächst bewusst einfach dargestellt. Ein sogenannter Wink-O-Mat diente als Demonstrator, um den Anspruch „Enabling Safer Embedded Systems“ verständlich zu machen. Das Beispiel stammt aus der Maker-Welt, in der Entwicklungsboards wie Arduino, Raspberry Pi oder BeagleBone häufig als Einstieg in die Embedded-Entwicklung genutzt werden. Solche Plattformen ermöglichen es Studenten, jungen Ingenieuren und Entwicklern, schnell erste Systeme aufzubauen. iSystem stellt dafür eine freie Softwareentwicklungsumgebung zur Verfügung, um den Einstieg zu erleichtern. Entscheidend ist jedoch nicht der einfache Demonstrator selbst, sondern das Prinzip dahinter: Ein System muss in der Lage sein, auf bestimmte Situationen kontrolliert zu reagieren. Nähert sich jemand dem Wink-O-Maten, fährt dieser in einen sicheren Zustand. Genau dieser Gedanke ist für Embedded Systeme zentral. Sicherheit bedeutet hier nicht nur, dass eine Funktion vorhanden ist. Sie bedeutet, dass ein Gerät in kritischen Situationen so reagiert, dass niemand verletzt wird und kein unkontrollierter Zustand entsteht.
Die eigentlichen Produkte von iSystem sind kleine blaue Boxen, die als Entwicklungs- und Testwerkzeuge eingesetzt werden. Sie ermöglichen Entwicklern den Zugriff auf den Mikroprozessor eines Embedded Systems. Im Gespräch wird dies als eine Art Fenster in den Microchip beschrieben. Über diese Verbindung kann ein Entwickler prüfen, ob die Software tatsächlich so läuft, wie sie geplant wurde. Dazu wird das Zielsystem mit der Box verbunden und per USB an einen PC angeschlossen. Anschließend lässt sich das Verhalten der Software analysieren, Schritt für Schritt nachvollziehen und bei Bedarf korrigieren. Der Nutzen liegt vor allem darin, dass nicht nur ein abstrakter Programmcode betrachtet wird. Stattdessen wird sichtbar, wie sich die Software im konkreten System verhält. Gerade bei Embedded Anwendungen ist das entscheidend, weil Software häufig direkt mit Sensoren, Aktoren und physikalischen Prozessen verbunden ist.
Embedded Systeme verarbeiten Daten aus der Umgebung. Sensoren liefern Informationen, Algorithmen werten sie aus und lösen anschließend bestimmte Reaktionen aus. In vielen Fällen zählt dabei nicht nur das Ergebnis, sondern auch der genaue Zeitpunkt. Besonders deutlich wird das bei sicherheitskritischen Anwendungen. Ein Airbag muss im Fahrzeug nicht nur auslösen, sondern zum richtigen Zeitpunkt. Ein Herzschrittmacher muss zuverlässig reagieren, wenn der Körper es benötigt. In solchen Fällen können kleine Verzögerungen oder unerwartete Softwarezustände erhebliche Folgen haben.
Die Werkzeuge von iSystem helfen dabei, dieses Verhalten zu untersuchen. Entwickler können prüfen, ob Abläufe korrekt ausgeführt werden und ob zeitliche Anforderungen eingehalten werden. Damit wird aus der Softwareentwicklung ein überprüfbarer Prozess, der über reines Programmieren hinausgeht.
Nach der Entwicklung endet die Arbeit an sicherheitskritischer Software nicht. Im Gegenteil: Die Testphase wird zu einem zentralen Bestandteil des gesamten Prozesses. iSystem integriert deshalb Testfunktionen in seine Werkzeuge und in die zugehörige Software. Das Ziel ist, Embedded Systeme möglichst nah an der realen Hardware zu testen. Diese Nähe ist wichtig, weil sich bestimmte Fehler erst im Zusammenspiel von Software, Mikroprozessor, Sensoren und realen Signalen zeigen. Ein rein theoretischer Test reicht bei solchen Systemen oft nicht aus. Mit den Werkzeugen lassen sich Tests automatisieren. Dadurch können bestimmte Prüfungen immer wieder im Hintergrund ausgeführt werden, auch während der laufenden Entwicklung. Fehler werden dadurch früher sichtbar, und Entwickler müssen nicht erst am Ende eines Projekts feststellen, dass eine Funktion unter bestimmten Bedingungen anders reagiert als erwartet.
Die Komplexität eingebetteter Systeme nimmt seit Jahren zu. Fahrzeuge, Medizintechnik, Industrieanlagen und vernetzte Geräte enthalten immer mehr Software. Gleichzeitig steigen die Erwartungen an Zuverlässigkeit und Nachweisbarkeit. Hersteller müssen belegen können, dass ihre Systeme funktionieren. Bei sicherheitsrelevanten Anwendungen geht es nicht nur um Komfort oder Qualität, sondern um Verantwortung. Ein Gerät soll nicht nur im Normalfall arbeiten, sondern auch in Grenzsituationen berechenbar bleiben. Für iSystem bedeutet diese Entwicklung, dass Testautomatisierung und kontinuierliche Prüfung weiter an Bedeutung gewinnen. Je komplexer die Software wird, desto weniger reicht es aus, punktuell zu testen. Entscheidend ist ein Entwicklungsprozess, in dem Analyse und Prüfung dauerhaft mitlaufen. Genau dafür sind Werkzeuge gefragt, die tief genug in das System hineinreichen und gleichzeitig praktikabel im Alltag der Entwickler bleiben.