Themenliste für Bachelorarbeiten im WS 2023/2024


Themen für Bachelorarbeiten im WS 2023/24

Im Folgenden finden Sie Themenvorschläge für Bachelorarbeiten im WS 2023/24. 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.

Einhaltung des ISO 61508 Safety Standards

Der o.a. ISO Standard gibt (vor allem in Anhang 3) konkrete Hinweise darauf, wie Programme zu schreiben sind, damit sie den strengen Anforderungen für Sicherheit (Safety) genügen. Am Institut für Wirtschaftsinformatik – Software Engineering wurde von einigen Jahren im Zuge einer Dissertation ein Qualitätsmodell entwickelt, mit dem die Einhaltung des Standards geprüft werden kann. Ziel der Arbeit ist es

    • durch Literturanalyse herauszufinden, welche konkreten, operativen Ansätze, Methoden und Werkzeuge es aktuell für die Prüfung der Konformität von C/C++ Programmen mit dem ISO Standard gibt,
    • die bestehende Lösung des Instituts für Wirtschafsinformatik – Software Engineering (Eclipse-Erweiterungen) so zu konfigurieren, dass eine operative Safety-Auswertung von C/C++ Software gemacht werden kann,
    • für eine bestehende C-basierte Software eine Safety-Analyse und Safety-Beurteilung vorzunehmen und auf dieser Basis die Eignung des eingesetzten Werkzeuges für die Beurteilung der Erfüllung der Safety-Eingeschaften zu beurteilen.

Anmerkung: Diese Bachelorarbeit ist nur für Studierende geeignet, die Erfahrung in der Programmierung mit C/C++ haben.

Betreuung: Reinhold Plösch

Status: OFFEN

Einsatz von LLM-basierten Werkzeugen für die Dokumentation von Software

Large Language Models (LLMs) wie GPT-4 beziehungsweise darauf aufbauende Werkzeuge (z.B. Github Copilot) versprechen, dass durch deren Einsatz beispielsweise die Dokumentation von Software in effizienter Art und Weise möglich ist. Den Begriff der Dokumentation wollen wir in dieser Arbeit weiter fassen – von der API-Dokumentation einzelner Klassen, über die Dokumentation des Entwurfs bis hin zu einer umfassenderen Systemdokumentation. Ziel der Arbeit ist es

    • durch Literaturanalyse herauszufinden, welche aktuellen Erkenntnisse es im Bereich der Dokumentation von Software mit Hilfe von LLMs gibt. Neben den Ergebnissen als solches soll auch übersichtlich dargestellt werden, wie die Experimente, Studien etc. in diesem Bereich aufgebaut waren,
    • für ausgewählte Aspekte der Dokumentation von Software (auf Basis der Ergebnisse der Literaturstudie) ist ein Experiment, Studie, etc. für die Überprüfung der Eignung zu entwerfen und durchzuführen. Dabei soll neben der API-Dokumentation von Klassen (ein offensichtlicher Anwendungsfall) auch zumindest ein zweiter Dokumentationsaspekt mitberücksichtigt werden,
    • die Ergebnisse des Experimentes, der Studie etc. systematisch darstellen und mit Ergebnissen aus der Literatur vergleichen. Darüber hinaus sollen Unzulänglichkeiten im Design des Experiments, der Studie, etc., die sich im Rahmen der Durchführung gezeigt haben, herausgearbeitet werden.

Betreuung: Reinhold Plösch

Status: RESERVIERT (Magdalena Kneidinger)

Einsatz von LLM-basierten Werkzeugen für die Beurteilung des Softwareentwurfs

Large Language Models (LLMs) wie GPT-4 beziehungsweise darauf aufbauende Werkzeuge (z.B. Github Copilot) versprechen, dass sie Entwicklern bei komplexen Entwicklungsaufgaben unterstützen. Beim Entwurf vom Softwaresystemen kommen aktuell sowohl Entwurfsmuster (Design Patterns) als auch Entwurfsprinzipien (z.B. Information Hiding) zum Einsatz. Die SOLID-Prinzipien haben sich in der Zwischenzeit im objektorientierten Softwareentwurf etabliert. Ziel der Arbeit ist es,

    • durch Literaturanalyse herauszufinden, welche aktuellen Erkenntnisse es im Bereich des Softwareentwurfs mit LLMs gibt – die Analyse soll hier breit aufgesetzt werden und kann Aspekte des automatischen Refactoring, Analyse des Entwurfs, Dokumentation des Entwurfs, etc. beinhalten.
    • für ausgewählte Aspekte des objektorientierten Entwurfs (auf Basis der Ergebnisse der Literaturstudie) ist ein Experiment, Studie, etc. für die Überprüfung der Eignung von LLMs zu entwerfen und durchzuführen,
    • die Ergebnisse des Experimentes, der Studie etc. systematisch darstellen und mit Ergebnissen aus der Literatur vergleichen. Darüber hinaus sollen Unzulänglichkeiten im Design des Experiments, der Studie, etc., die sich im Rahmen der Durchführung gezeigt haben, herausgearbeitet werden.

