title: Understanding and semi-automatically supporting DDD-based API design
Creators: name: Singjai, Apitchaka
Publisher: name: :none
Year: 2022

description: 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.
description: 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.