Graphische Visualisierung von Kontrollflussgraphen

Dieses Projekt ist als Bakkalaureatsprojekt (Studienkennzahl 521) gedacht.


Kontrollflussgraphen sind häufig verwendete interne Datenstrukturen von Compilern. Die Knoten des Graphen sind Blöcke, die immer sequentiell durchlaufen werden. Diese Blöcke sind durch gerichtete Kanten verbunden, die den Kontrollfluss, z.B. Bedingungen oder Schleifen, repräsentieren.

Das Programm soll Kontrollflussgraphen in einer übersichtlichen graphischen Form darstellen. Wichtige Punkte sind dabei:

  • Integration in eine bestehende Applikation unter Verwendung der Eclipse Rich Client Platform und des Graphical Editing Framework
  • Darstellung in verschiedenen Detail-Ansichten, manuelles Verschieben von Blöcken zum Anpassen der Ansicht
  • Erkennen von typischen Programm-Strukturen wie Verzweigungen und Schleifen und Berechnen einer möglichst guten graphischen Anordnungen der Blöcke, sodass sich Kanten möglichst wenig überschneiden
  • Zusatzfunktionen wie z.B. Anzeigen von weiteren Details zu jedem Block, Zusammenfassen von Blöcken, ...
  • Das Erstellen und Bearbeiten von Kontrollflussgraphen im Programm ist nicht vorgesehen

Hinweise: Das Projekt soll in einzelnen Stufen bearbeitet werden:

  • Die Problemanalyse soll mit einem kurzen Pflichtenheft (2-4 Seiten) abgeschlossen werden.
  • An die Analyse soll sich die Implementierung anschließen.
  • Als Abschluss des Bakkalaureatsprojekts ist ein schriftlicher Bericht von 30-40 Seiten abzugeben, der zumindest die folgenden Kapitel enthalten soll: Beschreibung der Aufgabe und ihres Umfeldes (d.h. wichtige Begriffe, bestehende Lösungen, etc.), Benutzerdokumentation, Implementierungsbeschreibung, Kritische Beurteilung und Ausblick.

Betreuung: Nach der intensiveren Anfangsphase (kurze Besprechungen im Wochenabstand), die zur Absteckung des Problemfeldes und zur Klärung von Problemen dient, sollen im Zweiwochen-Rhythmus kurze Besprechungen stattfinden, um einen zügigen Fortgang des Projekts zu gewährleisten.

Programmiersprache: Java
Betreuer: Dipl.-Ing. Christian Wimmer