Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Here's a selection of possible bachelor and master topics. If you're interested in one of them, don't hesitate to contact us! We'll sit down, have tea, and talk about what we could do together.

Bachelor Topics

Graph Layout

  • Implement Greedy Switch Heuristic for Crossing Minimization
    The order of nodes in a layer determines the number of crossings and is computed during the crossing minimization step. The results can usually be further improved by switching the order of nodes around, which we currently lack proper algorithms for. 
    Jira
    serverKIELER JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId2851bd34-0bf1-3f02-ab12-7d77ccab0fae
    keyKIPRA-891
  • Layering Algorithms
    Implement an alternative algorithm for the layer assignment problem used in the layer-based approach to graph layout.
  • Integrate KIML with JGraph
    Provide automatic layout through KIML for the JGraph diagram library and develop a simple JGraph-based graph editor to test the integration with.
    Jira
    showSummarytrue
    serverKIELER JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId2851bd34-0bf1-3f02-ab12-7d77ccab0fae
    keyKIPRA-1214
  • Improved Edge Label Placement
    Our layout algorithm already supports the placement of edge labels. However, there's still room for improvement...
  • Implement a KlayJS adapter for D3.js
    The D3.js library is a well-known and widely-used Javascript library for SVG-based visualizations and already comes with force-based graph layout algorithms. Implement an adapter that allows to use D3 with KlayJS.

Modeling Pragmatics

...

Hier eine Themenübersicht, gefolgt von etwas detaillierteren Darstellungen. Generell sind Themenvariationen möglich, und auch selbst definierte Themen aus dem Bereich Echtzeitsysteme/Eingebettete Systeme können gerne besprochen werden. Ein weiterer Weg, um in kompakter Form einen Einblick in aktuelle Themen der Arbeitsgruppe zu bekommen, ist die Teilnahme an dem regelmäßig zu Semesterende bzw. in der vorlesungsfreien Zeit angebotenen Oberseminar.

Hinweis: Es ist Studierenden ausdrücklich empfohlen, sich frühzeitig bei den verschiedenen Arbeitsgruppen über mögliche Themen der Abschlussarbeit zu informieren. WWW-Seiten wie diese hier sind ein guter erster Anlaufpunkt, und es ist eine gute Idee, sich vor einem Gespräch mit einem potenziellen Betreuer (Professor, Assistenten -- generell die Dozenten von Lehrveranstaltungen) über mögliche Themen einen Blick auf diese Seiten zu werfen. Es ist jedoch erfahrungsgemäß schwierig, auf solchen Seiten vollständige und aktuelle Informationen bereitzustellen; sie sollten daher eher als grober Indikator der jeweils möglichen Themenfelder dienen denn als konkrete Ausschreibungen. Um zu erfahren, welche Themen konkret verfügbar sind, zu dem angestrebten Zeitrahmen, sollte man auf jeden Fall die Dozenten konsultieren.

Die möglichen Themen sind im Folgenden thematisch gruppiert. Die Zahlen vor der Themenbeschreibung stehen für Prioritäten. Je kleiner die Zahl, desto wichtiger ist uns das Thema.

Outline

Table of Contents
excludeOutline

Automatic Graph Layout

Advisors: Christoph Daniel Schulze, Reinhard von Hanxleden.

Ein sehr wichtiges Gebiet für uns ist das automatische Layout von Diagrammen. Hierfür gibt es bereits Werkzeuge, die gute Algorithmen enthalten, so dass viele Diagramme bereits jetzt übersichtlich und automatisiert angeordnet werden können (siehe z.B. Graphviz). Für einige besondere Arten von Diagrammen sind diese allgemeinen Algorithmen jedoch nicht geeignet, da zusätzliche Anforderungen an das Layout erfüllt werden müssen. Außerdem ist häufig die technische Anbindung vorhandener Algorithmen umständlich. Nutzer müssen sich mit der Funktionsweise der Algorithmen beschäftigen, um sie für ihre Anwendung optimal konfigurieren zu können.

Wir verfolgen drei Themenbereiche, die zusammen solche Probleme lösen und den Nutzen von automatischem Layout erhöhen sollen:

» Algorithmen-Entwicklung. Wir implementieren vorhandene Ansätze zum Layout von Graphen in Java und binden sie in unser Projekt ein. Der Schwerpunkt liegt auf dem Entwurf von Erweiterungen, die spezielle Anforderungen unterstützen, z.B. für Datenfluss-Diagramme. Dies ist gut für alle geeignet, die sich gerne mit Graphentheorie, effizienten Algorithmen oder kombinatorischer Optimierung beschäftigen.

» Dienste. Algorithmen und Meta Layout müssen den Anwendern zugänglich gemacht werden, damit ein Nutzen daraus entsteht. Dazu müssen wir verschiedenste graphische Frameworks mit vorhandenen Layout-Bibliotheken integrieren und eine Reihe von Werkzeugen entwickeln, mit denen die Verfügbarkeit unserer Lösungen gesteigert wird. Hierzu gehört z.B. die Unterstützung von Standard-Graphenformaten sowie ein Web-Service für automatisches Layout.

Die Entwicklung geschieht im Eclipse Layout Kernel-Projekt (kurz ELK), einem offiziellen Eclipse-Projekt welches hauptsächlich wir betreuen und weiter entwickeln. Ergebnisse in diesem Bereich fließen damit einer tatsächlich existierenden Nutzerbasis zu.

Modeling Pragmatics

