<div class="csl-bib-body">
<div class="csl-entry">Kotrba, J. (2020). <i>Software complexity of a monadic style in object-oriented programming</i> [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2020.77520</div>
</div>
-
dc.identifier.uri
https://doi.org/10.34726/hss.2020.77520
-
dc.identifier.uri
http://hdl.handle.net/20.500.12708/15469
-
dc.description.abstract
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.
en
dc.description.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.
de
dc.language
English
-
dc.language.iso
en
-
dc.rights.uri
http://rightsstatements.org/vocab/InC/1.0/
-
dc.subject
Software Komplexität
de
dc.subject
Monaden
de
dc.subject
Funktionale Programmierung
de
dc.subject
Objektorientierte Programmierung
de
dc.subject
Software Complexity
en
dc.subject
Monads
en
dc.subject
Functional Programming
en
dc.subject
Object-Oriented Programming
en
dc.title
Software complexity of a monadic style in object-oriented programming
en
dc.type
Thesis
en
dc.type
Hochschulschrift
de
dc.rights.license
In Copyright
en
dc.rights.license
Urheberrechtsschutz
de
dc.identifier.doi
10.34726/hss.2020.77520
-
dc.contributor.affiliation
TU Wien, Österreich
-
dc.rights.holder
Julian Kotrba
-
dc.publisher.place
Wien
-
tuw.version
vor
-
tuw.thesisinformation
Technische Universität Wien
-
tuw.publication.orgunit
E194 - Institut für Information Systems Engineering