feasiPLe Logo

Forschungsprojekt feasiPLe

Feature-getriebene, aspektorientierte und modellgetriebene Produktlinienentwicklung

DSLs in der Produktlinienentwicklung

Die Unterscheidung und separate Spezifikation verschiedener Aspekte des Lösungsraums einer Produktlinie ist ein geeignetes Mittel, um deren Komplexität zu beherrschen. Es bietet sich der Einsatz domänenspezifischer Sprachen (DSLs) an, da deren auf ihren Anwendungsbereich zugeschnittene Konzeptualisierung die semantische Lücke zwischen Domäne und Beschreibungssprache verringert.

Editoren und weitere Werkzeuge für DSLs

Um eine Vielzahl verschiedener Sprachen zu unterstützen, werden stabile Formalismen zur Sprachdefinition und Werkzeugentwicklung benötigt. Im Zentrum einer Sprachdefinition steht deren abstrakte Syntax, d.h. die der Sprache zugrundeliegende Konzeptualisierung. Der Ansatz der Modellgetriebenen Softwareentwicklung führt dazu die sogenannten Metamodelle ein, welche zur Definition einer Modellsprache dienen. Unter Anwendung von Modelltransformationen und Codegenerierung aus Modellen können Ausdrücke der verschiedenen Modellsprachen auf eine einheitliche Implementierungssprache abgebildet werden. Das Ergebnis ist eine integrierte Beschreibung des Gesamtsystems.

Die Eclipse IDE versammelt eine Vielzahl von Werkzeugen, welche die Entwicklung von DSL-Editoren und weiterer DSL-Werkzeuge unterstützt:

  • Das Eclipse Modeling Framework (EMF) zur Sprachmetamodellierung und Generierung baumbasierter Editoren
  • Das Graphical Modeling Framework (GMF) zur Generierung von graphischen Editoren
  • Verschiedene Werkzeuge zur Entwicklung von textuellen Editoren (Sintaks, Textual Concrete Syntax (TCS), Textual Editing Framework (TEF))
  • Verschiedene Sprachen zur Modelltransformation (ATL, openarchitectureware Xtend, QVT)
  • Verschiedene Sprachen zur Codegenerierung (JET, openarchitectureware Xpand)

DSLs im Kontext der Produktlinienentwicklung

Aufbauend auf diesen existierenden Technologien widmen wir uns den folgenden Problemstellungen für den Einsatz von DSLs im Kontext der Produktlinienentwicklung.

  • Generische Kopplung von Features im Problemraum mit Artefakten beliebiger DSLs
  • Featuregetriebene Transformation von DSL-Ausdrücken zur Selektion eines konkreten Produktes
  • Semantische Kopplung verschiedener DSLs
  • Effiziente DSL-Realisierung durch Sprachkomposition
  • Umsetzung von Embedded DSLs mit Hilfe aspektorientierter Techniken

Zurück zur feasiPLe Architektur