Refine
Document Type
- Doctoral Thesis (2)
Has full text
- yes (2)
Is part of the Bibliography
- yes (2)
Institute
- Informatik (2)
Publisher
Context: Fast moving markets and the age of digitization require that software can be quickly changed or extended with new features. The associated quality attribute is referred to as evolvability: the degree of effectiveness and efficiency with which a system can be adapted or extended. Evolvability is especially important for software with frequently changing requirements, e.g. internet-based systems. Several evolvability-related benefits were arguably gained with the rise of service-oriented computing (SOC) that established itself as one of the most important paradigms for distributed systems over the last decade. The implementation of enterprise-wide software landscapes in the style of service-oriented architecture (SOA) prioritizes loose coupling, encapsulation, interoperability, composition, and reuse. In recent years, microservices quickly gained in popularity as an agile, DevOps-focused, and decentralized service-oriented variant with fine-grained services. A key idea here is that small and loosely coupled services that are independently deployable should be easy to change and to replace. Moreover, one of the postulated microservices characteristics is evolutionary design.
Problem Statement: While these properties provide a favorable theoretical basis for evolvable systems, they offer no concrete and universally applicable solutions. As with each architectural style, the implementation of a concrete microservice-based system can be of arbitrary quality. Several studies also report that software professionals trust in the foundational maintainability of service orientation and microservices in particular. A blind belief in these qualities without appropriate evolvability assurance can lead to violations of important principles and therefore negatively impact software evolution. In addition to this, very little scientific research has covered the areas of maintenance, evolution, or technical debt of microservices.
Objectives: To address this, the aim of this research is to support developers of microservices with appropriate methods, techniques, and tools to evaluate or improve evolvability and to facilitate sustainable long-term development. In particular, we want to provide recommendations and tool support for metric-based as well as scenario-based evaluation. In the context of service-based evolvability, we furthermore want to analyze the effectiveness of patterns and collect relevant antipatterns. Methods: Using empirical methods, we analyzed the industry state of the practice and the academic state of the art, which helped us to identify existing techniques, challenges, and research gaps. Based on these findings, we then designed new evolvability assurance techniques and used additional empirical studies to demonstrate and evaluate their effectiveness. Applied empirical methods were for example surveys, interviews, (systematic) literature studies, or controlled experiments.
Contributions: In addition to our analyses of industry practice and scientific literature, we provide contributions in three different areas. With respect to metric-based evolvability evaluation, we identified a set of structural metrics specifically designed for service orientation and analyzed their value for microservices. Subsequently, we designed tool-supported approaches to automatically gather a subset of these metrics from machine-readable RESTful API descriptions and via a distributed tracing mechanism at runtime. In the area of scenario-based evaluation, we developed a tool-supported lightweight method to analyze the evolvability of a service-based system based on hypothetical evolution scenarios. We evaluated the method with a survey (N=40) as well as hands-on interviews (N=7) and improved it further based on the findings. Lastly with respect to patterns and antipatterns, we collected a large set of service-based patterns and analyzed their applicability for microservices. From this initial catalogue, we synthesized a set of candidate evolvability patterns via the proxy of architectural modifiability tactics. The impact of four of these patterns on evolvability was then empirically tested in a controlled experiment (N=69) and with a metric-based analysis. The results suggest that the additional structural complexity introduced by the patterns as well as developers' pattern knowledge have an influence on their effectiveness. As a last contribution, we created a holistic collection of service-based antipatterns for both SOA and microservices and published it in a collaborative repository.
Conclusion: Our contributions provide first foundations for a holistic view on the evolvability assurance of microservices and address several perspectives. Metric- and scenario-based evaluation as well as service-based antipatterns can be used to identify "hot spots" while service-based patterns can remediate them and provide means for systematic evolvability construction. All in all, researchers and practitioners in the field of microservices can use our artifacts to analyze and improve the evolvability of their systems as well as to gain a conceptual understanding of service-based evolvability assurance.
Unternehmen stehen aktuell aufgrund der Digitalisierung, des stetigen technologischen Fortschritts und immer kürzer werdenden Produktlebenszyklen vor großen Herausforderungen. Um am Markt bestehen zu können, müssen Geschäftsmodelle öfter und schneller an sich verändernde Marktverhältnisse angepasst werden als dies früher der Fall war. Eine schnelle Anpassungsfähigkeit, auch Agilität genannt, ist in der heutigen Zeit ein entscheidender Wettbewerbsfaktor. Aufgrund des stetig wachsenden IT Anteils in Produkten sowie der Tatsache, dass diese IT-gestützt hergestellt werden, haben Änderungen des Geschäftsmodells große Auswirkungen auf die Unternehmensarchitektur eines Unternehmens.
Eine Unternehmensarchitektur umspannt das Unternehmen, indem diese die fachlichen und technischen Strukturen, insbesondere die gesamte IT, des Unternehmens beinhaltet und integriert. Das Management der Unternehmensarchitektur ist die Disziplin zur Beherrschung und Abstimmung dieser Strukturen. An der Gestaltung der Unternehmensarchitektur wirken viele Stakeholder mit individuellen und teils gegensätzlichen Interessen aus den unterschiedlichsten Bereichen des Unternehmens mit. Dies macht die Entscheidungsfindung zu einer komplexen Aufgabe.
Die in dieser Arbeit entworfene integrative Methode für die Entscheidungsfindung hat das Ziel, die Betroffenen und Beteiligten, im Folgenden Stakeholder, bei ihren Entscheidungen zu unterstützen. Die Grundidee hierbei ist die systematische Einbeziehung der Interessen der Stakeholder und davon abgeleiteter Visualisierungen. Dies verleiht der Methode ihren integrativen Charakter und hilft Abhängigkeiten zwischen Stakeholdern zu erkennen. Dadurch wird die Zusammenarbeit zwischen den an Entscheidungen beteiligten Stakeholdern gefördert. Neben der systematischen Einbeziehung von Visualisierungen wird im Rahmen dieser Arbeit das Konzept der Technik eingeführt. Techniken werden ebenfalls von den Interessen der Stakeholder abgeleitet und dienen der Unterstützung bei der Durchführung von Aktivitäten der Entscheidungsfindung, indem Vorgehensweisen bei bestimmten Aufgaben vorgegeben oder Teilprozesse der Entscheidungsfindung sogar automatisiert durchgeführt werden. Das Konzept der Technik, die systematische Ableitung von den Interessen der Stakeholder sowie das Zusammenspiel mit Visualisierungen wird in dieser Arbeit in Form einer erweiterten Konzeptualisierung der Architekturbeschreibung definiert.
Da die Werkzeugunterstützung in der Praxis häufig eine Herausforderung darstellt, rundet diese Arbeit ein eigens konzipiertes und prototypisch validiertes Architekturcockpit ab. Das Cockpit ist eine auf einem elektronischen Sitzungsraum basierende Werkzeugunterstützung der eingeführten integrativen Methode.