Logo

teaching

data structures and software dependability

computer science department

brandenburg university of technology cottbus - senftenberg

Informationen für Studenten - Ausgeschriebene Themen für Studien- / Diplomarbeiten; bzw. Bachelor- / Master-Arbeiten

latest update: April 06, 2012, at 03:55 PM

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

  1. fehlerkorregierende Petrinetze
    (fehlerkorregierende Kodes als Erreichbarkeitstest)
  2. Konstruktion beschränkter Netze
    (Erweiterung eines unbeschränkten Petrinetzes um weitere Knoten, sodaß es beschränkt wird)
  3. zeitabhängige Beschränktheit / Lebendigkeit
  4. qualitative Auswertung von Fehlerbäumen mit BDDs
  5. quantitative Auswertung von Fehlerbäumen mit stochastischen Petrinetzen

Voraussetzungen:

  • fortgeschrittene Kenntnisse Petrinetz-Theorie

Erweiterung unseres Petrinetz-Analysators Charlie

  1. eigenschaftserhaltende Reduktion
  2. Analyse durch lineare Programmierungstechniken
    (Nichterreichbarkeitstest, effiziente Berechnung von Siphons/Traps, ADT-Mengen)
  3. effiziente und modulare (Sub/Sur-) Invariantenberechnung,
  4. minimale Überdeckbarkeitsgraphen (Finkel-Algorithmus)
  5. Ausbau des Modelcheckings
    (Zeugen/Gegenzeugen, Visualisierung von BDDs, IDDs)
  6. Analyse von Zeit-Petrinetzen mit maximaler Parallelität
    (Definition, Aufbau und Auswertung von Erreichbarkeitsgraphen)
  7. Vergleich von Analysewerkzeugen
    (Effizienzvergleich, Back-to-Back-Testen)
  8. 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

  1. PN-Dokumentations-Generator
  2. Simulation Zeit-Petrinetze
  3. graphische Aufbereitung von Simulationsergebnissen
    (stochastische/kontinuierliche Simulation, Vereinheitlichung beider)
  4. Invarianten-Auswertung
  5. Halbordnungssemantik
    (Visualisierung einzelner Abläufe)
  6. Konfigurierbarkeit
    (dll-Technologie zur Modularisierung der Netzklassen)
  7. Integration ausgewählter Analysewerkzeuge
    (Grid-Anbindung)
  8. Einbindung von boost::spirit-Technologien
    (Verallgemeinertes Funktionenkonzept, Vereinheitlichung von import/export)
  9. PNML Import/Export

Voraussetzungen:

  • solide Programmierfertigkeiten in C++ und moderner Softwareentwicklungstechnologien
  • Grundkenntnisse Petrinetze

Web-Technologien

  1. Nutzerhandbuch und web-basiertes Tutorial für Charlie
    (Demonstration typischer Nutzerszenarien)
  2. Nutzerhandbuch und web-basiertes Tutorial für Snoopy
    (Demonstration typischer Nutzerszenarien)
  3. Fallstudien-Datenbank mit Web-Interface
    (einschließlich ansprechender Gestaltung der Web-Seiten)
  4. 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:

  • Grundkenntnisse Petrinetze
  • Grundkenntnisse "Systematisches Testen von Software"
  • 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

… the end …

Any comments or questions are welcome. Please direct them to monika [period] heiner [snail] b-tu [period] de Privacy Policy