Home

domänengetriebene

Domänengetriebene Softwareentwicklung, im Englischen Domain-Driven Design (DDD) genannt, bezeichnet einen Ansatz der Softwareentwicklung, der die Fachlogik und den Geschäftsbedarf in den Mittelpunkt stellt. Ziel ist es, komplexe Fachbereiche durch ein eng an der Domäne ausgerichtetes Modell abzubilden und die Kommunikation zwischen Domänenexperten und Entwicklern über eine gemeinsame Sprache zu erleichtern.

Zentrale Konzepte sind das Domänenmodell, die Ubiquitous Language (Allgegenwärtige Sprache), Boundaries bzw. Bounded Contexts, sowie taktische

Geschichtlich geprägt wurde der Begriff und die Praxis durch Eric Evans’ Buch Domain-Driven Design (2003). Seither

Anwendungsbeispiele zeigen Bound Contexts wie Sales, Fulfillment oder Payments in einer E-Commerce-Domäne; innerhalb eines Contexts dienen

Muster
wie
Entities,
Value
Objects,
Aggregates
und
Domain
Events.
Strategische
Muster
umfassen
Context
Mapping
und
Anti-Corruption
Layer.
Der
Kern
des
Ansatzes
ist
ein
domänenzentriertes
Modell,
das
unabhängig
von
technischen
Details
den
Geschäftsregeln
folgt.
Architekturprinzipien
führen
oft
zu
einer
Schichtenarchitektur,
wobei
das
Domänenmodell
im
Zentrum
steht
und
von
Applikations-,
Infrastruktur-
und
Integrationsschichten
begleitet
wird.
Eventbasierte
Muster,
Domain
Events
sowie
ggf.
Event
Sourcing
oder
CQRS
kommen
je
nach
Kontext
zum
Einsatz.
hat
sich
DDD
vor
allem
in
komplexen,
regelbasierenden
Domänen
verbreitet.
Vorteile
sind
eine
bessere
Abstimmung
auf
Geschäftsanforderungen,
erhöhte
Flexibilität
gegenüber
Veränderungen
und
verbesserte
Kommunikation
im
Team.
Herausforderungen
umfassen
einen
höheren
initialen
Aufwand,
Bedarf
an
Domänenexperten
und
die
Gefahr
von
Übermodellierung
oder
zu
enger
Boundaries.
Aggregates
wie
Order
mit
zugehörigen
Entities
und
Value
Objects,
während
Domain
Events
zirkulieren.
Domänengetriebene
Ansätze
streben
eine
robuste
Verbindung
von
Geschäftslogik
und
Softwarearchitektur
an,
um
Anpassungsfähigkeit
und
Verständlichkeit
zu
fördern.