Wiki source code of Topics for Student Theses

Version 92.1 by cds on 2017/06/16 14:09

Show last authors
1 Hier eine Themenübersicht, gefolgt von etwas detaillierteren Darstellungen. Ein anderer 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.
2
3 Die meisten Themen lassen sich sowohl als Bachelor-/Master-/Diplomarbeit als auch, mit eingeschränktem Umfang, als Studienarbeit definieren. Generell sind Themenvariationen möglich, und auch selbst definierte Themen aus dem Bereich Echtzeitsysteme/Eingebettete Systeme können gerne besprochen werden.
4
5 **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.
6
7 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.
8
9 = Outline =
10
11
12
13 {{toc exclude="Outline"/}}
14
15 = Automatic Graph Layout =
16
17 **Advisors:** Ulf Rüegg, Christoph Daniel Schulze.
18
19 Ein sehr wichtiger Teil des KIELER Projekts is 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>>url:http://www.graphviz.org/||shape="rect" class="external-link"]]). 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.
20
21 Wir verfolgen drei Themenbereiche, die zusammen solche Probleme lösen und den Nutzen von automatischem Layout erhöhen sollen:
22
23 //» Algorithmen-Entwicklung.// Wir implementieren vorhandene Ansätze zum Layout von Graphen in Java und binden sie in das KIELER Framework 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.
24
25 //» Meta Layout.// Hierunter verstehen wir ein abstraktes Layout, welches im Gegensatz zum konkreten Layout nicht durch (x,y) Koordinaten definiert ist, sondern den Nutzern verschiedene Schnittstellen bietet, um auf schnelle und einfache Weise die Layout-Algorithmen zu konfigurieren. Die große Herausforderung liegt dabei in der Entwicklung von Abstraktionsebenen, die den Nutzer möglichst direkt zu einem guten Layout führen und trotzdem flexibel genug sind.
26
27 //» 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.
28
29 * **Evaluate Impact of Reversing Edges on Humans** (Master)
30 Reversing edges during the layer assignment problem as suggested by the previous topic may have a negative impact on the readability of diagram. User-studies should be carefully planned and conducted to answer two questions: which edges are naturally reversed by humans and does reversing too many edges worsen comprehensibility?
31 * **Node Placement With a Focus on Compactness** (Master)
32 Node placement algorithms often try to draw as many edges as straight lines as possible. However, that usually results in less compact diagrams. The focus of this topic would be to devise or adapt a node placement algorithm that tries to strike a balance between straightness and compactness.
33
34 \\
35
36 * **Interactive Constraint Creation and Application in Automatic Layout **(Bachelor, Master)
37 Evaluate options how to create constraints on the layout like "Node x should be placed at position y" and how to implement this in the current layout algorithms. Assess how such constraints can be persisted within the model.
38 * **Force Based Drawing with Port Constraints** (Master)
39 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>>url:http://www.adaptagrams.org/||shape="rect"]] on the model library of [[Ptolemy>>url:http://ptolemy.eecs.berkeley.edu/||shape="rect"]].
40
41 \\
42
43 * **Improved Spline Edge Routing **(Master)
44 Our layer-based layout algorithm is capable to route edges as splines. Evaluate the results using state machine diagrams, identify possible improvements and develop solutions to address these.
45 * **Orthogonal "Edge Bundling"** (Bachelor, Master)
46 Implement and evaluate strategies for orthogonal edge bundling within our layer-based layout algorithm.
47 \\
48 * **Force-directed Methods for State Machine Layout** (Master)
49 We currently use layer-based methods to layout SCCharts, a state machine dialect. The goal of this topic is to evaluate and implement force-directed methods to lay out SCCharts. Hard requirements are a proper placement of edge labels, proper routing of edges, and being able to specify the relative positioning of certain nodes to each other.
50 * **Routing of Self-Loops** (Master)
51 Self-loops are an integral part of many diagram types, for instance, of state diagrams and dataflow diagrams. Properly routing self-loops is not as easy as one may think. The task of this topic is to evaluate and implement different strategies to route self-loops for three edge routing styles: polyline, orthogonal, and splines. Labels of self loops are to be considered as well.
52 \\
53
54 = Modeling Pragmatics =
55
56 **Advisors:** Reinhard von Hanxleden, Ulf Rüegg, Christoph Daniel Schulze
57
58 * **1 Compound Graph Exploration** (Bachelor, Master)
59 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.
60 * **1 OpenStreetMap-Based Model Exploration** (Bachelor, Master)
61 Implement a prototype to investigate whether OpenStreetMap can be used to display custom data (such as, say, rendered diagrams) to use its filtering and exploration features for exploring large diagrams.
62 * **3 Control Flow Graph Exploration / Visualization** (Bachelor)
63 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.
64 * **Generate signal flow graphs from finished module descriptions (Bachelor)**
65 Use pragmatics concepts to parse YAML data and generate browsable signal flow diagrams for an audio application using KLighD. Might also include building an Xtext-based editor to write the YAML files in the first place and help highlight problems. (In conjunction with [[sonoware GmbH>>url:https://www.sonoware.de/en/||shape="rect"]])
66 * **Use signal flow graphs for parameterizing / debugging audio system configurations (Master)**
67 The configuration of how signals are routed and how signal processors are configured in an audio system is a complex task. Make configuration and debugging easier by providing a visualization of the current configuration. Also, research what will help developers and users find configuration problems. The resulting software can be integrated into an existing Python-based configuration application, or be developed as a standalone tool that communicates with the audio system through Ethernet. (In conjunction with [[sonoware GmbH>>url:https://www.sonoware.de/en/||shape="rect"]])
68
69 = Semantics, Synchronous Languages and Model-based Design =
70
71 **Advisors:** Steven Smyth, Alexander Schulz-Rosengarten, Reinhard v. Hanxleden
72
73 Heute haben sich eine ganze Reihe von Modellierungssprachen durchgesetzt, die grafische Modelle verwenden. Dazu zählen beispielsweise die [[Unified Modeling Language (UML) >>url:http://de.wikipedia.org/wiki/UML||shape="rect" class="external-link"]]oder die Werkzeugketten [[Simulink/Stateflow von Mathworks >>url:http://de.wikipedia.org/wiki/Simulink||shape="rect" class="external-link"]]und [[SCADE von Esterel-Technologies>>url:http://en.wikipedia.org/wiki/SCADE||shape="rect" class="external-link"]]. Letztere werden insbesondere auch im Entwurf eingebetteter und sicherheitskritischer Systeme (z.B. in Fahr- und Flugzeugen) eingesetzt.
74
75 (% class="external-link" %)
76 Wer bereits mit diesen Werkzeugen gearbeitet hat, kennt aber auch die Schwächen dieses Prozesses: Während die grafische Visualisierung hilfreich bei der Analyse des Systems sein kann, ist die Erstellung eines grafischen Modells meist sehr Zeitaufwändig. In den bisher meist vorherrschenden [[WYSIWYG >>url:http://de.wikipedia.org/wiki/WYSIWYG||shape="rect" class="external-link"]]Editoren müssen sich die Entwickler selbst um niedrige Tätigkeiten verdient machen, die mit dem eigentlichen System nichts zu tun haben: Zeichnen, Positionieren und Navigieren in einem grafischen Modell sind häufig die zeitraubendsten Schritte bei diesem Prozess. Das KIEL Projekt hat bereits für SyncCharts Modelle eindrucksvoll bewiesen, dass automatisches Layout von grafischen Modellen eine Vielzahl von neuen Möglichkeiten im modellbasierten Prozess ermöglicht.
77
78 Im KIELER Projekt wird dieser Ansatz verallgemeinert und auch für andere Sprachen umgesetzt. Das Projekt wird mit innovativen state-of-the-art Techniken des Software-Entwurfs entwickelt und bietet daher den Entwicklern Einblick in einen hoffentlich interessanten Entwicklungsprozess. Dies beinhaltet vor allem die Plug-in Entwicklung für die [[Eclipse >>url:http://de.wikipedia.org/wiki/Eclipse_%28IDE%29||shape="rect" class="external-link"]]Plattform und die Arbeit im Team, zu deren Unterstützung Projektmanagement-Werkzeuge wie dieses Conflunce Wiki eingesetzt werden.
79
80 Im Rahmen dieses Projektes gibt es Raum für zahlreiche Arbeiten mit übersichtlichem Umfang, die einen schönen (aber in sich abgeschlossenen) Beitrag zur Verbesserung der Handhabbarkeit vom modellbasierten Entwurf leisten können.
81
82 In diesem Kontext sind Themenstellungen für Bachelor-/Master-/Diplom- und Studienarbeiten beispielhaft genannt. Bei Fragen oder sprechen Sie einen Betreuer bitte direkt an:
83
84 \\
85
86 //SCCharts Modelling & Transformations//
87
88 * (% style="line-height: 1.4285715;" %)**On the pragmatics of modeling large models in SCCharts**(%%) (Bachelor/Master)
89 Evaluate the possibilities to create and maintain large models in model-based languages (i.e. SCCharts) and provide suggestions for improvements
90 * **Transformation of Circuits to SCCharts** (Bachelor/Master)
91 Implement a transformation that translates circuits to (dataflow) SCCharts.
92 * **SCCharts Verification** (Master/Bachelor)
93 Add the possibility to perfom model checking on SCCharts
94 * **Transformation Verification** (Master/Bachelor)
95 Develop a method for SCCharts to check transformations for semantic equivalence.
96 * **Derive M2M Transformations from Pseudocode** (Master/Bachelor)
97 Create a Pseudocode DSL (and generator) to automatically derive M2M transformations.
98 * **Raceyard evaluation** (Master)
99 Evaluate the possibility for the use of SCCharts in the Raceyard context and pave the way for future experiments
100
101 //SCCharts Code Generation & Optimizations//
102
103 * **Optimization of the SCCharts compiler/transformations **(Bachelor/Master)
104 Profile the actual SCCharts compiler/transformations and apply optimizations; also evaluate the possibility to use multiple cores for compilation.
105 * **SCG Optimization based on SSA **(Bachelor/Master)
106 The Static Single Assignment form enables powerful optimizations such as [[sparse conditional constant propagation>>url:http://dl.acm.org/citation.cfm?id=103136||shape="rect"]]. Adjust and implement this algorithm in the context of SCGs and evaluate the result.
107 * **Extend the SC MoC to handle priority-based variable accesses** (Bachelor/Master)
108 Add priorities to variable accesses to extend the SC MoC and therefore the number of valid sequentially constructive synchronous programs.
109 * **Efficient data dependency & scheduling analyses in SCCharts** (Master/Bachelor)
110 Implement analyses for data dependency, scheduling (e.g. tick boundaries) for SCCharts to improve static scheduling of the compiler.
111 * **Curing Schizophrenia in SCCharts **(Master/Bachelor)
112 Develop new synchronizer to handle schizophrenia properly (e.g. depth join).
113
114 //SCCharts Simulation//
115
116 * **Visualization of Model-based Simulation via Tracing** (Bachelor/Master)
117 Use the already implemented Model-to-Model-Tracing in KIELER to visualize simulations.
118 * **Environment Simulations for SCCharts** (Master/Bachelor)
119 Develop a system to simulate environments (e.g. for Lego Mindstorms) for SCCharts in KIELER
120 * **Core SCCharts Interpreter** (Master/Bachelor)
121 Implement an Interpreter for Core SCCharts.
122
123 //Model-based C Code Compilation//
124
125 * **Incremental Model-based Compilation of Legacy C Programs** (Bachelor/Master)
126 Modify the model-based compiler in KIELER so that it is able to compile C to (S)CCharts incrementally.
127 * **Execution of Recursive Dataflow Code** (Master/Bachelor)
128 * **Execution of Concurrent Dataflow Code** (Master/Bachelor)
129 Modify the model-based dataflow compiler in KIELER so that it is able to compile recursive/concurrent C programs.
130 For Master students: Implement both.
131
132 //Synchronous Languages//
133
134 * **Incremental Compilation of SCEst** (Bachelor/Master)
135 Modify the KIELER SCEst language so that KIELER is able to compile Esterel step-by-step to C via SCL.
136 For Master Students: Also add the possibility to compile from SCCharts to SCEst.
137 * **eSCL - Implementing {{code language="none"}}gotopause{{/code}}** (Bachelor/Master)
138 Create an extended dialect of the SC Language including the {{code language="none"}}gotopause{{/code}} statement and implement a transformation to SCL.
139 * **Quartz **(Master)
140 Integrate the synchronous Quartz language into KIELER for validation purposes and teaching.
141
142 \\
143
144 = (% style="color: rgb(0,0,0);" %)Miscellaneous Topics(%%) =
145
146 **Advisors:** to be determined.
147
148 * **Developing an Info Screen** (Bachelor)
149 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.
150 \\
151 * **Developing a domain specific language (DSL) for model railway control** (Bachelor/Master)
152 We maintain a model railway installation as a demonstrator for our work and as a student teaching tool. Especially for demonstations to non-technical visitors we would like to have a simple language to create controllers for the railway.
153
154 \\
155
156 (% style="display: none;" %)
157 (((
158 408
159 )))
160
161 \\