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

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

Neuer Ansatz für die Versionierung von Modellen

Softwaremodellierung

Neuer Ansatz für die Versionierung von Modellen

Wie können verteilte Teams effizient mit Softwaremodellen arbeiten? Der Beitrag stellt einen Lösungsansatz vor, der in Zusammenarbeit mit der Technischen Universität Wien erarbeitet wurde. lesen

Yocto: Das geht auch automatisch!

Open Source

Yocto: Das geht auch automatisch!

Das Yocto-Build-System ist ein großes und mächtiges Werkzeug. Für den Einsteiger ist es oftmals schwierig, die Zusammenhänge des Build-Systems zu sehen, und der Start eines eigenen Projektes gestaltet sich entsprechend schwierig. Dieser Beitrag zeigt Schritt für Schritt den Bau einer einfachen Distribution mit eigenen Rezepten. Der Leser dieses Artikels ist dafür gerüstet, weiterführende Themen auf eigene Faust zu meistern. lesen

Die Problematik bei der Qualitätsmessung von Legacy Code

Qualitätssicherung

Die Problematik bei der Qualitätsmessung von Legacy Code

Qualitätsmessung und Test von Legacy Code stellen gewichtige Herausforderungen dar. Im besten Fall muss es gar nicht erst dazu kommen, dass Code unkontrolliert wuchert. 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)