Definition „Eingebettete Software“

Software Engineering für Embedded Systems

| Autor / Redakteur: HJL / Stephan Augsten

Embedded Software übernimmt hinter den Kulissen die Steuerung, Regelung und Überwachung diverser Geräte.
Embedded Software übernimmt hinter den Kulissen die Steuerung, Regelung und Überwachung diverser Geräte. (Bild: Pixabay.com / CC0)

Embedded Software begegnet uns überall im täglichen Leben, meist in Form sogenannter Firmware. Die funktionalen Anwendungen steuern, regeln und überwachen diverse technische Geräte – vom Benutzer weitestgehend unbemerkt.

Unter eingebetteter Software versteht man Anwendungen, die im Rahmen des „Embedded Software Engineering“ für eine spezielle Hardware programmiert werden. Häufig sind dies Maschinen oder Geräte im Internet der Dinge, die in ihrer ursprünglichen Funktion nicht als Computer gelten: Herzschrittmacher, Telefone, Fernsehanlagen, Haushaltsgeräte, Medizin- und Flugtechnik und verstärkt Automobile.

Treffend für die an spezielle Aufgabenstellungen angepasste Software, die für eingebettete Systeme entwickelt wird, ist der Fachbegriff „Firmware“. Im Wesentlichen geht es um die enge Verbindung und Interaktion flexibler Software mit einer leistungsoptimierten Hardware.

Dabei übernimmt die Firmware zum einen die Systemsteuerung, darüber hinaus die bedarfsweise erforderliche System-Interaktion mit der Umgebung. Drei Komponenten bestimmen Design und Funktionalität: Bootloader, Betriebssystem und die speziell für die Anwendung geschrieben Applikations-Software.

Embedded Systems sind in der Regel durch straffe Rahmenbedingungen charakterisiert. Dazu zählen Faktoren wie die Minimierung von Kosten-, Raum-, Speicher- und Energiebedarf. Diese Restriktionen führen häufig zu Prozessor-Plattformen, die von der standardisierten PC-Computerwelt deutlich abweichen.

Auf der anderen Seite besteht häufig die Anforderung an Echtzeit-Bedingungen sowie ein Höchstmaß an Sicherheit bezüglich Gerätebedienung und Ausfall-Toleranz. Das Software-Design orientiert sich an diesen Rahmenbedingungen.

Embedded Software – für spezifische Hardware entwickelt

Bei Embedded Software handelt es sich um Software, die für eine spezifische Hardware entwickelt wurde. Dieser interaktive Bezug kommt im Begriff „Firmware“ zum Ausdruck. Das fertige Produkt setzt sich im Wesentlichen aus folgenden drei Komponenten zusammen:

  • Bootloader
  • Betriebssytem - Operating System
  • Applikations-Software

Die steigende Komplexität in Verbindung mit den heute üblichen, kurzen Produktzyklen bestimmen die gewachsenen Anforderungen an die Entwickler Hardware-integrierter Anwendungen. Im Sinne optimaler Produktlösungen arbeiten die „Embedded Software“-Entwickler gemeinsam mit der Hardware-Abteilung an der optimalen Implementierung von Gerätetreibern und Algorithmen.

Zuverlässigkeit und Echtzeitverhalten sind die tragenden Säulen einer gelungenen Embedded-Softwarelösung. Die besondere Herausforderung für den Entwickler besteht darin, die funktionale Komplexität des betreffenden Hardwareprodukts zu verstehen. Nur so wird es ihm gelingen, eine passgenaue Software zu programmieren.

Hohe Anforderungen an Embedded-Software-Entwickler

Hardware-nahes Programmieren erfordert neben der Kenntnis der genutzten Programmiersprachen unbedingt auch Kenntnisse um Compiler-Funktionen sowie Know-how rund um Betriebssysteme und deren Strukturen. Der Anteil der Embedded-Software-Entwicklung an der Wertschöpfung eines fertigen Produkts hat in den vergangenen Jahren stetig zugenommen.

Eingebettete Software hat heute bereits viele Produkt-Performance-Aufgaben übernommen. Zunehmende Funktionalität elektronischer Geräte und höchste Anforderungen an die Benutzerfreundlichkeit zählen zu den spannenden Herausforderungen für die hardwarenah tätigen Software-Spezialisten.

Im Mittelpunkt: korrekte Funktion und Zuverlässigkeit

Die Programmierung für Embedded Systems stellt Entwickler vor besondere Aufgaben. Im Mittelpunkt steht die korrekte Funktion des zu schaffenden Gesamtprodukts. Aufgrund der zunehmenden Komplexität elektronisch betriebener Gebrauchsgegenstände haben Zuverlässigkeit und die Dynamik der Systemabläufe höchste Priorität.

