Seminarinhalt
Ein häufiges Problem in Softwareprojekten sind Kommunikationsbarrieren zwischen Fachexperte/Fachbereich und Entwickler. DDD bietet hier einen strukturierten Ansatz zur Entwicklung einer gemeinsamen Fachsprache, die die Grundlage für eine domänenorientierte Architektur bildet. Durch diese gemeinsame Sprache werden Missverständnisse vermieden, und die Zusammenarbeit zwischen den Teams wird erleichtert.
Auch innerhalb von Entwicklungsteams können Missverständnisse über die Systemarchitektur auftreten. DDD stellt vordefinierte Muster wie Entity, Value Object, Aggregate, Service und weitere zur Verfügung, die eine klare Kommunikation und eine einheitliche Architektur fördern.
Diese Fachsprache und DDD-Muster können nicht nur innerhalb eines Systems, sondern auch in großen Softwareprojekten oder bei verteilten (Micro-)Service-Architekturen effektiv eingesetzt werden. Mit Konzepten wie Bounded Context, Context Map, Shared Kernel, Domain Events und Anticorruption Layer ermöglicht DDD den Aufbau einer skalierbaren und stabilen Architektur.
Programm
- Überblick: Was ist Domain-Driven Design? – Grundlagen und Zielsetzungen des DDD-Ansatzes.
- Methoden zur Analyse und Modellierung der Domäne, einschließlich Event Storming und Domain Storytelling, um die spezifischen Anforderungen und Abläufe besser zu verstehen.
- Die Domäne aufteilen und Modelle voneinander abgrenzen (Bounded Context).
- Strategien, um die Domäne in sinnvolle und skalierbare Strukturen zu unterteilen.
- Aufbau einer gemeinsamen Fachsprache zwischen Fachexperte/Fachbereich und Entwickler zur Vermeidung von Missverständnissen und zur Verbesserung der Kommunikation.
- Schritte zur Entwicklung und Verfeinerung eines Domänenmodells, das die Anforderungen der Domäne widerspiegelt.
- Techniken, um das entwickelte Modell in Software zu überführen, inklusive der Verwendung von DDD-Elementen wie Entities, Value Objects, Aggregates und Repositories.
Zielgruppen
- Software-Entwickler und -Architekt - Fachleute, die komplexe Systeme entwerfen und entwickeln und ihre Kenntnisse in Domain-Driven Design erweitern möchten.
- Fachleute aus dem Business-Kontext - Personen, die an digitalen Produkten arbeiten und ein tieferes Verständnis für domänenorientierte Ansätze gewinnen möchten, um effektiver zur Produktentwicklung beizutragen.
- Product Owner - Personen, die die Domäne ihrer Produkte besser verstehen wollen, um eng mit Entwicklungsteams und Stakeholdern zusammenzuarbeiten und eine klare Produktvision zu fördern.
Vorkenntnisse
- Erfahrungen in der Softwareentwicklung und Produktbereitstellung: Grundlegende Kenntnisse in der Softwareentwicklung und -lieferung werden vorausgesetzt.
- Grundkenntnisse in Software-Architektur (von Vorteil): Vorkenntnisse in Software-Architektur sind hilfreich, aber nicht zwingend erforderlich.