Modellieren und Generieren von Aktionsplänen für autonome mobile Systeme

Student:Robert Klinger
Title:Modellieren und Generieren von Aktionsplänen für autonome mobile Systeme
Type:bachelor thesis
Advisors:Kips, D.; Jung, M.
State:submitted on October 2, 2017
Prerequisits:
Topic:

Hintergrund:
Entwicklung in komplexen Systemen wird in zunehmendem Maß durch den Einsatz von DSLs (domänenspezifischer Sprachen) und darauf basierenden Generatoren vereinfacht. Der generierte Code muss jedoch die klassischen Eigenschaften (modulare Struktur, hohe Kohäsion von und geringe Kopplung zwischen Modulen) aufweisen.
Am Beispiel einer mobilen, modular aufgebauten Roboter-Plattform (genannt "Rover") soll gezeigt werden, dass DSL-basierte Ansätze auch im Kontext von PLE (Product Line Engineering) zielführend eingesetzt werden können.
Die Roboter-Plattform ermöglicht unterschiedliche Konfigurationen, die sich durch die vorhandenen Features wie z.B. Greifarm, Abstandssensoren oder Kamera unterscheiden. Standardmäßig werden nun bei der Erstellung der DSL Konzepte wie "Greifarm", "Abstand" oder "Video" abgebildet. Somit kann es sein, dass ein Fahrplan für eine Rover-Konfiguration zwar ein korrektes Modell darstellt, der Programm-Code zur Ablaufsteuerung somit auch generiert, aber nicht ausgeführt werden kann.
In der Arbeit ist zu untersuchen, wie eine DSL aufzubauen ist, so dass sie für ein Feature der PLE die entsprechenden Sprachmittel und Generatoren modular zur Verfügung stellt. Modular bedeutet dabei, dass die DSL und die Generatoren auf eine Feature-Konfiguration der DSL leicht angepasst werden können, und dass sich der generierte Code in seiner Modul-Struktur an der Feature-Struktur der PLE anlehnt. Dabei sollen zwei Ansätze verglichen werden: Konzeption und Pflege der DSL als Superset ("Super-DSL") aller PLE Features im Gegensatz zu einer Kern-Sprache und optionalen DSL-Modulen ("Modul-DSL") pro Feature der PLE. Entsprechende Vergleichskriterien sind herauszuarbeiten.
Am Beispiel des Rovers ist zunächst eine DSL zu entwickeln (bzw. eine bestehende zu erweitern), die das Formulieren grundlegender Aktionspläne (vorwärts, rückwärts, links, rechts) erlaubt für Aktionen, die in jeder Konfiguration des Rovers vorhanden sind. Dazu ist ein Generator zu entwickeln, der die Aktionspläne in lauffähigen Programm-Code umwandelt. Dann ist die DSL in beiden oben genannten Ansätzen anzupassen, wenn die beiden Features "Kamera" und "Abstandssensor" in die PLE aufgenommen werden. Dabei ist der in der Theorie erarbeitete Vergleich zu validieren.

Grundlagen (werden zur Verfügung gestellt):

  • Rover mit OSGi-Laufzeitumgebung
  • PLE Modell für Rover-Basis und die Features "Kamera" und "Abstandssensor"
  • Low-Level-API für den Antrieb des Rovers

Meilensteine:

  • Festlegung der Basis-DSL (Ggf. Auswahl einer bereits bestehenden DSL)
  • Implementierung des Generators für die Basis-Sprache, der OSGi Bundles erzeugt
  • Erarbeiten der Vergleichskriterien
  • Erweiterung der DSL sowohl als Super-DSL als auch als Modul-DSL
  • Validierung des Vergleichs beider Ansätze
  • Anfertigung der Ausarbeitung

Literatur:

  • Voelter, M., "DSL Engineering: Designing, Implementing and Using Domain-Specific Languages", CreateSpace Independent Publishing Platform
  • Combemale, B. et al., "Engineering Modeling Languages: Turning Domain Knowledge into Tools", CRC Press Inc
  • Nordmann, A. et al. "A Survey on Domain-Specific Modeling and Languages in Robotics", Journal of Software Engineering for Robotics
  • Taha, W. (Ed.), "Domain-Specific Languages", LNCS5658
  • Petriu, D., Rouquette, N., Haugen, O. (Eds), "Model Driven Engineering Languages and Systems", LNCS6395
  • Pohl, K., Böckle, G., van der Linden, F., "Software Product Line Engineering: Foundations, Principles and Techniques", Springer
watermark seal