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

Meta-modeling (using EMF), Internet of Things (IoT), Modeling using UML and Matlab/Simulink

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;

}

 

Folgende Themen / Bereiche ergeben sich in diesem Kontext:

  • Klassen Diagramme (XML-Dateien) auf Data Clumps analysieren. Material: 12 Millionen UML Dateien http://models-db.com/Downloads/ReplicationPackage/ Davon müssten Klassen Diagramme extrahiert werden (nicht alle 12 Millionen). Diese dann nach 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)

Als Grundlage für ggf. weitere Ideen:

  • 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]
  • Untersuchung und Generierung Profile für Entwickler mithilfe von Git-basierter Analyse von Code-Smells. (Wo sind/waren schwächen der Entwickler in einem Projekt?) [vorgemerkt]
  • Entwicklung eines Plugins zur Erkennung von Data-Clumps für Java in einer IDE (IntelliJ)
  • GitHub Action zur Analyse von Code-Smells [vorgemerkt]
 
Anwendungen