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.

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.

Outline

Automatic Graph Layout

Advisors: Ulf Rüegg, Christoph Daniel Schulze.

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

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

Modeling Pragmatics

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

Semantics, Synchronous Languages and Model-based Design

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

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. 

In diesem Kontext sind Themenstellungen für Bachelor-/Master-/Diplom- und Studienarbeiten beispielhaft genannt. Bei Fragen oder sprechen Sie einen Betreuer bitte direkt an:

 

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

Miscellaneous Topics

Advisors: to be determined.