Betreuung: Reinhold Plösch

Status: OFFEN

Einsatz von LLM-basierten Werkzeugen für die automatische Generierung von Unit Tests

Large Language Models (LLMs) wie GPT-4 beziehungsweise darauf aufbauende Werkzeuge (z.B. Github Copilot) versprechen, dass sie Entwicklern bei komplexen Entwicklungsaufgaben unterstützen. Unit Tests bilden in vielen Softwareprojekten das Qualitäts-Rückgrat eines Projektes. der Aufwand für die Erstellung und Wartung von Unit-Tests ist jedoch beträchtlich – vor allem dann, wenn eine hohe Testabdeckung erreicht werden soll. Ziel der Arbeit ist es,

    • durch Literaturanalyse herauszufinden, welche aktuellen Erkenntnisse es im Bereich der automatischen Generierung von Unit-Tests mit LLMs gibt.  Dabei soll hier neben dem Generierung von Unit Tests auch der Aspektes des Mockings mit berücksichtigt werden,
    • im Rahmen einer Case Study für eine gegebene Menge von Klassen mit Hilfe von LLM-basierten Werkzeugen Unit-Testfälle automatisch zu generieren und zu beurteilen. Beurteilungskriterien sind die Güte der Tests (z.B. Testabdeckung, Testorakel, Lesbarkeit und Wartbarkeit) und der notwendige Aufwand für die Testfallerzeugung,
    • die Ergebnisse der Case Study systematisch darstellen, mit Ergebnissen aus der Literatur vergleichen und ggfs. die eingesetzten LLM-basierten Werkzeuge für die Testfallgenerierung vergleichen.

Betreuung: Reinhold Plösch

Status: RESERVIERT (Georg Rülling)

Einsatz von LLM-basierten Werkzeugen für die Generierung von Akzeptanzkriterien für User Stories

Large Language Models (LLMs) wie GPT-4 beziehungsweise darauf aufbauende Werkzeuge (z.B. Github Copilot) versprechen, dass sie Entwicklern bei komplexen Entwicklungsaufgaben unterstützen. In der Industrie wird zunehmend BDD (Behavior Driven Design) und ähnliche Ansätze verwendet, um auf Basis von User Stories oder Epics Akzeptanzkritieren in halbformaler Darstellung zu formulieren. Ziel der Arbeit ist es,

    • durch Literaturanalyse herauszufinden, welche aktuellen Erkenntnisse es im Bereich der Generierung von Akzeptanztests mit LLMs gibt. Dabei soll ein Augenmerk auf die Generierung von Akzeptanzkritieren auf Basis von User Stories liegen. Die Generierung von (Cucumber) basierten Tests auf Basis von gegebenen Akzeptanzkritieren ist von nachrangiger Bedeutung,
    • im Rahmen eines Experimentes soll auf Basis der Ergebnisse der Literaturanalyse herausgefunden werden, wie gut die Unterstützung von LLM-basierten Werkzeugen für die Generierung von Akzeptanzkritieren bzw. Akzeptanttests ist. Dabei soll neben der Güte der Akzeptanzkriterien (Korrektheit, Vollständigkeit, etc.) auch der Aufwand für die Generierung der Akzeptanztests berücksichtigt werden,
    • die Ergebnisse des Experimentes systeamtisch darstellen, mit Ergebnissen aus der Literatur vergleichen und ggfs. die eingesetzen LLM-basierten Werkzeuge für die Testfallgenerierung vergleichen.

Betreuung: Reinhold Plösch

Status: OFFEN

 

ChatGPT vs. StackOverflow

