Die Abteilung Softwaresysteme bietet Themen für Abschlussarbeitem in den Bereichen Energie- und Performanzmessungen von konfigurierbaren Softwaresystemen, probabilistisches Programmieren, Performanzmodellierung mit Machine Learning und Software Engineering für KI-Systeme an. Über die hier vorgestellten Themenbereiche hinaus sind weitere Themen und eine begleitende Betreuung mit Firmen auf Anfrage möglich, sofern diese in das Forschungsprofil der Arbeitsgruppe passen. Weiterhin haben wir selber guten Kontakt zu renommierten Firmen und könen Arbeiten dort hin vermitteln.

Konkrete Anfragen für eine Betreuung und weiter Frage bearbeitet Sebastian Simon >Mail<.

Für das Sommersemester 2024 gibt es keine freien Betreuungskapazitäten mehr.

Themenübersicht:

In the realm of software development, code documentation and commenting are crucial, yet often underestimated. To this end, expensive domain-specific Large Language Models (LLMs), have been proposed which automate typical software engineering tasks such as documentation writing. Nevertheless, these advanced models usually require considerable computational resources, often necessitating high-end GPU-powered cloud servers. The financial and resource-intensive nature of this approach poses considerable challenges, especially for small-to-medium enterprises or individual developers who may not have the financial muscle to continuously maintain such resource-intensive operations.

The core objective of this Master’s thesis is to replicate and potentially enhance the effectiveness of the traditional approach using more cost-efficient techniques. The primary challenge here is to substitute the old domain-specific, expensive, fine-tuned model with a more economical and memory-efficient approach, such as Low-Rank Adaptation of Large Language Models (LoRA). The envisioned model should be lean enough to execute locally without the need for substantial computational resources. This research will attempt to answer the question, „How can a smaller, more efficient model, trained using LoRA, be used to generate comments and documentation for existing code in a cost-effective manner?“.

The domain of application of LLMs can also be varied in the thesis.

Betreuer: Johannes Dorn

Context: Container technologies such as Docker are becoming increasingly popular for deploying software applications. To manage these containers at scale, often automated container orchestration are used, such as Kubernetes. In recent years, Kubernetes has become the de facto tool for automated container orchestration. Kubernetes-based container orchestration is prone to misconfigurations that can have severe consequences, such as system failures or security breaches. Therefore, systematically analyzing and characterizing misconfigurations in Kubernetes manifests, i.e. configuration files for Kubernetes, can help to proactively prevent misconfigurations in Kubernetes clusters.

Objective: The core objective of this thesis is to prevent misconfigurations in Kubernetes clusters by identifying what kind of misconfigurations usually occur in Kubernetes manifests. This research will attempt to answer the questions: „What kind of misconfigurations occur in Kubernestes manifests in open-source software projects?“, „What Kubernetes objects are affected by misconfigurations?“, „Are developers aware of misconfigurations in their Kubernetes manifests?“.

Related Work:
– Rahman, A., Shamim, S., Bose, D., & Pandita, R. (2023). Security misconfigurations in open source kubernetes manifests: An empirical study. ACM Transactions on Software Engineering and Methodology, 32(4), 1–36.
– Mahajan, V., & Mane, S. (2022). Detection, Analysis and Countermeasures for Container based Misconfiguration using Docker and Kubernetes. In 2022 International Conference on Computing, Communication, Security and Intelligent Systems (IC3SIS) (pp. 1–6).

Supervisor: Sebastian Simon

Context: Modern software development involves a plethora of different technologies that encode not only hundreds of configuration options in their own configuration files, but also introduce intertwined configuration dependencies across the used technology stack. The missing awareness of these configuration dependencies inevitably leads to misconfigurations with varying severity, such as system failures, performance downgrades, or unexpected system behavior. Hence, proactively prevent such misconfigurations during software development and maintenance is an important task. Recent advances in Large Language Models (LLMs) show promising results in configuration validation, but reveal a weakness in effectively addressing configuration dependencies.

Objective: The main objective of this thesis to explore the potential of LLMs as configuration dependency validators. The primary challenge is to collect dependency-related data and fine-tune LLMs in order to effectively validate configuration dependencies. The envisioned models should be lean enough to execute locally without the need for substantial computational resources.

Related Work:
– Lian, X., Chen, Y., Cheng, R., Huang, J., Thakkar, P., & Xu, T. (2023). Configuration Validation with Large Language Models. arXiv preprint arXiv:2310.09690.
– Simon, S., Ruckel, N., & Siegmund, N. (2023). CfgNet: A Framework for Tracking Equality-Based Configuration Dependencies Across a Software Project. IEEE Transactions on Software Engineering.
– Chen, Q., Wang, T., Legunsen, O., Li, S., & Xu, T. (2020). Understanding and discovering software configuration dependencies in cloud and datacenter systems. In Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (pp. 362–374).

Supervisor: Sebastian Simon

