Xtext für domänenspezifische Sprachen

26.05.2009

Die Zahl der Softwareprojekte, die modellbasierend entwickeln, steigt stark an. Vermehrt setzen sie inzwischen auf domänenspezifische Sprachen. Im Gegensatz zu allgemeinen Modellierungssprachen wie der Unified Modeling Language (UML) haben problemorientierte Sprachen den Vorteil, dass sie genau auf einen Sachverhalt zugeschnitten sind. Dies kann die Einarbeitungszeit verkürzen und die Kommunikation im Projekt verbessern.

Eines der bekanntesten Werkzeuge, um eigene Sprachen zu definieren, ist "Xtext" (http://Xtext.org). Mit der neuen Version von Eclipse "Galileo" ist Xtext Teil des Eclipse Modeling Project geworden und hat dabei umfangreiche Verbesserungen und Erweiterungen erfahren. Die Anwendung ist denkbar einfach. Über eine Grammatik wird die Modellsprache definiert. Xtext erzeugt daraus einen Editor, der ebenfalls in Eclipse läuft. Der generierte Editor bietet dem Anwender mit Syntax-Highlighting, Code-Completion und einem Outline-View hohen Komfort. Das Framework enthält dazu noch ein umfangreiches API, um zum Beispiel Konsistenz-Checks in Java zu implementieren. Das folgende Beispiel zeigt eine Sprache für die Modellierung von Bus-Topologien mit Steuergeräten (ECUs) und Bussen:

ecu Gateway;

ecu Navigationssystem;

ecu Motorsteuerung;

bus Hauptbus type CAN has Gateway, Motorsteuerung;

bus Entertainmentbus type MOST has Gateway, Navigationssystem;

Textuelle Modelle bieten im Vergleich zu grafischen viele Vorteile bezüglich Austauschbarkeit, Versionierung und Vergleichbarkeit. Die erstellten Modelle können mit Generierungs-Frameworks wie "Xpand" aus "openArchitectureWare" in lauffähigen Code, Dokumentation oder andere Artefakte transformiert werden. Falls doch einmal eine grafische Darstellung gewünscht ist, lässt sich diese über openArchitectureWare (www.openarchitectureware.org) und "Graphviz" (www.graphviz.org) erzeugen.

(Andreas Graf, Project Manager und Business Analyst bei der Itemis AG, Lünen)

CW-Fazit: Die Modellierung mit domänenspezifischen Sprachen reduziert ein Projekt auf das spezifische Problem und trägt damit zur besseren Kommunikation bei. Xtext ist hierfür ein einfaches, aber effizientes Tool.