FB6 Mathematik/Informatik/Physik

Institut für Informatik


Navigation und Suche der Universität Osnabrück


Hauptinhalt

Topinformationen

Available Thesis Topics (Master, Bachelor)

Forschungsbereiche:

Werkzeuge zur Unterstützung von Organisationsabläufen

Tool-Integration, Tool-Interaktion, Software Traceability

Tools for quality analysis in AI/ML and functional safety software

Tools for quality assurance

Bitte kontaktieren Sie uns bei eigenen Themenvorschlägen oder für Arbeiten in Kooperation mit Firmen.

Werkzeuge zur Unterstützung von Organisationsabläufen

In Forschung, Lehre, in Kooperation mit der Bibliothek usw.

Bitte wenden Sie sich an Elke Pulvermüller für verfügbare Themen.

Tool-Integration, Tool-Interaktion, Software Traceability

Kontakt: Dennis Ziegenhagen

Tools for quality analysis in AI/ML & functional safety software

Please contact Dr. Padma Iyenghar for further details on these topics

Note:

  • Start date: as soon as possible.
  • For all these topics below, a (simple) base implementation is already available. The student is expected to understand this and work on one or more enhancements (after discussion).
  • The topic can be tailored to fit in the requirements for a bachelor or master thesis. All the topics can also be adjusted to fit the skillset and interests of the student (e.g. different areas of Software Engineering domain)
  • Familiarity and/or willingness to work with AI/ML concepts, python programming is a plus.

Topics:

  • Topic 1: Game Theoretic Optimization in AGV Systems: Implementing Strategic Navigation with Python and Simulation Technologies.
  • Topic 2:  Dynamic Risk Assessment with Real-Time Data Analytics for AGVs
  • Topic 3: Neural Networks for Predictive Maintenance: Data-Driven Techniques and Quality Analysis in Industrial Settings
  • Topic 4: Plugin for Detection and Refactoring of Data Clumps on Model Level using Rhapsody tool.

 

 

Tools for quality assurance

Kontakt: Nils Baumgartner

Qualitätssicherung - Code-Smells

Ein Blick auf einen Code reicht manchmal schon aus und es läuft einem kalt den Rücken runter: Lange Klassen, Methoden, fehlende Kommentare und noch vieles mehr. Solche Probleme werden gerne auch als Code-Smell bezeichnet. Zur Verbesserung der Code-Qualität können Code-Smells erkannt werden und Vorschläge zur Verbesserung (Refactoring) generiert werden. Ein Typ von Code-Smells sind Data-Clumps, bei welchem gleiche Gruppen von Variablen immer wieder zusammen auftauchen, die Reihenfolge jedoch unterschiedlich sein kann. In dem folgenden Beispiel bilden die Variablen: foo, bar und baz einen Data-Clump: 

 public class MyClass{

    private int foo; 

    private int bar;

    private int baz;

    public void myMethod() {}

}

public class MyOtherClass{

    private int bar;

    private int foo;

    public void myOtherMethod(int c) {}

    private int baz;

}

Als Grundlage für ggf. weitere Ideen:

  • Abgeschlossen:
    • Developing a live Code Smell Detection Plugin for IntelliJ IDEA with Refactoring Options [2022]
    • Entwicklung einer Anwendung zur Bewertung der Dokumentation von Quellcode mithilfe von GitHub Actions [2022]
    • Automatisierte Erkennung und Refaktorisierung von Data Clumps in TypeScript [2023]
    • Analyzing the Lifecycle of Data Clumps and their Correlation with Bugs [2024]
  • Laufend:
    • Untersuchung zur Generierung von Vorschlägen für Klassennamen auf Basis von Variablen. Variablen: x,y,z könnten z. B. zur Klasse Position passen. Hier kann eine Untersuchung von ChatGPTMNire, ... [vergeben]
    • Plugin (VSCode oder WebStorm) zur Analyse und Refaktoring von Data-Clumps in TypeScript Projekten. Beispielsweise für die Web-Entwicklung werden verschiedene Libraries verwendet wie React, Vue.js, ..., hier wäre eine Unterstützung hilfreich für Entwickler. [vergeben]
    • Data-Clumps Profile von Entwicklern anhand Git-Projekten. Gibt es Personen, welche häufig Data-Clumps in das Projekt reinbringen aber nie entfernen? Kann diesen Personen gezielt geholfen werden mit Trainings-Einheiten? [vergeben]
  • Ideen:
 

Folgende Bereiche ergeben sich in diesem Kontext:

  • Data Clumps analysieren lassen: https://github.com/NilsBaumgartner1994/data-clumps-doctor
  • Möglichkeiten zur Visualisierung von Data-Clumps (Data-Clumps-Graphen, Virtual Reality, Zeitleisten, ...)
  • Für welche Data-Clumps sollte ein Refactoring priorisiert werden? Untersuchung der Git-Historie von Projekten: Zuletzt geänderte Dateien, Größe der Dateien, lokale Nähe, ... 
  • Erweiterbares Refactoring von Quellcode-Dateien anhand detektierter Data-Clumps. Unterstützung der Refactoring Schritte: Extract Class, Introduce Parameter Object, Preserve Whole Object.
  • Übertragbarkeit von Git-basierter Analyse von Code-Smells auf Entwickler Profile in anderen Projekten und Teams. (Wie sollte ich Teams zusammenstellen, auf Basis der Stärken und Schwächen?)
  • Entwicklung eines Plugins zur Erkennung von Data-Clumps für JavaScript in einer IDE (WebStorm)