Systematic testing of (new versions of) software often focuses on functionality, but neglects testing of non-functional properties (e.g., performance or energy consumption), among other things due to cost reasons. As not every revision of a software product can be tested exhaustively, in both academia and industry, a variety of methods has been devised to detect software performance changes and guide testing resources, for instance, by exploring proxy metrics that hint to performance degradation.

The goal of this thesis project is to conduct a systematic literature study (following the methodology guidelines below) and provide an overview of challenges and methods regarding the assessment of software performance across different versions as well as the detection of performance degradation. The body of existing work, among other things, covers testing granularity (micro or macro benchmarking), perspective (retrospective detection or proactively predicting performance), and different criteria of detecting performance regressions (thresholds, significance, etc.). 

Methodology:

  • Claes Wohlin. 2014. Guidelines for Snowballing in Systematic Literature Studies and a Replication in Software Engineering. In Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering (EASE ’14). ACM 2014
  • Kitchenham, S. Charters, Guidelines for Performing Systematic Literature Reviews in Software Engineering (version 2.3), Technical Report, Keele University and University of Durham, 2007.

Ansprechpartner: Stefan Mühlbauer

Kontext: Heutzutage sind die meisten Softwaresysteme konfigurierbar. Diese Systeme besitzen Optionen, mit denen Nutzer die Funktionalität steuern können. Welche Optionen gleichzeitig aktiv sein können, wird typischerweise mit einem Variabilitätsmodell beschrieben. Zusätzlich beeinflussen Optionen und Interaktionen zwischen Optionen aber auch nicht-funktionale Eigenschaften (NFP), wie etwa den Energieverbrauch. Um die Optionen eines Systems so zu wählen, dass es möglichst wenig Energie verbraucht, muss man die Auswirkung von Optionen und deren Interaktionen auf den Energieverbrauch verstehen. Mittels Machine Learning lässt sich mit weniger Energiemessungen ein Attributiertes Variabilitätsmodell (AVM) erstellen, welches ausgewählten Optionen und Interaktionen einen Einfluss auf NFPs zuordnet. Zum Zeitpunkt der Modellierung ist jedoch meist nicht klar, welche Optionen und Interaktionen tatsächlich einen Einfluss haben und Teil des Modells sein sollten. Aktuelle Ansätze treffen automatisch eine intransparente Auswahl oder überlassen die sogenannte Feature Selection den Modellierenden ganz. Diese Auswahl ist immer mit Unsicherheit verbunden, da sie nur mit begrenzten Daten getroffen werden kann.

Ziel der Arbeit: Ziel ist es, einen Ansatz zu entwickeln und zu evaluieren, der die Unsicherheit der Modellstruktur von AVMs explizit macht. Somit soll ein Modell Auskunft darüber geben können, welche Interaktionen mit den gegebenen Daten wahrscheinlich sind, und welchen Einfluss sie haben können. Das schätzen des Einflusses kann mit Estimation-of-Distribution-Algorithmen (EDAs) erreicht werden, während die Schätzung der Modellstruktur mithilfe von Grammatik-basierten EDAs erreicht werden kann. Da es verschiedene EDAs in der Literatur gibt, sollte zu Beginn eine Literaturstudie durchgeführt werden. In einer Evaluation des Ansatzes sollte gezeigt werden, dass einerseits akkurate Modelle gelernt werden können. Andererseits soll experimentell gezeigt werden, dass der Ansatz die möglichen Modellstrukturen mit mehr Daten immer weiter einschränkt.

Vorwissen: Grammatiken, Python, ggf. genetische Algorithmen, ggf. Modul Konfigurierbare Softwaresysteme

Quellen:

  • Pelikan, Martin, David E. Goldberg, and Erick Cantú-Paz. 1999. “BOA: The Bayesian Optimization Algorithm.” In Proceedings of the 1st Annual Conference on Genetic and Evolutionary Computation – Volume 1, 525–32. GECCO’99. San Francisco, CA, USA: Morgan Kaufmann Publishers Inc. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.46.8131.
  • Shan, Y., R. I. McKay, R. Baxter, H. Abbass, D. Essam, and H. X. Nguyen. 2004. “Grammar Model-Based Program Evolution.” In Proceedings of the 2004 Congress on Evolutionary Computation (IEEE Cat. No.04TH8753), 1:478-485 Vol.1. https://doi.org/10.1109/CEC.2004.1330895.
  • Sotto, Léo Françoso Dal Piccol, and Vinícius Veloso de Melo. 2017. “A Probabilistic Linear Genetic Programming with Stochastic Context-Free Grammar for Solving Symbolic Regression Problems.” ArXiv:1704.00828 [Cs, Math, Stat], April. http://arxiv.org/abs/1704.00828.
  • J. Dorn, S. Apel, and N. Siegmund. Mastering Uncertainty in Performance Estimations of Configurable Software Systems. In Proceedings of Automated Software Engineering (ASE), 2020. Acceptance rate (full papers): 22.5% (93 / 408).
  • Poli, Riccardo, William B. Langdon, Nicholas F. McPhee, and John R. Koza. 2008. A Field Guide to Genetic Programming. [Morrisville, NC: Lulu Press]. http://www.gp-field-guide.org.uk. (Chapter 1 – 8)

