Domain Driven Design - Strategic Design

138 Aufrufe

Veröffentlicht am

Komplexe Strukturen und Prozesse in stabiler Software abzubilden erfordert ein kompetentes, agiles Team und eine Entwicklungsphilosophie, die fachliche Komplexität ins Zentrum des Softwaredesigns rückt. Domain Driven Design liefert Methoden und Strategien um Komplexität beherrschbar zu machen und wirkt als Stabilisierungsfaktor für zur Erosion neigende Softwareprojekte. Der Begriff Domain Driven Design wurde 2004 von Eric Evans in seinem Buch Tackling Complexity in the Heart of Software geprägt und erlebt heute einen Aufschwung, weil er perfekt zu einer agilen Arbeitsweise und Microservice-Architekturen passt. Die ersten Schritte bei der Einführung von DDD sind die Verwendung einer ausdrucksstarken Teamsprache, die Entwicklung eines Domänenmodells und das Explizit-Machen von Beziehungen zwischen Systemteilen. Diese Themen werden in der Präsentation vorgestellt und an einem einfachen Beispiel verdeutlicht.

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

Domain Driven Design - Strategic Design

  1. 1. Domain Driven Design 1 | 80 Projekte. Beratung. Spezialisten. Domain Driven Design Ute May Strategic Design
  2. 2. Domain Driven Design 2 | 80 Agenda Warum Domain Driven Design? Die Domäne Modelle und Modellierung Strategic Design Fazit
  3. 3. Domain Driven Design 3 | 80 Agenda Warum Domain Driven Design? Die Domäne Modelle und Modellierung Strategic Design Fazit Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  4. 4. Domain Driven Design 4 | 80 Was ist Domain Driven Design? Warum Domain Driven Design? Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  5. 5. Domain Driven Design 5 | 80 Was ist Domain Driven Design?  Ein Philosophie-Ansatz für komplexe Software-Projekte Warum Domain Driven Design? Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  6. 6. Domain Driven Design 6 | 80 Was ist Domain Driven Design?  Ein Philosophie-Ansatz für komplexe Software-Projekte Was macht Software-Projekte komplex? Warum Domain Driven Design? Komplexität der technischen Lösung Komplexität von Legacy-Systemen Komplexität der Fachdomäne Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  7. 7. Domain Driven Design 7 | 80 Warum Domain Driven Design? Risiken komplexer Software-Projekte  Mangelnde Kenntnis des Fachbereiches  Sprachliche Missverständnisse zwischen Entwicklern und Fachbereich  Erosion der Software (Big Ball of Mud, Spagetticode)  Abhängigkeit von kurzlebiger Technik  … Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  8. 8. Domain Driven Design 8 | 80 Warum Domain Driven Design? Was macht Software stabil? Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  9. 9. Domain Driven Design 9 | 80 Warum Domain Driven Design? Was macht Software stabil? Analyse Entwurf Implementierung Test Inbetriebnahme Wartung Weiterentwicklung Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  10. 10. Domain Driven Design 10 | 80 Warum Domain Driven Design? Was macht Software stabil? Analyse Entwurf Implementierung Test Inbetriebnahme Wartung Weiterentwicklung Team A Team A+B Team B+C Team D Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  11. 11. Domain Driven Design 11 | 80 Warum Domain Driven Design? Was macht Software stabil? Analyse Entwurf Implementierung Test Inbetriebnahme Wartung Weiterentwicklung Team A Team A+B Team B+C Team D Framework X Framework Y Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  12. 12. Domain Driven Design 12 | 80 Warum Domain Driven Design? Was macht Software stabil? Analyse Entwurf Implementierung Test Inbetriebnahme Wartung Weiterentwicklung Team A Team A+B Team B+C Team D Framework X Framework Y Infrastruktur (Lösung 1) Infrastruktur (Lösung 2) Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  13. 13. Domain Driven Design 13 | 80 Warum Domain Driven Design? Was macht Software stabil? Analyse Entwurf Implementierung Test Inbetriebnahme Wartung Weiterentwicklung Team A Team A+B Team B+C Team D Framework X Framework Y Infrastruktur (Lösung 1) Infrastruktur (Lösung 2) Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen Anforderungen Version 1 Anforderungen Version 2 Anforderungen Version 3
  14. 14. Domain Driven Design 14 | 80 Warum Domain Driven Design? Was macht Software stabil?  Die fachliche Domäne Analyse Entwurf Implementierung Test Inbetriebnahme Wartung Weiterentwicklung Team A Team A+B Team B+C Team D Framework X Framework Y Infrastruktur (Lösung 1) Infrastruktur (Lösung 2) Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen Anforderungen Version 1 Anforderungen Version 2 Anforderungen Version 3 Fachliche Domäne
  15. 15. Domain Driven Design 15 | 80 Warum Domain Driven Design? Was macht Domain Driven Design aus?  Fokus auf Fachlichkeit  Gemeinsame Erstellung von Modellen durch Domänenexperten und Entwickler  Verwendung einer ubiquitären (= allen bekannten, alles umfassenden) Sprache  Aufteilung von komplexen Zusammenhängen in Bounded Contexts  Kapselung von Fachlichkeit und Technik Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  16. 16. Domain Driven Design 16 | 80 Warum Domain Driven Design? Konsequenzen  Enge Zusammenarbeit von Fachexperten und Entwicklern  Späte Beschäftigung mit Implementierungsdetails  Neue Rolle des Entwicklers REST SOAPPerformance GUI Java Spring DB DDD ? Domäne ? ? ? ? ? ? EntwicklerEntwickler Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  17. 17. Domain Driven Design 17 | 80 Agenda Warum Domain Driven Design? Die Domäne Modelle und Modellierung Strategic Design Fazit Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  18. 18. Domain Driven Design 18 | 80 Die Domäne Klassischer Ansatz GUI DB Code Business Logik Domain Driven Design 76 Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  19. 19. Domain Driven Design 19 | 80 Die Domäne Klassischer Ansatz Domain Driven Design User Interface Infrastructure Domain Application GUI DB Code Business Logik Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  20. 20. Domain Driven Design 20 | 80 Was ist eine Domäne?  = Fachgebiet, Geschäftsfeld, Einsatzbereich Die Domäne A sphere of knowledge, influence, or activity. The subject area to which the user applies a program is the domain of the software. Eric Evans Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  21. 21. Domain Driven Design 21 | 80 Was ist eine Domäne?  = Fachgebiet, Geschäftsfeld, Einsatzbereich Was gehört nicht zur Domäne?  Infrastruktur  Persistenz  Eingabe/Ausgabe  Technologische Entscheidungen Die Domäne A sphere of knowledge, influence, or activity. The subject area to which the user applies a program is the domain of the software. Eric Evans Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  22. 22. Domain Driven Design 22 | 80 Die Domäne Anforderungen  Es gibt festangestellte Mitarbeiter und Freelancer.  Es muss möglich sein, verschiedene Kommunikationswege zu einem Mitarbeiter zu speichern.  Es muss eine durchsuchbare Projektliste geben.  Es muss eine durchsuchbare Kundenliste geben.  Die Stundenzettel der Mitarbeiter müssen gepflegt werden können. BEISPIEL Agentursoftware Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  23. 23. Domain Driven Design 23 | 80 Die Domäne Domänenwissen – Crunching Knowledge Modell System ubiquitäre Sprache Fachexperten Entwickler Fachgebiet Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  24. 24. Domain Driven Design 24 | 80 Die Domäne Domänenwissen – Crunching Knowledge  Fachexperten teilen ihr Wissen über die Domäne.  Entwickler verstehen Zusammenhänge und abstrahieren.  Experten sehen ihr Fachgebiet aus neuem Blickwinkel und gewinnen Klarheit über Anforderungen.  Entwickler und Fachexperten entwickeln gemeinsam die ubiquitäre Sprache.  Entwickler und Fachexperten erstellen gemeinsam ein Domänenmodell. Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  25. 25. Domain Driven Design 25 | 80 Die ubiquitäre Sprache  Ubiquitär = „allumfassend, überall vorhanden“ 1. Jeder im Projekt muss die Sprache sprechen und verstehen können. 2. Alle relevanten Sachverhalte müssen sich durch die Sprache beschreiben lassen.  Eine Sprache ist mehr als ein Glossar! Die Domäne To create a supple, knowledge-rich design calls for a versatile, shared team language and a lively experimentation with [that language]. Eric Evans Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  26. 26. Domain Driven Design 26 | 80 Die Domäne Mitarbeiter = Festangestellter Mitarbeiter = Festangestellte + Freelancer Projekte = Kundenprojekte Projekte = Kundenprojekte + interne Projekte Kontakt = Person = Mitarbeiter oder Kundenmitarbeiter Festangestellte = Angestellte <> Geschäftsführung Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  27. 27. Domain Driven Design 27 | 80 Die ubiquitäre Sprache Die Domäne Code Tests Dokumentation Diskussionen Fachkonzept Ubiquitäre Sprache Entwickler Fachexperten Analysten Tester Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  28. 28. Domain Driven Design 28 | 80 Die Domäne Mitarbeiter FestangestellteFreelancer Gehalt Kunde Projekt Leistung Stundenzettel Honorar Vertrag Kommunikations -weg Email Telefon AdresseMobil Urlaub Kunden- projekt Internes Projekt Abwesenheit Provision CRM Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  29. 29. Domain Driven Design 29 | 80 Agenda Warum Domain Driven Design? Die Domäne Modelle und Modellierung Strategic Design Fazit Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  30. 30. Domain Driven Design 30 | 80 Modelle und Modellierung Was ist ein Modell? A model is a distillation of knowledge.  Ein Modell stellt Informationen übersichtlich und verständlich dar.  Ein Modell trennt relevante von irrelevanten Informationen.  Ein Modell setzt Informationen zueinander in Beziehung.  Ein Modell hat immer ein bestimmtes Ziel. Domäne ModellProjektion Eric Evans Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  31. 31. Domain Driven Design 31 | 80 Modelle und Modellierung Ziel des Domänenmodells  Erzeugt einheitliches Domänenverständnis  Dient als Basis für die Implementierung  Ein Klassendiagramm ist noch kein Domänenmodell! Tightly relating the code to an underlying model gives the code meaning and makes the model relevant. Eric Evans Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  32. 32. Domain Driven Design 32 | 80 Modelle und Modellierung Ziel des Domänenmodells  Erzeugt einheitliches Domänenverständnis  Dient als Basis für die Implementierung Tightly relating the code to an underlying model gives the code meaning and makes the model relevant. Eric Evans Domäne Modell Projektion Reflektion Konzeption Revision System Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  33. 33. Domain Driven Design 33 | 80 Modelle und Modellierung Modellierung 1. Modell und Implementierung gehören zusammen und beeinflussen sich gegenseitig. 2. Das Modell legt die gemeinsame Sprache von Entwicklern und Fachexperten fest. 3. Das Modell enthält nicht nur Informationen über Klassen und Objekte, sondern auch über Verhalten, Beziehungen und Regeln 4. Das Modell filtert relevante Informationen zum Domänenverständnis. 5. Das Modell wächst und entwickelt sich durch Diskussionen und Ausprobieren. Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  34. 34. Domain Driven Design 34 | 80 Modelle und Modellierung Mitarbeiter FestangestellteFreelancer Gehalt Kunde Projekt Leistung Stundenzettel Honorar Vertrag Kommunikations -weg Email Telefon AdresseMobil Urlaub Kunden- projekt Internes Projekt Abwesenheit Provision CRM Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  35. 35. Domain Driven Design 35 | 80 Modelle und Modellierung Mitarbeiter FestangestellteFreelancer Gehalt Kunde Projekt Leistung Stundenzettel Honorar Vertrag Kommunikations -weg Email Telefon AdresseMobil Urlaub Kunden- projekt Internes Projekt Abwesenheit Provision CRM erbringt ist zugeordnet ist entweder oder ist entweder oder Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  36. 36. Domain Driven Design 36 | 80 Modelle und Modellierung Mitarbeiter FestangestellteFreelancer Gehalt Kunde Projekt Leistung Stundenzettel Honorar Vertrag Kommunikations -weg Email Telefon AdresseMobil Urlaub Kunden- projekt Internes Projekt Abwesenheit Provision CRM ist entweder oder erbringt ist zugeordnet wird gebucht auf ist entweder oder erhält schließt erhälterhält Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  37. 37. Domain Driven Design 37 | 80 Modelle und Modellierung Mitarbeiter FestangestellteFreelancer Gehalt Kunde Projekt Leistung Stundenzettel Honorar Vertrag Kommunikations -weg Email Telefon AdresseMobil Urlaub Kunden- projekt Internes Projekt Abwesenheit Provision CRM ist entweder oder ist zugeordnet erbringt ist zugeordnet wird gebucht auf ist entweder oder erhält schließt erhält beantragt teilt mit ist erreichbar über ist zugeordnet wird verwaltet im erhält Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  38. 38. Domain Driven Design 38 | 80 Agenda Warum Domain Driven Design? Die Domäne Modelle und Modellierung Strategic Design Fazit Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  39. 39. Domain Driven Design 39 | 80 Warum Strategic Design? Strategic Design [Strategic Design] lays out techniques for recognizing, communicating and choosing the limits of a model and its relationships to others. Eric Evans Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  40. 40. Domain Driven Design 40 | 80 Warum Strategic Design?  Aufteilung und Priorisierung des Modells  Überblick über komplexe und umfangreiche Systeme  Abwägung und Kommunikation von Modellteilen, die in sich abgeschlossen sind  Team-Entscheidungen, Vermeidung von „unsachgemäßem Gebrauch“ von Code  Definition von Beziehungen zwischen Bounded Contexts  Klarheit über Aufgaben und Rechte der Teams, verbesserte Wartbarkeit und Erweiterbarkeit Strategic Design [Strategic Design] lays out techniques for recognizing, communicating and choosing the limits of a model and its relationships to others. Eric Evans Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  41. 41. Domain Driven Design 41 | 80 Strategic Design Distillation – Extract the Essence Core Domain Generic Subdomains Supporting Subdomains 1. Warum wird das System gebraucht? 2. Warum genügt keine Standardlösung? 3. Warum kann man diesen Teil nicht outsourcen? Domain Vision Statement Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  42. 42. Domain Driven Design 42 | 80 Strategic Design Distillation  Hilft allen im Team des Gesamtbild und die Priorisierung zu verstehen  Vereinfacht die Kommunikation durch Identifikation eines zentralen, gut überschaubaren Einstiegspunktes in die ubiquitäre Sprache  Hilft beim Refactoring  Fokussiert die Arbeit auf den Teil, der den meisten Nutzen bringt  Hilft bei Entscheidungen zu Outsourcing, Standardkomponenten und Arbeitsaufteilung Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  43. 43. Domain Driven Design 43 | 80 Strategic Design Mitarbeiter FestangestellteFreelancer Gehalt Kunde Projekt Leistung Stundenzettel Honorar Vertrag Kommunikations -weg Email Telefon AdresseMobil Urlaub Kunden- projekt Internes Projekt Abwesenheit Provision CRM ist entweder oder ist zugeordnet erbringt ist zugeordnet wird gebucht auf ist entweder oder erhält schließt erhält beantragt teilt mit ist erreichbar über ist zugeordnet wird verwaltet im erhält Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  44. 44. Domain Driven Design 44 | 80 erhälterhält erbringt teilt mit Strategic Design Mitarbeiter FestangestellteFreelancer Gehalt Kunde Projekt Leistung Stundenzettel Honorar Vertrag Kommunikations -weg Email Telefon AdresseMobil Urlaub Kunden- projekt Internes Projekt Abwesenheit Provision CRM ist entweder oder ist zugeordnet ist zugeordnet wird gebucht auf ist entweder oder erhält schließt beantragt ist erreichbar über ist zugeordnet Mitarbeiter wird verwaltet im Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  45. 45. Domain Driven Design 45 | 80 erbringt teilt mit wird verwaltet im Strategic Design Mitarbeiter FestangestellteFreelancer Gehalt Kunde Projekt Leistung Stundenzettel Honorar Vertrag Kommunikations -weg Email Telefon AdresseMobil Urlaub Kunden- projekt Internes Projekt Abwesenheit Provision CRM ist entweder oder ist zugeordnet ist zugeordnet wird gebucht auf ist entweder oder erhält schließt erhält beantragt ist erreichbar über ist zugeordnet erhält Projekte Mitarbeiter Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  46. 46. Domain Driven Design 46 | 80 erbringt teilt mit wird verwaltet im Strategic Design Mitarbeiter FestangestellteFreelancer Gehalt Kunde Projekt Leistung Stundenzettel Honorar Vertrag Kommunikations -weg Email Telefon AdresseMobil Urlaub Kunden- projekt Internes Projekt Abwesenheit Provision CRM ist entweder oder ist zugeordnet ist zugeordnet wird gebucht auf ist entweder oder erhält schließt erhält beantragt ist erreichbar über ist zugeordnet erhält Projekte Kunden Mitarbeiter Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  47. 47. Domain Driven Design 47 | 80 erbringt teilt mit wird verwaltet im Strategic Design Mitarbeiter FestangestellteFreelancer Gehalt Kunde Projekt Leistung Stundenzettel Honorar Vertrag Kommunikations -weg Email Telefon AdresseMobil Urlaub Kunden- projekt Internes Projekt Abwesenheit Provision CRM ist entweder oder ist zugeordnet ist zugeordnet wird gebucht auf ist entweder oder erhält schließt erhält beantragt ist erreichbar über ist zugeordnet erhält Projekte Kunden Leistungen Mitarbeiter Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  48. 48. Domain Driven Design 48 | 80 erbringt teilt mit wird verwaltet im Strategic Design Mitarbeiter FestangestellteFreelancer Gehalt Kunde Projekt Leistung Stundenzettel Honorar Vertrag Kommunikations -weg Email Telefon AdresseMobil Urlaub Kunden- projekt Internes Projekt Abwesenheit Provision CRM ist entweder oder ist zugeordnet ist zugeordnet wird gebucht auf ist entweder oder erhält schließt erhält beantragt ist erreichbar über ist zugeordnet erhält Projekte Kunden Leistungen Buchhaltung Mitarbeiter Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  49. 49. Domain Driven Design 49 | 80 Strategic Design Problemraum und Lösungsraum ModellDomäne Projektion Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  50. 50. Domain Driven Design 50 | 80 Strategic Design Problemraum und Lösungsraum Domain Domain Model Problem Space Solution Space Subdomain Bounded Context (keine 1:1-Zuordnung!) ModellDomäne Projektion Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  51. 51. Domain Driven Design 51 | 80 Strategic Design Was ist ein Bounded Context?  Eine abgeschlossene Einheit im Gesamtkontext  Wird von einem Team entwickelt  Steht in Relation zu anderen Bounded Contexts Bounded Context Schnittstellen Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  52. 52. Domain Driven Design 52 | 80 Strategic Design Wie werden Bounded Contexts definiert? Vorteile großer Bounded Contexts  Größeres einheitliches Modell  Einfachere Aufgabenverteilung  Weniger schwierige Übersetzung zwischen Modellen  Klarere Kommunikation im gesamten Team durch gemeinsame ubiquitäre Sprache Vorteile kleiner Bounded Contexts  Reduzierter Kommunikations- Overhead in jedem Team  Kleinere Code-Basis  Vereinfachte Continuous Integration  Einfachere Umsetzung sehr spezieller Anforderungen Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  53. 53. Domain Driven Design 53 | 80 Strategic Design Context Map Bounded Context Bounded Context Core Domain Bounded Context Bounded Context Bounded Context Bounded ContextBounded Context Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  54. 54. Domain Driven Design 54 | 80 Context Map  Gesamtüberblick des Systems  Berücksichtigung von Legacy-Systemen  Priorisierung von Bounded Contexts  Identifikation von Beziehungen zwischen Bounded Contexts Strategic Design A context map is the overlap between project management and software design. Eric Evans Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  55. 55. Domain Driven Design 55 | 80 Strategic Design Projekte Kunden Leistungen Buchhaltung Mitarbeiter Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL AgentursoftwareBEISPIEL Agentursoftware
  56. 56. Domain Driven Design 56 | 80 Strategic Design Leistungen Mitarbeiter Interne Projekte Kunden- projekte LeistungenMitarbeiterKunden Buchhaltung CRM Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  57. 57. Domain Driven Design 57 | 80 Strategic Design Beziehungen zwischen Bounded Contexts Kontextgrenzen (besonders sorgfältig definieren und testen!) Bounded Context Bounded Context Team A Team B Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  58. 58. Domain Driven Design 58 | 80 Warum sind die Beziehungen zwischen Bounded Contexts wichtig?  Bessere Organisation der Teams  Weniger Abstimmungsprobleme  Klarer definierte Zuständigkeiten  Besonderer Fokus auf Schnittstellen Strategic Design Describe the points of contact between the models, outlining the explicit translation for any communication and highlighting any sharing. Eric Evans Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  59. 59. Domain Driven Design 59 | 80 Strategic Design Patterns Strategic Design Shared Kernel Anticorruption Layer Conformist Customer/ Supplier Separate Ways Open Host Service Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  60. 60. Domain Driven Design 60 | 80 Strategic Design Shared Kernel  Teile des Codes oder der Infrastruktur werden geteilt.  Änderungen müssen mit dem anderen Team abgesprochen werden.  Der gemeinsame Teil wird besonders sorgfältig von beiden Teams getestet. Bounded Context Bounded Context Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  61. 61. Domain Driven Design 61 | 80 Strategic Design Mitarbeiter Kunden Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  62. 62. Domain Driven Design 62 | 80 Strategic Design Customer/Supplier development teams  Das Supplier-Team entwickelt unabhängig, stellt aber dem Customer-Team alle relevanten Schnittstellen und Services zur Verfügung.  Das Customer-Team hat ein Veto-Recht.  Gemeinsame Akzeptanztests schließen ungewollte Auswirkungen aus. Veto Supplier Customer Bounded Context Bounded Context Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  63. 63. Domain Driven Design 63 | 80 Strategic Design Veto Supplier Customer Mitarbeiter Leistungen Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  64. 64. Domain Driven Design 64 | 80 Strategic Design Conformist  Ein Bounded Context wird an einen anderen angelehnt.  Design-Entscheidungen werden übernommen.  Besonders empfehlenswert bei Legacy-Systemen oder bei Entwicklung in verschiedenen Abteilungen/Hierarchiestufen. Bounded Context Bounded Context Conform Modeling Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  65. 65. Domain Driven Design 65 | 80 Strategic Design Interne Projekte Kunden- projekte Conform Modeling Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  66. 66. Domain Driven Design 66 | 80 Translation Bounded Context Bounded Context Strategic Design Anticorruption Layer  Eine klar definierte Schnittstelle sichert den Datenaustausch.  Ermöglicht gemeinsame Nutzung von Informationen, wenn ein Shared-Kernel- Pattern nicht möglich ist.  Besonders empfehlenswert bei Legacy-Systemen Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  67. 67. Domain Driven Design 67 | 80 Strategic Design Translation Kunden Vorhandenes CRM Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  68. 68. Domain Driven Design 68 | 80 Strategic Design Separate Ways  Keine Abhängigkeiten  Keine gemeinsamen Code-Teile oder Infrastruktur  Vorteilhaft für sehr spezialisierte Lösungen Bounded Context Bounded Context Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  69. 69. Domain Driven Design 69 | 80 Strategic Design Mitarbeiter Vorhandenes CRM Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  70. 70. Domain Driven Design 70 | 80 Open Host Service  Ein Bounded Context definiert Services, die Zugang zum System geben.  Besonders empfehlenswert, wenn viele Schnittstellen definiert werden müssen Strategic Design Bounded Context Bounded Context Bounded Context Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  71. 71. Domain Driven Design 71 | 80 Strategic Design Leistungen Kunden- projekte Mitarbeiter Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  72. 72. Domain Driven Design 72 | 80 Strategic Design Patterns Strategic Design Shared Kernel Anticorruption Layer Conformist Customer/ Supplier Separate Ways Open Host Service Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  73. 73. Domain Driven Design 73 | 80 Strategic Design Patterns Strategic Design Shared Kernel Anticorruption Layer Conformist Customer/ Supplier Separate Ways Open Host Service KontrolleüberverbundeneSysteme Kommunikationsaufwand / Teamqualität Single Bounded Context Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  74. 74. Domain Driven Design 74 | 80 Strategic Design Leistungen Mitarbeiter Interne Projekte Kunden- projekte LeistungenMitarbeiterKunden Buchhaltung CRM Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  75. 75. Domain Driven Design 75 | 80 Strategic Design Leistungen Mitarbeiter Interne Projekte Kunden- projekte LeistungenMitarbeiterKunden Buchhaltung CRM Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  76. 76. Domain Driven Design 76 | 80 Agenda Warum Domain Driven Design? Die Domäne Modelle und Modellierung Strategic Design Fazit Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  77. 77. Domain Driven Design 77 | 80 Fazit DDD wirkt als Stabilisierungsfaktor in komplexen Softwareprojekten. Die ubiquitäre Sprache sorgt für ein gemeinsames Domänenverständnis. Das Domänenmodell ist unmittelbare Basis für die Entwicklung und bleibt eng mit dem Code gekoppelt. Priorisierungen werden durch Distillation für alle nachvollziehbar. Bounded Contexts helfen bei der Definition von abgeschlossenen Systemteilen und ihren Beziehungen untereinander. Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  78. 78. Domain Driven Design 78 | 80 DDD wirkt als Stabilisierungsfaktor in komplexen Softwareprojekten. Die ubiquitäre Sprache sorgt für ein gemeinsames Domänenverständnis. Das Domänenmodell ist unmittelbare Basis für die Entwicklung und bleibt eng mit dem Code gekoppelt. Priorisierungen werden durch Distillation für alle nachvollziehbar. Bounded Contexts helfen bei der Definition von abgeschlossenen Systemteilen und ihren Beziehungen untereinander. Fazit 1. For most software projects, the primary focus should be on the domain and domain logic. 2. Complex domain designs should be based on a model. Domain Driven Design Eric Evans 76 Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  79. 79. Domain Driven Design 79 | 80 Referenzen Evans, Eric: Domain-driven Design - Tackling Complexity in the Heart of Software. 1. Aufl.. Boston: Addison-Wesley Professional, 2004. Avram, Abel ; Marinescu, Floyd: Domain-Driven Design Quickly. Raleigh, North Carolina: Lulu.com, 2007. Evans, Eric: Domain-Driven Design Reference : Definitions and Pattern Summaries. Indianapolis: Dog Ear Publishing, 2014. Vernon, Vaughn: Implementing Domain-Driven Design. 1. Aufl.. Amsterdam: Addison-Wesley, 2013. Millett, Scott ; Tune, Nick: Patterns, Principles, and Practices of Domain-Driven Design. New York: John Wiley & Sons, 2015. Domain Driven Design Example https://www.mirkosertic.de/blog/2013/04/domain-driven-design-example/ Sub-domains and Bounded Contexts in Domain-Driven Design http://gorodinski.com/blog/2013/04/29/sub-domains-and-bounded-contexts-in-domain-driven- design-ddd/ DDD: Strategic Design: Core, Supporting, and Generic Subdomains http://blog.jonathanoliver.com/ddd-strategic-design-core-supporting-and-generic-subdomains/ Domain Driven Design 101 https://www.slideshare.net/rdingwall/domain-driven-design-101 DDD in practice https://www.infoq.com/articles/ddd-in-practice Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  80. 80. Domain Driven Design 80 | 80 Impulsvorträge für Ihr Unternehmen Überblick über das gesamte Angebot an Impulsvorträgen unter: www.iks-gmbh.com/impulsvortraege Ihr Nutzen:  Unabhängiges, aktuelles Expertenwissen.  Individuell auf Ihr Publikum und Ihr Unternehmen zugeschnittene Vorträge.  Referenten mit langjähriger und branchenübergreifender Expertise in der IT- Beratung.  Praxisnahe Vorträge, die aus Projektarbeit entstanden sind, frei von Produktwerbung.  Ideale Ergänzung für Ihre Führungskräftetreffen, Abteilungsmeetings, Hausmessen, Innovation Days, Konferenzen, Open Spaces, Kick-off-Meetings oder Zukunftsworkshops.
  81. 81. WWW.IKS-GMBH.COM

×