Insights

17.01.2020

DDD - Domain-Driven Design

 

Domain-Driven Design (DDD) ist ein Begriff der 2003 maßgeblich von Eric Evans in seinem gleichnamigen Buch geprägt wurde und beschreibt die Modellierung komplexer Software. Fachexperten und Entwickler modellieren hierbei in derselben Fachsprache und vordefinierten Bausteintypen und Mustern. 

Domain-Driven Design hat das Ziel die Produktivität von Softwareprojekten in dem Umfeld komplexer fachlicher Zusammenhänge zu steigern und basiert auf den beiden Annahmen: 

  • Der Schwerpunkt des Softwaredesigns liegt auf der Fachlichkeit und der Fachlogik.
  • Der Entwurf komplexer fachlicher Zusammenhänge muss auf einem Modell der Anwendungsdomäne basieren.

Domain-driven Design orientiert sich dabei an agiler Softwareentwicklung. Damit Software zu der Fachlichkeit der Anwendungsdomäne passt, modelliert Domain-driven Design die grundlegenden Konzepte und Elemente der Anwendungsdomäne. Domain-driven Design steht unabhängig von Programmiersprachen, Frameworks und Tools, aber es gibt Tools und Frameworks, welche die Umsetzung spezifischer DDD-Patterns anbieten oder aber den Ansatz von DDD unterstützen.

 

Ubiquitäre Sprache

Domain-Driven Design wird durch eine Reihe an Konzepten geprägt, die beim Modellierungsprozess Berücksichtung finden sollten. Essenziell ist die Einführung einer ubiquitären (allgemein verwendeten) Sprache, die in allen Bereichen der Softwareerstellung genutzt wird. Das ist eine Sprache die der Beschreibung der Fachlichkeit, der Elemente des Domänenmodells, der Klassen und Methoden usw. Sie wird beschrieben als „Eine Sprache, welche um die Anwendungsdomäne strukturiert ist, und von allen Teammitgliedern verwendet wird, um alle Aktivitäten des Teams mit der Software zu verknüpfen.“

– Eric Evans: Präsentationsunterlagen seines Vortrages vom 6. November 2007 auf der JAOO

 

Teile des Domänenmodells

Im Domain-Driven Design werden die folgenden Bestandteile des Domänenmodells unterschieden: 

  • Entitäten (Entities, reference objects)
  • Module (modules, packages)
  • Fabriken (factories)
  • Repositories
  • Assoziationen (associations)
  • Serviceobjekte (services)
  • Fachliche Ereignisse (domain events)
  • Wertobjekte (value objects)

 

Über das Modul DDD – Domain-Driven Design bei tectrain

Der iSAQB Advanced-Level ist eine modulare Ausbildung in drei Kompetenzbereichen mit flexibel gestaltbaren Ausbildungswegen. DDD ist eines dieser Module. 

DDD ist ein iSAQB-Advanced-Level-Modul in dem Sie lernen, wie Sie eine Sprache entwickeln und DDD-Muster nutzen können, um die Verbindung zu verschiedenen Anwendungen aufzubauen. Anhand von Beispiel-Anwendung lernen Sie im DDD-Training bei Tectrain die einzelnen Schritte hin zu einer anwendungsorientierten und qualitativ hochwertigen Softwarearchitektur. Ein Entwurf ist nicht schwierig, wenn man sich auf die Fachdomäne und die architektonischen Leitplanken von Domain-driven Design einlässt! Im Rahmen dieses Trainings werden Sie ein solides Verständnis der DDD-Konzepte, aufbauen genauso wie das Selbstvertrauen, um das neu gewonnene Wissen zu nutzen. Bei uns lernen Entwickler Freude am Experten-werden in ihrem Anwendungsgebiet.

 

Ziele des DDD-Moduls

“Wie entwirft man eine fachliche Architektur in Zusammenarbeit mit Fachexperten und Entwicklern?“ ist die Ausgangsfrage von DDD und die Antwort werden wir mit Ihnen gemeinsam im Rahmen unseres iSAQB-Advanced-Level-Trainings beantworten. Am Ende des Moduls kennen Sie die wesentlichen Prinzipien des Domain Driven Designs und können diese bei Entwurf und Implementierung von Softwaresystemen anwenden. Sie können zudem eine ubiquitäre Sprache zwischen Fachexperten und Entwicklern etablieren. Durch die erlernten Modellierungstechniken und Architekturwerkzeuge können sie die Teile dieser gemeinsamen Fachsprache in ihre Softwaresysteme übernehmen.

 

Voraussetzungen

Um an dem Modul DDD teilzunehmen, müssen sie erfolgreich eine Ausbildung und Zertifizierung zum CPSA-F (Certified Professional for Software Architecture, Foundation Level) abgeschlossen haben sowie mindestens drei Jahre Vollzeit-Berufserfahrung in der IT-Branche, dabei Mitarbeit an Entwurf und Entwicklung von mindestens zwei unterschiedlichen IT-Systemen. Auf Antrag sind Ausnahmen u. U. zulässig.

 

Lehrplan

  1. Domäne, Modell und Ubiquitous Language
  2. Der Weg zum Modell
  3. Vom Modell zur Implementierung
  4. Das Modell in der Anwendungsarchitektur
  5. Modelle schneiden und voneinander abgrenzen
  6. Lokale Modellkonsistenz wahren

 

Dauer & Zertifzierung

  • Dauer: 3 Tage, jeweils 8 Stunden täglich
  • Credit Points: 30 Punkte, davon 20 Punkte methodisch und 10 Punkte kommunikativ
  • Qualifiziertes Teilnehmerzertifikat
  • Level: iSAQB Advanced Level (CPSA-A)

 

Nächste Ausbildungstermine: 

Melden Sie sich für unseren Newsletter an

Halten Sie sich über kommende Trainings und Seminare auf dem Laufenden. Wir freuen uns Sie bei uns zu begrüßen.