Ansprechpartner: Johannes Dorn

Kontext: Aktuellen Trends in der Digitalisierung und Virtualisierung führen dazu, dass der Energiebedarf von IT-Systemen stetig steigt. Verschiedene Prognosen schätzen, dass sich der Energieverbrauch bis 2030 verdoppeln wird. Im Hinblick auf die Erderwärmung und die Klimaziele der Bundesrepublik ist es notwendig, diesem Energiebedarf entgegen zu wirken.

Konfigurierbare Softwaresystemen bieten eine Vielzahl von Konfigurationsoptionen, die die Funktionalität der Systeme an das Nutzungsszenario anzupassen. Durch das konfigurieren werden aber auch Nicht-Funktionale Eigenschaften wie Ausführungszeit und Energieverbrauch beeinflusst. Fast immer existiert im Konfigurationsraum eine Konfiguration, die besser (effizienter, schneller) ist als die aktuelle Konfiguration. Wenn solche Konfigurationen gefunden werden, kann der Energieverbrauch des Softwaresystems verringert werden ohne den Source Code der Software anzupassen.

Probleme&Motivation: Die große Anzahl an verschiedenen Kombinationsmöglichkeiten (unterschiedliche Hardware und Software) macht es unmöglich den alle Varianten zu testen. Vor allem das bestimmen des Energieverbrauchs einer Variante ist aufwändig, fehleranfällig und benötigt spezielle Energiemesssysteme.

Wir wollen uns zu nutze machen, dass es nur ein Teil der Konfigurationsoptionen einen Einfluss auf den Energieverbrauch oder die Laufzeit haben. Wir nur Konfiguration messen, die uns möglichst viel Informationen liefern. Es gibt Ansätze einflussreiche Kandidaten zu identifizieren: Wir können Konfigurationen Gruppieren (Clustering) und dann wenige Konfigurationen messen oder wir können Wissen über die Ausführzeit nutzen (Transfer Learning) und vielversprechende Konfigurationen identifizieren.

Ziel der Arbeit: Ziel dieser Arbeit ist es, verschiedene Ansätze für Transfer Learning und Clustering miteinander zu kombinieren um effizient die nächsten zu messenden Konfigurationen zu identifizieren.

Quellen:

  • Pooyan Jamshidi, Miguel Velez, Christian Kästner, and Norbert Siegmund. Learning to Sample: Exploiting Similarities Across Environments to Learn Performance Models for Configurable Systems. In Proceedings of the European Software Engineering Conference and the ACM SIGSOFT International Symposium on the Foundations of Software Engineering (ESEC/FSE), pages 71-82, ACM Press, 2018.
  • Pooyan Jamshidi, Norbert Siegmund, Miguel Velez, Christian Kästner, Akshay Patel, and Yuvraj Agarwal. Transfer Learning for Performance Modeling of Configurable Systems: An Exploratory Analysis. In Proceedings of the International Conference on Automated Software Engineering (ASE), pages 497-508, ACM Press, November 2017.
  • Pooyan Jamshidi, Miguel Velez, Christian Kästner, Norbert Siegmund, and Prassad Kawthekar.Transfer Learning for Improving Model Predictions in Highly Configurable Software. In Proceedings of the 12th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS), pages 31-41, IEEE, May 2017.

Ansprechpartner: Max Weber

Kontext: Heutzutage sind die meisten Softwaresysteme konfigurierbar. Diese Systeme besitzen Optionen, mit denen Nutzer die Funktionalität steuern können. Gleichzeitig beeinflussen Optionen aber auch nicht-funktionale Eigenschaften (NFP), wie etwa den Energieverbrauch. Wenn man die funktional benötigten Optionen gewählt hat, ist es erstrebenswert, die verbleibenden Optionen so zu wählen, dass die NFP optimiert werden. Der Optimierungsprozess ist allerdings nicht trivial, da es zwischen Optionen Beschränkungen (Constraints) gibt, sodass nicht alle Optionen miteinander kombiniert werden können. Optionen und deren Constraints werden typischerweise in Variabilitätsmodellen (VM) erfasst. Um die Optimierung effizienter zu gestalten, lassen sich die Einflüsse der einzelnen Optionen mit Machine Learning ermitteln und in einem Attributierten Variabilitätsmodell (AVM) erfassen.

Ziel der Arbeit:

Es soll ein Ansatz entwickelt werden, welcher den Vergleich verschiedener Optimierungs-Ansätze für beliebig komplexe Systeme ermöglicht. Somit kann die Evaluierung von bestehenden und zukünftigen Optimierungs-Ansätzen maßgeblich optimiert werden. Mit einem gegebenen AVM soll der Ansatz ein größeres und ggf. komplexeres AVM generieren, welches weiterhin realistische Eigenschaften besitzt. Hierfür eignen sich insbesondere Genetische Algorithmen. Der Entwickelte Ansatz wird schließlich validiert und zur Evaluation von State-of-the-Art Optimierungs-Ansätzen genutzt.