Softwareentwickler nutzen Foren, wie StackOverflow, zur Diskussion verschiedenster Themen aus dem Bereich der Softwareentwicklung. Nachteile dabei sind, dass die Entwickler auf die Beantwortung einer gestellten Frage aus der Community warten müssen, bzw. dass sie aus einer Fülle an Antworten, die teilweise recht unterschiedlich und ausschweifend ausfallen können, die passende Antwort heraussuchen müssen. Viele umgehen die Wartezeit, indem sie in StackOverflow nach ähnlichen, bereits gestellten Fragen suchen, sich jedoch dann durch einen Dschungel an Möglichkeiten durcharbeiten müssen.

ChatGPT kennt den frei verfügbaren Informationsbestand von StackOverflow und wird von vielen Entwicklern als Alternative bei Fragestellungen aus dem Softwareentwicklungsbereich verwendet.

In dieser Arbeit soll ein Vergleich der Antwortqualitäten zwischen StackOverflow und ChatGPT durchgeführt werden.

    • Dabei soll zunächst durch eine Literaturrecherche erhoben werden, wie die Antwortqualität gemessen werden kann, bzw. welche Ergebnisse bisher in durchgeführten Vergleichen erzielt wurden.
    • Anschließend soll für ausgewählte Fragestellungen eine Case-Study durchgeführt werden und die Ergebnisse mit denen aus der Literaturrecherche verglichen werden.

Ziel dieser Arbeit ist es, eine Aussage über die Antwortqualitäten von ChatGPT für ausgewählte Fragestellungen im Bereich der Softwareentwicklung zu treffen.

Betreuung: Wolfgang Narzt

Status: RESERVIERT (Markus Weber)

ChatGPT vs. Google Bard

Large Language Models (LLMs) sind die Basis für eine wachsende Anzahl an öffentlich verfügbaren Chat-Bot-Applikationen. In dieser Arbeit sollen zwei Chat-Bots – ChatGPT und Google Bard – hinsichtlich ihrer Fähigkeiten bzw. Antwortqualitäten vergleichen werden.

    • Dazu sollen zunächst anhand einer Literaturrecherche die Funktionsweisen, bzw. die Gemeinsamkeiten und Unterschiede der zugrunde liegenden LLMs (GPT-4, PaLM-2) erarbeitet werden.
    • Anschließend sollen ebenfalls anhand von Literaturquellen Informationen zu Vergleichen der beiden Technologien gesammelt werden (Vergleichsmetriken, Case-Studies, Messergebnisse)
    • Zum Schluss soll eine eigene Case-Study zu ausgewählten Themen durchgeführt werden und die Ergebnisse mit denen aus der Literaturrecherche verglichen werden.

Ziel der Arbeit ist es, eine Aussage über die Einsatzgebiete und Antwortqualitäten von ChatGPT und Google Bard zu treffen.

Betreuung: Wolfgang Narzt

Status: RESERVIERT (Magdalena Punz)

 

Programmieren mit ChatGPT

ChatGPT wird vielfach zur Entwicklung von Algorithmen bzw. Programmen verwendet. Die “Programmierfähigkeiten” von ChatGPT sind teilweise erstaunlich gut. Wo aber sind die Grenzen von ChatGPT bei der Softwareentwicklung? Wofür kann ChatGPT eingesetzt werden und wofür nicht? Wie ist die Softwarequalität bzw. die Korrektheit der generierten Programme, Algorithmen und Applikationsfragmente? In dieser Arbeit widmen wir uns derartigen Fragestellungen.

    • Dazu sollen zunächst anhand einer Literaturrecherche die bisherigen Erkenntnisse im Hinblick auf den Einssatz von ChatGPT bei der Softwareentwicklung erhoben werden.
    • Anschließend sollen ausgewählte Fragestellungen anhand einer Case-Study untersucht werden und mit den Ergebnissen der Literaturrecherche verglichen werden.
    • Fragestellungen sind z.B.: Welche Programmiersprachen werden am besten unterstützt? Welche Programmierkonzepte und Paradigmen werden am besten unterstützt (OOP, Funktional, Query-Sprachen, Web-Programmierung, etc.)? Bis zu welcher Komplexität kann man entwickeln (LoC, Anzahl Kopplungen, Anzahl Module, etc.)? In wie weit kann ChatGPT fehlerhafte Algorithmen korrigieren / verbessern / vervollständigen? usw.

Ziel der Arbeit ist es, eine Aussage über die Einsatztauglichkeit von ChatGPT in der Programmierung zu treffen.

Betreuung: Wolfgang Narzt

Status: OFFEN

 

