Domain-Driven Design (DDD) mit Context Mapper

Methodik & Soft Skills
06.09.2023


9:10 – 17:00 Uhr
Fachhochschule OST Campus Rapperswil
Max. Teilnehmer: 28

Einleitung

Domain-Driven Design (DDD) hat sich als praxisnahe Methode zur Modellierung von fachlichen Domänen und zur Dekomposition von Softwaresystemen etabliert. DDD-Modelle werden typischerweise am Whiteboard oder mit Post-it Notizen erstellt; nur wenige Software-Tools unterstützen deren Erstellung und kontinuierliche Weiterentwicklung. Context Mapper ist ein Open-Source Tool, welches die Modellierung von Software-Systemen auf Basis der strategischen und taktischen DDD-Patterns mit Hilfe einer Domain-Specific Language (DSL) vereinfacht und beschleunigt. Aus den Modellen können dann grafische Darstellungen, Schnittstellenbeschreibungen und Code generiert werden. Über ein Command Line Interface kann Context Mapper in CI/CD Pipelines integriert werden; Mismatches zwischen Design und Code werden von Extensions entdeckt.

In diesem Workshop lernen Sie, wie Sie ihre DDD-Modelle digitalisiert erstellen und bereits im nächsten Projekt effizient im Team nutzen können. Anhand von Beispielen und Übungen erhalten Sie einen schnellen Einstieg in die wichtigsten Patterns und das Werkzeug.

Programm

  • Kurze Einführung in ausgewählte Patterns anhand eines Praxisbeispiels: Bounded Context, Aggregate, Subdomain (45 min) 
  • Präsentation und Demo: strategische und taktische Domänen-Modellierung ausgehend von User Stories und Use Cases (45 min) 
  • Hands-On Übung: Modellierung eines Fallbeispiels (60 min) 
  • Präsentation und Demo: Generierung von Artefakten: Context Map, UML, Open API oder oder gRPC oder GraphQL Schema via MDSL (30 min) 
  • Hands-On Übung: Generatoren (60 min) 
  • Integration von Context Mapper Modellen in die Codebase (45 min) 
  • Hands-On Übung: ArchUnit für den Design-Code-Abgleich (45 min) 
  • Ausblick und Diskussion zur Anwendung von DDD in der Praxis (30 min) 

Kursziel

Die Teilnehmenden dieses Kurses lernen, wie das Tool Context Mapper die Umsetzung von Domain-Driven Design in der Praxis effizient unterstützen kann. Sie können ihre DDD-Modelle in den nächsten Projekten schnell digitalisieren und im Team pflegen. 

Adressaten

  • Software Engineers 
  • Software Architekten und Architektinnen 
  • Requirements Engineers 

Voraussetzungen

Die Teilnehmenden sind mit mindestens einer Praktik oder Technik für Analyse und Design vertraut. Erste Erfahrungen mit Domain-Driven Design und den wichtigsten Patterns sind hilfreich, aber nicht zwingend erforderlich. Programmierkenntnisse sind ebenfalls nicht erforderlich. 

Infrastruktur

Entwickler, die Context Mapper lokal in der IDE verwenden wollen, brauchen folgende Tools: 

  • JDK 11 oder neuer 
  • Visual Studio Code oder aktuelle Version von Eclipse 
  • Graphviz (wird nur für den Export von grafischen Context Maps benötigt)  

Idealerweise ist die Context Mapper Extension in Visual Studio Code oder das Eclipse Plugin bereits installiert zu Workshopbeginn. 

Für Teilnehmende, die nicht zwingend lokal arbeiten wollen, ist auch ein aktueller Browser und ein GitHub Account ausreichend; eine Web-IDE steht als Cloud Service zur Verfügung. 

Referenten

Stefan Kapferer

Ostschweizer Fachhochschule (OST)


Stefan Kapferer ist Dozent an der Ostschweizer Fachhochschule (OST). Unter anderem beschäftigt er sich seit einigen Jahren intensiv mit dem Thema DDD. Context Mapper hat seinen Ursprung in seinen Masterstudiumsprojekten (M.Sc. in Informatik) und wird von ihm seither kontinuierlich weiterentwickelt.