Vorwissen: Grundlagen in Python, Genetische Algorithmen, ggf. Konfigurierbare Softwaresysteme

Quellen:

  • Siegmund, Norbert, Stefan Sobernig, and Sven Apel. “Attributed Variability Models: Outside the Comfort Zone.” In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering, 268–78. ESEC/FSE 2017. New York, NY, USA: ACM, 2017. https://doi.org/10.1145/3106237.3106251.
  • Dorn, Johannes, Sven Apel, and Norbert Siegmund. “Generating Attributed Variability Models for Transfer Learning.” In Proceedings of the 14th International Working Conference on Variability Modelling of Software-Intensive Systems, 1–8. Magdeburg Germany: ACM, 2020. https://doi.org/10.1145/3377024.3377040.

Ansprechpartner: Johannes Dorn

Kontext: Aktuellen Trends in der Digitalisierung und Virtualisierung führen dazu, dass der Energiebedarf von IT-Systemen stetig steigt. Verschiedene Prognosen schätzen, dass sich der Energieverbrauch bin 2030 verdoppeln wird. Im Hinblick auf die Erderwärmung und die Klimaziele der Bundesrepublik ist es notwendig, diesem Energiebedarf entgegen zu wirken.

In letzter Zeit gewinnt das Thema Energieeffizienz von Software immer mehr an Bedeutung. Hardware ist das physische Medium, welches Energie verbraucht, Software jedoch steuert die Hardware. Software ist also einer der wichtigsten Bestandteile wenn es um die Reduzierung von Energieverbrauch geht. Uns interessiert im Rahmen dieser Arbeit nicht nur, wie wir Software konfigurieren können um Energie zu sparen, sonder auch, warum bestimmte Konfigurationen einen höheren Verbrauch haben.

Probleme&Motivation: Um sparsame und schnelle Konfigurationen von Softwaresystemen zu finden, werden Performance/Energie-Einfluss Modelle gelernt. Mithilfe dieser Modelle kann der Konfigurationsraum nach besseren Konfigurationen durchsucht werden. Solche so genannten Black-Box Modelle können Konfigurationsoptionen und Interaktionen identifizieren, die einen großen Einfluss auf das Verhalten haben. Sie können jedoch keinen Aufschluss darüber geben, warum Konfigurationen schneller oder sparsamer sind als Andere.

Deshalb wollen wir Energie-Einfluss Modelle auf Methodenebene lernen. Energiemessung sind, im Vergleich zu Performancemessungen, jedoch gröber aufgelöst, weniger genau und benötigen spezielle Messgeräte. Wir wollen also Wissen aus Methoden-Level Performance-Influence Modellen transferieren um das Lernen der Energie-Modelle zu unterstützen.

Ziel der Arbeit: Entwickeln und Evaluieren eines Ansatzes zur Erstellung von Energie-Influence Modellen auf Methodenebene.

Ansprechpartner: Max Weber

Kontext: Aktuellen Trends in der Digitalisierung und Virtualisierung führen dazu, dass der Energiebedarf von IT-Systemen stetig steigt. Verschiedene Prognosen schätzen, dass sich der Energieverbrauch bin 2030 verdoppeln wird. Im Hinblick auf die Erderwärmung und die Klimaziele der Bundesrepublik ist es notwendig, diesem Energiebedarf entgegen zu wirken.

Probleme&Motivation: In der Literatur befassen sich einige Arbeiten mit der Sicht der Developer, andere beleuchten die Einstellung von Unternehmen im Generellen zum Energieverbrauch von Soft- und Hardware. Es ist jedoch vor allem auf Seiten der Entscheidungsträger (Hardare- und Softwarebeschaffung, Verwaltung und Administration, …) nicht klar, welche akuten Probleme existieren.

Ziel der Arbeit: Durch eine Literaturanalyse soll der ‚Ist-Zustand‘ in der Forschung erfasst werden. Daraus resultierend sollen dann, mithilfe von Fragebögen, Interviews, Surveys, u.s.w., Perspektiven verschiedener Akteure (Entscheidungsträger, Developer, Forscher, Anwender, …) erfasst und gegenüber gestellt werden um aktuelle Probleme und Aufgaben zu identifizieren.

Quellen:

  • Pang, Candy, et al. „What do programmers know about software energy consumption?.“ IEEE Software 33.3 (2015): 83-89.
  • Jagroep, Erik, et al. „Energy efficiency on the product roadmap: An empirical study across releases of a software product.“ Journal of Software: Evolution and process 29.2 (2017): e1852.

Ansprechpartner: Max Weber

Kontext: Aktuellen Trends in der Digitalisierung und Virtualisierung führen dazu, dass der Energiebedarf von IT-Systemen stetig steigt. Verschiedene Prognosen schätzen, dass sich der Energieverbrauch bin 2030 verdoppeln wird. Im Hinblick auf die Erderwärmung und die Klimaziele der Bundesrepublik ist es notwendig, diesem Energiebedarf entgegen zu wirken.

