Requirement Engineering für Embedded Systeme

Im Requirement Engineering sind unterschiedliche Personengruppen mit verschiedenen Interessen an der Produktentwicklung beteiligt. Es ist Aufgabe des RE, aus diesen unterschiedlichen, oft widersprüchlichen Anforderungen, ein gemeinsames Problem- und Zielverständnis zu erarbeiten und messbare Systemanforderungen zu definieren.


Wie aber unterscheiden sich die Anforderungen und die daraus resultierenden Prozessschritte in Bezug auf Embedded Projekte und IT Projekte?


Eingebettete Systeme werden heute sehr unterschiedlich eingesetzt und müssen diverse, sich in ihrer Komplexität sehr unterscheidende, Funktionen bedienen. Im Grunde, kann man Embedded Systeme wie folgt definieren: Eingebettete Systeme sind für die Funktions- und Leistungsfähigkeit des Gesamtsystems entscheidend. Sie kombinieren Software- und Hardwaresysteme, die als Teil eines größeren Systems für den Benutzer verborgen arbeiten. Die Aufgabe der Embedded Systeme besteht darin, eine Anzahl technischer Geräte zu überwachen und/oder gemäß einer definierten Funktionalität über Sensoren und Aktuatoren zu steuern und zu regeln. Sie sind reaktiv und häufig zeit- bzw. sicherheitskritisch.


Das Thema Mensch-Maschine Schnittstelle spielt in Embedded Systemen eine untergeordnete Rolle, in der IT-Entwicklung jedoch, ist es ein ganz zentraler Punkt. Das ist bereits der erste große Unterschied.


Welche Herausforderungen muss das RE zudem meistern, wenn es um die Entwicklung von Produkten mit Embedded Systemen geht und wie unterscheiden sich diese zu den Projekten und Anforderungen für IT Systeme?

  • Während es bei Embedded Systemen häufig viele spezialisierte Schnittstellen in Verbindung mit der Hardware gibt, zählen bei IT-Systemen oft nur Standard-Schnittstellen.

  • Sollte es bei Embedded Projekten zu Hardware-Fehlern kommen, werden diese in der Software überprüft, wohingegen Hardwarefehler in IT-Systemen keine Rolle spielen.

  • Ein ganz großer Unterschied besteht zudem in der zu bearbeiteten Datenmenge. Während diese in Embedded Systemen begrenzt ist, werden bei IT-Projekten oft sehr große Datenmengen in Form von Volumentests bearbeitet.

Neben diesen Punkten besteht der wohl größte Unterschied beim Thema Sicherheit!


Embedded-Systeme sind in aller Regel so ausgelegt, dass sie eine oder mehrere ganz bestimmte Funktionen erfüllen. Sie kommen in der Fertigung, in Fahrzeugsystemen, der Unterhaltungselektronik und in vielen anderen Anwendungsbereichen zum Einsatz. Da es in der Embedded Entwicklung jedoch oft nur begrenzte Systemressourcen gibt, stehen Entwickler sowie Designer beim Thema Sicherheit meist vor großen Herausforderungen.


Ein Beispiel am Stichwort Internet der Dinge (IoT):

Produkte werden zunehmend komplexer und vernetzter. Für eingebettete Systeme kann es schwierig sein, die darauf laufende Firmware zu sichern bzw. zu aktualisieren. Firmware ist die Betriebssoftware, die funktional fest mit der Hardware verbunden ist. Ohne die Firmware ist die Hardware nicht nutzbar. Mit der zunehmenden Nutzung von IoT-Geräten im Alltag nehmen die Versuche zu, diese Systeme zu hacken und Betriebs- bzw. Konfigurationsdateien von fremder Hand zu ändern. Deshalb ist trotz limitierten Systemressourcen, die Erweiterung der Sicherheit von Embedded-Systemen zwingend notwendig. Um das sicherzustellen müssen Authentizität und Integrität jeder neuen Schnittstellen sowie deren Daten regelmäßig verifiziert werden.


Diese Tatsache führt zu einer großen Herausforderung im Requirements Engineering. Denn einerseits muss darauf geachtet werden, dass die Firmware regelmäßig upgedated wird. Andererseits muss jedes Update verifiziert werden und darauf geachtet werden, dass nur bestimmte Nutzer Zugriff auf das System haben.


Welche Gemeinsamkeiten in Bezug auf das RE gibt es zwischen Embedded Systemen und IT Systemen?


Viele IT Systeme sind sehr komplex und umfangreich. Das bedeutet, dass das Requirement Engineering auch in diesem Bereich sorgfältig arbeiten und Abstimmungsprozesse vielschichtig koordinieren muss. Abstimmungen und Bewertungen von Anforderungen und Systemkonzepten müssen regelmäßig eingefordert werden.


Es empfiehlt sich diese Abstimmungen als Teil eines iterativen Prozesses zu sehen, in dem Anforderungen und Lösungskonzepte sukzessive er- bzw. überarbeitet, validiert und vervollständigt werden. Egal ob es sich um ein Embedded System oder ein IT System handelt.


Warum schreiben wir diesen Blog-Beitrag?

Wir werden oft gefragt, warum wir in unserer Arbeit einen so großen Schwerpunkt auf das Anforderungsmanagement legen. Ganz einfach: Für uns sind sauber definierte Requirements der Grundstein für eine effiziente und fehlerarme Entwicklung von komplexen Systemen.