Hide last authors
uru 50.1 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.
cds 3.1 2
uru 50.1 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.
cds 36.1 4
uru 50.1 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.
cds 36.1 6
uru 50.1 7 = Outline =
cds 36.1 8
uru 50.1 9
10
cds 57.1 11 {{toc exclude="Outline"/}}
cds 36.1 12
uru 50.1 13 = Automatic Graph Layout =
cds 1.1 14
cds 41.1 15 **Advisors:** Ulf Rüegg, Christoph Daniel Schulze.
16
uru 50.1 17 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.
18
19 Wir verfolgen drei Themenbereiche, die zusammen solche Probleme lösen und den Nutzen von automatischem Layout erhöhen sollen:
20
21 //» 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.
22
23 //» 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.
24
25 //» 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.
26
cds 39.1 27 * **Tight Packing of Connected Components** (Bachelor)
cds 40.1 28 Different connected components of a graph are often laid out separately and combined again afterwards. This combination step often produces too much whitespace. Research relevant 2D packing literature and implement a better solution.
ssm 62.1 29 {{jira id="KIELER JIRA" columns="key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution" serverId="2851bd34-0bf1-3f02-ab12-7d77ccab0fae" key="KIPRA-1262"}}KIPRA-1262{{/jira}}\\
uru 64.1 30 * **{{jira id="KIELER JIRA" columns="key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution" serverId="2851bd34-0bf1-3f02-ab12-7d77ccab0fae" key="KIPRA-1031"}}KIPRA-1031{{/jira}}Layering Algorithms** (Bachelor, Master)
cds 39.1 31 Implement an alternative algorithm for the layer assignment problem used in the layer-based approach to graph layout. The focus of the algorithm could the consideration of the number of edge crossings, a given aspect ratio, or overall compactness.
uru 51.1 32 * **Combining Forces and Layers** (Master)**
uru 52.1 33 **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.
cds 39.1 34 * **Node Placement With a Focus on Compactness** (Master)
35 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.
36 * **Force Based Drawing with Port Constraints** (Master)
37 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"]].
nbw 54.1 38 * **Interactive constraint creation and application in automatic layout **(Bachelor/Master)
39 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.
uru 51.1 40 * **Orthogonal "Edge Bundling"** (Bachelor, Master)
41 Implement and evaluate strategies for orthogonal edge bundling within our layer-based layout algorithm.
cds 61.1 42 * **Improve and Assess KLay Layered's JUnit Test Environment** 
uru 53.1 43 We maintain a variety of JUnit tests to assure our layout algorithm works properly. The environment to execute these tests grew over time and requires a face-lift. The task is to evaluate existing testing frameworks of other projects, find a clean and efficient way to specify and maintain our tests, and update the current implementation.
cds 61.1 44 * **A Simple Edge Router** (Bachelor)
45 Often, people want their nodes to stay in the same place, but have the edges routed somehow. We currently don't have any layout algorithm that can do so. In this assignment, you would implement a simple edge router to solve this.
uru 51.1 46 \\
cds 15.1 47
cds 39.1 48 = Modeling Pragmatics =
cds 15.1 49
cds 41.1 50 **Advisors:** Reinhard von Hanxleden, Ulf Rüegg, Christoph Daniel Schulze.
51
cds 39.1 52 * **Control Flow Graph Exploration / Visualization** (Bachelor)
53 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.
cds 41.1 54 * **Compound Graph Exploration** (Bachelor, Master)
55 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.
cds 15.1 56
ssm 55.1 57 = Semantics, Synchronous Languages and Model-based Design =
cds 15.1 58
uru 50.1 59 **Advisors:** Christian Motika, Steven Smyth, Reinhard v. Hanxleden
cds 41.1 60
ssm 55.1 61 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.
uru 50.1 62
ssm 55.1 63 (% class="external-link" %)
64 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.
uru 50.1 65
ssm 55.1 66 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.
uru 50.1 67
ssm 55.1 68 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.
69
70 In diesem Kontext sind Themenstellungen für Bachelor-/Master-/Diplom- und Studienarbeiten beispielhaft genannt. Bei Fragen oder sprechen Sie einen Betreuer bitte direkt an:
71
ssm 62.1 72
73
ssm 56.1 74 * (% style="line-height: 1.4285715;" %)**Optimization of the SCCharts compiler/transformations **(%%)(Bachelor/Master)
75 Profile the actual SCCharts compiler/transformations and apply optimizations; also evaluate the possibility to use multiple cores for compilation
76 * (% style="line-height: 1.4285715;" %)**On the pragmatics of modeling large models in SCCharts**(%%) (Bachelor/Master)
ssm 44.1 77 Evaluate the possibilities to create and maintain large models in model-based languages (i.e. SCCharts) and provide suggestions for improvements
ssm 62.1 78 * **Visualization of Model-based Simulation via Tracing** (Bachelor/Master)
79 Use the already implemented Model-to-Model-Tracing in KIELER to visualize simulations.
80 * **Incremental Compilation of SCEst** (Bachelor/Master)
81 Modify the KIELER SCEst language so that KIELER is able to compile Esterel step-by-step to C via SCL.
82 * **Model-based Compilation of Legacy C Programs** (Bachelor/Master)
83 Implement a model-based compiler in KIELER that is able to compile C to (S)CCharts and then back to C again.
ssm 63.1 84 * **Extend the SC MoC to handle priority-based variable accesses** (Bachelor/Master)
85 Add priorities to variable accesses to extend the SC MoC and therefore the number of valid sequentially constructive synchronous programs.
86 * **Transformation of Circuits to SCCharts** (Bachelor/Master)
87 Implement a transformation that translates circuits to (dataflow) SCCharts.
ssm 55.1 88 \\\\
ssm 62.1 89 * **Efficient data dependency & scheduling analyses in SCCharts** (Master/Bachelor)
90 Implement analyses for data dependency, scheduling (e.g. tick boundaries) for SCCharts to improve static scheduling of the compiler
ssm 56.1 91 * **Curing Schizophrenia in SCCharts **(Master/Bachelor)
92 Develop new synchronizer to handle schizophrenia properly (e.g. depth join).
ssm 63.1 93 * **SCCharts Debugging** (Master/Bachelor)
94 Implement more sophisticated debugging mechanisms (e.g. breakpoints, observers) for SCCharts
95 * **Environment Simulations for SCCharts** (Master/Bachelor)
96 Develop a system to simulate environments (e.g. for Lego Mindstorms) for SCCharts in KIELER
ssm 65.1 97 * **SCCharts Verification** (Master/Bachelor)
98 Add the possibility to perfom model checking on SCCharts
ssm 55.1 99 \\\\
ssm 42.1 100 * **Quartz **(Master)
101 Integrate the synchronous Quartz language into KIELER for validation purposes and teaching.
ssm 63.1 102 * --**Implementation of a priority-based compilation approach **(Master) --
103 --Implement the SyncCharts priority-based compilation approach into the SCCharts compiler chain.--
ssm 62.1 104 * **Raceyard evaluation** (Master)
105 Evaluate the possibility for the use of SCCharts in the Raceyard context and pave the way for future experiments
cds 1.1 106
cds 39.1 107 = PRETSY / PRETSY2 =
ima 38.1 108
ssm 42.1 109 **Advisors:** Insa Fuhrmann, Steven Smyth
cds 41.1 110
uru 50.1 111 Im Rahmen des PRETSY-Projektes (siehe [[www.pretsy.org>>url:http://www.pretsy.org/||title="Projekthomepage" shape="rect" class="external-link-new-window external-link"]], dort findet sich auch im Rahmen des Projektes bereits veröffentlichte Literatur) und seines geplanten Nachfolgerprojektes sind Abschlussarbeiten zu vergeben, die sich inhaltlich mit der Verbindung Sequentiell Konstruktiver (SC für Sequentially Constructive) Sprachen mit Precision Timed (PRET) Prozessoren als Ausführungsplattform befinden.
112
113 Sequentielle Konstruktivität als "Model of Computation (MoC)" ist im Zuge des PRETSY Projektes entwickelt worden und ist eng mit dem MoC der Sychronen Sprachen verwandt, erweitert dieses aber konservativ, das heißt, es lässt alle Programme zur Ausführung zu, die auch als gültiges synchrones Programm (insbesondere im Sinne der Programmiersprache Esterel) gelten würden. Anders als Esterel erlaubt es aber mehrere schreibende und lesende Zugriffe auf geteilte Variablen, solange diese eindeutig sequentiell geordnet sind. Dies macht das SC MoC zugänglicher für Programmierer gängiger sequentieller Programmiersprachen: Zum Beispiel ist das Programmiermuster present "present x else emit x" ("if (!x) {...; x = true}") gültig im SC MoC, nicht aber in Esterel.
114
115 Im PRETSY Projekt wurden die Programmiersprachen SCCharts und SCL entwickelt, grundsätzlich können wir diese auf jeder beliebigen Plattform ausführen, die Ausführung auf PRET Architekturen bietet aber einige zusätzliche Vorteile und Aspekte, insbesondere verfügen diese Architekturen über eine besonders einfach zu analysierende WCET, über zusätzliche Befehle, um die Ausführungszeit zu kontrollieren und Exceptions bei Zeitüberschreitungen zu definieren sowie über mehrere Hardwarethreads. Aktuelle Themenvorschläge finden sich im [[KIELER Wiki>>url:http://rtsys.informatik.uni-kiel.de/confluence/display/KIELER/Topics+for+Student+Theses||shape="rect" class="internal-link None"]]
116
ssm 42.1 117 * **Real-time extensions for SCCharts** (Bachelor/Master)
ima 38.1 118 Make the timing instructions //delay_until// und //exception_on_expire// of the [[FlexPRET>>url:http://rtsys.informatik.uni-kiel.de/confluence/Multithreaded/Multicore execution of SCCharts Evaluate possibilities to preserve parallelism in SCCharts, implement mapping for (fine grained) multithreading and multicore based on the FlexPRET||shape="rect"]] processor available in SCCharts.
119
ssm 42.1 120 = (% style="color: rgb(0,0,0);" %)Miscellaneous Topics(%%) =
cds 15.1 121
cds 41.1 122 **Advisors:** to be determined.
123
cds 39.1 124 * **Developing an Info Screen** (Bachelor)
cds 15.1 125 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.