Die Analyse des Energieverbrauchs von IT-Systemen ist ein nicht triviales Feld in der Forschung. Sowohl Hardawre als auch Software hat einen Einfluss auf den Energirverbrauch. Die große Anzahl an verschiedenen Kombinationsmöglichkeiten (unterschiedliche Hardware und Software) macht es schwer eine optimale Konfiguration zu finden.

Probleme&Motivation: Um dieses Problem anzugehen haben wir ein Energiemesssystem für Office PCs entwickelt, mit dem wir sowohl den Energieverbrauch wie auch die Performance aller aktiven Anwendungen messen können. Wir haben im Rahmen von einer 2-monatigen Studie Daten alle Daten erhoben [1]. Dieser Datensatz soll die Grundlage für die Arbeit sein.

Ziel der Arbeit: Ziel der Arbeit ist es, die gesammelten Daten auszuwerten und den Einfluss von Hardware und Softwarekonfigurationen auf Performance und Energieverbrauch zu modellieren und zu vergleichen. Anschließend können konkrete Handlungsweisen abgeleitet und geteste werden.

Quellen:

Ansprechpartner: Max Weber

Kontext: Mittels Performance-Influence-Modellen lässt sich die Performance (z.B. Durchsatz oder Ausführungszeit) eines konfigurierbaren Softwaresystems beschreiben. In bisherigen Ansätzen werden zumeist nur Performance-Messungen unter einem bestimmten Workload (z.B. ein bestimmter Testfall oder ein bestimmter Benchmark) berücksichtigt. Da der Workload jedoch, ebenso wie die Konfiguration eines Softwaresystems, einen Einfluss auf die Performance haben kann, ist es nicht gewährleistet, dass Vorhersagen eines Performance-Influence-Modells für beliebige Workloads gültig sind.

Motivation: Um dem Problem der Workload-spezifischen Performance-Modelle zu begegnen, wurden verschiedene, auf Transfer-Learning aufbauende Ansätze entwickelt, welche die Wiederverwendbarkeit Workload Sensitivity:von Performance-Influence-Modellen über mehrere Workloads hinweg anstreben. Dadurch lässt sich in der Theorie eine Vielzahl von teuren Performance-Messungen einsparen, indem nicht pro Workload ein Modell gelernt wird, sondern, von einem bestehenden Modell ausgehend, die Unterschiede zwischen verschiedenen Workloads berücksichtigt werden.

Ziel der Arbeit: Es existiert eine Vielzahl von Ansätzen, welche u.a. Unterschiede von Workloads, aber auch Versionen eines Softwaresystems und Hardware-Unterschiede berücksichtigen. Im Rahmen der Arbeit sollen verschiedene Ansätze zum Transfer-Learning von Performance-Influence-Modellen für Workloads mit realen, evtl. selbst erfassten Messdaten getestet und verglichen werden: Welche Ansätze sind besser für Workloads geeignet und wie lassen sich bestehende Ansätze verbessern

Vorwissen: Programmierkenntnisse (Python, Bash o.ä.), Grundlagen Maschinelles Lernen, ggf. Konfigurierbare Softwaresysteme

Quellen:

  • Transfer Learning: Pooyan Jamshidi, Norbert Siegmund, Miguel Velez, Christian Kästner, Akshay Patel, and Yuvraj Agarwal. Transfer Learning for Performance Modeling of Configurable Systems: An Exploratory Analysis. In Proceedingsof the International Conference on Automated Software Engineering (ASE), pages 497-508, ACM Press, November 2017
  • Performance-Influence-Modelle: Christian Kaltenecker, Alexander Grebhahn, Norbert Siegmund, and Sven Apel. The Interplay of Sampling and Machine Learning for Software Performance Prediction. IEEE Software, 37(4):58–66, 2020.
  • Workload Sensitivity: Alves Pereira, J., Acher, M., Martin, H., & Jézéquel, J. M. (2020, April). Sampling effect on performance prediction of configurable systems: A case study. In Proceedings of the ACM/SPEC International Conference on Performance Engineering (SPLC) (pp. 277-288).

Sie können Themenvorschläge machen oder basierend auf Vorlesungen von uns heran treten, falls eines der obigen Themen nicht passend ist. Weiterhin stehen wir offen für eine Betreuung von Themen in Firmen, sofern es thematisch passt. Eine NDA wird aber ausgeschlossen! Wir haben ebenfalls Kontakt zu renommierten Firmen und können dabei helfen Abschlussarbeiten zu vermitteln.


Laufende Arbeiten:

Kontext:  Bei der Entwicklung von Softwaresystemen sind in der Regel eine Vielzahl von Personen, Teams oder Organisationen beteiligt. Dabei treten oft soziale und organisatorische Herausforderungen auf, die sich sowohl auf das entwickelte System als auch auf die verwendeten Entwicklungswerkzeuge auswirken können. Solche sozio-technischen Herausforderungen lassen sich auf verschiedenen Ebenen beobachten, zum Beispiel in der Projektplanung, Teamzusammensetzung, Kommunikation oder der direkten Zusammenarbeit von Entwickler*innen. Ein bekanntes Beispiel für eine sozio-technische Interaktion ist das Gesetz von Conway, welches besagt, dass die Kommunikation zwischen den Komponenten einer Software die Struktur der entwickelnden Organisation widerspiegelt. Der soziale Kontext ist somit von entscheidender Bedeutung für die technische Entwicklung. 

