09.08.2013 Aufrufe

download - SPES 2020

download - SPES 2020

download - SPES 2020

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!