Physikalische Prozesse von Geräten und Motoren geben Zeitabläufe vor. Die optimierte Software wird auf eine entsprechende Echtzeitverarbeitung der Abläufe zugeschnitten. Eine Gefährdung für den Benutzer gilt es mit allen Mitteln zu vermeiden.

Sowohl an Hardware als auch Software eines eingebetteten Systems werden höchste Zuverlässigkeitsanforderungen gestellt. Das Maß der Softwarequalität wird an den folgenden Merkmalen abgeglichen:

  • Benutzbarkeit
  • Funktionalität
  • Effizienz
  • Zuverlässigkeit (engl.: Reliablity)

Das Zauberwort „Reliability“ – also die Zuverlässigkeit – kennzeichnet das Geschehen rund um die Entwicklung von Embedded Software maßgeblich. Ein diffiziles Bewertungsraster gibt in der Auswertung Aufschluss über Anzahl und Art auftretender Fehler. Die Aufgabe des Software Engineering besteht darin, die Fehlerrate auf verbindlich fest geschriebene Zahlen einzugrenzen.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

Software, die nicht gehackt werden kann, ist Realität

Zukunft der Softwareentwicklung

Software, die nicht gehackt werden kann, ist Realität

Software für kritische Systeme erlaubt keine Kompromisse bei Safety, Security und Zuverlässigkeit. Die Bedeutung von Embedded Software Security und entsprechenden Anbietern wie Green Hills Software wird daher weiter zunehmen. lesen

IoT-Schnittstellen einfach verdrahten

Interface-Programmierung

IoT-Schnittstellen einfach verdrahten

Die Open-Source-Software Node-RED bietet einen geeigneten Baukasten, um per Datenflussprogrammierung die notwendigen Verbindungen zwischen IoT-Systemen zu schaffen. lesen

C++ – von der C-Erweiterung zum Standard

Definition „Programmiersprache C++

C++ – von der C-Erweiterung zum Standard

C++ gehört zu den verbreitetsten und beliebtesten Programmiersprachen. Als Fortsetzung der strukturierten C-Programmierung setzt sie auf objektorientierte Mittel. lesen

Technische Dokumentation im Scrum-Team

Dokumentation

Technische Dokumentation im Scrum-Team

Auch die Technische Dokumentation lässt sich in die agile Softwareentwicklung mit Scrum einbeziehen. Dieser Beitrag erläutert, was dabei bedacht werden sollte. lesen

Bessere Spracherkennung für Software-Entwickler

Neue Microsoft Cognitive Services

Bessere Spracherkennung für Software-Entwickler

Drei neue kognitive Microsoft-Dienste sollen Software-Entwicklern die einfache Integration verschiedener Spracherkennungs-Funktionen per REST API ermöglichen. Ein Custom Speech Service unterscheidet Fachsprache und Dialekte, die Bing Speech API kann Sprache in geschriebenen Text und umgekehrt umwandeln. lesen

So sieht zukunftsfähige Embedded-Softwareentwicklung aus

Entwicklungstrends

So sieht zukunftsfähige Embedded-Softwareentwicklung aus

Mit den Experten von MicroConsult sprachen wir über die Bedeutung von Softwarearchitekturen und Frameworks. Dabei wurde das Thema Softwareengineering aus verschiedenen Blickwinkeln beleuchtet. lesen

Software-Ökosystem mittels Frameworks erweitern

Embedded-Entwicklung

Software-Ökosystem mittels Frameworks erweitern

Ein modernes Embedded-System muss schon bei der Entwicklung nicht nur auf dem aktuellsten Stand der Technik stehen, sondern sich angesichts der schnellen Marktentwicklung auch leicht aufrüsten lassen. lesen

Das Internet der Dinge braucht deutlich bessere Software

Softwaretechnik

Das Internet der Dinge braucht deutlich bessere Software

Das Internet der Dinge stellt neue Anforderungen an die Sicherheit von Embedded-Software. Professor Hans-Joachim Hof von der Münchner Hochschule für angewandte Wissenschaften und Leiter der Munich IT Security Research Group (MuSe) mahnt ein Umdenken an. Zu oft werde nach dem Prinzip „verbaut und vergessen" verfahren. lesen

Eine Software-Infrastruktur für das Internet der Dinge

Frameworks

Eine Software-Infrastruktur für das Internet der Dinge

Um Fallstricke bei der Integration von IoT-Systemen zu vermeiden, müssen diverse Front- und Backend-Techniken angewendet werden. Bereits bei Beginn des Designs ist das gesamte System zu betrachten. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44509091 / Definitionen)