2004 veröffentlichte Eric Evans sein Buch ‚Domain-Driven Design: Tackling Complexity in the Heart of Software‘. Er prägte damit den Begriff Domain-Driven Design (DDD), welcher in Deutsch als Domänen getriebenes Design übersetzt werden kann. 18 Jahre später, könnte man in einem so schnelllebigen Bereich wie der Softwareentwicklung, dieses Buch als bereits veraltet ansehen. Doch jedoch genau der entgegengesetzte Fall scheint hierbei einzutreten. Entkopplung und Unabhängigkeit von Softwaresystemen erlangt einen immer höheren Stellenwert und übersteigen in den meisten Bereichen den Faktor Redundanz. Hierbei wird die Forderung an Werkzeugen für das Design und die Umsetzung dieser Thematik immer präsenter. In der vorliegenden Arbeit soll nun DDD allgemein sowie dessen aktueller Stand der Praxis und seinen Einsatzgebieten genauer erläutert werden.
Erfahren Sie mehr über DDD und erhalten Sie eine Einführung in den aktuellen Stand der Praxis.
Inhaltsverzeichnis
1 Einleitung
1.1 Problemstellung
1.2 Aufbau und Ziel
2 Definition Domain-Driven Design
2.1 Domain-Driven Design
2.2 Strategisches Design
2.3 Taktisches Design
3 Stand der Praxis von Domain-Driven Design
3.1 Domain-Driven Design im Kontext des Projektmanagements
3.2 Domain-Driven Design im Kontext der Modularisierung
3.3 Domain-Driven Design im Kontext der Microservices
3.4 Domain-Driven Design aktueller Stand der Praxis
4 Zusammenfassung
4.1 Kritische Reflexion
4.2 Ausblick
Zielsetzung & Themen
Die vorliegende Arbeit hat zum Ziel, den aktuellen Stand von Domain-Driven Design (DDD) in der Praxis zu analysieren, seine verschiedenen Einsatzgebiete zu beleuchten und eine begründete Prognose über die zukünftige Entwicklung dieses Designansatzes in der Softwareentwicklung abzugeben.
- Grundlagen und Definition von Domain-Driven Design
- Differenzierung zwischen Strategischem und Taktischem Design
- DDD im Kontext von Projektmanagement und Teamstruktur
- Anwendung von Domain-Driven Design bei Modularisierung und Microservices
- Betrachtung von DDD als moderner Werkzeugkasten für komplexe Softwaresysteme
Auszug aus dem Buch
Bounded Context
Der Bounded Context bildet bei der Modellierung der Software eine semantische und kontextuelle Grenze in welchem die Komponenten gültig sind. Im Idealfall wird ein Bounded Context ausschließlich von einem Entwicklungsteam bearbeitet. Innerhalb eines Bounded Contexts ist immer eine Ubiquitous Language geltend und sollte sowie das Datenbankschema und ein eigenes Quellcode-Repository getrennt von den anderen Bounded Contexten geführt werden.
Zusammenfassung der Kapitel
1 Einleitung: Diese Einleitung führt in das Thema Domain-Driven Design ein, erläutert die Problemstellung der Arbeit und definiert deren strukturellen Aufbau sowie die gesetzten Ziele.
2 Definition Domain-Driven Design: Das Kapitel bietet eine essenzielle Einführung in DDD sowie eine Abgrenzung der beiden Hauptbereiche Strategisches Design und Taktisches Design.
3 Stand der Praxis von Domain-Driven Design: Hier wird der praktische Einsatz von DDD in den Bereichen Projektmanagement, Modularisierung und Microservices detailliert betrachtet und evaluiert.
4 Zusammenfassung: Dieses abschließende Kapitel fasst die gewonnenen Erkenntnisse zusammen, reflektiert kritisch über die Arbeit und wagt einen Ausblick auf die zukünftige Relevanz von DDD.
Schlüsselwörter
Domain-Driven Design, DDD, Strategisches Design, Taktisches Design, Bounded Context, Ubiquitous Language, Microservices, Modularisierung, Projektmanagement, Softwareentwicklung, Domäne, Aggregate, Entity, Value Object, Softwarearchitektur
Häufig gestellte Fragen
Worum geht es in dieser Arbeit grundsätzlich?
Die Arbeit beschäftigt sich mit dem aktuellen Stand der Praxis von Domain-Driven Design (DDD) und wie dieser Designansatz in modernen Softwareprojekten eingesetzt wird.
Was sind die zentralen Themenfelder der Arbeit?
Die zentralen Themen sind die theoretischen Grundlagen des DDD, das Strategische und Taktische Design sowie dessen praktische Anwendung in verschiedenen Kontexten wie Projektmanagement und Microservices.
Was ist das primäre Ziel der Untersuchung?
Das primäre Ziel ist es, den Status quo von DDD in der Softwareentwicklung darzustellen und eine fundierte Prognose für die zukünftige Bedeutung dieser Methodik zu erstellen.
Welche wissenschaftliche Methode wurde angewendet?
Die Arbeit basiert auf einer fundierten Literaturrecherche und der Auswertung von Fachquellen, um den aktuellen Stand der Praxis in der DDD-Community zu analysieren.
Was wird im Hauptteil der Arbeit behandelt?
Im Hauptteil werden neben den theoretischen Definitionen vor allem die Einsatzszenarien von DDD für Projektmanagement, Modulstrukturierung und Microservice-Architekturen detailliert beschrieben.
Welche Schlüsselwörter charakterisieren die Arbeit?
Wichtige Begriffe sind unter anderem Domain-Driven Design, Bounded Context, Ubiquitous Language, Microservices, Projektmanagement und Softwarearchitektur.
Warum ist das Strategische Design für das Projektmanagement relevant?
Es ermöglicht eine bessere organisatorische Auslegung, da durch Bounded Contexts klare fachliche Grenzen definiert werden, was die Arbeit in Teams und die Kommunikation zwischen Nicht-IT-Experten und Entwicklern verbessert.
Welchen Vorteil bietet DDD bei der Verwendung von Microservices?
DDD unterstützt die optimale Dimensionierung von Microservices, indem es durch Aggregate und Bounded Contexts klare strukturelle Grenzen vorgibt, die eine exakte Zuordnung von Geschäftslogik ermöglichen.
- Citation du texte
- Nick Wahrenberger (Auteur), 2022, Stand der Praxis von Domain-Driven Design, Munich, GRIN Verlag, https://www.grin.com/document/1362528