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
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:
- 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 Parsing (z. B. mittels PMD) von Quellcode-Dateien in ein einheitliches Format (AST) für die Detektion von Data-Clumps.
- Erweiterbares Refactoring von Quellcode-Dateien anhand detektierter Data-Clumps. Unterstützung der Refactoring Schritte: Extract Class, Introduce Parameter Object, Preserve Whole Object.
- 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 ChatGPT, MNire, ...
- Möglichkeiten zur Visualisierung von Data-Clumps (Data-Clumps-Graphen, Virtual Reality, Zeitleisten, ...)
- Ü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 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
- Konzeption/Implementierung von Webanwendungen mittels Low/No-Code Ansätzen (z. B. mittels https://github.com/artf/grapesjs) (Sprachen: React, JavaScript)