11.10.2013 Aufrufe

Diss.-ETH 12317 Diss.-ETH 12317 Diss.-ETH 12317 Diss.-E Eine ...

Diss.-ETH 12317 Diss.-ETH 12317 Diss.-ETH 12317 Diss.-E Eine ...

Diss.-ETH 12317 Diss.-ETH 12317 Diss.-ETH 12317 Diss.-E Eine ...

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.

2.2. SOFTWARE-WIEDERVERWENDUNG 13<br />

steckt in der Struktur des Programms, das neue Programme erzeugt. Ein<br />

primitiver Vertreter dieser Vorgehensweise ist das Programmgerüst, das<br />

von einem Klienten bei Bedarf angepasst wird.<br />

Sprach-basierte, generierende Systeme bauen auf einer wohldefinierten<br />

Sprachkonstruktion auf, welche eine Domäne beschreibt. <strong>Eine</strong> solche<br />

Sprache ist weit mehr als nur eine Befehlszeile zur Steuerung eines Programmgenerators.<br />

Ein wesentlicher Vorteil für den Klienten besteht darin,<br />

dass die Sprache von Einzelheiten der Implementation abstrahiert. Als besondere<br />

Herausforderung beim Bau solcher Systeme gilt es jedoch, eine<br />

effiziente Implementation der Sprache zu finden.<br />

Transformations-basierte Systeme bestehen grob gesehen aus einer Folge<br />

von Transformationen, welche eine Grundvariante einer Programmfamilie<br />

beschreibt. Ein Klient passt diese Grundvariante neuen Bedürfnissen<br />

an, indem er einige Transformationen ersetzt und die geänderte Folge von<br />

Transformationen erneut “abspielt”, um das neue Programm zu erzeugen.<br />

Applikations-Generatoren enthalten Muster, die beim Erzeugen spezifischer<br />

Instanzen eines Zielsystems wiederverwendet werden. Ein Muster<br />

stellt dabei das Gemeinsame der erzeugten Instanzen dar. Ein Muster<br />

ist wesentlich flexibler als eine atomare Software-Komponente beim<br />

kompositions-basierten Vorgehen. Der variable Teil einer Applikationsfamilie<br />

wird aus geeigneten Eingabe-Daten erzeugt und im Applikations-<br />

Programm eingebaut. Als Vertreter eines Applikations-Generators wird<br />

DRACO [19] eingestuft, wobei auch dieses System sprach- und transformations-basierte<br />

Eigenschaften enthält.<br />

Den vorgestellten Systemen ist gemeinsam, dass sie neben Quell-Code<br />

auch Domänenwissen und Programmdesign wiederverwenden, um daraus<br />

neue Programme zu erzeugen. Dazu muss unabhängig von der Technik<br />

stets ein System zueinander passender und teilweise voneinander abhängiger<br />

Elemente organisiert werden.<br />

Dies geschieht innerhalb einer zu erarbeitenden, spezifischen Architektur<br />

6 .<br />

6 <strong>Eine</strong> Architektur ist laut [15]:<br />

“1. a organizational structure of a system or asset<br />

2. the structure of components, their interrelationships, and the principles and guidelines governing their<br />

design and evolution over time”<br />

<strong>Diss</strong>.-<strong>ETH</strong> <strong>12317</strong> <strong>Diss</strong>.-<strong>ETH</strong> <strong>12317</strong> <strong>Diss</strong>.-<strong>ETH</strong> <strong>12317</strong> <strong>Diss</strong>.-E

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!