Analyse aktueller Trends in der (universitären) Programmierausbildung

In der Literatur werden unterschiedliche didaktische Methoden und Ansätze für die (universitäre) Programmierausbildung beschrieben. Dazu gehören auch moderne Ansätze, die ChatGPT oder Github Copilot in der Ausbildung nutzen. Ziel dieser Arbeit ist es, in bekannten wissenschaftlichen Datenbanken (IEEE, ACM, Springer) die entsprechende Literatur zu suchen und mittels Topic Modelling oder ähnlichen Ansätzen möglichst automatisiert zu analysieren. Dabei sollen aktuelle Trends, Herausforderungen und Best Practices in der Programmierausbildung identifiziert werden.

Betreuung: Iris Groher, Michael Vierhauser

Status: OFFEN

 

Chatbot zur WIN Studienberatung

Der Einsatz von Chatbots zur Beantwortung von Kundenanfragen in Onlineshops gewinnt zunehmend an Bedeutung. Mittlerweile gibt es eine Reihe verschiedener Technologien und Werkzeuge, mit denen selbst ein solcher Chatbot erstellt werden kann. Ziel dieser Arbeit ist es, in einem ersten Schritt eine Recherche durchzuführen, welche Chatbot-Technologien verfügbar sind und diese gegenüberzustellen. In einem zweiten Schritt soll eine dieser Technologien ausgewählt werden und ein Chatbot zur Beratung von WIN Studieninteressierten erstellt werden.

Betreuung: Iris Groher

Status: RESERVIERT

 

Moodle Plug-in zur Visualisierung von Kurs Ergebnissen

Moodle ist ein weit verbreitetes Open-Source Lernmanagementsystem, das auch an der JKU zur Kursverwaltung eingesetzt wird. Moodle bietet unter anderem Möglichkeiten zur Verwaltung von Kursmaterialien, Abgabe und Bewertung von studentischen Arbeiten, sowie Durchführung von Tests. Leider bietet Moodle standardmäßig nur sehr begrenzte Möglichkeiten, Auswertungen über den Lernfortschritt der Studierenden zu erstellen. Ziel dieser Arbeit ist es daher, in einem ersten Schritt eine Recherche durchzuführen, wie die Moodle Plattform erweitert werden kann. In einem zweiten Schritt soll ein Plug-in entwickelt werden zur Analyse der Lernergebnisse in einem Programmierkurs.

Betreuung: Iris Groher, Michael Vierhauser

Status: RESERVIERT

 

DSL zur Beschreibung von Kompetenzen

Kompetenzorientiertes Lehren und Lernen wird in der aktuellen Hochschuldidaktik immer wichtiger. Kompetenzen sind Fähigkeiten und Fertigkeiten, die nach Absolvierung eines Kurses von Studierenden beherrscht werden sollen. Zur Beschreibung von Kompetenzen inklusive verbundene Lehr- und Lernmaterialien und Testfragen gibt es aktuell nur wenig Werkzeugunterstützung. Ziel dieser Arbeit ist die Entwicklung einer domänenspezifischen Sprache (DSL) zur Beschreibung von Kompetenzmodellen und damit verbundene Ressourcen. Die DSL kann textuell sein unter Verwendung von Xtext oder graphisch ähnlich einer blockbasierten Sprache wie Blockly.

Betreuung: Iris Groher, Michael Vierhauser

Status: OFFEN

 

Wertbasierte Priorisierung von Anforderungen im Kontext der Nachhaltigkeit

Die wertbasierte Anforderungspriorisierung ist eine Technik im Software Engineering, bei der Software Anforderungen auf Grundlage ihres wahrgenommenen Werts für die Stakeholder eingestuft werden. In der Literatur werden unterschiedliche Modelle beschrieben, die so eine Bewertung erlauben. Im Zuge einer Masterarbeit wurde bereits ein Konzept entwickelt wie eines dieser Modelle mit einer Bewertung der Auswirkungen von Anforderungen auf unterschiedliche Dimensionen der Nachhaltigkeit verknüpft werden kann. Das Ziel dieser Bachelorarbeit ist dieses Konzept weiter zu entwickeln und ein web-basiertes Werkzeug zur Bewertung der Anforderungen zu entwickeln.

Im Kontext dieses Themas können bis zu 3 Arbeiten vergeben werden.

Betreuung: Iris Groher, Alexandra Mazak-Huemer

Status: OFFEN

Themen für Bachelorarbeiten im WS 2023/24