Advisors: Christoph Daniel Schulze, Reinhard von Hanxleden

  • Post-Processing Label Placement with Label Management (Bachelor, Master)
    This is about implementing a stand-alone label placement algorithm that can place node and edge labels after everything else has already been placed. Since there might not be enough space to place all labels, the algorithm should provide different options of coping with such situations. One would be to hide such labels, another one would be to apply label management to them.
  • Compound Graph Exploration (Bachelor, Master)
    A new graph exploration approach should be examined which is uses different zoom levels for different compound nodes. This tries to map the "Google Maps approach" of only showing the information of interest at any given zoom level to the field of graph exploration.
  • Improvements to Spline Edge Routing (Bachelor, Master)
    Spline edge routing closely follows the routes orthogonal edges would take. A Bachelor's thesis could work on improving how splines connect to their end points to make the results look more natural. A Master's thesis could look at improving the routes splines take through a diagram more generally.
  • Control Flow Graph Exploration / Visualization (Bachelor)
    Use pragmatics concepts (automatic layout, focus & context) for exploring/visualizing control flow graphs and specific paths, eg. as computed by OTAWA WCET analysis tool, eg. using Klighd.
  • OMG DD Format
    Explore the mapping of KGraph / KRendering to the Diagram Definition format of the OMG.

Semantics and Synchronous Languages

  • Validation Manager for Models
    Develop an integrated, flexible and generic syntactic validation framework for models (e.g. Esterel or SyncCharts).
  • Esterel / SyncCharts Validation
    Automate the validation for a (generic) SyncCharts simulator employing the Esterel simulator and the Esterel to SyncCharts transformation.
  • Transformation from SyncCharts to Esterel [possibly also Master Topic]
    Develop a transformation in Xtend2 to generate Esterel code for SyncCharts.

Miscellaneous Topics

  • Developing an Info Screen
    Info screens are screens that present data in ways that can be easily understood. This includes static data (project description graphics, members of a team, ...) as well as dynamically aggregated data (bug statistics, automatic build overviews, ...). This topic is about developing such an info screen for our group and making it easily configurable.

Master Topics

Graph Layout

  • Layering Algorithms
    Develop an alternative algorithm for the layer assignment problem used in the layer-based approach to graph layout. The algorithm shall be extended to consider the number of edge crossings and an optimal aspect ratio.
  • Node Placement
    Develop a new node placement algorithm that finds a good balance between keeping edges straight and keeping the drawing from getting too big.
  • Compound Graph Layout
    Design and implement new concepts for computing layer-based layouts of compound graphs. The main focus shall be on maintainability: ensuring that the implementation can be kept working over the years.
  • Force Based Drawing with Port Constraints
    Develop methods for integrating port constraints in force-based drawing approaches. The resulting node placement shall be evaluated using an edge router such as libavoid on the model library of Ptolemy.
  • Combining Forces and Layers
    Design and implement a layout algorithm that combines the force-based and the layer-based approaches. The first three phases of the layer-based approach shall be replaced by a node distribution computed with a force-based approach.

Modeling Pragmatics

  • Diagram Description Language
    Developing the concepts and implementation of a diagram description language based on Klighd, with SyncCharts as application example.

Semantics and Synchronous Languages

  • FPGA Statecharts
    Development of a Statecharts editor, based on .NET, WPF, MS Silverlight. Synthesis onto FPGAs with a data-flow-based intermediate format.
  • [Quartz]
    Integrate the synchronous Quartz language into KIELER for validation purposes and teachingKLighD.

Further possible thesis topics can be found in ELK's GitHub repository. Note, however, that some issues there may already be worked on.

Semantics, Synchronous Languages and Model-based Design

Advisors: Steven Smyth, Alexander Schulz-Rosengarten, Reinhard v. Hanxleden

Synchronous languages are well-established for the design of embedded, in particular safety-critical systems. One of our research areas concerns the further development of such languages and their efficient compilation. Specifically, we explore the paradigm of "sequential constructiveness" for reconciling familiar, imperative programming concepts with the sound grounding of synchronous languages. One language we have developed to try out and validate our concepts is the SCCharts language, which keeps evolving and thus offers many opportunities for student theses.

SCCharts Code Generation & Optimizations

  • Optimization of the SCCharts compiler/transformations (Bachelor/Master)
    Profile the actual SCCharts compiler/transformations and apply optimizations; also evaluate the possibility to use multiple cores for compilation.
  • Efficient data dependency & scheduling analyses in SCCharts (Master/Bachelor)
    Implement analyses for data dependencies and scheduling (e.g. tick boundaries) for SCCharts to improve static scheduling of the compiler.
  • Javascript code generation (Bachelor/Master)
    Implement a javascript code generation for SCCharts. Integrate with simulation and (environment) visualization to deploy a complete example as standalone web page. Compare with HipHop.js based on Esterel.

SCCharts Simulation

  • Visualization of Model-based Simulation via Tracing (Bachelor/Master)
    Use the already implemented Model-to-Model-Tracing in KIELER to visualize simulations. 
  • Core SCCharts Interpreter with dynamic Scheduling (Master/Bachelor)
    Implement an Interpreter for Core SCCharts that supports SC Policies.
  • Live Debugging of Statecharts (Master/Bachelor)
    Implement a dedicated debugging view for SCCharts.
  • Microstep-Simulation of Statecharts (Master/Bachelor)
    Implement a method to do microstep simulation with SCCharts.

Model-based C Code Compilation

  • Execution of Recursive Dataflow Code (Master/Bachelor)
  • Execution of Concurrent Dataflow Code (Master/Bachelor)
    Modify the model-based dataflow compiler in KIELER so that it is able to compile recursive/concurrent C programs.
    For Master students: Implement both.