Generierung domänenspezifischer Transformationssprachen
Autoren
Mehr zum Buch
Die Bedeutung domänenspezifischer Sprachen (DSLs) im Software-Engineering ist in den letzten Jahren deutlich gestiegen. Diese Sprachen erlauben es Domänenexperten, Teile des zu entwickelnden Systems in einer problemorientierten Notation zu beschreiben, die in der jeweiligen Domäne bekannt ist. Sie können so die Einbindung der Domänenexperten in Softwareentwicklunsgprozesse wesentlich verbessern. Mit der Einführung einer neuen Programmier- oder Modellierungssprache entsteht gleichzeitig der Bedarf, Modelle oder Programme in dieser Sprache zu transformieren. Häufig verwendete Transformationen werden dabei in Transformationsregeln formalisiert, sodass sie computerunterstützt oder sogar vollautomatisch durchgeführt werden können. Die Beschreibung von Transformationsregeln ist jedoch nicht nur für Sprachentwickler, sondern auch für Sprachnutzer relevant. Beispielsweise können sie so spezifische Analyse- und Editieroperationen oder Folgen solcher Operationen in Makros beschreiben und bei Bedarf erneut ausführen. Eines der in der vorliegenden Arbeit vorgestellten Ergebnisse ist eine Transformationssprache, welche die konkrete Syntax einer gegebenen textuellen Modellierungssprache (Basissprache) wiederverwendet. Dadurch werden Domänenexperten in die Lage versetzt, sowohl Modelle als auch Modelltransformationen in einer ihnen vertrauten Notation zu beschreiben. Die Benutzung und Entwicklung der Transformationssprache werden am nichttrivialen Beispiel der Vereinfachung hierarchischer Statecharts beschrieben, einer semantikerhaltenden Transformation, die als ein Schritt innerhalb eines Codegenerierungsprozesses eingesetzt werden kann. Die domänenspezifische Transformationssprache und die Transformationsengine bestehen aus drei Kernkomponenten, die jeweils in einem separaten Kapitel dieser Arbeit vorgestellt werden. Erstens enthält die Transformationssprache eine Regelsprache mit domänenspezifischer Notation. Diese Transformationsregeln können in eine andere, generische Regelsprache übersetzt werden; diese zweite Sprache verwendet eine auf UML-Objektdiagrammen basierende Syntax, aus der die Regeln wiederum nach Java übersetzt werden können. Drittens erlaubt es eine Kontrollflusssprache, Regeln aus den zuvor genannten Sprachen zu komplexen Transformationsmodulen zusammenzusetzen. Der wissenschaftlich neue und einzigartige Beitrag dieser Arbeit besteht in der Möglichkeit, die domänenspezifische Transformationssprache automatisch aus der textuellen Basissprache abzuleiten. Für den Sprachentwickler bedeutet die Einführung einer solchen Transformationssprache daher kaum zusätzlichen Aufwand, da diese automatisch aus ohnehin existierenden Artefakten generiert wird. Somit stellt die Generierung domänenspezifischer Transformationssprachen einen erheblichen Mehrwert für den Sprachnutzer dar, dem nur unwesentlicher Mehraufwand auf Seiten des Sprachentwicklers gegenübersteht.