Powered by OpenAIRE graph
Found an issue? Give us feedback
addClaim

Microservices

Softwarearchitektur mit Einfluss auf Codequalität
Authors: Kainz, Hannes;
Abstract

The main goal of this thesis was to identify and verify the influence of the microservices software architecture on code quality. To this end, the thesis first presents the current state of research in the field of microservices, as well as definitions and an architecture analysis of software with a monolithic design approach. The first part covers these monolithic applications and then defines microservices, including a discussion of their advantages (e.g. rapid scaling through automated deployment) and disadvantages (e.g. higher complexity due to incrased number of services in an application). Next, the similar software architectures of serviceoriented architecture and self-contained services are compared to microservices. The second part of the thesis then explains methods for separating a monolithic application into microservices and then integrating those services. The theory section concludes with a description of software metrics (with a focus on code quality) and how to calculate them. In the practical portion of the thesis, the theoretical knowledge was then applied to transform a monolithic application into a system containing microservices. The monolith and the resulting microservices were then examined and compared using a series of software architecture analysis methods. Software metric analysis was performed on the resulting applications in order to determine if microservices improved code quality. Next, the time developers needed to change those applications was determined, in order to document differences in development speed. In the final step, the developers were interviewed to obtain their opinions about the influence of microservices on code readability. The results show that the duration of application changes is not affected by the conversion from monolithic application to microservices. However, the other findings indicate that the complexity decreases and the readability improves.

Der Fokus dieser Arbeit liegt auf dem Identifizieren und Verifizieren des Einflusses von Microservices auf die Codequalität von Softwareanwendungen. Im ersten Teil der Arbeit sind Definitionen und Architekturen der untersuchten Softwareapplikationen dargelegt. Dies beinhaltet die Definition von monolithischer Software und deren Architektur und die Definition von Microservices mit seinen Vorteilen (zum Beispiel die Skalierung durch automatisiertes Deployment) und Nachteilen (zum Beispiel höhere Komplexität durch die erhöhte Anzahl von Softwareteilen). Darauf folgt eine Analyse von den ähnlichen Softwarearchitekturkonzepten der serviceorientierten Architektur und den Self-contained Services. Der Theorieteil zu Microservices endet mit der Darstellung von Methoden zur Trennung von monolithischer Software in Microservices und wie diese Dienste wieder zu einer Gesamtanwendung zusammengeführt werden können. Zur Vervollständigung ist der aktuelle Forschungsstand auf dem Gebiet der Microservices angeführt und es wird ein Einblick in eine Auswahl an Softwaremetriken zur Erhebung von Softwarequalität gegeben. Im praktischen Teil der Arbeit wurden die theoretischen Erkenntnisse an einer Softwareapplikation angewandt. Von einem Monolithen wurden Microservices abgespalten und die resultierende Anwendung als auch der Monolith einer Softwarearchitekturanalyse unterzogen. Danach wurden Softwaremetriken für die Ausgangsapplikation und die Microservices berechnet, um festzustellen, ob sich die Codequalität verändert hat. Zum Abschluss wurde eine Analyse der Änderungsgeschwindigkeit in beiden Applikationen durchgeführt, gefolgt von Interviews mit Softwareentwicklern zu dem Qualitätsmerkmal Lesbarkeit von Quellcode. Die Ergebnisse zeigen eine Verringerung der Komplexität des entstandenen Quellcodes und eine Erhöhung der Lesbarkeit gegenüber der Ausgangsanwendung.

Keywords

005 Computerprogrammierung, Programme, Daten

  • BIP!
    Impact byBIP!
    selected citations
    These citations are derived from selected sources.
    This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    0
    popularity
    This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
    Average
    influence
    This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    Average
    impulse
    This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
    Average
Powered by OpenAIRE graph
Found an issue? Give us feedback
selected citations
These citations are derived from selected sources.
This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Citations provided by BIP!
popularity
This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
BIP!Popularity provided by BIP!
influence
This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Influence provided by BIP!
impulse
This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
BIP!Impulse provided by BIP!
0
Average
Average
Average
Upload OA version
Are you the author of this publication? Upload your Open Access version to Zenodo!
It’s fast and easy, just two clicks!