Informationen für Studenten - Ausgeschriebene Themen für
Studien - / Diplomarbeiten; bzw. Bachelor- / Master - Arbeiten
latest update: October 07, 2009
Allgemeines
Wir haben immer eine Reihe von interessanten und
anspruchsvollen Themen im Angebot, die sich sowohl für Studien-
(bzw. Bachelor-) als auch Diplomarbeiten (bzw. Master-Arbeiten)
eignen, am besten jedoch für beides - erfahrungsgemäß
sind die Chancen für eine gute Diplom/Master-Arbeit höher,
wenn sie
die Studien/Bachelor-Arbeit inhaltlich fortsetzt.
Aufgrund unserer aktuellen Forschungsarbeiten bewegen sich die
meisten Themen im Umfeld von
- fehlervermeidende / fehlertolerierende Programmier- und
Softwareentwicklungsmethoden,
- Anwendung formaler Methoden (insbesondere Petrinetze) im Rahmen
von Fallstudien,
auf dem Gebiet der Informatik (technische Systeme) bzw.
Bioinformatik
(biochemische Systeme),
- (intelligente) Implementierung von (graphischen) Werkzeugen.
Um möglichst interessanteThemen zu erreichen, werden diese
ständig an unsere aktuellen Forschungen (einschließlich
Promotionsvorhaben)
angepaßt. Deshalb
sind die folgenden Ausschreibungen nur als Beispiele anzusehen. Bei
Interesse wenden Sie sich bitte an einen Vertreter des Lehrstuhls.
Desweiteren sind eigene Vorschläge (jedoch im Rahmen der oben
genannten
Punkte) durchaus willkommen.
Thematisch-gruppierte Kurzdarstellung aktueller Themen
Theorie-orientierte Themen, was einen Implementierungsanteil nicht
ausschließt
- fehlerkorregierende Petrinetze
(fehlerkorregierende Kodes als Erreichbarkeitstest)
- Konstruktion beschränkter Netze
(Erweiterung eines unbeschränkten Petrinetzes um weitere Knoten,
sodaß es beschränkt wird)
- zeitabhängige Beschränktheit / Lebendigkeit
- qualitative Auswertung von Fehlerbäumen mit BDDs
- quantitative Auswertung von Fehlerbäumen mit stochastischen
Petrinetzen
- textuelle Beschreibung von (skalierbaren/modularen) Petrinetzen
Voraussetzungen:
- fortgeschrittene Kenntnisse Petrinetz-Theorie
Erweiterung unseres Petrinetz-Analysators Charlie
- eigenschaftserhaltende Reduktion
- Analyse durch lineare Programmierungstechniken
(Beschränktheitstest, Nichterreichbarkeitstest,
Deadlock/Trap-Berechnung, effiziente Berechnung von ADT-Mengen, Rang-Theorem)
- effiziente und modulare Invariantenberechnung
- minimale Überdeckbarkeitsgraphen (Finkel-Algorithmus)
- Ausbau des Modelcheckings
(Zeugen/Gegenzeugen, Visualisierung von BDDs, IDDs)
- Analyse von Zeit-Petrinetzen mit maximaler Parallelität
(Definition, Aufbau und Auswertung von Erreichbarkeitsgraphen)
- Vergleich von Analysewerkzeugen
(Effizienzvergleich, Back-to-Back-Testen)
- Systematisches Testen von Modelcheckern
Voraussetzungen:
- solide Programmierfertigkeiten in Java
- Grundkenntnisse Petrinetze
- Kenntnisse in dem jeweiligen, der Anaysetechnik zugrunde
liegenden mathematischen Gebiet
Erweiterung unseres Petrinetz-Entwurfswerkzeuges Snoopy
- PN-Dokumentations-Generator
- Simulation Zeit-Petrinetze
- graphische Aufbereitung von Simulationsergebnissen
(stochastische/kontinuierliche Simulation, Vereinheitlichung beider)
- Invarianten-Auswertung
- Halbordnungssemantik
(Visualisierung einzelner Abläufe)
- Konfigurierbarkeit
(dll-Technologie zur Modularisierung der Netzklassen)
- Integration ausgewählter Analysewerkzeuge
(Grid-Anbindung)
- Einbindung von Lex/Yacc-Technologien
(Verallgemeinertes Funktionenkonzept, Vereinheitlichung von import/export)
Voraussetzungen:
- solide Programmierfertigkeiten in C++ und moderner
Softwareentwicklungstechnologien
- Grundkenntnisse Petrinetze
Web-Technologien
- Nutzerhandbuch und web-basiertes Tutorial für Charlie
(Demonstration typischer Nutzerszenarien)
- Nutzerhandbuch und web-basiertes Tutorial für Snoopy
(Demonstration typischer Nutzerszenarien)
-
Fallstudien-Datenbank mit Web-Interface
(einschließlich ansprechender Gestaltung der Web-Seiten)
-
web-basierte Petrinetz-Animation 2
(Abspielen von Pfaden)
Voraussetzungen:
- solide Fertigkeiten in modernen Web-Technologien
- Grundkenntnisse Petrinetze bzw der entsprechenden Werkzeuge
Weitere Einzeldarstellungen ausgewählter Themen
Sugar Java
Voraussetzungen:
- solide Programmierfertigkeiten
- Grundkenntnisse in Compilertechnik
AnJa - Annotated Java
Voraussetzungen:
- solide Programmierfertigkeiten
- Grundkenntnisse in Compilertechnik
- Lehrveranstalung "Zuverlässige Software" bzw. "Testen von
Software"
Testen mit Musik 2
Voraussetzungen:
- solide Programmierfertigkeiten
- musikalische Grundkenntnisse, insbesondere Notentechnik
Regressionstests graphischer Oberflächen
Voraussetzungen:
- solide Programmierfertigkeiten
- Lehrveranstaltung "Testen von Software"
Plattformunabhängie Programmierung unter C++
Voraussetzungen:
- solide Programmierfertigkeiten in C++
Verteilte Softwarevalidierung
Dieses Thema umfasst eine Reihe von Teilaspekten, die wichtigsten:
1. verteilte Implementierung zur nebenläufigen Ausführung
eines Validierungsexperimentes.
2. textuelle und graphische Auswertung der Experimentergebnisse
Voraussetzungen:
- solide Programmierfertigkeiten, insbesondere in GUI und (lokal)
verteilten Implementierungen;
- Grundkenntnisse in Compilertechnik
- Grundkenntnisse in Petrinetz-Anaylsemethoden
Analysemethoden für den Systembiologen
Voraussetzungen:
- solide Programmierfertigkeiten, insbesondere für
plattformunabhängige GUI
- Grundkenntnisse in Petrinetz-Anaylsemethoden
- Grundkenntnisse zu Biochemie/Medizin hilfreich; Leistungskurs
(Abiturstufe)
in Biologie und/oder Chemie empfohlen;
Fallstudien
Modellierung und Analyse technischer bzw. biochemischer Netzwerke
Voraussetzungen:
- Grundkenntnisse Petrinetze
- Grundkenntnisse in dem jeweiligen Anwendungsgebiet
BDD-Based Model Checking - Visualisierung von Datenstrukturen
Modelchecking ist ein Verfahren, mit dem ein Modell auf das
Erfüllen gegebener Eigenschaften überprüft werden kann.
Wie die Verfahren konkret aussehen, hängt u.a. davon ab, wie die
Modelle und die zu überprüfenden Eigenschaften beschrieben
werden. In unserem Fall sind die Modelle als Petrinetz gegeben,
während die Eigenschaften in linearer bzw. branching-time
temporaler Logik (LTL bzw CTL)
vorliegen. Die Eleganz der hier diskutierten Modellchecker
erschließt sich vor allem aus der
unterliegenden Datenstruktur, den "Binary Decision Diagrams"
(BDD). Leider ist diese Datenstruktur von aussen schlecht
beobachtbar, was auch für den Normalgebrauch nicht notwendig ist,
wohl aber für die Lehre und das Verständnis der internen
Abläufe.
Das Thema der hier ausgeschriebenen Arbeit ist die Visualisierung
dieser internen Datenstruktur in Form kleiner "movies", welche den
dynamischen Aufbau der internen Datenstrukturen für Lehrzwecke
sichtbar und damit nachvollziehbarer machen sollen.
Voraussetzungen:
- solide Programmierfertigkeiten, etwa in in C++
- Grundkenntnisse Petrinetz-Analysetechniken
Aspect-oriented Programming
"Aspect-oriented programming (AOP) is a new evolution in the line of
technology for separation of concerns-technology that allows design and
code to be structured to reflect the way developers want to think about
a system. It is one of the "beyond object-oriented programming"
approaches."
Gegenstand dieses Themas ist die Untersuchung, inwieweit sich diese
Konzepte zur eleganten Umsetzung defensiver Programmierstrategien
eignen. Dazu sind verfügbare Implementierungen zur AOP zu testen.
Voraussetzungen:
- Lehrveranstalung "Zuverlässige Software"
- solide Programmierfertigkeiten
Concurrency Patterns
(Entwurfsmuster zur Programmierung von Nebenläufigkeit)
Entwurfsmuster sind seit geraumer Zeit ein beliebtes Mittel zur
Kommunikation zwischen Softwareingenieuren zur Vermittlung von
Erfahrungen im Feinentwurf von wiederverwendbaren Software-Strukturen.
Mittlerweile gibt es mehrere recht umfangreiche Kataloge solcher
Entwurfsmuster, insbesondere gibt es auch Kataloge für spezielle
Anwendungsgebiete, wie z.B. Entwurfsmuster für
Kommunikationssoftware, Entwurfsmuster für eingebettete Systeme.
In der hier ausgeschriebenen Arbeit soll ein Katalog von typischen
Entwurfsmustern zur Programmierung von Nebenläufigkeit erstellt
werden.
Voraussetzungen:
- Lehrveranstaltung Einführung in die
Nebenläufigkeit;
- Grundkenntnisse Petrinetze;
- solide Programmierfertigkeiten in Java
. . . t h e e n d . . .
sachdienliche Hinweise zu dieser Seite bitte an:
