Im Projekt QualiTune [1] vom Lehrstuhl Softwaretechnologie der Informatik-Fakultät suchen wir einen fitten Studenten, der bei seinem Großen Beleg oder seiner Diplomarbeit folgendes Thema bearbeiten möchte.

Entwurf und Implementierung eines Programm-Analyse-Generators für EMFText

Beschreibung
Mit Techniken der statischen Programmanalyse lassen sich Programme vor deren Ausführung (also statisch) analysieren. So kann zum Beispiel die Abwesenheit von Laufzeitfehlern wie NullPointerExceptions oder die fehlende Initialisierung von Variablen überprüft werden. Aussagen über das Laufzeitverhalten von Programmen kann ebenfalls statisch analysiert werden (z. B. worst case execution time). Dazu arbeiten statische Programmanalysatoren in der Regel auf dem Kontrollflussgraphen (control flow graph, CFG) der Programme. Bereits 1999 hat Florian Martin in seiner Dissertation gezeigt, dass sich statische Programmanalysatoren aus Spezifikationen generieren lassen, sodass die komplexe Aufgabe der CFG-Traversierung für den Entwickler auf die Beschreibung der eigentlichen Analyse reduziert werden kann [2].

Am Lehrstuhl für Softwaretechnik wird seit einigen Jahren das Werkzeug EMFText [3] entwickelt, dass es erlaubt, für auf dem Eclipse Modeling Framework (EMF) basierende Metamodelle Grammatiken zu spezifizieren und daraus Parser/Printer für textuelle Sprachen zu generieren. Im Forschungsprojekt QualiTune sollen Techniken der Modell-Basierten Software-Entwicklung (Model Driven Software Development - MDSD) auf die Domäne zukünftiger eingebetteter Systeme (sog. Cyber-Physical Systems, CPS) übertragen werden. Dabei stehen nicht-funktionale Eigenschaften im Vordergrund. Im Kontext von QualiTune werden mit EMFText entwickelte Sprachen zur Steuerung von CPSs wie z. B. humanoiden Robotern verwendet. Programmanalysatoren sollen hier für die Ermittlung von nicht-funktionalen Eigenschaften (z. B. Energieverbrauch, Laufzeitverhalten) genutzt werden. Im Rahmen dieser Forschungsarbeit soll das Werkzeug EMFText um einen Programm-Analyse-Generator (PAG) nach dem Vorbild von Florian Martin erweitert werden, der es erlaubt, für EMFText-basierende Parser statische Programmanalysatoren aus Spezifikationen zu generieren. Neben dem Entwurf soll das Werkzeug prototypisch implementiert und im Kontext von QualiTune an der Sprache NaoText evaluiert werden.

Im Detail sind folgende Teilaufgaben zu bearbeiten:
  • Einarbeitung in die statische Programmanalyse und den Themenbereich der Programm-Analysator-Generierung
  • Entwurf eines Programm-Analyse-Generators (PAG) für mit EMFText entwickelte Sprachen
  • Prototypische PAG-Implementierung und Evaluation mittels statischer Programmanalyse für die Sprache NaoText
  • Optional die Evaluation des PAGs anhand weiterer Sprachen aus dem EMFText Syntax Zoos
Verantwortlicher Hochschullehrer: Prof. Dr. rer. nat. habil. Uwe Aßmann
Betreuer: Dipl.-Medieninf. Claas Wilke (claas.wilke at tu-dresden.de)

[1] http://www.qualitune.org/
[2] F. Martin: Generating Program Analyzers, Dissertation, Universität des Saarlandes, 1999.
[3] http://www.emftext.org/