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.
- Add Support for Self Loops for Polyline / Spline Layouts
Self loops, that is, edges connecting a node with itself, need to be properly routed. This is already implemented for orthogonal edge routing, but is still an open problem for spline and polyline edge routing.
- 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.
- 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.
- Improved Edge Label Placement
Our layout algorithm already supports the placement of edge labels. However, there's still room for improvement...
- Control Flow Graph Exploration / Visualization
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.
- 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.
- FPGA Statecharts
Development of a Statecharts editor, based on .NET, WPF, MS Silverlight. Synthesis onto FPGAs with a data-flow-based intermediate format.
Integrate the synchronous Quartz language into KIELER for validation purposes and teaching.
- Diagram Description Language
Developing the concepts and implementation of a diagram description language based on Klighd, with SyncCharts as application example.
- 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.
- Spline Layout
Develop a proper spline routing for KLay Layered. Part of this would be implementing self-loops with splines. The expected end result is that KLay Layered can well be used to layout state charts.
- Compound Graph Layout
Design and implement new concepts for computing layouts of compound graphs.