SlideShare a Scribd company logo
1 of 54
Download to read offline
WPS - Workplace Solutions GmbH //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG
It’s all about the domain, honey!
Dr. Carola Lilienthal
Carola.Lilienthal@wps.de, @cairolali
www.wps.de
19.04.2016 //// Seite 3WPS - Workplace Solutions GmbH
Software-
Architektur
Anforderungs-
ermittlung
Leitstand und
Interaktion
Individual-
software
Business-Software,
die Spaß macht!
WPS – Workplace Solutions GmbH
19.04.2016 //// Seite 4WPS - Workplace Solutions GmbH
WIR SIND PROGRAMMIERER...
19.04.2016 //// Seite 5WPS - Workplace Solutions GmbH
... UND WIR LIEBEN TECHNIK
19.04.2016 //// Seite 6WPS - Workplace Solutions GmbH
SOFTWARE != SELBSTZWECK
Software ist ein Mittel zum Zweck
Kein Selbstzweck
Das Ziel ist das Ziel
19.04.2016 //// Seite 7WPS - Workplace Solutions GmbH
ANWENDER
19.04.2016 //// Seite 8WPS - Workplace Solutions GmbH
SOFTWARE UND DOMÄNE
 Schreibe Software, die tief in der
Domäne verwurzelt ist!
Software
Domäne
19.04.2016 //// Seite 9WPS - Workplace Solutions GmbH
WAS IST DIE DOMÄNE?
 Domäne: Ein abgrenzbares Problemfeld, dem eine Software gewidmet ist
 Software entspringt einer Domäne und steht damit in engem Zusammenhang
 Es ist verlockend, zu viel Zeit mit dem technischen Code zu verbringen!
19.04.2016 //// Seite 10WPS - Workplace Solutions GmbH
DOMAIN DRIVEN DESIGN ANWENDEN
 Zu Beginn eines Softwareprojekts:
 Fokussiere die Domäne in der die Software eingesetzt wird
 Wie erschafft man Software, die zu einer Domäne passt?
 Begreife Software als Reflektion
der Domäne
 Lasse Kernkonzepte und
Elemente der Domäne
in die Software einfließen
 Realisiere ihre
Zusammenhänge
 Erstelle ein Domänenmodell
19.04.2016 //// Seite 11WPS - Workplace Solutions GmbH
DAS MODELL KOMMUNIZIEREN
 Das Modell kann nicht nur in unseren Köpfen bestehen
 Wir müssen Wissen und Informationen verteilen
 Grafisch
 Schriftlich
 Mündlich
Eine gemeinsame Sprache ist notwendig, um
das Modell ausdrücken zu können
19.04.2016 //// Seite 12WPS - Workplace Solutions GmbH
TECHNISCHE SPRACHE
X
Class
Database
Server
Client
O/R-Mapping
Inheritance
A
B
Method
Interface
Linux
Windows
Eclipse
Visual Studio
19.04.2016 //// Seite 13WPS - Workplace Solutions GmbH
DOMÄNEN-SPRACHE
Container
Containernummer
4300
Kran
Twistlock
Konnossement
Beispiel: Hafen
19.04.2016 //// Seite 14WPS - Workplace Solutions GmbH
Fach-
sprache
Techno
Babble
?
ALLGEGENWÄRTIGE FACHSPRACHE
19.04.2016 //// Seite 15WPS - Workplace Solutions GmbH
Fach-
sprache
Techno
Babble
Fach-
sprache
ALLGEGENWÄRTIGE FACHSPRACHE
19.04.2016 //// Seite 16WPS - Workplace Solutions GmbH
Fach-
sprache
Techno
Babble
ALLGEGENWÄRTIGE FACHSPRACHE
19.04.2016 //// Seite 17WPS - Workplace Solutions GmbH
Techno
Babble
Fach-
sprache
ALLGEGENWÄRTIGE FACHSPRACHE
19.04.2016 //// Seite 18WPS - Workplace Solutions GmbH
Fach-
sprache
{
Techno
Babble
}
?
ALLGEGENWÄRTIGE FACHSPRACHE
19.04.2016 //// Seite 19WPS - Workplace Solutions GmbH
Fach-
sprache
{
Fach-
sprache
}
ALLGEGENWÄRTIGE FACHSPRACHE
19.04.2016 //// Seite 20WPS - Workplace Solutions GmbH
ALLGEGENWÄRTIGE FACHSPRACHE
 Verwende die gemeinsame Sprache in..
 der Kommunikation
 mündlich
 schriftlich
 grafisch
 im Code
 Im Grunde genommen überall
 Deswegen nennt sich die Fachsprache allgegenwärtig.
19.04.2016 //// Seite 21WPS - Workplace Solutions GmbH
SPRACHE TAUCHT NICHT EINFACH AUF
 Es braucht Wochen bis Monate...
 harter Arbeit
 und scharfem Fokus
 … um die Schlüsselkonzepte offenzulegen.
 Die ersten Wörter einer allgemeinen Fachsprache kommen
üblicherweise direkt aus der Domäne
 Im laufe der Entwicklung werden neue Begriffe definiert
und hinzugefügt
19.04.2016 //// Seite 22WPS - Workplace Solutions GmbH
DOMÄNEN-SPRACHE
Brett
König
Figuren
Spieler
Schachuhr
19.04.2016 //// Seite 23WPS - Workplace Solutions GmbH
ALLGEGENWÄRTIGE FACHSPRACHE
Brett
Figuren
Spieler
Nichtmenschlicher
Spieler
19.04.2016 //// Seite 24WPS - Workplace Solutions GmbH
SPRACHEN SIND LEBENDIG
 Experimentiere mit alternativen Ausdrucksformen
 Das Modell und die Sprache entwickeln sich weiter
 Überarbeite dann den Code
 Benenne Klassen, Methoden, Module
 Entspreche dem neuen Modell
 Eine Sprache will gesprochen werden:
 Beseitige Unklarheiten durch Konversation
19.04.2016 //// Seite 25WPS - Workplace Solutions GmbH
19.04.2016 //// Seite 26WPS - Workplace Solutions GmbH
WORKSHOPS ZU PROZESSA- UND ANFORDERUNGS-
ANALYSE MIT ANWENDERN ODER DEM PO
“Georgia?” by The Library of Congress, flickr.com
• Teilnehmer aus verschiedenen Bereichen (Business, IT, Management, …)
• 1 Moderator, 1 Modellierer an der Tastatur
• “live” Modellierung mit einem Projektor
 direktes Feedback von allen Beteiligten
