Delta Software Technology

Wir

Merkmale und Domänen

Bei Generatorsystemen gibt es insbesondere auf der Seite der Parametrisierung, die im konkreten Einzelfall sehr umfangreich sein kann, noch einen erheblichen Bedarf an Verbesserungen: Die konkreten Daten, die für die Transformationsaufgabe eines Generators notwendig sind, müssen nicht nur technisch bereitgestellt, gelesen und verarbeitet werden; darüber hinaus sind die Beschreibungsdaten eines Anwendungsbereichs bzw. einer Domäne zu modellieren, um mit ihnen umgehen zu können. Es gibt dafür das Konzept domänenspezifischer Sprachen (Domain Specific Language, DSL) und verschiedene Techniken, um die für die Codegenerierung relevanten Eigenschaften einer Domäne zu beschreiben.

Eine solche Technik ist die Merkmalmodellierung. Ein aktuelles Merkmalmodellierungstool, welches wir empfehlen können, ist Captain Feature. In diesem Fall würde daher ein Merkmalmodell erstellt, und dieses als Basis für eine Definition der Variationspunkte des Codegenerators verwendet werden. Dieses "Variantenmodell" ist der Dreh- und Angelpunkt der Codegenerierung – und der Definition einer DSL.

Vom Variantenmodell zur DSL

Den Ausgangspunkt der Überlegungen bildet die Idee, aus einem Variantenmodell eine DSL unmittelbar abzuleiten, d.h. ihre Definition automatisch zu erzeugen. Ferner lässt sich auch die Parser-Komponente eines Generators, der diese DSL verstehen soll, automatisch erzeugen. Das Ziel besteht dabei nicht nur in der zusätzlichen Effizienz einer Automatisierung dieser Aufgaben. Mindestens genauso wichtig ist der Aspekt, eine beliebige Zahl von Generatoren auf eine standardisierte Weise zu parametrisieren.

Realisierung in HyperSenses

Das beschriebene Konzept wurde bei Delta Software Technology bereits in Form eines Werkzeugs umgesetzt: Variantenmodelle werden mit HyperSenses erfasst bzw. dort per XMI importiert. Dadurch ist bereits eine DSL auf semantischer Ebene beschrieben. Eine konkrete Default-Syntax wird automatisch abgeleitet. Dies kann auf Wunsch angepasst werden. Auf dieser Basis erzeugt ein in ANGIE implementierter TextDSL-Generator sowohl die Beschreibung der konkreten DSL in Form einer EBNF-Dokumentation als auch die Implementierung der DSL durch die Bereitstellung des entsprechenden Parsers. Dieser ist ebenfalls in ANGIE implementiert. Der Output des DSL-Parsers besteht in einer HyperSenses-Konfiguration. Momentan ist dieser neue TextDSL-Mechanismus ein Schwerpunkt der Entwicklungsaktivitäten bei Delta Software Technology.

LiveZilla Live Chat Software