feasiPLe Logo

Forschungsprojekt feasiPLe

Feature-getriebene, aspektorientierte und modellgetriebene Produktlinienentwicklung

Transformation domänenspezifischer Sprachen

Für die Erzeugung einer ausführbaren Produktinstanz, ist es notwendig, unter Anwendung verschiedener Modelltransformationen und Codegenerierungsschritte Ausdrücke der zur Systemspezifikation verwendeten DSLs auf eine einheitliche Implementierungssprache abzubilden. In feasiPLe wird dazu ein gestufter MDSD Prozess verankert, welcher diese Abbildung über verschiedene Zwischenstufen und Abstraktionsebenen vornimmt. Sein Ergebnis ist eine integrierte Beschreibung des Gesamtsystems. Wir gehen dabei davon aus, dass die verwendeten DSLs durch ein Metamodell beschrieben werden und DSL-Ausdrücke in Modellform vorliegen.

Mehrstufiger Instanziierungsprozess

Die Produktinstanziierung aus DSL-basierten Systemspezifikationen lässt sich in verschiedene Stufen unterteilen, welche die Differenzierung funktionaler, platttformbezogener und kontextueller Variabilität im Problemraum einer Produktlinie widerspiegeln.

Im ersten Schritt werden die funktionalen Variationspunkte der Produktlinie gebunden. Dazu werden in einer Modell-zu-Modelltransformation variantenunabhängige Modelle zu variantenspezifischen Modelle umgeformt. Dieser Transformationsschritt wird durch ein funktionales Variantenmodell gesteuert. In der darauffolgenden Stufe werden Plattformspezifika gebunden. Dies erfolgt wiederum mittels Modell-zu-Modelltransformationen, welche aus DSL-Modellen bzw. plattformunabhängigen Modellen plattformspezifische Modelle erzeugen. Im letzen Schritt wird aus den vorliegenden Modellen Quellcode für eine bestimmte Zielplattform generiert.

Selbstverständlich ist diese Mehrstufigkeit nur optional. Wenn es Abstraktionsgrad und Variabilitätsmodellierung zulassen, könnte beispielsweise eine Codegenerierung auch direkt aus DSL-Instanzen erfolgen.

Unterstützung verschiedener Kompositionssysteme bei der Produktinstanziierung

Die Vielfalt der Transformationsschritte, macht es notwenig, eine generische Werkzeugumgebung zu entwickeln, welche deren integrierte Verwendung ermöglicht. Um auch andere im Kontext von feasiPLe relevante Realisierungstechnologien (Graphersetzungssystem, CeasarJ, Reuseware) zu integrieren, wird das abstrakte Konzept des Kompositionsschritts eingeführt.

Jeder Kompositionsschritt verwendet ein bestimmtes Kompositionssystem, z.B. Modelltransformation, Codegenerierung, Aspektweben oder Graphersetzung. Damit beschreibt ein Kompositionssystem eine Werkzeugkomponente, welche aus eine Menge von Eingabeartefakten Ausgabeartefakte erzeugt. In der Produktlinienentwicklung werden die Eingabeartefakte durch das Mapping von Features (Konfigurationselemente im Problemraum) auf Realisierungsartefakte bestimmt. Für die Realisierung eines mehrstufigen Instanziierungsprozesses werden mehrere Kompositionsschritte verkettet. Bei der Umsetzung der Werkzeugumgebung sind verschiedene Problemstellungen zu lösen:

  • Um die Korrektheit und Effizienz der Produktinstanziierung sicherzustellen, sind Abhängigkeiten zwischen Kompositionsschritten zu beachten
  • Bei der Spezifikation von Eingabe- und Ausgabeartefakten wird Werkzeugunterstützung benötigt
  • Die Granularität der Artefakte ist abhängig vom verwendeten Kompositionssystem
  • Es muss beachtet werden, dass Artefakte andere Artefakte beinhalten können (z.B. ein Modellelement ist im der Datei enthalten, die das Modell speichert)
  • Zyklische Abhängigkeiten zwischen Kompositionsschritten müssen erkannt und aufgelöst werden


Zurück zur feasiPLe Architektur