Motivation: Oftmals teilen professionelle Entwickler, Manager und andere am Entwicklungsprozess beteiligte Berufsgruppen ihre Erfahrungen und Erkenntnisse in Form von Blog-Beiträgen, Podcasts oder Vorträgen auf Community-Treffen. Diese Datenquellen werden in der empirischen Software Engineering Forschung als grau bezeichnet und sind immer häufiger Teil akademischer Forschung. Aufgrund der tiefen Einblicke, die diese Formate in die Arbeitsrealität bieten, können sie sowohl in systematischen Literaturstudien als auch als alternative oder ergänzende Datenquelle zu (strukturierten) Interviews verwendet werden. Zuletzt wurden Podcasts verwendet, um sozio-technische Herausforderungen in der Entwicklung von KI-Systemen zu identifizieren (Mailach & Siegmund, 2023). 

Ziel der Arbeit: Diese Bachelorarbeit hat zum Ziel, eine systematische Analyse von Podcasts mit technical Leadern durchzuführen, um das vorhandene Wissen zu sozio-technischen Herausforderungen in der Entwicklung von KI-Systemen mit Einsichten aus dem generellen Software Engineering zu vergleichen. Dabei werden die zu verwendenden Methoden und Datenquellen vorgegeben. Als Ergebnis soll die Arbeit sowohl einen Überblick über die sozio-technischen Herausforderungen in den analysierten Podcasts, als auch einen Vergleich zu den Herausforderungen in der Entwicklung von KI-Systemen enthalten.Methoden: Zur Extraktion der sozio-technischen Herausforderungen aus den Podcasts soll eine qualitative thematische Analyse nach Braun und Clarke (2006, 2019) durchgeführt werden. Es kann das Vorgehen von Mailach & Siegmund (2023) adaptiert werden, um Transkripte zu erstellen und relevante Teile der Podcasts zu identifizieren.

Betreuerin: Alina Mailach

Context: Qualitative research methods are commonly employed to examine various facets of software engineering, including developer behavior, opinions, and perspectives. These methods allow for a comprehensive exploration of both technical and non-technical aspects within the field. Qualitative data, unlike quantitative data, typically consists of textual, video, or audio materials that require manual analysis. Frequently, such data is gathered through interviews, surveys, or focus groups, enabling a rich and nuanced understanding of software engineering processes.

Motivation: Exploring the ways in which software engineering researchers employ qualitative methods is crucial for comprehending current practices and crafting supportive methodologies. Specifically, as researchers are increasingly urged to share their data and interim research findings as artifacts, the collection and curation of these research materials, accompanied by methodological information, can serve as a valuable resource for the development of automated systems designed to assist qualitative researchers.

Thesis Objective: The primary objective of this thesis is to collect and analyze qualitative research artifacts, complemented by methodological insights, to create a carefully curated dataset. To accomplish this, a comprehensive and systematic  literature review must be designed and executed.

Betreuerin: Alina Mailach

Bearbeitung eines externen Themas an der TU Wien.

Ansprechpartner: Stefan Mühlbauer

Probleme&Motivation: Informationen über das Entwicklerverhalten, z.B. Starten von Test- und Debuggingsessions, haben vielfältige Nutzen wie zum Beispiel die Vorhersage von Fehlerwahrscheinlichkeiten oder die Analyse der Auswirkungen verschiedener Software-Entwicklungsmethodiken auf den Entwickler*innenalltag.

Ziel der Arbeit: Im Rahmen dieser Abschlussarbeit soll eine IDE-Erweiterung entworfen und entwickelt werden, um Interaktionen von Entwickler*innen mit der IDE zu protokollieren und damit Einblicke in deren Verhalten zu geben.

Die Abschlussarbeit wird bei der XITASO GmbH betreut und durchgeführt. Mehr Informationen unter der Beschreibung.

Kontext: Aktuellen Trends in der Digitalisierung und Virtualisierung führen dazu, dass der Energiebedarf von IT-Systemen stetig steigt. Verschiedene Prognosen schätzen, dass sich der Energieverbrauch bin 2030 verdoppeln wird. Im Hinblick auf die Erderwärmung und die Klimaziele der Bundesrepublik ist es notwendig, diesem Energiebedarf entgegen zu wirken.

