Detailansicht

Understanding and semi-automatically supporting DDD-based API design
Apitchaka Singjai
Art der Arbeit
Dissertation
Universität
Universität Wien
Fakultät
Fakultät für Informatik
Studiumsbezeichnung bzw. Universitätlehrgang (ULG)
Dr.-Studium der technischen Wissenschaften (DissG: Informatik)
Betreuer*in
Uwe Zdun
Volltext in Browser öffnen
Alle Rechte vorbehalten / All rights reserved
DOI
10.25365/thesis.73288
URN
urn:nbn:at:at-ubw:1-17464.66721.934791-6
Link zu u:search
(Print-Exemplar eventuell in Bibliothek verfügbar)

Abstracts

Abstract
(Deutsch)
Der Ansatz des Domain-Driven Design (DDD), der sich zunehmender Beliebtheit erfreut, stellt das Domänenmodell in den Mittelpunkt der Softwareentwicklungspraktiken. Die nach außen hin sichtbaren Schnittstellen von Systemen, die mit DDD modelliert werden, sind häufig Anwendungsprogrammierschnittstellen (APIs). Daraus ergibt sich die Herausforderung, DDD-Modelle auf die API abzubilden und dabei ihre wichtigsten Merkmale beizubehalten. Wenn wir die sich überschneidenden Konzepte und Beziehungen besser verstehen könnten, wären wir in der Lage, bessere Ansätze und Werkzeuge zur Unterstützung dieser Abbildung bereitzustellen. Ziel dieser Dissertation ist es, die Phänomene API und DDD sowie deren Abbildung zu untersuchen, mit besonderem Augenmerk auf Kopplungsaspekte. Unser Ziel ist es, architektonische Entwurfsentscheidungen (ADDs) zu analysieren und empirische Daten für das Pattern Mining zu synthetisieren. Wir beabsichtigen, die Konformität mit Mustern, Praktiken und ADDs zu bewerten, um Verstöße zu identifizieren und das DDD-basierte API-Design zu verbessern. Unsere Forschung gliedert sich in drei Teile: Ermittlung empirischer Belege, Pattern- Mining und empirische Bewertung. Was die empirische Evidenz anbelangt, haben wir die Methode der Grounded Theory angewandt, um die Sichtweise von Praktikern zu eruieren, wie sie den Kontext der Interaktion zwischen APIs und DDD und den damit verbundenen Kontext der Kopplungs-Smells wahrnehmen. Wir analysierten Daten aus der empirischen Evidenz und existierende Muster und untersuchten dann Muster in diesem Bereich. Schließlich entwickelten wir neuartige Konformitätsbewertungsmethoden zur Unterstützung der automatisierten Konformitätsbewertung zwischen APIs und ihren DDD-Modellen. Als Ergebnis konnten wir sechs ADDs mit 27 Entscheidungsoptionen, zahlreichen Beziehungen zwischen ihnen und 27 Entscheidungstreibern identifizieren. Wir definierten auch Faktoren für die Kopplung von Smells sowie deren Auswirkungen, Kompromisse, Verknüpfungen mit anderen Smells, Beziehungen zu Praktiken und Mustern und Fixierungsoptionen, wie sie von Praktikern wahrgenommen werden. Auf der Grundlage der empirischen Daten haben wir zwei Gruppen von Mustern ermittelt, nämlich Muster für die Ableitung von APIs und API-Endpunkten aus Domänenmodellelementen und Muster für den Entwurf von API-Endpunktoperationen. Für die Konformitätsbewertung haben wir Detektoren, Parser und Bewertungswerkzeuge bereitgestellt, um einen automatisierten Ansatz zu unterstützen. Zur Bewertung unserer Forschungsergebnisse wurden mehrere Fallstudien durchgeführt.
Abstract
(Englisch)
The Domain-Driven Design (DDD) approach, which is becoming increasingly popular, places the domain model at the core of the software development practices. The outwardly apparent interfaces of systems modeled using DDD are frequently Application Programming Interfaces (APIs). As a result, the challenge of how to map DDD models to the API while preserving their key characteristics emerges. If we could better understand the overlapping concepts and relations, we would be able to provide better approaches and tools to support this mapping. The purpose of this dissertation is to investigate the phenomena of API and DDD, as well as their mapping, with special attention to coupling aspects. We aim to analyze Architectural Design Decisions (ADDs) and synthesize empirical data for pattern mining. We intend to assess conformance to patterns, practices, and ADDs in order to identify violations and enhance the DDD-based API design. Our research is divided into three parts: establishing empirical evidence, pattern mining, and empirical assessment. Regarding the empirical evidence, we employed the Grounded Theory method to elicit practitioner perspectives on how they perceive the context of the interaction between APIs and DDD and the related context of coupling smells. We analyzed data from the empirical evidence and existing patterns, and then mined patterns in this field. Finally, we developed novel conformance assessment methods to support the automated conformance assessment between APIs and their DDD models. As a result, we could identify six ADDs with 27 decision options, numerous relations between them, and 27 decision drivers. We also defined factors of coupling smells, as well as smell impacts, trade-offs, linkages with other smells, relationships to practices and patterns, and fix options as perceived by practitioners. We mined two sets of patterns based on the empirical data, namely patterns on deriving APIs and API endpoints from domain model elements and patterns on designing API endpoint operations. For the conformance assessment, we provided detector, parser, and assessor tools to support an automated approach. Multi-case studies were used to evaluate our research results.

Schlagwörter

Schlagwörter
(Deutsch)
API-Design Domain-Driven Design Microservice-Architektur Architektur-Konformitätsbewertung Architektonische Entwurfsentscheidungen Entwurfsmuster Graue Literatur Grounded Theory Coupling Smells Software-Designqualität
Schlagwörter
(Englisch)
API Design Domain Driven Design Microservice Architecture Architecture Conformance Assessment Architectural Design Decision Design Patterns Grey Literature Grounded Theory Coupling Smells Software Design Quality
Autor*innen
Apitchaka Singjai
Haupttitel (Englisch)
Understanding and semi-automatically supporting DDD-based API design
Publikationsjahr
2022
Umfangsangabe
x, 263 Seiten : Illustrationen
Sprache
Englisch
Beurteiler*innen
Stefan Sobernig ,
Carlos Enrique Cuesta Quintero
Klassifikationen
54 Informatik > 54.00 Informatik: Allgemeines ,
54 Informatik > 54.10 Theoretische Informatik ,
54 Informatik > 54.30 Systemarchitektur: Allgemeines ,
54 Informatik > 54.39 Systemarchitektur: Sonstiges ,
54 Informatik > 54.52 Software engineering
AC Nummer
AC16806400
Utheses ID
64687
Studienkennzahl
UA | 786 | 880 | |
Universität Wien, Universitätsbibliothek, 1010 Wien, Universitätsring 1