www.wikidata.de-de.nina.az
Der Begriff Embedded Software Engineering setzt sich zusammen aus den Begriffen Embedded Systems deutsch eingebettete Systeme und Software Engineering deutsch Softwaretechnik Ein eingebettetes System ist ein binarwertiges digitales System Computersystem das in ein umgebendes technisches System eingebettet ist und mit diesem in Wechselwirkung steht Dabei hat das Computersystem die Aufgabe das System in das es eingebettet ist zu steuern zu regeln oder zu uberwachen Die Softwaretechnik beschaftigt sich mit der Herstellung von Software also der Entwicklung und dem Betrieb von Programmen und der Organisation und Modellierung der zugehorigen Datenstrukturen 1 Das Besondere der eingebetteten Systeme besteht in ihrer Eigenschaft als universeller Systemintegrator Die technischen Systeme werden dabei durch interagierende Komponenten geformt Die hohe Zahl der Komponenten die wachsende Komplexitat der einzelnen Komponenten und des Gesamtsystems und nicht zuletzt die Anforderungen standig verbesserter Systeme machen es notwendig die Einzelkomponenten sowie die Interaktionen mit immer mehr Funktionen auszustatten Inhaltsverzeichnis 1 Herausforderungen des Embedded Software Engineering 1 1 Kopplung an physikalische Prozesse 1 2 Zuverlassigkeitsanforderungen 1 3 Verteilte Systeme mit hoher Dynamik 2 Ansatze zum Embedded Software Engineering 2 1 Referenzmodell fur eingebettete Systeme 2 2 Designmethoden zur Erfullung zeitlicher Vorgaben 2 2 1 Zeit gesteuertes Design 2 2 2 Ereignis gesteuertes Design 2 3 Designmethodik fur verteilte eingebettete Systeme mit Echtzeitfahigkeit 2 4 Designmethoden zur Erfullung energetischer Vorgaben 3 Literatur 4 Weblinks 5 EinzelnachweiseHerausforderungen des Embedded Software Engineering BearbeitenBei der Entwicklung von Software fur eingebettete Systeme stehen Entwickler besonderen Randbedingungen gegenuber deren Erfullung notwendig fur die korrekte Funktion ist Dazu zahlen die Kopplung zu physikalischen Prozessen die damit einhergehenden Anforderungen an Zuverlassigkeit und die zunehmende Anzahl von verteilten Systemen mit hoher Dynamik 2 Kopplung an physikalische Prozesse Bearbeiten Die physikalischen Prozesse mit denen die eingebetteten Systeme gekoppelt sind und deren Wechselwirkungen durch die Software behandelt werden sollen zwingen dem System ein vorgegebenes Zeitverhalten auf Da sich die Zeitablaufe zum Beispiel bei gesteuerten Motoren nicht andern lassen muss das eingebettete System in Echtzeit arbeiten also in seinem zeitlichen Verhalten dem umgebenden technischen System angepasst sein 2 Hierbei wird zwischen hartem und weichem Echtzeitverhalten unterschieden Die Differenzierung erfolgt dabei ausschliesslich durch die Konsequenzen die ein zeitliches Fehlverhalten hervorrufen kann Stellt ein Fehlverhalten eine Gefahrdung fur Mensch und oder Material dar so darf es nicht vorkommen und das System muss unter allen Umstanden die zeitlichen Bedingungen erfullen Das wird als hartes Echtzeitsystem bezeichnet Wird durch das Fehlverhalten lediglich eine Qualitatsminderung erzeugt so wird von einem weichen Echtzeitsystem gesprochen 2 Andere Anpassungen an das physikalische System konnen beispielsweise die maximal erlaubte Verlustleistung etwa aufgrund der maximal verfugbaren elektrischen Leistung oder der Begrenzung der erzeugten Warme oder die mittlere Energieaufnahme betreffen Im Fall von batteriebetriebenen Geraten etwa bestimmt die mittlere Energieaufnahme die Einsatzdauer Anpassungen an die elektrischen Werte konnen meist nur durch gemeinsame Hard und Software Engineering Co Design erreicht werden 2 Zuverlassigkeitsanforderungen Bearbeiten Die Zuverlassigkeitsanforderungen die in besonderem Masse an eingebettete Systeme gestellt werden betreffen die Hard und Softwarequalitat Softwarequalitat ist die Gesamtheit der Merkmale und Merkmalswerte eines Softwareprodukts die sich auf dessen Eignung beziehen festgelegte oder vorausgesetzte Erfordernisse zu erfullen Als Merkmale gelten Funktionalitat Zuverlassigkeit Benutzbarkeit Effizienz Anderbarkeit und Ubertragbarkeit 2 Die Zuverlassigkeit englisch reliability ist hierbei als Wahrscheinlichkeit definiert dass ein System seine definierte Funktion innerhalb eines vorgegebenen Zeitraums und unter den erwarteten Arbeitsbedingungen voll erfullt das heisst intakt ist und es zu keinem Systemausfall kommt Bei den Fehlern oder fehlerhaften Handlungen die die Zuverlassigkeit herabsetzen mussen zwischen der fehlerhaften Handlung englisch error die zu einem spateren Fehler fuhrt der fehlerhaften Stelle im Gerat oder Programmcode auch als innerer Fehler englisch fault bezeichnet und dem tatsachlichen Fehlverhalten auch als Fehlerwirkung oder ausserer Fehler englisch failure bezeichnet unterschieden werden Die Rate der ausseren Fehler wird in FIT Failure in Time Anzahl der auftretenden Fehler pro 109 Betriebsstunden gemessen Die durch Software verursachten Fehler ubersteigen die Hardwarerate ohne besondere Massnahmen um etwa 100 bis 1000 3 Hierin besteht eine wesentliche Aufgabe des Embedded Software Engineering diese Rate auf die geforderten Werte zu reduzieren 2 Verteilte Systeme mit hoher Dynamik Bearbeiten Bei einer zunehmenden Anzahl von Systemen ist die Anzahl der eigenstandigen elektronischen Komponenten sehr hoch sie bewegt sich zwischen einigen 100 und uber 1000 Komponenten Entwicklungen wie Smart Sensors Sensoren mit eingebauter Vorverarbeitung zum Beispiel durch Mikroprozessoren oder MEMS microelectromechanical system zeigen dass die Durchdringung eines physikalischen Prozesses mit elektronischen Komponenten zur Messung Steuerung und Regelung sehr weitgehend sein kann und dass die Trennung physikalischer Prozess Informationsverarbeitung nicht mehr aufrechterhalten werden kann 2 Die Probleme in der Softwareentwicklung solcher Systeme lassen sich durch zwei meist geforderte Eigenschaften darstellen Zum einen soll eine solche verteilte Applikation robust zuverlassig und in Echtzeit arbeitend sein zum anderen arbeitet die verteilte Applikation hochgradig parallel und das Gesamtsystem ist meist auch dynamisch das heisst die Applikation muss sich den wandelnden Bedingungen anpassen Die Kombination aus Verteilung Zuverlassigkeit und dynamischer Anpassung gilt als besondere Herausforderung 2 Ansatze zum Embedded Software Engineering BearbeitenNeben der algorithmischen Korrektheit einer Applikation mussen bei eingebetteten Applikationen meist eine oder mehrere weitere Bedingungen eingehalten werden Abgesehen von den grundlegenden Prinzipien des Software Engineering die auch im eingebetteten Bereich zur Anwendung kommen konnen zusatzliche Methoden zum Einsatz kommen um diese Bedingungen zu erfullen Die Designmethoden unterscheiden sich dabei je nach zu erfullender Bedingung 2 Referenzmodell fur eingebettete Systeme Bearbeiten nbsp Bild 1 Referenzarchitektur eines Embedded SystemsBild 1 zeigt das allgemeine Referenzmodell eines nicht verteilten eingebetteten Systems Charakteristisch ist die starke Aussenbindung mithilfe von Aktoren und Sensoren sie stellen die wesentliche Kopplung an die technische Umgebung dar in der das System eingebettet ist Die Benutzerschnittstelle kann entfallen in diesem Fall handelt es sich um ein tief eingebettetes System englisch deeply embedded system Die Referenzarchitektur zeigt dass eingebettete Applikationen eine starke Eingabe Ausgabe Input Output I O Bindung besitzen Dementsprechend sind Hard und Software stark I O dominant ausgefuhrt 2 Designmethoden zur Erfullung zeitlicher Vorgaben Bearbeiten Die Echtzeitfahigkeit einer Software Applikation ist die haufigste Bedingung die erfullt werden muss Die Echtzeitfahigkeit bezieht sich dabei auf das Referenzmodell aus Bild 1 das heisst das System muss im Allgemeinen auf Ereignisse von aussen rechtzeitig reagieren Die Rechtzeitigkeit besteht darin dass eine maximale Zeit nach Eintreten des Ereignisses definiert ist bei der die Reaktion eingetreten sein muss unter Umstanden auch eine minimale Zeit nach dem Ereignis vor der die Reaktion nicht eintreten darf Letzteres ist beispielsweise notwendig wenn in einer eventuell verteilten Applikation mehrere Reaktionen gleichzeitig eintreten mussen 2 Zeit gesteuertes Design Bearbeiten Um die Kopplung zwischen Umgebungsereignissen und dem eingebetteten System herzustellen bieten sich zwei Methoden an Zeit gesteuertes Design und Ereignis gesteuertes Design Das Zeit gesteuerte Design englisch time triggered design geht davon aus dass es in der Software einen meist periodisch aufgerufenen Teil gibt in dem das Vorliegen von Ereignissen festgestellt wird Die Implementierung kann zum Beispiel durch einen periodisch per Timer ausgelosten Interrupt Request IRQ mit zugehoriger Interrupt Service Routine ISR erfolgen 2 Dieser zyklisch ablaufende Teil stellt das Vorliegen von Ereignissen fest und startet die entsprechende Reaktionsroutine Die Zykluszeit richtet sich dabei nach der geforderten maximalen Reaktionszeit fur dieses Ereignis sowie anderen Zeiten im System Diese Designmethodik ergibt ein statisches Design bei dem alle Aktivitaten zur Ubersetzungszeit englisch compile time bekannt sein mussen Die Echtzeitfahigkeit dieses Designs lasst sich beweisen wenn alle maximalen Bearbeitungszeiten englisch worst case execution time WCET und alle maximalen unterbrechungsfreien Zeiten englisch worst case interrupt disable time WCIDT bekannt sind 2 Ereignis gesteuertes Design Bearbeiten Im Ereignis gesteuerten Design englisch event triggered design wird den Ereignissen selbst ein Interrupt Request zugewiesen Das bedeutet dass die zugehorigen Serviceroutinen zumindest teilweise als Interrupt Service Routine ausgelegt sein mussen und ein Interrupt Priority Management muss die Prioritaten bei gleichzeitigem Auftreten regeln Das Gesamtsystem ist hierdurch scheinbar weniger belastet weil die Ereignisbehandlung nur dann aufgerufen wird wenn tatsachlich etwas vorliegt Das System selbst kann jedoch im Vergleich zum Zeit gesteuerten Design nicht schwacher ausgelegt werden weil die Echtzeitfahigkeit garantiert werden muss Die Systemauslegung eines harten Echtzeitsystems muss immer der maximalen Last folgen nicht einer mittleren 2 Negativ am Ereignis gesteuerten Design ist ausserdem dass die maximal definierte Ereignisrate nicht automatisch eingehalten werden muss Zusatzliche Hardwaremassnahmen sind erforderlich falls etwa durch prellende Schalter oder Teilprozesse die ausserhalb der Spezifikation arbeiten angenommene Ereignisraten uberschritten werden konnen um die Arbeitsfahigkeit der Applikation zu erhalten 2 Designmethodik fur verteilte eingebettete Systeme mit Echtzeitfahigkeit Bearbeiten Das Zeit gesteuerte Design kann dahingehend verallgemeinert werden dass ein synchrones Systemdesign gewahlt wird Dieses Systemdesign entspricht dem meist genutzten Modell der digitalen Hardware Berechnungen werden durch ein asynchrones Schaltnetz durchgefuhrt und am Ende eines Zeittakts in Flipflops gespeichert Ubertragen auf das Softwaredesign heisst dies dass algorithmische Berechnung und Kommunikation vor oder nach der Berechnung in einer angenommenen Zeitspanne durchgefuhrt werden und am Ende dieser Zeitspanne alle Ergebnisse als Eingang fur den nachsten Zeitabschnitt gespeichert werden 2 Die synchrone Designmethodik ergibt dann eine Systemarchitektur die der eines komplexen kooperierenden Automaten entspricht Fur echtzeitfahige verteilte Systeme muss die Kommunikationszeit selbst begrenzt sein was durch spezielle Netzwerke zum Beispiel TTP C Time Triggered Protocol Class C oder diverse Echtzeit Ethernet Standards gewahrleistet ist In der Entwicklung selbst muss dann die Annahme dass die algorithmische Verarbeitung innerhalb einer vorgegebenen Maximalzeit erfolgt nachgewiesen werden WCET Bestimmung Synchrone Sprachen die die Entwicklung unterstutzen sind Esterel Lustre und Signal Zur Zeitlichen Definition des Systemverhaltens insbesondere auch bei verteilten Systemen bietet sich auch Timing Definition Language TDL an 2 Designmethoden zur Erfullung energetischer Vorgaben Bearbeiten Um energetische oder verlustleistungsbezogene Vorgaben zu erfullen existieren vergleichsweise wenig softwarebasierte Methoden Die Auswahl eines Mikrocontrollers anhand der energetischen Eigenschaften oder sogar der Wechsel auf anderen programmierbare Architekturen wie Field Programmable Gate Arrays FPGA konnen hier wesentlich energiesparender wirken als reine Softwarelosungen Innerhalb des Softwaredesigns konnen drei Methoden zur Senkung des Energiebedarfs und der Verlustleistung angewendet werden 2 Die tatsachliche Laufzeit des Programms pro betrachteter Zeiteinheit wird moglichst minimal gestaltet und in den Zeiten in denen der Prozessor idle ist wird der Betriebszustand schlafend oder ahnlich gewahlt Dieser Betriebszustand der Hardware ist dadurch gekennzeichnet dass viele Teile des Prozessors abgeschaltet sind und dadurch der Energieumsatz stark minimiert wird Wie weitgehend abgeschaltet werden kann und wie der Prozessor wieder aufgeweckt wird kann nur im Einzelfall entschieden werden und ist abhangig von dem Prozessortyp der Planbarkeit der Applikation und so weiter In einem anderen Ansatz wird versucht das Programm so zu gestalten dass bei Einhaltung aller Zeitschranken moglichst gleiche Idle Zeiten pro betrachteter Zeiteinheit entstehen Im zweiten Schritt kann dann die Taktfrequenz des Prozessors und damit auch die Betriebsspannung so angepasst werden dass keine Idle Zeiten mehr existieren Das liefert ein gleichformig arbeitendes Design mit minimierter Verlustleistung Die ideale Zeiteinheit deren Ablauf optimiert wird ist dabei die Superperiode kleinstes gemeinsames Vielfaches uber alle verschiedenen periodischen Ablaufe im System die Anpassung der Taktfrequenz muss jedoch fur jede einzelne Periode moglich sein Alternativ oder zusatzlich konnen auch spezialisierte Compiler verwendet werden die energetisch besonders gunstigen Code liefern So ist der Bedarf an elektrischer Energie fur verschiedene Instruktionen unterschiedlich das kann ausgenutzt werden Literatur BearbeitenChristian Siemers Sebastian Gerstl Grundlagen des Embedded Software Engineering In Elektronikpraxis ISSN 0341 5589 Bd 55 H 17 11 August 2019 S print ePaper ePaper Website abgerufen am 18 Februar 2022 Shankar Sastry Janos Szipanovitis Ruzena Bajcsy Helen Gill Model based design of embedded systems Scanning the issue In Proceedings of the IEEE ISSN 0018 9219 Bd 91 H 1 Januar 2003 S 4 10 Christian Siemers Echtzeit eine kleine Geschichte der Zeit In Elektronikpraxis ISSN 0341 5589 Bd 43 H 23 20 November 2007 S 42 43 Weblinks BearbeitenDeutschsprachiges Online Fachmagazin zu Embedded Software Engineering Deutscher Embedded Software Engineering Kongress Prof Dr Christian Siemers Eine kleine Geschichte der ZeitEinzelnachweise Bearbeiten Helmut Balzert Lehrbuch der Software Technik Band 1 Software Entwicklung 2 Aufl 1 Nachdr Spektrum Akademischer Verlag Heidelberg 2001 ISBN 3 8274 0480 0 S 36 a b c d e f g h i j k l m n o p q r Christian Siemers Sebastian Gerstl Grundlagen des Embedded Software Engineering In Elektronikpraxis ISSN 0341 5589 Bd 55 H 17 11 August 2019 S print ePaper ePaper Website abgerufen am 18 Februar 2022 Antonio Gonzalez Scott Mahlke Shubu Mukherjee Resit Sendag Derek Chiou Joshua J Yi Reliability Fallacy or reality In IEEE Micro ISSN 0272 1732 Bd 27 H 6 November 2007 S 36 45 Abgerufen von https de wikipedia org w index php title Embedded Software Engineering amp oldid 220315244