In der Diskussion: Modellgetriebene Generatorentwicklung
Generatoren dienen neben reiner Automatisierung insbesondere der Realisierung verschiedener Abstraktionsebenen. Im Zentrum steht dabei eindeutig die Implementierung von Software-Produktlinien und domänenbezogenen Schnittstellen. In der Praxis führt an einem modellbasierten Vorgehen zur Erreichung dieser ehrgeizigen Ziele kein Weg vorbei. „Modellgetriebene Generatorentwicklung“ lautet der Titel eines Artikels von Cord Giese und Rüdiger Schilling, in welchem dieses Thema einer genaueren Analyse unterzogen wird. Der Beitrag ist in der aktuellen Ausgabe (Nr. 3 / 2005) der Fachzeitschrift OBJEKTspektrum erschienen. Als Beispiel für die Unterstützung modellgetriebener Generatorentwicklung präsentiert er die von Delta entwickelte HyperSenses-Technologie. Doch der Reihe nach – was genau ist die Motivation für eine modellgetriebene Entwicklung von Generatoren?
In der Softwareentwicklung werden Generatoren eingesetzt, um Programmiertätigkeiten zu automatisieren und höhere Abstraktionsebenen zu realisieren. Während „Automation“ die Aufgabe eines jeden Generators ist, trennt sich an der Implementierung höherer, domänenorientierter Abstraktionsebenen die Spreu vom Weizen. Solche Generatoren sind keine einfachen Filter oder Konverter mehr, sondern sind an eine Anwendungsdomäne angepasst oder – im Idealfall – anpassbar. Mit dem Grad der Anpassbarkeit geht eine Ausweitung des potentiellen Einsatzgebietes einher – deshalb ist ein Höchstmaß an Anpassbarkeit das Ziel.
Ein weiteres Ziel ist die Verringerung des Aufwandes für die Erstellung eines Generators. Ideal wäre hier die gänzliche Vermeidung manuellen Programmierens. Dazu ist eine Werkzeugunterstützung erforderlich, die gleichzeitig die Basis für die geforderte Domänenorientierung bietet. Voraussetzung dafür ist eine saubere Definition der durch einen Generator implementierten Variabilität. Üblicherweise wird diese in Variabilitätsmodellen definiert, für deren Erstellung es verschiedene Techniken gibt. Beispielsweise kann die FODA-Methode (Feature-Oriented Domain Analysis) oder die UML dafür eingesetzt werden.
Ist ein Variabilitätsmodell erst einmal definiert, kann man auf dieser Basis sowohl die Elemente zur Konfiguration als auch die zu generierenden Source-Code-Fragmente definieren (nicht: programmieren). Entscheidend ist an dieser Stelle, dass für die Konfigurationsdaten einer Generierung mehrere Sichten angeboten werden, von denen der zu erzeugende Quellcode nur eine unter mehreren ist. Insbesondere lassen sich dann die gewünschten domänenorientierten Sichten realisieren.Dreh- und Angelpunkt dieser Konzepte ist die saubere Trennung von Variabilitätsmodell, den Konfigurationsdaten und den verschiedenen Sichten auf diese. Dieser Ansatz führt zu einem strikt modellbasierten Vorgehen, was in dem Artikel anhand eines Beispiels für die HyperSenses-Technologie genauer vorgestellt wird. Insgesamt lässt sich beobachten, dass die Entwicklung von Generatoren mittlerweile zu einem eigenständigen Fachgebiet geworden ist und sich die entsprechenden Techniken stetig weiterentwickeln. Modellbasierte Konzepte bilden den vorläufigen Höhepunkt dieser Entwicklung. Informieren Sie sich genauer und lesen Sie den Artikel.
Der Artikel ist auf der Sigs-Datacom-Website verfügbar:
http://www.sigs-datacom.de/sd/publications/pub_article_show.htm?&AID=1577&TABLE=sd_articlegotw.ca/publications/concurrency-ddj.htm





