FB6 Mathematik/Informatik/Physik

Institut für Informatik


Osnabrück University navigation and search


Main content

Top content

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

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

Please contact Padma Iyenghar for further details on these topics

Start date:As soon as possible

Topic 1: Development of an Importer/Exporter tool plug-in using Eclipse Modeling Framework (EMF) and Java

Expertise required:  Very good Java programming skills, basic knowledge of meta-modeling and EMF

Topic 2: Implementation of plugins (helpers) in an UML tool (Rhapsody) to carry out performance analysis of UML models

Expertise required: Very good Java programming skills, basic knowledge of UML diagrams, stereotypes and profiles.

Topic 3: Development of a custom-defined profile (similar to an UML profile) in Simulink-using System Composer toolbox

Expertise required: Basic knowledge of Simulink tool and UML profiles/stereotypes mechanism

Topic 4: Development of an IoT use case in Simulink (using System Composer toolbox) and testing on Arduino hardware platform 

Expertise required: Basic knowledge of IoT concepts, Matlab/Simulink tool and Arduino hardware platform

Topic 5: Modeling exception handling in UML and code generation

Expertise required: Knowledge of UML diagram types, basic know-how on exception handling concepts in C++

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