Themenliste für Bachelorarbeiten im SS 2023


Themen für Bachelorarbeiten im SS 2023

Im Folgenden finden Sie Themenvorschläge für Bachelorarbeiten im SS 2023. Sie finden bei jedem Thema neben einer Kurzbeschreibung auch noch die Kontaktperson. Wenn Sie sich für ein Thema näher interessieren, können Sie jederzeit Kontakt aufnehmen – natürlich auch schon gerne vor Beginn der Lehrveranstaltung. Die Themen werden bis zur Vorbesprechung der Lehrveranstaltung noch laufend ergänzt.

Dashboards für Cloud-Native Anwendungen

Cloud-Native Anwendungen sind Anwendungen, die vorwiegend in der Cloud betrieben werden und auch Cloud-spezifische Dienste nutzen. Ein wichtiger Aspekt von Cloud-Native Anwendungen ist ihre Beobachtbarkeit, d.h. die Möglichkeit sowohl statische Eigenschaften (z.B. Beziehungen zwischen Services) als auch dynamische Eigenschaften (z.B. Requests pro Sekunde, benutzer Speicher) zu untersuchen. Zur Visualisierung wichtiger Eigenschaften werden typischerweise sogenannte Dashboards verwendet. Ziel dieser Arbeit ist es

    • die Grundlagen für Cloud-Native Anwendungen zu identifizieren
    • unterschiedliche Dashboards wie Grafana, Kibana, u.a. gegenüberzustellen und auf ihre Unterstützung von Cloud-Native Anwendungen zu untersuchen
    • ein Dashboard für Cloud-Native Anwendungen mit einer Low-Code Umgebung für Software-Dashboards zu erstellen
    • darauf aufbauend die Eignung dieser Umgebung für Cloud-Native Anwendungen zu untersuchen und potentiell notwendige Erweiterungen zu identifizieren.

Betreuung: Rainer Weinreich
Status: VERGEBEN

Analyse und Klassifikation von Architekturentscheidungen in GitHub Projekten

Im Laufe eines Softwareprojektes werden verschiedene Entscheidungen hinsichtlich der eingesetzten Technologien, der Struktur eines Softwareprojektes, der eingesetzten Werkzeuge und Prozesse u.a. getroffen. In der Praxis haben sich in den letzten Jahren sogenannte Architecture Decision Records (ADRs) zur Dokumentation solcher Architekturentscheidungen etabliert. Dabei handelt es sich um Markdown-Dateien mit einer vordefinierten Struktur, die als Teil eines Software Repositories abgelegt und mit dem Code verwaltet werden.

In einem Forschungsprojekt wurde die Verwendung von ADRs in Github-Projekten analysiert. Dabei wurde festgestellt, dass die Verwendung von ADRs in Github Projekten in den letzen Jahren kontinuierlich zugenommen hat. Ziel dieser Arbeit ist es

    • die grundlegenden Begriffe Softwarearchitektur, Architekturentscheidungen, und ADRs einleitend zu beschreiben
    • die auf Basis dieser Studie die erfassten Entscheidungen (ADRs)  genauer zu analysieren. So soll die Art der getroffenen Entscheidungen, der Zeitpunkt der Entscheidungen im Projektverlauf und ggfs. auch Abhängigkeiten zwischen Entscheidungen analysiert werden.

Die Auswertung kann automatisch (mit z.B. Python Skripts) oder auf Basis einer qualitativen Analysen mit Werkzeugen wie MaxQDA auf Basis eines bereits existierenden Datensatzes (eine Menge von GitHub Projekten mit ADR-Dateien) erfolgen.

Betreuung: Rainer Weinreich
Status: VERGEBEN

Erweiterung einer Low-Code Architekturmanagementplattform zum Management von Architekturentscheidungen

Eine existierende webbasierte Low-Code Architekturmanagementplattform für Unternehmensanwendungen erlaubt es, beliebige Architekturinformationen (z.B. Anwendungen, Services, Stakeholder, Serviceabhängigkeiten, etc. ) aus verschiedenen Systemen mittels REST-Schnittstelle abzufragen, zu transformieren,  zu aggregierten und die Ergebnisse in Dashboards mit unterschiedlichen Visualisierungsarten (z.B. Graph, Balkendiagram, etc.) darzustellen. Für diese Architekturmanagementplattform soll eine Erweiterung zur Dokumentation von Architekturentscheidungen realisiert werden. Ziel dieser Arbeit ist es

    • die Grundlagen zum Thema Architekturwissen und Architekturentscheidungen aufzuarbeiten, sofern für das Verständnis der Arbeit nötig.
    • ein REST-Service zum Erfassen und Verwalten von Architekturentscheidungen zu entwickeln. Die Technologie ist frei wählbar (z.B. Spring, Quarkus oder node.js). Es kann auch in Absprache mit dem Betreuer der Arbeit festgelegt werden, wie die Architekturentscheidungen erfasst werden (z.B: formularbasiert, Markdown, oder auf eine andere Art).
    • die erfassten Entscheidungen direkt mit Artefakten aus anderen Datenquellen zu verbinden und als ergänzende Information in den jeweiligen Visualisierungen anzuzeigen. Dazu soll der Low-Code Datenflussmechanismus der Architekturmanagementplattform verwendet werden, um Daten aus dem eigenen Service und aus anderen Datenquellen zu aggregieren und für bereits vordefinierte Visualisierungsbausteine aufzubereiten.

