Title: Software Complexity of a Monadic Style in Object-Oriented Programming
Language: English
Authors: Kotrba, Julian 
Qualification level: Diploma
Keywords: Software Komplexität; Monaden; Funktionale Programmierung; Objektorientierte Programmierung
Software Complexity; Monads; Functional Programming; Object-Oriented Programming
Advisor: Puntigam, Franz 
Issue Date: 2020
Number of Pages: 93
Qualification level: Diploma
Abstract: 
Über die letzten Jahre hinweg konnte ein Trend in der Entwicklung von Multiparadigmen-Programmiersprachen und der Erweiterung von Programmiersprachen mit Features aus anderen Programmiersprachen oder Programmierparadigmen festgestellt werden.Die vorliegende Arbeit beschäftigt sich mit den Auswirkungen der Verwendung eines Konzeptes aus der funktionalen Programmierung, welches im Bereich der objektorientierten Programmierung angewendet wird. Im speziellen wurde die praktische Auswirkung eines monadischen Programmierstiles in der Datenzugriffsschicht auf die Softwarekomplexität in einer bestehenden, in Java programmierten, Android Anwendungssoftware untersucht. Die Ergebnisse wurden durch Messung der Komplexitätsmetriken Non-Comment Lines of Code, Cyclomatic Complexity und Halstead Difficulty vor und nach dem Umschreiben von Teilen des Quellcodes ermittelt.Um sicherzustellen, dass Komplexitätsänderungen nach dem Umschreiben des Quellcodes auf den monadischen Programmierstil zurückzuführen sind, um eine hohe Reproduzierbarkeit erreichen und mögliche Verzerrungen der Ergebnisse minimieren zu können, wurde zusätzlich im Rahmen dieser Arbeit ein umfangreiches Regelwerk für den Umschreibungsprozess definiert. Teile des Quellcodes wurden folglich unter Einhaltung dieser definierten Regeln adaptiert.Bei der Bewertung der Gesamtergebnisse konnte eine Diskrepanz zwischen den verwendeten Metriken zur Messung der Komplexität festgestellt werden. Eine detailliertere Analyse zeigte jedoch, dass unter bestimmten Umständen eine deutliche Verringerung (Verbesserung) der Komplexität erreicht werden konnte. Liegen diese Umstände nicht vor, wurde teilweise eine deutliche Verschlechterung beziehungsweise ein Gleichbleiben der Komplexität erzielt.

In recent years, a trend in developing multi-paradigm programming languages and the extension of programming languages with features from other programming languages or programming paradigms has been observed.This thesis researches the impact of the usage of a concept from the functional programming paradigm in the field of object-oriented programming. In particular, the practical impact of a monadic programming style in the data access layer on the software complexity of an Android application software programmed in Java was examined. The results were determined by the measurement of the complexity metrics Lines Of Code, Cyclomatic Complexity and Halstead Difficulty before and after rewriting parts of the source code.To ensure that changes in software complexity after rewriting the source code can be attributed to the monadic programming style, to achieve a high level of reproducibility and to minimize rewriting bias, an extensive set of rules for the rewriting process was also defined. The rewriting of parts of the source code was then conducted in compliance with the established rules.The evaluation of the overall results showed a disconnect between the used software complexity metrics. However, a detailed analysis showed that under certain circumstances, a significant reduction (improvement) of the software complexity could be achieved. Otherwise, the software complexity remained unchanged or has significantly increased.
URI: https://doi.org/10.34726/hss.2020.77520
http://hdl.handle.net/20.500.12708/15469
DOI: 10.34726/hss.2020.77520
Library ID: AC15746286
Organisation: E194 - Institut für Information Systems Engineering 
Publication Type: Thesis
Hochschulschrift
Appears in Collections:Thesis

Files in this item:

Show full item record

Page view(s)

29
checked on Feb 20, 2021

Download(s)

40
checked on Feb 20, 2021

Google ScholarTM

Check


Items in reposiTUm are protected by copyright, with all rights reserved, unless otherwise indicated.