download - SPES 2020
download - SPES 2020
download - SPES 2020
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
1 Motivation<br />
Bei der Entwicklung komplexer Systeme, die über viele Jahre im Einsatz sind und gepflegt werden müssen, liegt das<br />
Know-How – auch im Embedded-Bereich – mehr und mehr in der Applikationssoftware. Die darunterliegende Hardware<br />
wird von Generation zu Generation leistungsfähiger und kostengünstiger. Damit die Anwendungen nicht für jede Hardware-Generation<br />
neu angepasst werden müssen, sind geeignete Abstraktionskonzepte notwendig. Bei Neuentwicklung<br />
von Systemen kann durch Standardkomponenten auf Software-Seite, unterstützt durch Werkzeuge, Entwicklungszeit<br />
und damit Kosten gespart werden. Darüber hinaus erhält man bessere Qualität durch Wiederverwendung getesteter<br />
Komponenten. Um Standardkomponenten in der Breite einsetzen zu können, müssen sie gegen einen Hardwareunabhängigen<br />
Abstraktionslayer entwickelt werden, der auf aktuelle und zukünftige Hardware-Plattformen anpassbar ist.<br />
2 Wer braucht Abstraktion?<br />
Betrachtet man ein System aus dem Blickwinkel der beteiligten Software-Entwickler (Abbildung 1) haben wir auf unterster<br />
Ebene die System-Entwicklung. Diese beinhaltet Betriebssystem, Treiber und Basisdienste wie Persistenz, Diagnose,<br />
Logging, Tracing, Debugging-Support, Software-Updates, usw.. Auf dieser Ebene wird typerscherweise in C, seltener<br />
in C++, programmiert. Die Implementierungen sind in Teilen hardwareabhängig. Der Systemlayer stellt die unterste<br />
Ebene der Abstraktion dar (einmal abgesehen davon, dass wir einen Compiler verwenden…). Typische Schnittstellen<br />
sind die System-API des Betriebsysstems mit systemnahen Bibliotheken (Win32, POSIX) sowie nicht selten proprietäre<br />
Schnittstellen für domänenspezifische Basisdienste.<br />
Der nächste Layer implementiert die Produkt-Software bzw. die Software-Plattform, je nachdem in welcher Domäne<br />
wir uns befinden und ob es um Produkt- oder Lösungsgeschäft geht. In der Industrie-Automatisierung wäre hier z.B. die<br />
SIMATIC S7 Firmware angesiedelt, im Lösungsgeschäft eher eine Software-Plattform, die applikationsübergreifend<br />
notwendige Komponenten implementiert, wie z.B. eine generische Business-Logik, ein HMI-Framework, ein Bilderkennungsframework<br />
mit den entsprechenden Algorithmen, usw..<br />
Den Applikationslayer implementieren OEMs, Maschinenbauer und teilweise auch Endkunden. Im Lösungsgeschäft ist<br />
das die Kundenspezifische Software. Im Produktgeschäft enthält der Applikationslayer die Ausprägungen verschiedener<br />
Produkte einer Produktlinie.<br />
Darüber finden sich aus Entwicklersicht weitere Abstraktionslayer, die in der Software-Architektur allerdings vorwiegend<br />
im Rahmen des Produkt-Software / Plattform Layers implementiert sein sollten. Zum einen kann das eine Schnittstelle<br />
zur Erweiterung um einzelne Komponenten (Plug-Ins, Skripts) sein, zum anderen werden generische Komponenten<br />
applikationsspezifisch parametrisiert.<br />
Parametrisierung<br />
Erweiterungen<br />
(Plug-Ins, Skripts)<br />
Applikationen<br />
Produkt / Software-Plattform<br />
(Firmware+Standardapps.)<br />
System<br />
(OS, Hardwareanbindung)<br />
- 4 -<br />
Komponentenentwickler,<br />
Zulieferer<br />
Abbildung 1: Systemsichten<br />
OEM<br />
Endanwender