#ifdef« in XML? - pure-systems GmbH
#ifdef« in XML? - pure-systems GmbH
#ifdef« in XML? - pure-systems GmbH
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