|
|
 |
 |
 |
 |
 |
 |
 |
 |
 |
Modellbasierte Codegenerierung für Software-Varianten mit Template Engines
|
 |
|
| |
Zur Erlangung des Grades Diplom-Informatiker
|
| |
| Autor: | Daniel Käps |
|   | |
| |
| Betreuer: | Dipl.-Inf. Ruslan Hrushchak |
| | hrushchak@ebus.informatik.uni-leipzig.de |
| |
| |
| Betreuer: | Dipl.-Inf. Michael Becker |
| | becker@ebus.informatik.uni-leipzig.de |
| |
| |
Im Bereich der modellgetriebenen Software-Entwicklung (MDSD) und im Bereich der Software-Produktlinien (SPL) werden zur Codegenerierung häufig Template Engines eingesetzt, um Varianten von Source Code zu generieren. Der Einsatz einer Template Engine (TE) und von Codegenerierung im Allgemeinen birgt aber einige Schwierigkeiten bei der Integration dieser in den Entwicklungsprozess. Darüber hinaus besitzen existierende Template Engines Einschränkungen bezüglich Ausdrucksstärke, Flexibilität, Modularisierung und Debugging-Unterstützung der erstellten Templates.
Für den Einsatz einer an der Professur für Angewandte Telematik / e-Business entwickelten Feature-Modellierungssoftware bei z.B. SPL-Entwicklungen sollen Varianten von Source-Code u.a. mit Template Engines auf Basis von erstellten Feature-Modellen generiert werden. Es existiert eine Vielzahl an TE Systemen, welche sich jedoch in ihren Ansätzen, Eigenschaften und Möglichkeiten stark unterscheiden. Es stellt sich daher zuerst die Frage, welche Eigenschaften einer Template Engine notwendig oder sinnvoll sind, um Variations- und Komposititionsmechanismen für Source Code bzw. allgemein Textdateien und Textfragmente unter Zugriff auf Modelldaten in leistungsfähiger Weise zu ermöglichen, und inwieweit dabei Aspekte wie die Modularisierbarkeit von Templates, Fehlererkennung usw. berücksichtigt werden.
Wenn Source Code generiert wird, dann wird dadurch der gesamte Entwicklungsprozess zunehmend komplex, dies hat Auswirkungen beim Debugging und auf das Management des Build-Prozesses. Bei SPL Entwicklungen entsteht etwa der Wunsch, zwecks Continuous Integration (CI) und zu Testzwecken Teilmengen der Gesamtmenge an Produktvarianten zu generieren. Ein weitere wichtige Problemstellung ist daher die Integration der Codegenerierung mittels Template Engines in den gesamten Enwicklungs-Workflow und in den Build-Prozess.
Die Arbeit soll die aufgeworfenen Fragestellungen zur Generierung von Varianten von Source Code mit Template Engines beantworten, und hierbei Stärken und Schwachpunkte existierender Systeme ermitteln sowie Verbesserungsmöglichkeiten analysieren. Weiterhin soll eine Template Engine Architektur entworfen werden, welche verschiedene Verbesserungsmöglichkeiten berücksichtigt und einen Zugriff auf Modelldaten und eine Integration mit Modellierungswerkzeugen ermöglicht. Diese Architektur soll als Prototyp umgesetzt werden und eine Integration mit der Feature-Modellierungssoftware bieten, u.a. mit der Möglichkeit des Zugriffs auf Feature-Modelldaten. Abschließend sollen verschiedene Eigenschaften des Template Engine Prototyps mit einem Beispielmodell getestet werden.
|
| |
| |
|
| |
|
|
 |
 |
 |
 |
|