Betreuung: Rainer Weinreich
Status: OFFEN

Service Mesh (Digital Twin) Technologien und Dashboard

Ein Service Mesh ist eine Infrastruktur zur Entwicklung von Cloud Native und/oder Microservice Anwendungen. Ziel dieser Arbeit ist es

    • die Grundlagen für das Konzept Service Mesh zu identifizieren. Dazu sollen zunächst verschiedene Standards und Technologien (z.B., OpenServiceMesh, Istio, etc.) zur Realisierung eines Service Meshes und deren Werkzeuge analysiert werden.
    • wichtige Visualisierungen und Metriken für die Entwicklung und den Betrieb von Service Mesh Anwendungen abgeleitet und schließlich in einem Dashboard dargestellt werden.

Für die Entwicklung des Dashboards kann eine Low-Code Plattform zur Entwicklung von Dashboards eingesetzt werden, die bereits verschiedene Schnittstellen zur Anbindung externer Systeme und Visualisierungsarten zur Darstellung wichtiger Aspekte einer Service Mesh Anwendung anbietet.

Alternativ kann der Schwerpunkt auch auf Dashboards zur Realisierung digitaler Zwillinge cyberphysicher Systeme gelegt werden. In diesem Falle sind die Grundlagen digitaler Zwillinge zu erarbeiten und Anforderungen an Dashboards zur Realisierung von Dashboards für digitale Zwillinge zu ermitteln. Zusätzlich soll ein Prototyp für ein Digital Twin Dashboard erstellt werden.

Betreuung: Rainer Weinreich
Status: Service Mesh: VERGEBEN, Digitaler Zwilling: OFFEN

Jupyter Notebook-based Digital Twins

Digital Twins present virtual copies of systems which allow to experiment, observe, and document the operation of systems. Dedicated interfaces are often based on dashboards which provide limited interaction possibilities for the users. In addition, dedicated APIs are often provided by digital twins which allow for many interaction possibilities but require extensive knowledge on the implementation level. Therefore, in this work a trade-off solution should be found for digital twins based on Jupyter Notebooks which allow to combine the best of both worlds.

Betreuung: Manuel Wimmer
Status: OFFEN

Test Case Selection and Priorization for Executable Models with Reinforcement Learning

Testing models allows for early feedback of system designs. However, running a huge number of tests against executable models is expensive. Thus, optimization approaches are of interest in this field to first select a subset of test cases which provides certain properties, such as good coverage, and second to run the tests in a particular order so that the expected properties are reached as soon as possible. In this work, an optimization approach based on reinforcement learning for the testing tool provided by the GEMOC language workbench should be developed and evaluated for a set of executable models which have already associated test suites.

Betreuung: Manuel Wimmer
Status: OFFEN

Evaluating Couchbase with N1QL for Querying Engineering Models

JSON is nowadays often used as textual notation for several languages due to the generic tool support and human-readable syntax. In this work, a dedicated JSON database should be evaluated together with its query language N1QL with respect to scalability and performance.

Betreuung: Manuel Wimmer
Status: OFFEN

Web Accessibility Tooling and Evaluation

Web Accessibility is an important property of Web applications. There are several tools to evaluate and improve this aspect of Web applications. In this work, there should be an overview on existing tooling established which allows to derive a tool set for evaluating prominent Austrian websites and see how well Accessibility is currently supported.

Betreuung: Manuel Wimmer
Status: OFFEN

QP2M (Quantum Program to Model)

The standard format for the declaration of quantum programs is the Open QASM format. In this project, the goal is the parsing of quantum programs written in QASM. For this purpose, we base on the Eclipse Modeling Framework and xText for developing the parser infrastructure.

Betreuung: Manuel Wimmer
Status: VERGEBEN

SO4QP (Single-objective Optimization for Quantum Programs)

In software engineering, approaches like genetic programming are used to automatically synthesize programs. Similarly, such approaches may also be applied for evolving quantum programs. Based on already existing tools, in this project, a single-objective genetic programming approach for the automated synthesis of quantum programs is developed and evaluated.

Betreuung: Manuel Wimmer
Status: VERGEBEN

GP2QPE (Genetic Programming to Quantum Program Editor):

Quantum software programmers use dedicated editors for the development of quantum programs. Similarly, there exist dedicated tools for evolving quantum programs automatically, like with classical programs. In this thesis, the goal is to integrate tools for automated quantum program evolution into existing quantum program editors.

Betreuung: Manuel Wimmer
Status: VERGEBEN

Themen für Bachelorarbeiten im SS 2023