19.04.2016 //// Seite 27WPS - Workplace Solutions GmbH
eGPM „Die Methode mit den Männchen“
http://www.omilab.org/web/bpm
Wer tut was
womit und
warum?
19.04.2016 //// Seite 28WPS - Workplace Solutions GmbH
Glossar
• Fachsprache der Benutzer
• bereits existierende Begriffe
• rekonstruierte Begriffe
• neue Begriffsbildungen
• Wer tut was damit warum?
19.04.2016 //// Seite 29WPS - Workplace Solutions GmbH
DIE OBJEKTORIENTIERTE GRUNDIDEE:
FACHLICHE GEGENSTÄNDE ALS AUSGANGSPUNKT
19.04.2016 //// Seite 30WPS - Workplace Solutions GmbH
DIE OBJEKTORIENTIERTE GRUNDIDEE: AUS
FACHLICHEN
GEGENSTÄNDEN WERDEN KLASSEN
Die Artefakte
der Fachdomäne...
... werden in ihrem Verhalten
fachlich modelliert ...
einfügen
beschriften
suchen
entnehmen
Der Kundenordner
... und softwaretechnisch in fachlichen Klassen beschrieben.
beschriften
suchen
Liste der
Dokumente
Zeichenkette
Integer
Klasse Ordner
einfügen (Dokument doc)
{
assert doc!=null, „NN“);
…
docs.add(doc);
}
entnehmen
einfügen
19.04.2016 //// Seite 31WPS - Workplace Solutions GmbH
SCHNITTSTELLEN DER FACHLICHEN KLASSEN
Das Konzept der Modellierung von fachlichen Klassen:
• Wähle anwendungsfachliche Begriffe ( als Substantiv)
• Beschreibe Umgangsformen ( als Verb) und die dabei benötigten
weiteren Gegenstände.
Keine Daten
modellieren.
Ordner
- Dokument entnehmen
- Dokument einfügen
- mit Text beschriften
- Beschriftung?
- Dokument suchen
- Dokument auswählen
- das Register aufschlagen
- voll?
...
19.04.2016 //// Seite 32WPS - Workplace Solutions GmbH
TRENNUNG VON FACHLICHER + TECHNISCHER SOFTWARE
Application Kernel
Persistence
GUI 2
Database
Altsystem B
Altsystem A
Adapter
A
Adapter
B
GUI 1
interfaces submitted to
third parties
Transformations-Software
Technische Software
Vermischte Software
Fachliche Software
19.04.2016 //// Seite 33WPS - Workplace Solutions GmbH
ELEMENTE VON DOMAIN-DRIVEN-DESIGN
Services
Factories
Value Objects
Repositories
Aggregates
Entities
Infrastruktur-
Komponente
"Mikro-Schichtung"
Fachobjekte
Unterstützen den
Lebenszyklus der
Fachobjekte
19.04.2016 //// Seite 34WPS - Workplace Solutions GmbH
DIE FACHLICHEN „KERNELEMENTE“ VON DDD
Services
Value Objects
Entities
zustandslos
veränderlicher
Zustand
unveränderlicher
Zustand
"Mikro-Schichtung"
19.04.2016 //// Seite 35WPS - Workplace Solutions GmbH
19.04.2016 //// Seite 36WPS - Workplace Solutions GmbH
ENTITIES
 Sind die Kernobjekte einer
Fachdomäne.
 Besitzen eine
zustandsunabhängige,
unveränderliche Identität.
 Haben einen klar definierten
Lebenszyklus.
 Besitzen einen (meist
veränderlichen) Zustand.
 Beschreiben ihren Zustand
mithilfe von ValueObjects.
 Sind praktisch immer
persistent.
Versicherungs-
nehmer
• Name
• Vorname
• Straße
• PLZ
• Ort
• Versicherungs-
nummer
Beitrags-
zahler
• Name
• Vorname
• IBAN
• BIC
Versicherte
Person
• Name
• Vorname
• Tarif
Forderung
• Geldbetrag
• Fälligkeit
• Schuldner
Bankver-
bindung
• IBAN
• BIC
Person
• Name
• Vorname
✘
✔
19.04.2016 //// Seite 37WPS - Workplace Solutions GmbH
ENTITIES – BEISPIELE
Versicherungspolice
Urlaubsantrag
Baumaßnahme
Kaufvertrag
Fahrauftrag
19.04.2016 //// Seite 38WPS - Workplace Solutions GmbH
VALUE OBJECTS
 Symbolisieren Werte
eines bestimmtenTyps
der Fachdomäne.
 Symbolisieren bei
Gleichheit denselben
Wert.
 Sind unveränderlich.
 Können ggf. (aus
anderen ValueObjects)
berechnet werden.
 Können aus anderen
ValueObjects bestehen,
aber nie aus Entitäten!
ValueObject
2,5
ValueObject
ValueObject
ValueObject
ValueObject
zwei-
einhalb
19.04.2016 //// Seite 39WPS - Workplace Solutions GmbH
VALUE OBJECTS – BEISPIELE
Postleitzahl
GPS-Koordinate
IBAN
Containernummer
IATA-Code
19.04.2016 //// Seite 40WPS - Workplace Solutions GmbH
ANEMIC DOMAIN MODEL
 „blutarme“ fachliche Objekte
 Schnittstelle ohne Aussagekraft
 aus Gettern/Settern
 Viele String Parameter
 Eigentliche Fachlichkeit außerhalb Entities +
Value Objects in Services oder im UI
 Oberhalb des Modells findet man Klassen
mit dupliziertem Code zur
 Konsistenzprüfung
 Konvertierung
 Validierung
 Viele Util, Helper und Manager Klassen
19.04.2016 //// Seite 41WPS - Workplace Solutions GmbH
ANEMIC  FEHLENDE ROBUSTHEIT
 Designschulden
 Unklarer, schwer verständlicher
Entwurf
 Verteilte Fachlichkeit
 Copy&Paste-Programmierung
 Teure Wartung
 Duplizierter Code
 Viele Refactorings
 Schlechte Testbarkeit
19.04.2016 //// Seite 42WPS - Workplace Solutions GmbH
UNKLARE STRUKTUREN IN DER ACHITEKTUR
19.04.2016 //// Seite 43WPS - Workplace Solutions GmbH
GROSSE ZYKLEN VERSCHMUTZEN DAS SYSTEM
119 Klassen aus 4 Komponenten
+ 28 weitere Klassen
19.04.2016 //// Seite 44WPS - Workplace Solutions GmbH
GROSSE ZYKLEN VERSCHMUTZEN DAS SYSTEM
327 Klassen aus 8
Komponenten
brauchen sich gegenseitig
19.04.2016 //// Seite 45WPS - Workplace Solutions GmbH
19.04.2016 //// Seite 46WPS - Workplace Solutions GmbH
GROSSE PROJEKTE
 Erfordern mehrere Teams
 Entwicklung findet parallel statt
 Jedes Team korrespondiert mit einem Teil des Modells
 Ein großes Modell?
