3 Konfigurationsmöglichkeiten von Software
3.2.2.1 Generative Programmierung
Ausgehend von den bereits beschriebenen Ansprüchen von Softwareentwicklung modelliert
die ganzheitliche Generative Programmierung Softwaresysteme so, dass „ausgehend von einer
Anforderungsspezifikation mittels Konfigurationswissen aus elementaren, wiederverwendbaren
Implementierungskomponenten ein hochangepasstes und optimiertes Zwischenoder
Endprodukt nach Bedarf automatisch erzeugt werden kann“87.
Dazu verwendet die Generative
Programmierung aufeinander abgestimmte Methoden und Techniken zur Entwicklung
von Softwaresystemfamilien. Wesentliche Bestandteile des Generativen Programmierens
sind die merkmalbasierte Modellierung von Gemeinsamkeiten und Unterschieden der Familienmitglieder
und die Entwicklung von Sprachmitteln zur Beschreibung einzelner Systeme
sowie die Entwicklung von Generatoren, die diese aufgrund ermittelter Anforderungen weitgehend
automatisch erzeugen87.
Die Vorgehensweise des Generativen Programmierens ist in
der folgenden Abbildung dargestellt:
Abbildung 4: Systemfamilienentwicklung nach Czarnecki88
Dazu müssen Tabellen und Bibliotheken entstehen, die das entsprechende Wissen über Abhängigkeiten,
Wechselwirkungen, Beschreibungen, Herkunft und Verwendung von Merkmalen,
sowie die Standardvorgaben, Bindungszeitpunkte etc. protokollieren. Daraus lässt sich
ableiten, welche Funktionen im Basissystem zwingend dazugehören müssen und welche sich
optional in Familienmitgliedern realisieren lassen. Dafür muss untersucht werden, welche
relevanten Bausteine sich in entsprechenden Kategorien verschiedener Implementierungen
zusammenfassen lassen und welche Abhängigkeiten bestehen.
Grundstein dieses Vorgehens ist das Generative Domain Model, welches den Problemraum,
also die Fachbereiche und die spezifischen Anforderungen enthält, den Lösungsraum, der alle
Komponenten des Systems beschreibt, und das Konfigurationswissen, welches den Bauplan
für die Komponenten zur Lösung konkreter Problembeschreibungen liefert.
Diese Ergebnisse fließen in den Entwurf der flexiblen Softwarearchitektur für die komplette
Anwendungsfamilie und werden dann von wieder verwendbaren Komponenten, einer dafür
entwickelten domänenspezifischen Beschreibungssprache, der Domain Specific Language,
und von Konfigurationsgeneratoren implementiert. Die Ergebnisse des Domain Engineering
sind eine Art Katalog für mögliche automatische Ableitungen ähnlich einer Angebotsbroschüre
von Automobilherstellern. Dieser Katalog ist die Grundlage für die Entwicklung echter
Kundenanwendungen im Application Engineering. Hier werden die spezifischen Kundenanforderungen
erhoben und mittels der bestehenden Komponenten, Sprachen und Generatoren
mit Hilfe von Templates und dem Konfigurationswissen zusammengesetzt. Anforderungen,
die hier neu erhoben werden, fließen über das nötige Konfigurationsmanagement wieder in
das Domain Engineering ein90.
Das Vorgehen des Generativen Programmierens hat folgende Vor- und Nachteile:
Bewertung der Generative Programmierung91
Vorteile
Nachteile
Tabelle 14: Bewertung der Generativen Programmierung
Top|
Home|
<< Zurück |
Nächste >>
" TARGET="_blank"> >> Home Page << |