Kapitel I · Bereich 04 von 12

Domänenmodellierung

Die Frage an unseren ShopMeinen Bestellung und Rechnung dasselbe, wenn beide von „Betrag“ sprechen?

Hier erfährst du, wie Fachsprache, Modelle und Verantwortlichkeiten deinen Entwurf formen.

Drei Fragen an jedes Fachmodell

  1. Welche Wörter gelten?

    Sprache

    Das Shop-Team klärt Bestellung, Reservierung, Autorisierung und Rechnung mit jeweils prüfbarer Bedeutung.

  2. Wo gilt ein Modell, und wie hängen Modelle zusammen?

    StrategischStrategic Design

    Bestellung und Rechnung sind eigene Kontexte; eine ACL übersetzt die Codes des Zahlungsanbieters.

  3. Was muss innerhalb eines Modells zusammen stimmen?

    TaktischTactical Design

    B-1042 braucht mindestens eine Position; zwei Beträge von 49,90 EUR sind derselbe Wert.

So hängen die Bausteine zusammen

Domain-Driven Design verbindet Fachwissen und Modell. Ubiquitous Language schärft Begriffe, Bounded Contexts markieren ihre Gültigkeit, Value Objects und Aggregate gestalten Zustände, Context Map und ACL regeln Übergänge.

KonzeptBounded ContextEin Bounded Context legt fest, wo ein fachliches Modell und seine Begriffe gelten.AnsatzDomain-Driven Designordnet Modellierung nach fachlichem Wissen und nutzt Bounded Contexts als wichtige GrenzePrinzipUbiquitous Languagehält Begriffe und Regeln innerhalb eines Kontexts konsistentKonzeptAggregateschützen Invarianten innerhalb einer klaren KonsistenzgrenzeKonzeptEntities & Value Objectsunterscheidet Werte von Objekten mit Identität innerhalb eines Bounded ContextArtefaktContext Mapzeigt Richtung und Zusammenarbeit zwischen Bounded ContextsMusterAnti-Corruption Layerübersetzt fremde Begriffe in die Sprache des eigenen Modells
Zusammenhänge: Domain-Driven Design ordnet Modellierung nach fachlichem Wissen und nutzt Bounded Contexts als wichtige Grenze; Ubiquitous Language hält Begriffe und Regeln innerhalb eines Kontexts konsistent; Aggregate schützen Invarianten innerhalb einer klaren Konsistenzgrenze; Entities & Value Objects unterscheidet Werte von Objekten mit Identität innerhalb eines Bounded Context; Context Map zeigt Richtung und Zusammenarbeit zwischen Bounded Contexts; Anti-Corruption Layer übersetzt fremde Begriffe in die Sprache des eigenen Modells.

Dein Lernpfad durch den Bereich

Domänenmodellierung klärt, welche Wörter im Shop gelten, wo ein Modell endet und wie Modelle zusammenhängen. So meinen Bestellung und Rechnung mit „Betrag“ nicht dasselbe, und jede Regel hat ihren Platz. Jeder Baustein zeigt sein Thema an unserem Shop.

  1. Das lernst duDu kannst Subdomänen als Kern, unterstützend oder generisch einordnen und den Modellierungsaufwand danach lenken.

    Im ShopIm Shop sind nicht alle Module gleich wichtig. Die Bestellregeln unterscheiden ihn, die Zahlung kauft er beim Zahlungsanbieter ein. Danach richtet das Team seinen Modellierungsaufwand.

    Domain-Driven Design öffnen
  2. Das lernst duDu kannst mehrdeutige Shop-Begriffe durch präzise, im jeweiligen Kontext einheitliche Fachbegriffe ersetzen.

    Im ShopDas Shop-Team klärt die Wörter Bestellung, Reservierung, Autorisierung und Rechnung. Jeder Begriff erhält eine prüfbare Bedeutung im passenden Kontext.

    Ubiquitous Language öffnen
  3. Bounded Context

    strategisch

    Das lernst duDu kannst den Geltungsbereich eines Modells über eigene Begriffe, Regeln und Verantwortung abgrenzen.

    Im ShopBestellung und Rechnung sind zwei Kontexte im Shop. Beide kennen einen Betrag und einen Status, verwenden diese Begriffe jedoch für unterschiedliche fachliche Zwecke.

    Bounded Context öffnen
  4. Das lernst duDu kannst Objekte mit fortbestehender Identität von unveränderlichen fachlichen Werten unterscheiden.

    Im ShopDie Bestellung B-1042 bleibt trotz Statusänderung dieselbe Bestellung. Zwei Geldbeträge von 49,90 EUR sind fachlich gleich, sobald Betrag und Währung übereinstimmen.

    Entities & Value Objects öffnen
  5. Aggregate

    taktisch

    Das lernst duDu kannst eine Konsistenzgrenze bestimmen und Änderungen über ihre fachliche Wurzel führen.

    Im ShopDie Bestellung B-1042 enthält Positionen und eine Lieferadresse. Ihre Regeln verlangen mindestens eine Position, eine positive Menge je Position und eine Bestellsumme, die zu den Positionen passt.

    Aggregate öffnen
  6. Context Map

    strategisch

    Das lernst duDu kannst Beziehungen zwischen fachlichen Kontexten mit Richtung, ausgetauschten Informationen und Übersetzung beschreiben.

    Im ShopIm Shop gibt es Beziehungen innerhalb des Teams, bei denen sich Lager, Zahlung und Bestellung abstimmen. Nach außen besteht eine Beziehung zum Zahlungsanbieter, dessen Modell der Shop nicht beeinflusst.

    Context Map öffnen
  7. Das lernst duDu kannst ein fremdes Datenmodell an einer Integrationsgrenze in das eigene Fachmodell übersetzen.

    Im ShopDer Zahlungsanbieter liefert die Codes APPROVED, DECLINED und PENDING_REVIEW. Der Shop verwendet die eigenen Zustände autorisiert, abgelehnt und Klärung läuft.

    Anti-Corruption Layer öffnen
Danach im Lernweg · Bereich 05Stile & Muster