19.04.2016 //// Seite 47WPS - Workplace Solutions GmbH
KEIN GROSSES VEREINHEITLICHTES MODELL
 Die vollständige Domäne ist zu groß für ein einzelnes Modell
 Bewusste Aufspaltung in Teilmodelle
 Separate Modelle
 können unabhängig entwickelt werden
 Müssen den an sie gestellten
Anforderungen genügen
 sollten klar abgegrenzt sein
 Jedes Modell sollte klein genug sein, so
dass man es einem Team zuweisen kann
19.04.2016 //// Seite 48WPS - Workplace Solutions GmbH
KONTEXTGRENZEN (BOUNDED CONTEXT)
 Jedes Modell hat einen Kontext
 Kontext = Grundsätzliche Voraussetzungen, damit Begriffe eine bestimmte
Bedeutung erhalten
 Wird ein Modell aufgespalten, so ist für jedes Teilmodell eine Kontextdefinition
erforderlich
 Setze explizite Grenzen in der…
 Organisation von Teams
 Benutzung von Teilen der
Applikation
 Codebasis
 Entwicklung von
Datenbank-Schemas
19.04.2016 //// Seite 49WPS - Workplace Solutions GmbH
LIVING IN A BOX
 Erhalte die Konsistenz innerhalb der Grenzen
 Keine Ablenkung durch äußere Angelegenheiten
 Freie Gestaltung eines Teilmodells durch das zugehörige Team
 Kenne die Restriktionen
 Bleibe innerhalb der Modellgrenzen
 Häufig werden Wertobjekte für die
Kontext-Interkommunikation verwendet
19.04.2016 //// Seite 50WPS - Workplace Solutions GmbH
KONTEXTÜBERSICHT (CONTEXT MAP)
 Jedes Team kennt seinen Kontextgrenzen. Wie steht es um die anderen?
 Eine Kontextübersicht skizziert
 Die verschiedenen abgegrenzten Kontexte
 ihre wechselseitigen Beziehungen
 Abgegrenzte Kontexte sollten
benannt sein.
19.04.2016 //// Seite 51WPS - Workplace Solutions GmbH
SHARED KERNEL
 Teams verwenden mitunter ähnliche Modelle.
 Um Duplizierung zu vermeiden, einigen sich diese Teams auf ein gemeinsam
genutztes Teilmodell, den Shared Kernel.
 Wird dieser Shared Kernel weiterentwickelt, werden alle beteiligten Teams mit
einbezogen.
 Die Kontexte der Teams bleiben weiterhin voneinander abgegrenzt.
Address
Bank Data
19.04.2016 //// Seite 52WPS - Workplace Solutions GmbH
MICROSERVICES AND SELF-CONTAINED SYSTEMS
Micro-
service A
UI
Entities
Value
Objects
Services
Micro-
service B
UI
Entities
Value
Objects
Services
Micro-
service C
UI
Entities
Value
Objects
Services
TechnischeSchichtung
Value
Object
Value
Object
? ?
19.04.2016 //// Seite 53WPS - Workplace Solutions GmbH
19.04.2016 //// Seite 54WPS - Workplace Solutions GmbH
MOB-ARCHITEKTUR-REFACTORING
Vielen Dank für Ihre Aufmerksamkeit!
www.langlebige-softwarearchitektur.de
Dr. Carola Lilienthal
Mitglied der
Geschäftsleitung
cl@wps.de
www.wps.de
+49 170 184 77 11
Diplom-Informatikerin
@cairolali

More Related Content

What's hot

ITB 2012 Spezial: Online Marketing für die Tourismus-Branche
ITB 2012 Spezial: Online Marketing für die Tourismus-BrancheITB 2012 Spezial: Online Marketing für die Tourismus-Branche
ITB 2012 Spezial: Online Marketing für die Tourismus-Branchetrafficmaxx c/o construktiv GmbH
 
Bildungskonferenz 2010 - Online Marketing - Der effiziente Weg zum Erfolg
Bildungskonferenz 2010 - Online Marketing - Der effiziente Weg zum ErfolgBildungskonferenz 2010 - Online Marketing - Der effiziente Weg zum Erfolg
Bildungskonferenz 2010 - Online Marketing - Der effiziente Weg zum Erfolgtrafficmaxx c/o construktiv GmbH
 
