Page tree

Versions Compared

Key

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

Hier eine Themenübersicht, gefolgt von etwas detaillierteren Darstellungen. Ein anderer 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.

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.

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: Ulf Rüegg, Christoph  Christoph Daniel Schulze, Reinhard von Hanxleden.

Ein sehr wichtiger Teil des KIELER Projekts is 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.

...

» Algorithmen-Entwicklung. Wir implementieren vorhandene Ansätze zum Layout von Graphen in Java und binden sie in das KIELER Framework 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.» 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.

» 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.

...

Jira
serverKIELER JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId2851bd34-0bf1-3f02-ab12-7d77ccab0fae
keyKIPRA-1262
Jira
serverKIELER JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId2851bd34-0bf1-3f02-ab12-7d77ccab0fae
keyKIPRA-1031

...

Jira
showSummarytrue
serverKIELER JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId2851bd34-0bf1-3f02-ab12-7d77ccab0fae
keyKIPRA-1214

...

Modeling Pragmatics

Advisors: Reinhard von Hanxleden, Ulf Rüegg, Christoph Daniel Schulze.

...

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.
  • 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.

Semantics and Synchronous Languages

Advisors: Christian Motika, Steven Smyth, Reinhard v. Hanxleden

Die Programmiersprache Esterel besitzt ein synchrones Ausführungsmodell. Dies bedeutet, dass der Status gesendeter Signale konzeptionell sofort in anderen nebenläufigen Programmteilen wirksam wird. Um nun nicht im Kontrollfluss Inkonstistenzen zu erzeugen ist die Reihenfolge der Signal-Sendung und -Auswertung wichtig: Es müssen immer erst potentielle Signal-Sendungen ausgeführt werden, bevor der Signal-Status ausgewertet werden kann. Die Compilation von Esterel Programmen muss also Signal-Abhängigkeiten berücksichtigen. Lässt sich aus strukturellen Gründen in einem Programm eine solche Ausführungs-Reihenfolge nicht herstellen, so muss das Programm als ungültig abgelehnt werden. Führen zyklische Abhängigkeiten dazu, dass die Reihenfolgen von Signal-Aussendungen und -Auswertungen nicht statisch bei der Compilation, sondern erst dynamisch zur Laufzeit aufgelöst werden können, so führt dies i.A. ebenfalls zu einer Ablehnung des Programmes, da dies ein aufwendiges ineffizientes Laufzeitsystem erfordern würde.

Am Lehrstuhl ist nun ein Verfahren entwickelt worden, um solche zyklischen Abhängigkeiten in Esterel-Programmen aufzulösen. Hierzu wird die Struktur des Programmes in Teilen transformiert, die Funktion des Programmes bleibt jedoch erhalten.

In diesem Kontext sind Themenstellungen für Bachelor-/Master-/Diplom- und Studienarbeiten beispielhaft genannt:

...

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
  • Optimization of the SCCharts transformations (Bachelor/Master)
    Profile the actual SCCharts transformations and apply optimizations
  • On the pragmatics of modelling large models in SCCharts (Bachelor/Master)
    Evaluate the possibilities to create and maintain large models in model-based languages (i.e. SCCharts) and provide suggestions for improvements
  • Extend the SC MoC to handle priority-based variable accesses (Bachelor/Master)
    Add priorities to variable accesses to extend the SC MoC and therefore the number of valid sequentially constructive synchronous programs.
  • Detecting tick boundaries in SCCharts (Master/Bachelor)
    Implement an algorithm that detects tick boundaries (in concurrent) threads and therefore improves the scheduling
  • Efficient data dependency & scheduling analyses in SCCharts (Master/Bachelor)
    Implement data dependency analyses analyses for data dependencies and scheduling (e.g. tick boundaries) for SCCharts to improve static scheduling of the compiler
  • KIELER evaluation environment for synchronous languages (Master/Bachelor)
    Develop a reliable evaluation environment to compare common synchronous languages (i.e. Esterel/SyncCharts & SCCharts)
  • Raceyard evaluation (Master/Bachelor)
    Evaluate the possibility for the use of SCCharts in the Raceyard context and pave the way for future experiments
  • Quartz (Master)
    Integrate the synchronous Quartz language into KIELER for validation purposes and teaching.
  • Implementation of a priority-based compilation approach (Master) 
    Implement the SyncCharts priority-based compilation approach into the SCCharts compiler chain.
  • Curing Schizophrenia in SCCharts (Master)
    Develop new synchronizer to handle schizophrenia properly (e.g. depth join).

PRETSY / PRETSY2

Advisors: Insa Fuhrmann, Steven Smyth

Im Rahmen des PRETSY-Projektes (siehe www.pretsy.org, 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.

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.

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

  • Real-time extensions for SCCharts (Bachelor/Master)
    Make the timing instructions delay_until und exception_on_expire of the FlexPRET processor available in SCCharts.

Model-based Design

Advisors: Christian Motika

Heute haben sich eine ganze Reihe von Modellierungssprachen durchgesetzt, die grafische Modelle verwenden. Dazu zählen beispielsweise die Unified Modeling Language (UML) oder die Werkzeugketten Simulink/Stateflow von Mathworks und SCADE von Esterel-Technologies. Letztere werden insbesondere auch im Entwurf eingebetteter und sicherheitskritischer Systeme (z.B. in Fahr- und Flugzeugen) eingesetzt.

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 Plattform und die Arbeit im Team, zu deren Unterstützung Projektmanagement-Werkzeuge wie dieses Conflunce Wiki eingesetzt werden.

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. Für konkrete Themen schauen Sie in das KIELER Wiki oder sprechen Sie einen der Betreuer bitte direkt an.

Miscellaneous Topics

Advisors: to be determined.

  • Developing an Info Screen (Bachelor)
    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.
  • 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.