Domain-driven Design
Die wirkliche Herausforderung bei komplexen Softwareprojekten liegt nicht in der technischen Realisierung, sondern in der adäquaten Umsetzung der Geschäftsprozesse und der Anforderungen der (Fach-)Nutzer.
Domain-driven Design stellt konsequent die Domäne, das heißt die geschäftlichen und fachlichen Aufgabenstellungen beim Kunden, ins Zentrum des Projekts. Entscheidend dabei ist, dass das Entwicklungsteam die Domäne umfassend versteht und mit den Anwendern, statt im IT-Jargon, geschäfts- und fachorientiert kommuniziert. Basis und integraler Bestandteil von domain-driven Design sind daher eine gemeinsame, domänenspezifische Sprache und ein Domänenmodell.
- Das Domänenmodell
Das Domänenmodell beschreibt mit objektorientierten Konzepten Elemente, Struktur und Prozesse der Domäne. Es bildet die relevanten Geschäfts- und Fachzusammenhänge aufgabenbezogen nach und ist der – wiederverwendbare – Kern der neuen Lösung. Das Domänenmodell wird iterativ aufgebaut, das heißt in mehreren Entwicklungszyklen zunehmend verfeinert und erweitert. So reflektiert das Modell die geschäftlichen und fachlichen Prozesse immer besser und vollständiger – und liefert damit eine wertvolle Wissensbasis.
- Domänenspezifische Sprache
Eine domänenspezifische Sprache ist eine – formale – Sprache zur Beschreibung eines geschäftlichen oder fachlichen Aufgabenfelds. Sie ist unabhängig von Programmiersprachen und wird verwendet, um die Anforderungen und die geplanten Softwarefunktionen in den Begriffen der Nutzer zu formulieren. Damit ermöglicht sie einen intensiven und effizienten Austausch zwischen Domänenexperten, Anwendern und Entwicklern.
- Der wichtigste Vorteil von Domain-driven Design
Der wichtigste Vorteil von domain-driven Design liegt in der anforderungsorientierten Darstellung der Geschäfts- und Fachlogik (Domänenmodell) in einer nutzerorientierten Common Language (domänenspezifische Sprache). Das Ergebnis sind schnellere Analyse-, Design- und Entwicklungsprozesse und vor allem bedarfsgerechtere Softwarelösungen. Diese Lösungen bilden die Domäne des Kunden adäquat ab, sind änderungsfreundlich und lassen sich gut weiterentwickeln.