Konzepte der reaktiven Programmierung am Beispiel einer Feuerwehreinsatzanwendung

Im Zuge meines Bachelorstudiums habe ich Ende Juli meine Bachelorarbeit mit dem Titel „Konzepte der reaktiven Programmierung am Beispiel einer Feuerwehreinsatzanwendung“ fertiggestellt. Die Arbeit wurde am Institut für Wirtschaftsinformatik im Bereich Software-Engineering verfasst.

Im Folgenden ist die Arbeit als eingebettetes PDF zu finden und das Abstract auf Deutsch und Englisch.

Kurzzusammenfassung

Das Ziel dieser Arbeit ist es die Vor- und Nachteile reaktiver Programmierung zu bestimmen. Dazu wurde die folgende Forschungsfrage gestellt: „Welche Vor- bzw. Nachteile ergeben sich durch den Einsatz der Konzepte reaktiver Programmierung für Webanwendungen?“. Außerdem wurden folgende Teilfragen gestellt: „Welche Konzepte und Ansätze für die reaktive Programmierung gibt es im Kontext von Webanwendungen?“, „Wie kann eine existierende Anwendung im Bereich Feuerwehreinsatzdarstellung reaktiv umgesetzt werden?“ und „Welche Vor- und Nachteile ergeben sich durch die reaktive Umsetzung der untersuchten Fallstudie?“. Um diese Fragen zu beantworten, wird eine Literaturrecherche und eine Fallstudie durchgeführt. In der Fallstudie wird eine nicht-reaktive Feuerwehreinsatzanwendung untersucht und mittels reaktiver Ansätze neu implementiert. Weiters werden die beiden Anwendungen verglichen, um mögliche Vor- und Nachteile zu identifizieren. Abschließend werden die Ergebnisse der durch die Literatur recherchierten Vor- und Nachteile reaktiver Implementierungen mit den Ergebnissen des Vergleichs der beiden Anwendungen abgeglichen. Das Abgleichen der Ergebnisse der Literaturrecherche und des Vergleichs der beiden Anwendungen ergibt, dass reaktive Anwendungen zwar eine geringere Codekomplexität und eine bessere Wartbarkeit aufweisen, aber beim Debugging Nachteile gegenüber imperativ programmierten Anwendungen haben. Diese Arbeit zeigt, dass reaktive Programmierung Vorteile gegenüber konventionellen Programmierparadigmen hat und insbesondere bei größeren Anwendungen, bei denen die Wartbarkeit und Codekomplexität eine große Rolle spielen, als Mittel der Wahl in Betracht
gezogen werden sollte.

Abstract

The main goal of this thesis is to determine the advantages and disadvantages of reactive programming. The following research question was asked: „What are the advantages and disadvantages of using the concepts of reactive programming for web applications?“. In addition, the following sub-questions were asked: „What concepts and approaches for reactive programming are there in the context of web applications?“, „How can an existing application in the area of visualising fire service incidents be implemented reactively?“ and „What advantages and disadvantages result from the reactive implementation of the examined case study?”. To answer these questions, a literature review and a case study are conducted. In the case study, a non-reactive fire service application is examined and re-implemented using reactive approaches. Furthermore, the two applications are compared to identify possible advantages and disadvantages. Finally, the advantages and disadvantages of reactive applications that are identified from a literature research are compared with the results of the comparison of the two applications. The comparison of the results of the literature research and the comparison of the two applications shows that reactive applications have a lower code complexity and better maintainability, but have disadvantages in debugging compared to imperatively programmed applications. This work shows that reactive programming has advantages over conventional programming paradigms and should be considered as the method of choice, especially for larger applications
where maintainability and code complexity play a major role.