Entwicklung

Mit Eclipse zum Modellaustausch

23.05.2011
Von Karsten Thoms

Modellierungssprachen

Zur Modellierung der vielfältigen Aspekte in einem Softwareprojekt werden unterschiedliche Modellierungssprachen eingesetzt. Am weitesten verbreitet ist hier die Unified Modeling Language (UML). Durch Profile lässt sie sich auf spezifische Anwendungsbereiche erweitern. So wurde beispielsweise mit SysML von der OMG und dem International Council on Systems Engineering eine Erweiterung für den Systementwurf standardisiert. Die UML besitzt eine grafische konkrete Syntax und ist für zahlreiche Problemstellungen der Softwaremodellierung einsetzbar. Sie ist eine visuelle, universell verwendbare Modellierungssprache (General Purpose Language - GPL).

Das Eclipse-Plug-in TextUML bietet einen einfachen Editor für Modellinformationen.
Das Eclipse-Plug-in TextUML bietet einen einfachen Editor für Modellinformationen.

Doch Modellierungssprachen müssen nicht unbedingt eine visuelle konkrete Syntax besitzen. Es gibt auch eine Vielzahl textueller Modellierungssprachen. Sie zeichnen sich oft dadurch aus, dass sie einen stärkeren Bezug zum Problemkontext besitzen. Stark im Trend liegen derzeit textuelle domänenspezifische Sprachen (Domain Specific Language - DSL). Diese erlauben die Erstellung von Modellen in textuellen Notationen, die stark auf die Problemdomäne ausgerichtet sind.

Das Eclipse Modeling Project bietet zahlreiche Möglichkeiten zur Entwicklung von Werkzeugen für textuelle und visuelle DSLs. Mit dem Eclipse Modeling Framework (EMF) hat sich ein De-Facto Standard gebildet, auf dessen Basis immer mehr Modellierungswerkzeuge entwickelt werden. Treibend sind hier vor allem IBM und Borland, deren Entwicklungswerkzeuge Rational Software Architect und Together auf EMF aufsetzen. Auch Microsoft hat den Bedarf nach DSL Werkzeugen längst erkannt. In Visual Studio 2008 wurden erstmals die Domain-Specific Language Tools integriert. Mit dem Projekt Oslo geht Microsoft heute einen deutlichen Schritt weiter.

Domänenspezifische Sprachen

Domänenspezifische Sprachen (Domain Specific Language - DSL) sind formale Sprachen, die für ein spezielles Problemfeld (Domäne) optimiert sind. Die Sprachelemente und Struktur einer DSL entspricht dem natürlichen Verständnis von Domänenexperten zur Beschreibung von Problemlösungen.

Klassifizierung domänenspezifischer Sprachen:

  • Interne (eingebettete) DSL: Die Definition der DSL erfolgt in einer allgemeinen Sprache (Host-Sprache). Beispiele für interne DSLs sind UML2 Profile und XML Schema.

  • Externe DSL: Die DSL ist eine eigenständige Sprache. Dies erfordert meist die Entwicklung spezifischer Werkzeuge (Parser, Editoren etc.) für diese Sprache. Beispiele für externe DSLs sind SQL, reguläre Ausdrücke, WebML (www.webml.org), ereignisgesteuerte Prozessketten (EPK) und die BPML.