Publikationsstrategien im 21. Jahrhundert - Go Mobile (#tekom | TH-Nürnberg)
Publikationsstrategien im 21. Jahrhundert - Go Mobile (#tekom | TH-Nürnberg)Publikationsstrategien im 21. Jahrhundert - Go Mobile (#tekom | TH-Nürnberg)
Publikationsstrategien im 21. Jahrhundert - Go Mobile (#tekom | TH-Nürnberg)Georg Eck
 
tekom/tcworld 2013 – T1: 3D-PDF-Tools von Tetra4D im Vergleich mit SAP VEA
tekom/tcworld 2013 – T1: 3D-PDF-Tools von Tetra4D im Vergleich mit SAP VEAtekom/tcworld 2013 – T1: 3D-PDF-Tools von Tetra4D im Vergleich mit SAP VEA
tekom/tcworld 2013 – T1: 3D-PDF-Tools von Tetra4D im Vergleich mit SAP VEAGeorg Eck
 
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - WTC15
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - WTC15Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - WTC15
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - WTC15die.agilen GmbH
 
Digitales Produkt- und Katalogstammdatenmanagement - Michael Hofmann cdmm GmbH
Digitales Produkt- und Katalogstammdatenmanagement - Michael Hofmann cdmm GmbHDigitales Produkt- und Katalogstammdatenmanagement - Michael Hofmann cdmm GmbH
Digitales Produkt- und Katalogstammdatenmanagement - Michael Hofmann cdmm GmbHMichael Hofmann
 
Collaboration day 2016 - Connections - Apps
Collaboration day 2016 - Connections - AppsCollaboration day 2016 - Connections - Apps
Collaboration day 2016 - Connections - AppsBelsoft
 
Collaboration day 2016 - Aus alt mach neu - Modernisierung mit xPages
Collaboration day 2016 - Aus alt mach neu - Modernisierung mit xPagesCollaboration day 2016 - Aus alt mach neu - Modernisierung mit xPages
Collaboration day 2016 - Aus alt mach neu - Modernisierung mit xPagesBelsoft
 

What's hot (12)

The joy of multiple models
The joy of multiple modelsThe joy of multiple models
The joy of multiple models
 
Blogs im Unternehmenseinsatz
Blogs im UnternehmenseinsatzBlogs im Unternehmenseinsatz
Blogs im Unternehmenseinsatz
 
ITB 2012 Spezial: Online Marketing für die Tourismus-Branche
ITB 2012 Spezial: Online Marketing für die Tourismus-BrancheITB 2012 Spezial: Online Marketing für die Tourismus-Branche
ITB 2012 Spezial: Online Marketing für die Tourismus-Branche
 
Bildungskonferenz 2010 - Online Marketing - Der effiziente Weg zum Erfolg
Bildungskonferenz 2010 - Online Marketing - Der effiziente Weg zum ErfolgBildungskonferenz 2010 - Online Marketing - Der effiziente Weg zum Erfolg
Bildungskonferenz 2010 - Online Marketing - Der effiziente Weg zum Erfolg
 
Publikationsstrategien im 21. Jahrhundert - Go Mobile (#tekom | TH-Nürnberg)
Publikationsstrategien im 21. Jahrhundert - Go Mobile (#tekom | TH-Nürnberg)Publikationsstrategien im 21. Jahrhundert - Go Mobile (#tekom | TH-Nürnberg)
Publikationsstrategien im 21. Jahrhundert - Go Mobile (#tekom | TH-Nürnberg)
 
AdWords Days 2009 - Kampagnenoptimierung
AdWords Days 2009 - KampagnenoptimierungAdWords Days 2009 - Kampagnenoptimierung
AdWords Days 2009 - Kampagnenoptimierung
 
tekom/tcworld 2013 – T1: 3D-PDF-Tools von Tetra4D im Vergleich mit SAP VEA
tekom/tcworld 2013 – T1: 3D-PDF-Tools von Tetra4D im Vergleich mit SAP VEAtekom/tcworld 2013 – T1: 3D-PDF-Tools von Tetra4D im Vergleich mit SAP VEA
tekom/tcworld 2013 – T1: 3D-PDF-Tools von Tetra4D im Vergleich mit SAP VEA
 
Bewerbung
BewerbungBewerbung
Bewerbung
 
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - WTC15
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - WTC15Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - WTC15
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - WTC15
 
Digitales Produkt- und Katalogstammdatenmanagement - Michael Hofmann cdmm GmbH
Digitales Produkt- und Katalogstammdatenmanagement - Michael Hofmann cdmm GmbHDigitales Produkt- und Katalogstammdatenmanagement - Michael Hofmann cdmm GmbH
Digitales Produkt- und Katalogstammdatenmanagement - Michael Hofmann cdmm GmbH
 
Collaboration day 2016 - Connections - Apps
Collaboration day 2016 - Connections - AppsCollaboration day 2016 - Connections - Apps
Collaboration day 2016 - Connections - Apps
 
Collaboration day 2016 - Aus alt mach neu - Modernisierung mit xPages
Collaboration day 2016 - Aus alt mach neu - Modernisierung mit xPagesCollaboration day 2016 - Aus alt mach neu - Modernisierung mit xPages
Collaboration day 2016 - Aus alt mach neu - Modernisierung mit xPages
 

Viewers also liked

Reducing technical debt in php
Reducing technical debt in phpReducing technical debt in php
Reducing technical debt in phpCarola Lilienthal
 
Große ziele kleine schritte
Große ziele kleine schritteGroße ziele kleine schritte
Große ziele kleine schritteCarola Lilienthal
 
Distributed Product Owner Team @ syngo - presented at ScanDev SDC 2013
Distributed Product Owner Team @ syngo - presented at ScanDev SDC 2013Distributed Product Owner Team @ syngo - presented at ScanDev SDC 2013
Distributed Product Owner Team @ syngo - presented at ScanDev SDC 2013Andrea Heck
 
It's Java Jim, But Not As We Know It!
It's Java Jim, But Not As We Know It!It's Java Jim, But Not As We Know It!
It's Java Jim, But Not As We Know It!Simon Ritter
 
Javaland 2017: "You´ll do microservices now". Now what?
Javaland 2017: "You´ll do microservices now". Now what?Javaland 2017: "You´ll do microservices now". Now what?
Javaland 2017: "You´ll do microservices now". Now what?André Goliath
 
Pattern oriented architecture for web based architecture
Pattern oriented architecture for web based architecturePattern oriented architecture for web based architecture
Pattern oriented architecture for web based architectureshuchi tripathi
 
Django and Neo4j - Domain modeling that kicks ass
Django and Neo4j - Domain modeling that kicks assDjango and Neo4j - Domain modeling that kicks ass
Django and Neo4j - Domain modeling that kicks assTobias Lindaaker
 
Modularization With Project Jigsaw in JDK 9
Modularization With Project Jigsaw in JDK 9Modularization With Project Jigsaw in JDK 9
Modularization With Project Jigsaw in JDK 9Simon Ritter
 
Why Java Sucks and C# Rocks (Final)
Why Java Sucks and C# Rocks (Final)Why Java Sucks and C# Rocks (Final)
Why Java Sucks and C# Rocks (Final)jeffz
 
Architecture of a Modern Web App
Architecture of a Modern Web AppArchitecture of a Modern Web App
Architecture of a Modern Web Appscothis
 

Viewers also liked (11)

Reducing technical debt in php
Reducing technical debt in phpReducing technical debt in php
Reducing technical debt in php
 
Große ziele kleine schritte
Große ziele kleine schritteGroße ziele kleine schritte
Große ziele kleine schritte
 
Distributed Product Owner Team @ syngo - presented at ScanDev SDC 2013
Distributed Product Owner Team @ syngo - presented at ScanDev SDC 2013Distributed Product Owner Team @ syngo - presented at ScanDev SDC 2013
Distributed Product Owner Team @ syngo - presented at ScanDev SDC 2013
 
It's Java Jim, But Not As We Know It!
It's Java Jim, But Not As We Know It!It's Java Jim, But Not As We Know It!
It's Java Jim, But Not As We Know It!
 
Javaland 2017: "You´ll do microservices now". Now what?
Javaland 2017: "You´ll do microservices now". Now what?Javaland 2017: "You´ll do microservices now". Now what?
Javaland 2017: "You´ll do microservices now". Now what?
 
Pattern oriented architecture for web based architecture
Pattern oriented architecture for web based architecturePattern oriented architecture for web based architecture
Pattern oriented architecture for web based architecture
 
Django and Neo4j - Domain modeling that kicks ass
Django and Neo4j - Domain modeling that kicks assDjango and Neo4j - Domain modeling that kicks ass
Django and Neo4j - Domain modeling that kicks ass
 
Modularization With Project Jigsaw in JDK 9
Modularization With Project Jigsaw in JDK 9Modularization With Project Jigsaw in JDK 9
Modularization With Project Jigsaw in JDK 9
 
Why Java Sucks and C# Rocks (Final)
Why Java Sucks and C# Rocks (Final)Why Java Sucks and C# Rocks (Final)
Why Java Sucks and C# Rocks (Final)
 
Java modularity: life after Java 9
Java modularity: life after Java 9Java modularity: life after Java 9
Java modularity: life after Java 9
 
Architecture of a Modern Web App
Architecture of a Modern Web AppArchitecture of a Modern Web App
Architecture of a Modern Web App
 

Similar to Its all about the domain honey

Einführung des PIM-, MAM- und Content-Management-Systems bei Festool
Einführung des PIM-, MAM- und Content-Management-Systems bei FestoolEinführung des PIM-, MAM- und Content-Management-Systems bei Festool
Einführung des PIM-, MAM- und Content-Management-Systems bei FestoolTANNER AG
 
Trends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbH
Trends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbHTrends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbH
Trends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbHNicole Szigeti
 
Große agile Teams - Zu viele Entwickler verderben den Brei?
Große agile Teams - Zu viele Entwickler verderben den Brei?Große agile Teams - Zu viele Entwickler verderben den Brei?
Große agile Teams - Zu viele Entwickler verderben den Brei?Julia Stoff
 
Einführung Digital Publishing
Einführung Digital PublishingEinführung Digital Publishing
Einführung Digital PublishingWeLoveYou
 
SAP Enable Now - DeepDive Workshop Education Forum 2017
SAP Enable Now - DeepDive Workshop Education Forum 2017SAP Enable Now - DeepDive Workshop Education Forum 2017
SAP Enable Now - DeepDive Workshop Education Forum 2017Thomas Jenewein
 
LB PLUS - Das Firmenmagazin der LB Gruppe
LB PLUS - Das Firmenmagazin der LB GruppeLB PLUS - Das Firmenmagazin der LB Gruppe
LB PLUS - Das Firmenmagazin der LB GruppeLBGmbH
 
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...Verein FM Konferenz
 
Responsive Webdesign: Fiese Fallstricke und sexy Strategien
Responsive Webdesign: Fiese Fallstricke und sexy StrategienResponsive Webdesign: Fiese Fallstricke und sexy Strategien
Responsive Webdesign: Fiese Fallstricke und sexy StrategienJohannes Weber
 
Apex testen wird überschaetzt
Apex testen wird überschaetztApex testen wird überschaetzt
Apex testen wird überschaetztTrivadis
 
Net at Work auf der CeBIT: Keine Grenzen am modernen Arbeitsplatz
Net at Work auf der CeBIT: Keine Grenzen am modernen ArbeitsplatzNet at Work auf der CeBIT: Keine Grenzen am modernen Arbeitsplatz
Net at Work auf der CeBIT: Keine Grenzen am modernen Arbeitsplatzbhoeck
 
E-Commerce im Großhandelsunternehmen - Von der Idee bis zur Umsetzung
E-Commerce im Großhandelsunternehmen - Von der Idee bis zur UmsetzungE-Commerce im Großhandelsunternehmen - Von der Idee bis zur Umsetzung
E-Commerce im Großhandelsunternehmen - Von der Idee bis zur UmsetzungHenrik Steffen
 
NetworkCamp: webthinking
NetworkCamp: webthinkingNetworkCamp: webthinking
NetworkCamp: webthinkingTobias Teutsch
 
Visualisierung von fachlichen Informationen mit Oracle ADF
Visualisierung von fachlichen Informationen mit Oracle ADFVisualisierung von fachlichen Informationen mit Oracle ADF
Visualisierung von fachlichen Informationen mit Oracle ADFenpit GmbH & Co. KG
 
Visualisierung von fachlichen Informationen mit Oracle ADF
Visualisierung von fachlichen Informationen mit Oracle ADFVisualisierung von fachlichen Informationen mit Oracle ADF
Visualisierung von fachlichen Informationen mit Oracle ADFUlrich Gerkmann-Bartels
 
Development in der Cloud-Ära
Development in der Cloud-ÄraDevelopment in der Cloud-Ära
Development in der Cloud-ÄraAndreas Koop
 
Alfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
Alfresco Day Vienna 2016: Partner Lightning Talk: WesternacherAlfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
Alfresco Day Vienna 2016: Partner Lightning Talk: WesternacherAlfresco Software
 
Präsentation Scompler
Präsentation ScomplerPräsentation Scompler
Präsentation ScomplerScribbleLive
 
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairFmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairVerein FM Konferenz
 

Similar to Its all about the domain honey (20)

Einführung des PIM-, MAM- und Content-Management-Systems bei Festool
Einführung des PIM-, MAM- und Content-Management-Systems bei FestoolEinführung des PIM-, MAM- und Content-Management-Systems bei Festool
Einführung des PIM-, MAM- und Content-Management-Systems bei Festool
 
Trends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbH
Trends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbHTrends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbH
Trends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbH
 
Große agile Teams - Zu viele Entwickler verderben den Brei?
Große agile Teams - Zu viele Entwickler verderben den Brei?Große agile Teams - Zu viele Entwickler verderben den Brei?
Große agile Teams - Zu viele Entwickler verderben den Brei?
 
Einführung Digital Publishing
Einführung Digital PublishingEinführung Digital Publishing
Einführung Digital Publishing
 
SAP Enable Now - DeepDive Workshop Education Forum 2017
SAP Enable Now - DeepDive Workshop Education Forum 2017SAP Enable Now - DeepDive Workshop Education Forum 2017
SAP Enable Now - DeepDive Workshop Education Forum 2017
 
LB PLUS - Das Firmenmagazin der LB Gruppe
LB PLUS - Das Firmenmagazin der LB GruppeLB PLUS - Das Firmenmagazin der LB Gruppe
LB PLUS - Das Firmenmagazin der LB Gruppe
 
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...
 
Das Studio 2010
Das Studio 2010Das Studio 2010
Das Studio 2010
 
Responsive Webdesign: Fiese Fallstricke und sexy Strategien
Responsive Webdesign: Fiese Fallstricke und sexy StrategienResponsive Webdesign: Fiese Fallstricke und sexy Strategien
Responsive Webdesign: Fiese Fallstricke und sexy Strategien
 
Apex testen wird überschaetzt
Apex testen wird überschaetztApex testen wird überschaetzt
Apex testen wird überschaetzt
 
Net at Work auf der CeBIT: Keine Grenzen am modernen Arbeitsplatz
Net at Work auf der CeBIT: Keine Grenzen am modernen ArbeitsplatzNet at Work auf der CeBIT: Keine Grenzen am modernen Arbeitsplatz
Net at Work auf der CeBIT: Keine Grenzen am modernen Arbeitsplatz
 
E-Commerce im Großhandelsunternehmen - Von der Idee bis zur Umsetzung
E-Commerce im Großhandelsunternehmen - Von der Idee bis zur UmsetzungE-Commerce im Großhandelsunternehmen - Von der Idee bis zur Umsetzung
E-Commerce im Großhandelsunternehmen - Von der Idee bis zur Umsetzung
 
NetworkCamp: webthinking
NetworkCamp: webthinkingNetworkCamp: webthinking
NetworkCamp: webthinking
 
Visualisierung von fachlichen Informationen mit Oracle ADF
Visualisierung von fachlichen Informationen mit Oracle ADFVisualisierung von fachlichen Informationen mit Oracle ADF
Visualisierung von fachlichen Informationen mit Oracle ADF
 
Visualisierung von fachlichen Informationen mit Oracle ADF
Visualisierung von fachlichen Informationen mit Oracle ADFVisualisierung von fachlichen Informationen mit Oracle ADF
Visualisierung von fachlichen Informationen mit Oracle ADF
 
Development in der Cloud-Ära
Development in der Cloud-ÄraDevelopment in der Cloud-Ära
Development in der Cloud-Ära
 
Development in der Cloud-Ära
Development in der Cloud-ÄraDevelopment in der Cloud-Ära
Development in der Cloud-Ära
 
Alfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
Alfresco Day Vienna 2016: Partner Lightning Talk: WesternacherAlfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
Alfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
 
Präsentation Scompler
Präsentation ScomplerPräsentation Scompler
Präsentation Scompler
 
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairFmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
 

More from Carola Lilienthal

its all about the domain honey! Experiences from 15 years of Domain-Driven De...
its all about the domain honey! Experiences from 15 years of Domain-Driven De...its all about the domain honey! Experiences from 15 years of Domain-Driven De...
its all about the domain honey! Experiences from 15 years of Domain-Driven De...Carola Lilienthal
 
its all about the domain, honey! Experiences from 15 years of Domain-Driven D...
its all about the domain, honey! Experiences from 15 years of Domain-Driven D...its all about the domain, honey! Experiences from 15 years of Domain-Driven D...
its all about the domain, honey! Experiences from 15 years of Domain-Driven D...Carola Lilienthal
 
Resolving technical debt in software architecture
Resolving technical debt in software architectureResolving technical debt in software architecture
Resolving technical debt in software architectureCarola Lilienthal
 
DDD Foundation: Improving legacy
DDD Foundation: Improving legacyDDD Foundation: Improving legacy
DDD Foundation: Improving legacyCarola Lilienthal
 
Its all about the domain honey engl
Its all about the domain honey englIts all about the domain honey engl
Its all about the domain honey englCarola Lilienthal
 

More from Carola Lilienthal (6)

its all about the domain honey! Experiences from 15 years of Domain-Driven De...
its all about the domain honey! Experiences from 15 years of Domain-Driven De...its all about the domain honey! Experiences from 15 years of Domain-Driven De...
its all about the domain honey! Experiences from 15 years of Domain-Driven De...
 
its all about the domain, honey! Experiences from 15 years of Domain-Driven D...
its all about the domain, honey! Experiences from 15 years of Domain-Driven D...its all about the domain, honey! Experiences from 15 years of Domain-Driven D...
its all about the domain, honey! Experiences from 15 years of Domain-Driven D...
 
Improving legacy
Improving legacyImproving legacy
Improving legacy
 
Resolving technical debt in software architecture
Resolving technical debt in software architectureResolving technical debt in software architecture
Resolving technical debt in software architecture
 
DDD Foundation: Improving legacy
DDD Foundation: Improving legacyDDD Foundation: Improving legacy
DDD Foundation: Improving legacy
 
Its all about the domain honey engl
Its all about the domain honey englIts all about the domain honey engl
Its all about the domain honey engl
 

Its all about the domain honey

  • 1. WPS - Workplace Solutions GmbH //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG It’s all about the domain, honey! Dr. Carola Lilienthal Carola.Lilienthal@wps.de, @cairolali www.wps.de
  • 2. 19.04.2016 //// Seite 3WPS - Workplace Solutions GmbH Software- Architektur Anforderungs- ermittlung Leitstand und Interaktion Individual- software Business-Software, die Spaß macht! WPS – Workplace Solutions GmbH
  • 3. 19.04.2016 //// Seite 4WPS - Workplace Solutions GmbH WIR SIND PROGRAMMIERER...
  • 4. 19.04.2016 //// Seite 5WPS - Workplace Solutions GmbH ... UND WIR LIEBEN TECHNIK
  • 5. 19.04.2016 //// Seite 6WPS - Workplace Solutions GmbH SOFTWARE != SELBSTZWECK Software ist ein Mittel zum Zweck Kein Selbstzweck Das Ziel ist das Ziel
  • 6. 19.04.2016 //// Seite 7WPS - Workplace Solutions GmbH ANWENDER
  • 7. 19.04.2016 //// Seite 8WPS - Workplace Solutions GmbH SOFTWARE UND DOMÄNE  Schreibe Software, die tief in der Domäne verwurzelt ist! Software Domäne
  • 8. 19.04.2016 //// Seite 9WPS - Workplace Solutions GmbH WAS IST DIE DOMÄNE?  Domäne: Ein abgrenzbares Problemfeld, dem eine Software gewidmet ist  Software entspringt einer Domäne und steht damit in engem Zusammenhang  Es ist verlockend, zu viel Zeit mit dem technischen Code zu verbringen!
  • 9. 19.04.2016 //// Seite 10WPS - Workplace Solutions GmbH DOMAIN DRIVEN DESIGN ANWENDEN  Zu Beginn eines Softwareprojekts:  Fokussiere die Domäne in der die Software eingesetzt wird  Wie erschafft man Software, die zu einer Domäne passt?  Begreife Software als Reflektion der Domäne  Lasse Kernkonzepte und Elemente der Domäne in die Software einfließen  Realisiere ihre Zusammenhänge  Erstelle ein Domänenmodell
  • 10. 19.04.2016 //// Seite 11WPS - Workplace Solutions GmbH DAS MODELL KOMMUNIZIEREN  Das Modell kann nicht nur in unseren Köpfen bestehen  Wir müssen Wissen und Informationen verteilen  Grafisch  Schriftlich  Mündlich Eine gemeinsame Sprache ist notwendig, um das Modell ausdrücken zu können
  • 11. 19.04.2016 //// Seite 12WPS - Workplace Solutions GmbH TECHNISCHE SPRACHE X Class Database Server Client O/R-Mapping Inheritance A B Method Interface Linux Windows Eclipse Visual Studio
  • 12. 19.04.2016 //// Seite 13WPS - Workplace Solutions GmbH DOMÄNEN-SPRACHE Container Containernummer 4300 Kran Twistlock Konnossement Beispiel: Hafen
  • 13. 19.04.2016 //// Seite 14WPS - Workplace Solutions GmbH Fach- sprache Techno Babble ? ALLGEGENWÄRTIGE FACHSPRACHE
  • 14. 19.04.2016 //// Seite 15WPS - Workplace Solutions GmbH Fach- sprache Techno Babble Fach- sprache ALLGEGENWÄRTIGE FACHSPRACHE
  • 15. 19.04.2016 //// Seite 16WPS - Workplace Solutions GmbH Fach- sprache Techno Babble ALLGEGENWÄRTIGE FACHSPRACHE
  • 16. 19.04.2016 //// Seite 17WPS - Workplace Solutions GmbH Techno Babble Fach- sprache ALLGEGENWÄRTIGE FACHSPRACHE
  • 17. 19.04.2016 //// Seite 18WPS - Workplace Solutions GmbH Fach- sprache { Techno Babble } ? ALLGEGENWÄRTIGE FACHSPRACHE
  • 18. 19.04.2016 //// Seite 19WPS - Workplace Solutions GmbH Fach- sprache { Fach- sprache } ALLGEGENWÄRTIGE FACHSPRACHE
  • 19. 19.04.2016 //// Seite 20WPS - Workplace Solutions GmbH ALLGEGENWÄRTIGE FACHSPRACHE  Verwende die gemeinsame Sprache in..  der Kommunikation  mündlich  schriftlich  grafisch  im Code  Im Grunde genommen überall  Deswegen nennt sich die Fachsprache allgegenwärtig.
  • 20. 19.04.2016 //// Seite 21WPS - Workplace Solutions GmbH SPRACHE TAUCHT NICHT EINFACH AUF  Es braucht Wochen bis Monate...  harter Arbeit  und scharfem Fokus  … um die Schlüsselkonzepte offenzulegen.  Die ersten Wörter einer allgemeinen Fachsprache kommen üblicherweise direkt aus der Domäne  Im laufe der Entwicklung werden neue Begriffe definiert und hinzugefügt
  • 21. 19.04.2016 //// Seite 22WPS - Workplace Solutions GmbH DOMÄNEN-SPRACHE Brett König Figuren Spieler Schachuhr
  • 22. 19.04.2016 //// Seite 23WPS - Workplace Solutions GmbH ALLGEGENWÄRTIGE FACHSPRACHE Brett Figuren Spieler Nichtmenschlicher Spieler
  • 23. 19.04.2016 //// Seite 24WPS - Workplace Solutions GmbH SPRACHEN SIND LEBENDIG  Experimentiere mit alternativen Ausdrucksformen  Das Modell und die Sprache entwickeln sich weiter  Überarbeite dann den Code  Benenne Klassen, Methoden, Module  Entspreche dem neuen Modell  Eine Sprache will gesprochen werden:  Beseitige Unklarheiten durch Konversation
  • 24. 19.04.2016 //// Seite 25WPS - Workplace Solutions GmbH
  • 25. 19.04.2016 //// Seite 26WPS - Workplace Solutions GmbH WORKSHOPS ZU PROZESSA- UND ANFORDERUNGS- ANALYSE MIT ANWENDERN ODER DEM PO “Georgia?” by The Library of Congress, flickr.com • Teilnehmer aus verschiedenen Bereichen (Business, IT, Management, …) • 1 Moderator, 1 Modellierer an der Tastatur • “live” Modellierung mit einem Projektor  direktes Feedback von allen Beteiligten
  • 26. 19.04.2016 //// Seite 27WPS - Workplace Solutions GmbH eGPM „Die Methode mit den Männchen“ http://www.omilab.org/web/bpm Wer tut was womit und warum?
  • 27. 19.04.2016 //// Seite 28WPS - Workplace Solutions GmbH Glossar • Fachsprache der Benutzer • bereits existierende Begriffe • rekonstruierte Begriffe • neue Begriffsbildungen • Wer tut was damit warum?
  • 28. 19.04.2016 //// Seite 29WPS - Workplace Solutions GmbH DIE OBJEKTORIENTIERTE GRUNDIDEE: FACHLICHE GEGENSTÄNDE ALS AUSGANGSPUNKT
  • 29. 19.04.2016 //// Seite 30WPS - Workplace Solutions GmbH DIE OBJEKTORIENTIERTE GRUNDIDEE: AUS FACHLICHEN GEGENSTÄNDEN WERDEN KLASSEN Die Artefakte der Fachdomäne... ... werden in ihrem Verhalten fachlich modelliert ... einfügen beschriften suchen entnehmen Der Kundenordner ... und softwaretechnisch in fachlichen Klassen beschrieben. beschriften suchen Liste der Dokumente Zeichenkette Integer Klasse Ordner einfügen (Dokument doc) { assert doc!=null, „NN“); … docs.add(doc); } entnehmen einfügen
  • 30. 19.04.2016 //// Seite 31WPS - Workplace Solutions GmbH SCHNITTSTELLEN DER FACHLICHEN KLASSEN Das Konzept der Modellierung von fachlichen Klassen: • Wähle anwendungsfachliche Begriffe ( als Substantiv) • Beschreibe Umgangsformen ( als Verb) und die dabei benötigten weiteren Gegenstände. Keine Daten modellieren. Ordner - Dokument entnehmen - Dokument einfügen - mit Text beschriften - Beschriftung? - Dokument suchen - Dokument auswählen - das Register aufschlagen - voll? ...
  • 31. 19.04.2016 //// Seite 32WPS - Workplace Solutions GmbH TRENNUNG VON FACHLICHER + TECHNISCHER SOFTWARE Application Kernel Persistence GUI 2 Database Altsystem B Altsystem A Adapter A Adapter B GUI 1 interfaces submitted to third parties Transformations-Software Technische Software Vermischte Software Fachliche Software
  • 32. 19.04.2016 //// Seite 33WPS - Workplace Solutions GmbH ELEMENTE VON DOMAIN-DRIVEN-DESIGN Services Factories Value Objects Repositories Aggregates Entities Infrastruktur- Komponente "Mikro-Schichtung" Fachobjekte Unterstützen den Lebenszyklus der Fachobjekte
  • 33. 19.04.2016 //// Seite 34WPS - Workplace Solutions GmbH DIE FACHLICHEN „KERNELEMENTE“ VON DDD Services Value Objects Entities zustandslos veränderlicher Zustand unveränderlicher Zustand "Mikro-Schichtung"
  • 34. 19.04.2016 //// Seite 35WPS - Workplace Solutions GmbH
  • 35. 19.04.2016 //// Seite 36WPS - Workplace Solutions GmbH ENTITIES  Sind die Kernobjekte einer Fachdomäne.  Besitzen eine zustandsunabhängige, unveränderliche Identität.  Haben einen klar definierten Lebenszyklus.  Besitzen einen (meist veränderlichen) Zustand.  Beschreiben ihren Zustand mithilfe von ValueObjects.  Sind praktisch immer persistent. Versicherungs- nehmer • Name • Vorname • Straße • PLZ • Ort • Versicherungs- nummer Beitrags- zahler • Name • Vorname • IBAN • BIC Versicherte Person • Name • Vorname • Tarif Forderung • Geldbetrag • Fälligkeit • Schuldner Bankver- bindung • IBAN • BIC Person • Name • Vorname ✘ ✔
  • 36. 19.04.2016 //// Seite 37WPS - Workplace Solutions GmbH ENTITIES – BEISPIELE Versicherungspolice Urlaubsantrag Baumaßnahme Kaufvertrag Fahrauftrag
  • 37. 19.04.2016 //// Seite 38WPS - Workplace Solutions GmbH VALUE OBJECTS  Symbolisieren Werte eines bestimmtenTyps der Fachdomäne.  Symbolisieren bei Gleichheit denselben Wert.  Sind unveränderlich.  Können ggf. (aus anderen ValueObjects) berechnet werden.  Können aus anderen ValueObjects bestehen, aber nie aus Entitäten! ValueObject 2,5 ValueObject ValueObject ValueObject ValueObject zwei- einhalb
  • 38. 19.04.2016 //// Seite 39WPS - Workplace Solutions GmbH VALUE OBJECTS – BEISPIELE Postleitzahl GPS-Koordinate IBAN Containernummer IATA-Code
  • 39. 19.04.2016 //// Seite 40WPS - Workplace Solutions GmbH ANEMIC DOMAIN MODEL  „blutarme“ fachliche Objekte  Schnittstelle ohne Aussagekraft  aus Gettern/Settern  Viele String Parameter  Eigentliche Fachlichkeit außerhalb Entities + Value Objects in Services oder im UI  Oberhalb des Modells findet man Klassen mit dupliziertem Code zur  Konsistenzprüfung  Konvertierung  Validierung  Viele Util, Helper und Manager Klassen
  • 40. 19.04.2016 //// Seite 41WPS - Workplace Solutions GmbH ANEMIC  FEHLENDE ROBUSTHEIT  Designschulden  Unklarer, schwer verständlicher Entwurf  Verteilte Fachlichkeit  Copy&Paste-Programmierung  Teure Wartung  Duplizierter Code  Viele Refactorings  Schlechte Testbarkeit
  • 41. 19.04.2016 //// Seite 42WPS - Workplace Solutions GmbH UNKLARE STRUKTUREN IN DER ACHITEKTUR
  • 42. 19.04.2016 //// Seite 43WPS - Workplace Solutions GmbH GROSSE ZYKLEN VERSCHMUTZEN DAS SYSTEM 119 Klassen aus 4 Komponenten + 28 weitere Klassen
  • 43. 19.04.2016 //// Seite 44WPS - Workplace Solutions GmbH GROSSE ZYKLEN VERSCHMUTZEN DAS SYSTEM 327 Klassen aus 8 Komponenten brauchen sich gegenseitig
  • 44. 19.04.2016 //// Seite 45WPS - Workplace Solutions GmbH
  • 45. 19.04.2016 //// Seite 46WPS - Workplace Solutions GmbH GROSSE PROJEKTE  Erfordern mehrere Teams  Entwicklung findet parallel statt  Jedes Team korrespondiert mit einem Teil des Modells  Ein großes Modell?
  • 46. 19.04.2016 //// Seite 47WPS - Workplace Solutions GmbH KEIN GROSSES VEREINHEITLICHTES MODELL  Die vollständige Domäne ist zu groß für ein einzelnes Modell  Bewusste Aufspaltung in Teilmodelle  Separate Modelle  können unabhängig entwickelt werden  Müssen den an sie gestellten Anforderungen genügen  sollten klar abgegrenzt sein  Jedes Modell sollte klein genug sein, so dass man es einem Team zuweisen kann
  • 47. 19.04.2016 //// Seite 48WPS - Workplace Solutions GmbH KONTEXTGRENZEN (BOUNDED CONTEXT)  Jedes Modell hat einen Kontext  Kontext = Grundsätzliche Voraussetzungen, damit Begriffe eine bestimmte Bedeutung erhalten  Wird ein Modell aufgespalten, so ist für jedes Teilmodell eine Kontextdefinition erforderlich  Setze explizite Grenzen in der…  Organisation von Teams  Benutzung von Teilen der Applikation  Codebasis  Entwicklung von Datenbank-Schemas
  • 48. 19.04.2016 //// Seite 49WPS - Workplace Solutions GmbH LIVING IN A BOX  Erhalte die Konsistenz innerhalb der Grenzen  Keine Ablenkung durch äußere Angelegenheiten  Freie Gestaltung eines Teilmodells durch das zugehörige Team  Kenne die Restriktionen  Bleibe innerhalb der Modellgrenzen  Häufig werden Wertobjekte für die Kontext-Interkommunikation verwendet
  • 49. 19.04.2016 //// Seite 50WPS - Workplace Solutions GmbH KONTEXTÜBERSICHT (CONTEXT MAP)  Jedes Team kennt seinen Kontextgrenzen. Wie steht es um die anderen?  Eine Kontextübersicht skizziert  Die verschiedenen abgegrenzten Kontexte  ihre wechselseitigen Beziehungen  Abgegrenzte Kontexte sollten benannt sein.
  • 50. 19.04.2016 //// Seite 51WPS - Workplace Solutions GmbH SHARED KERNEL  Teams verwenden mitunter ähnliche Modelle.  Um Duplizierung zu vermeiden, einigen sich diese Teams auf ein gemeinsam genutztes Teilmodell, den Shared Kernel.  Wird dieser Shared Kernel weiterentwickelt, werden alle beteiligten Teams mit einbezogen.  Die Kontexte der Teams bleiben weiterhin voneinander abgegrenzt. Address Bank Data
  • 51. 19.04.2016 //// Seite 52WPS - Workplace Solutions GmbH MICROSERVICES AND SELF-CONTAINED SYSTEMS Micro- service A UI Entities Value Objects Services Micro- service B UI Entities Value Objects Services Micro- service C UI Entities Value Objects Services TechnischeSchichtung Value Object Value Object ? ?
  • 52. 19.04.2016 //// Seite 53WPS - Workplace Solutions GmbH
  • 53. 19.04.2016 //// Seite 54WPS - Workplace Solutions GmbH MOB-ARCHITEKTUR-REFACTORING
  • 54. Vielen Dank für Ihre Aufmerksamkeit! www.langlebige-softwarearchitektur.de Dr. Carola Lilienthal Mitglied der Geschäftsleitung cl@wps.de www.wps.de +49 170 184 77 11 Diplom-Informatikerin @cairolali