Probleme&Motivation: Ein Weg, um den Energieverbrauch von IT-Systemen zu reduzieren, ist Quelltext-Optimierung. Für Entwickler ist allerdings gerade bei großen Projekten nicht ersichtlich, wo Energie eingespart werden kann. Für Ausführzeit-Optimierungen gibt es bereits Profiler, die Zeit messen und damit langsame Funktionen ermitteln; für Energieverbrauch-Optimierung bietet sich ein ähnlicher Ansatz an, doch lösen aktuell verfügbare Messgeräte zeitlich viel zu grob auf um Rückschlüsse auf einzelne Methoden zuzulassen.
Ziel der Arbeit: Um Energieverbrauch auf Methodenebene zu messen, wird ein Messsystem benötigt, welches im Nanosekunden-Bereich Energie messen kann. Es kann auf ein bestehendes System mit Energie-Messpunkten (INA226), einem Mikrocontroller-DevBoard (Teensy 4.0) und Raspberry Pi zurückgegriffen werden. Eine Besondere Herausforderung stellt die Verabrietung der Daten in Echtzeit dar.
Das resultierende System soll von anderen Forschenden leicht reimplementiert werden können um weitere Forschung an Energieverbrauchs-Optimierung zu begünstigen. Dementsprechen sollten verfügbare und erschwingliche Materialien verwendet und entwickelter Quelltext dokumentiert und veröffentlicht werden.
Quellen:

Kontext: Active Learning beschreibt ein Machine Learning Szenario, bei dem das Modell Stück für Stück selbst entscheidet, welche Daten es für das Training benötigt. Da die Zahl der möglichen Konfigurationen exponentiell mit der Anzahl der Optionen eines konfigurierbaren Softwaresystems wächst, ist Active Learning in diesem Feld besonders vielversprechnd um bspw. den Energieverbrauch bei relativ wenig Messungen gut vorhersagen zu können.

Probleme&Motivation: Aktuelle Ansätze wählen oft Pool-Based-Active-Learning, welches dem Modell einen alle Konfigurationen umfassenden Pool zur Auswahl für die nächst Messung gibt. Für größere Systeme ist das nicht machbar, da es zu viele Konfigurationen gibt.

Ziel der Arbeit: Als Alternative zum Pool-Based-Sampling soll ein Active-Learning-Ansatz entwickelt werden, der anhand der Modell-Parameter und die damit verbundenen Unsicherheiten entscheidet, welche Konfigurationen als nächstes gemessen werden sollen. Hierfür können bestehende Probabilistic-Programming-Ansätze als Grundlage für Modelle, die eine Unsicherheitsinschätzung bieten, genutzt werden, Ziel ist es somit auch, sich Kenntnisse zu Probabilistic Programming anzueignen.

Quellen:

  • Burr Settles. “Active Learning Literature Survey.” Computer Sciences Technical Report. University of Wisconsin-Madison, 2009.
  • TBA

Kontext: Bei der Entwicklung moderner Softwaresysteme werden eine Vielzahl von Technologien, wie z. B. Containerization, CI/CD Pipelines, oder Build Tools eingesetzt. Diese Technologien haben das Ziel den Entwicklungs- und Deploymentprozess von Softwaresystemen zu erleichtern, verursachen jedoch ein Problem hinsichtlich der Konfiguration eines Softwaresystems, da diese Technologien auch konfiguriert werden müssen. D. h. diese Technologien bringen ihre eigenen Konfigurationsoptionen mit sich und erzeugen Abhängigkeiten innerhalb des Technologie- und Softwarestacks eines Softwaresystems. Eine Verletzung einer solchen Abhängigkeit zwischen verschiedenen Technologien führt zu einem Konfigurationskonflikt und im schlimmsten Fall zu Konfigurationsfehler. Um dieses Problem anzugehen, wurde das Framework CfgNet entwickelt, welches die Konfigurationslandschaft von Softwaresystemen als ein Netzwerk modelliert und somit das Verfolgen und Analysieren von Konfigurationen ermöglicht. Weiterhin ermöglicht das CfgNet die Erkennung von Konfigurationskonflikten zwischen Technologien und bietet Entwickler verschiedene Informationen zur Lösung dieser Konfigurationskonflikte. Das Lösen eines Konfigurationskonfliktes erfolgt jedoch weiterhin manuell durch den Entwickler.

Ziel der Arbeit: Für das CfgNet soll ein Interface entwickelt werden, dass zur Manipulation von Konfigurationsdateien genutzt werden soll. Mithilfe des Interfaces sollen Entwickler die Möglichkeiten haben, Änderungen an Konfigurationsdateien automatisiert vorzunehmen, ohne dabei die jeweiligen Konfigurationsdateien manuell bearbeiten zu müssen. Weiterhin soll möglich sein, dass gefundene Konfigurationskonflikte automatisiert behoben werden können, indem die vom CfgNet bereitgestellten Informationen zur Manipulation der Konfigurationsdateien genutzt werden.

Vorwissen: Kenntnisse in OOP und Python sind vorteilhaft.

