08.05.2013 Aufrufe

#ifdef« in XML? - pure-systems GmbH

#ifdef« in XML? - pure-systems GmbH

#ifdef« in XML? - pure-systems GmbH

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Entwickler die gewünschten<br />

Features (Eigenschaften)<br />

durch »def<strong>in</strong>e«-Statements<br />

fest. Dies sieht dann üblicherweise<br />

so aus:<br />

#def<strong>in</strong>e FEATURE_FOO. Ist<br />

dieses Feature nicht mehr<br />

gewünscht, wird diese Zeile<br />

e<strong>in</strong>fach auskommentiert:<br />

//#def<strong>in</strong>e FEATURE_FOO.<br />

E<strong>in</strong> »def<strong>in</strong>e«-Statement<br />

dient somit als Schalter,<br />

über den sich bestimmte<br />

Features mittels e<strong>in</strong>er Konfigurationsdatei<br />

auswählen<br />

lassen. Im übrigen Quelltext<br />

kommt dann e<strong>in</strong> »#ifdef<br />

... #endif«-Ausdruck<br />

zum E<strong>in</strong>satz, um abhängig<br />

von diesen Schaltern die<br />

benötigten Teile der Software<br />

zu übersetzen. Dies<br />

wird auch als »Conditional<br />

Compilation« bezeichnet.<br />

Da selbst <strong>in</strong> kle<strong>in</strong>en bis mittleren<br />

Projekten (ab zwei<br />

Mannjahre Implementierungszeit)<br />

300 »def<strong>in</strong>e«-<br />

Statements schnell erreicht<br />

s<strong>in</strong>d, führt dieser Ansatz<br />

frühzeitig zu Problemen der<br />

Handhabbarkeit.<br />

»Conditional Compilation«<br />

(bed<strong>in</strong>gte Kompilierung) ist<br />

e<strong>in</strong> seit langem <strong>in</strong>tensiv genutztes<br />

technisches Hilfsmittel.<br />

Wichtig ist die Erkenntnis,<br />

dass es sich hierbei wirklich<br />

nur um e<strong>in</strong> technisches<br />

Hilfsmittel handelt und dieses<br />

Verfahren nicht als Variantenmanagementbezeichnet<br />

werden kann. E<strong>in</strong>ige der<br />

größten Probleme, die hierdurch<br />

entstehen, s<strong>in</strong>d:<br />

■ Das Variantenmanagement<br />

ist im Quellcode<br />

»vergraben«,<br />

■ Abhängigkeiten zwischen<br />

verschiedenen Features<br />

s<strong>in</strong>d auf Grund der e<strong>in</strong>geschränkten<br />

Syntax des C-<br />

Preprozessors nur schwer<br />

zu handhaben, denn er<br />

muss über e<strong>in</strong>e ganze<br />

Kette von Abhängigkeiten<br />

analysieren, ob sich Module<br />

gegenseitig bed<strong>in</strong>gen<br />

oder ausschließen,<br />

■ durch verschachtelte Abhängigkeiten<br />

wird der<br />

Code schwer lesbar,<br />

■ bed<strong>in</strong>gte Kompilierung<br />

funktioniert nicht mit AU-<br />

TOSAR.<br />

Das Zusammenspiel zwischenConditional-Compilation<br />

und AUTOSAR klappt<br />

nicht, weil entsprechend den<br />

AUTOSAR-Vorgaben Teile<br />

der Softwarelogik <strong>in</strong> <strong>XML</strong> beschrieben<br />

werden (vornehmlich<br />

die Kommunikationsverb<strong>in</strong>dungen<br />

zwischen<br />

den Modulen) und <strong>XML</strong><br />

ke<strong>in</strong>e Abhängigkeiten kennt.<br />

Auf den Punkt gebracht: Es<br />

gibt ke<strong>in</strong> #ifdef <strong>in</strong> <strong>XML</strong>.<br />

Varianten<br />

mit speziellen<br />

Tools managen<br />

Spätestens <strong>in</strong> Verb<strong>in</strong>dung<br />

mit AUTOSAR muss also e<strong>in</strong>e<br />

»richtige« Variantenmanagement-Lösung<br />

zum E<strong>in</strong>satz<br />

kommen, welche die Aufgabe<br />

umfassend und somit<br />

auf e<strong>in</strong>er höheren Ebene als<br />

dem Quelltext lösen kann.<br />

Grundsätzlich ist die Entwicklung<br />

von AUTOSARkonformer<br />

Software immer<br />

eng mit dem E<strong>in</strong>satz von<br />

Toolketten verbunden. Die<br />

e<strong>in</strong>zelnen Werkzeuge lesen<br />

Quellcode und <strong>XML</strong>-Dateien<br />

e<strong>in</strong>, bereiten die Daten <strong>in</strong> e<strong>in</strong>er<br />

grafischen Entwicklungsumgebung<br />

zur Bearbeitung<br />

auf und geben dann<br />

wieder <strong>XML</strong> und Quellcode<br />

aus. So lassen sich sehr flexibel<br />

<strong>in</strong>dividuelle Toolketten<br />

aufbauen und <strong>in</strong> e<strong>in</strong>em Projekt<br />

e<strong>in</strong>setzen. E<strong>in</strong> entscheidender<br />

Bestandteil e<strong>in</strong>er<br />

derartigen AUTOSAR-Toolkette<br />

wird zukünftig das<br />

Variantenmanagementsystem<br />

se<strong>in</strong>. Es hat folgende<br />

Vorteile gegenüber den bisherigen<br />

Mitteln:<br />

■ Es macht das Management<br />

von Varianten explizit, das<br />

heißt, es ist nicht mehr im<br />

Quelltext verborgen,<br />

■ es stellt Abhängigkeiten<br />

grafisch dar, schlägt mögliche<br />

Features vor und<br />

zeigt Konflikte auf,<br />

■ große Systeme lassen sich<br />

durch e<strong>in</strong>e hierarchische<br />

DESIGN&ELEKTRONIK 07/2008<br />

65

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!