Quellen:

  • Tianyin Xu and Yuanyuan Zhou. 2015. Systems Approaches to Tackling Configuration Errors: A Survey.
  • Tianyin Xu, Long Jin, Xuepeng Fan, Yuanyuan Zhou, Shankar Pasupathy, and Rukma Talwadker. 2015. Hey, You Have Given Me Too Many Knobs!: Understanding and Dealing with Over-designed Configuration in System Software.
  • Li, Wang and Jia, Zhouyang and Li, Shanshan and Zhang, Yuanliang and Wang, Teng and Xu, Erci and Wang, Ji and Liao, Xiangke. 2021 . Challenges and opportunities: an in-depth empirical study on configuration error injection testing.
  • Lutterkort, David. 2008. Augeas–a configuration API.
  • Schwaiger, Rene, 2020, Parsing of configuration files

Ansprechpartner: Sebastian Simon

Context: Prompt Engineering involves the systematic development and refinement of inputs (prompts) to optimize the generated response of a Large Language Model (LLM). Unlike training or fine-tuning LLMs, Prompt Engineering is more resource-efficient, yet it can effectively handle specific tasks. Searching for suitable prompts often requires trying out different prompting methods and configurations of the LLM, which are compared with each other experimentally.

Motivation: Experiences from integrating machine learning models into software systems have shown that development teams in practice encounter significant challenges through the experimental phase of development. Therefore, various tools have been developed to monitor and manage machine learning experiments. A similar development can be expected in the field of Prompt Engineering experiments. Therefore, it is of great importance to capture the technological environment early on and analyze the requirements of the users.

Thesis Objective: This thesis aims to analyze the functionalities and limitations of existing tools for Prompt Engineering experiments, as well as their practical application. To achieve this, a comprehensive technological overview of existing tools and their functionalities will be created. Depending on the focus, a survey or expert interviews can then be conducted to investigate the usage of the identified tools and the needs of users.

Betreuerin: Alina Mailach

Betreuerin: Alina Mailach

Performance influence models can be used to describe the performance (e.g., throughput or execution time) of a configurable software system. In previous considerations, mostly only performance measurements under a specific workload (e.g. a specific test case or a specific benchmark) are taken into account. However, since the workload, like the configuration of a software system, can have an impact on performance, it is not guaranteed that predictions of a performance influence model are valid for arbitrary workloads. The influence of individual configuration options may depend on the nature of a workload (e.g., characteristics such as input size, file format, etc.). In turn, the characteristics of a workload can affect the execution of a program, so that, for example, certain feature code is only executed under certain workloads or the frequency of method calls/API calls is determined by workload characteristics.

Motivation: The combination of workload properties and configuration options of a software system increases the complexity and thus cost of learning predictive models. Knowing which configuration options/features can be influenced by which properties of a workload can allow to learn a tailored model for a workload by learning only the influences of relevant or sensitive configuration options.

Aim of the work: Within the scope of the work, a method shall be developed and tested, which establishes associations between workload characteristics and configuration options by (systematic or randomized ) testing of different workloads (of an arbitrary domain, e.g. databases or data compression) and configurations: For which configuration options does the execution (coverage or frequency) of feature code change when I vary a particular property of a workload?

Betreuer: Stefan Mühlbauer

Literatur: (grobe Auswahl zum Einstieg)

  • Lesoil, L., Acher, M., Blouin, A., and Jézéquel, J. M. (2021). The Interaction between Inputs and Configurations fed to Software Systems: An Empirical Study. In Journal of Software and Systems, 2023 (to appear, preprint available)
  • Mühlbauer, S., Sattler, F., Kaltenecker, C., Dorn, J., Apel, S., and Siegmund, N. (2023). Analyzing the Impact of Workloads on Modeling the Performance of Configurable Software Systems. In Proceedings of the International Conference on Software Engineering (ICSE), IEEE.
  • evtl.: Gabriela K. Michelon, Bruno Sotto-Mayor, Jabier Martinez, Aitor Arrieta, Rui Abreu, and Wesley K. G. Assunção. 2021. Spectrum-based feature localization: a case study using ArgoUML. In Proceedings of the 25th ACM International Systems and Software Product Line Conference – Volume A (SPLC ’21). Association for Computing Machinery, New York, NY, USA, 126–130

Abgeschlossene Arbeiten

Evolution of the Configuration Space of Open-Source Software Systems

Ermittlung von Konfigurationsoptionen im Source Code mit Fokus auf Machine Learning Bibliotheken in Python (Bachelor)

Tracking Configuration Options on Source Code Focusing on Java Frameworks (Bachelor)

Klassifikation von Konfigurationsabhängigkeiten zwischen verschiedenen Technologien (Bachelor)

Software Engineering 4 AI in der Praxis (Bachelor)

Abdeckungsanalyse von konfigurierbaren Performance-Benchmarks und Softwaresystemen (Bachelor/Master)

Energy Consumption in Practice (Bachelor)

Studie über Konfigurationsfehler (Bachelor)

Automatisiertes Beheben von Konfigurationsfehlern (Bachelor/Master)

Gruppenbasierte Sensitivitätsanalyse für die Vorhersage nicht-funktionaler Eigenschaften konfigurierbar Softwaresysteme (Bachelor)

Group Sampling for Learning Configuration-specific Software Performance (Bachelor)