GENANNT TAXI GESTARTET FAHRT BEGONNEN NACH „Ahrensburg“ GEFAHREN Ein FACHLICH RELEVANTES EREIGNIS Hier ist etwas geschehen, das uns fachlich EIN STÜCK WEITER gebracht hat.
„La Casetta Ristorante“ GENANNT TAXI GESTARTET FAHRT BEGONNEN NACH „Ahrensburg“ GEFAHREN VOR „La Casetta Ristorante“ GESTOPPT FAHRTZIEL ERREICHT TAXIFAHRER PER „EC- Karte“ BEZAHLT AUS TAXI GESTIEGEN FAHRT BEENDET „La Casetta Ristorante“ BETRETEN AN „reservierten Tisch“ GESETZT „Pizza Scampi“ und „Großes Alster“ BESTELLT SE
„La Casetta Ristorante“ GENANNT TAXI GESTARTET FAHRT BEGONNEN NACH „Ahrensburg“ GEFAHREN VOR „La Casetta Ristorante“ GESTOPPT FAHRTZIEL ERREICHT TAXIFAHRER PER „EC- Karte“ BEZAHLT Wer legt die Route zum Ziel fest? AUS TAXI GESTIEGEN FAHRT BEENDET „La Casetta Ristorante“ BETRETEN AN „reservierten Tisch“ GESETZT „Pizza Scampi“ und „Großes Alster“ BESTELLT SE Wie wird der Tisch reserviert?
TAXI GESTARTET FAHRT BEGONNEN NACH „Ahrensburg“ GEFAHREN Wer legt die Route zum Ziel fest? Offene FRAGE oder PROBLEM PINKER STICKIE Kurz in Prosa beschreiben. In die Nähe des betroffenen Events hängen! HOTSPOT
Casetta Ristorante“ GENANNT TAXI GESTARTET FAHRT BEGONNEN NACH „Ahrensburg“ GEFAHREN VOR „La Casetta Ristorante“ GESTOPPT FAHRTZIEL ERREICHT TAXIFAHRER PER „EC- Karte“ BEZAHLT Wer legt die Route zum Ziel fest? TAXIFAHRER „bar“ BEZAHLT KEIN TAXI VERFÜGBAR AUS TAXI GESTIEGEN FAHRT BEENDET „La Casetta Ristorante“ BETRETEN AN „reservierten Tisch“ GESETZT „Pizza Scampi“ und „Großes Alster“ BESTELLT SE Wie wird der Tisch reserviert? BIG PICTURE EVENT STORMING
CONTRACT 3 RISIK MANAGER CONTRACT PASSES ON TO 4 CONTRACT VOTES CHECKS CALCULATES 5 6 7 CALCU- LATES TO 8 2 CAR CREDIT RATING INSTALLMENT CAR RESALE VALUE CONTRACT
WISH FOR 1 SALES-PERSON SIGNS TO GIVES FOR CONTRACT 3 RISIK MANAGER CONTRACT PASSES ON TO 4 CONTRACT VOTES CHECKS CALCULATES 5 6 7 CALCU- LATES TO 8 2 CAR CREDIT RATING INSTALLMENT CAR RESALE VALUE CONTRACT SALES RISK MANAGMENT SALES RISK MANAGMENT
Grenzen im Prozess § Abteilungen in der Organisation § Kontextuelle Sprache § Unterschiedlicher Umgang mit den Entities/Aggregates § Unterschiedliche zeitliche Trigger § NICHT: Nach Entities/Aggregaten selbst! WIE SCHNEIDE ICH MEINE DOMÄNE? Foto: Wikipedia/PD-ScottForesman
NEGATIV-BEISPIEL: fachlich vs. technisch vs. organisatorisch CORE MASTER BI VERKAU F FAKTU RA VERSAND ARTIKEL TEAM BESTAND TEAM BI TEAM SALE TEA M LO G ISTIK
den Schnittstellen entstehen „SCHMERZEN“! • fachlich • technisch • organisatorisch BIG BALL OF PAIN CORE MASTER BI VERKAU F FAKTU RA VERSAND ARTIKEL TEAM BESTAND TEAM BI TEAM SALE TEA M LO G ISTIK
POSITIV-BEISPIEL: fachlich vs. technisch vs. organisatorisch TEA M V ERKA U F TEA M FA KTU RA TEAM VERSAND TEAM ARTIKEL- AUSWAHL BOUNDED CONTEXTE! Es bleibt zusammen, was zusammen gehört! • fachlich • technisch • organisatorisch
OF PAIN vs. Aufbau nach DDD CORE MASTER BI VERKAU F FAKTU RA VERSAND ARTIKE L TEAM BESTAND TEAM BI TEAM SALE TEA M LO G ISTIK TEA M V ERKA U F TEA M FA KTU RA TEAM VERSAND TEAM ARTIKEL- AUSWAHL
POINTS OF NO RETURN! TAXI AM „Flughafen HAM“ BESTIEGEN FAHRTZIEL „La Casetta Ristorante“ GENANNT TAXI GESTARTET FAHRT BEGONNEN NACH „Ahrensburg“ GEFAHREN VOR „La Casetta Ristorante“ GESTOPPT FAHRTZIEL ERREICHT TAXIFAHRER PER „EC- Karte“ BEZAHLT AUS TAXI GESTIEGEN FAHRT BEENDET „La Casetta Ristorante“ BETRETEN AN „reservierten Tisch“ GESETZT „Pizza Scampi“ und „Großes Alster“ BESTELLT SE
POINTS OF NO RETURN! TAXI AM „Flughafen HAM“ BESTIEGEN FAHRTZIEL „La Casetta Ristorante“ GENANNT TAXI GESTARTET FAHRT BEGONNEN NACH „Ahrensburg“ GEFAHREN VOR „La Casetta Ristorante“ GESTOPPT FAHRTZIEL ERREICHT TAXIFAHRER PER „EC- Karte“ BEZAHLT ? AUS TAXI GESTIEGEN FAHRT BEENDET „La Casetta Ristorante“ BETRETEN AN „reservierten Tisch“ GESETZT „Pizza Scampi“ und „Großes Alster“ BESTELLT SE
POINTS OF NO RETURN! TAXI AM „Flughafen HAM“ BESTIEGEN FAHRTZIEL „La Casetta Ristorante“ GENANNT TAXI GESTARTET FAHRT BEGONNEN NACH „Ahrensburg“ GEFAHREN VOR „La Casetta Ristorante“ GESTOPPT FAHRTZIEL ERREICHT TAXIFAHRER PER „EC- Karte“ BEZAHLT ? AUS TAXI GESTIEGEN FAHRT BEENDET „La Casetta Ristorante“ BETRETEN AN „reservierten Tisch“ GESETZT „Pizza Scampi“ und „Großes Alster“ BESTELLT SE
POINTS OF NO RETURN! TAXI AM „Flughafen HAM“ BESTIEGEN FAHRTZIEL „La Casetta Ristorante“ GENANNT TAXI GESTARTET FAHRT BEGONNEN NACH „Ahrensburg“ GEFAHREN VOR „La Casetta Ristorante“ GESTOPPT FAHRTZIEL ERREICHT TAXIFAHRER PER „EC- Karte“ BEZAHLT AUS TAXI GESTIEGEN FAHRT BEENDET „La Casetta Ristorante“ BETRETEN AN „reservierten Tisch“ GESETZT „Pizza Scampi“ und „Großes Alster“ BESTELLT SE ?
POINTS OF NO RETURN! M en EN FAHRTZIEL „La Casetta Ristorante“ GENANNT TAXI GESTARTET FAHRT BEGONNEN NACH „Ahrensburg“ GEFAHREN VOR „La Casetta Ristorante“ GESTOPPT FAHRTZIEL ERREICHT TAXIFAHRER PER „EC- Karte“ BEZAHLT AUS TAXI GESTIEGEN FAHRT BEENDET „La Casetta Ristorante“ BETRETEN AN „reservierten Tisch“ GESETZT „Pizza Scampi“ und „Großes Alster“ BESTELLT POINT OF NO RETURN!
SUBDOMÄNEN M en EN FAHRTZIEL „La Casetta Ristorante“ GENANNT TAXI GESTARTET FAHRT BEGONNEN NACH „Ahrensburg“ GEFAHREN VOR „La Casetta Ristorante“ GESTOPPT FAHRTZIEL ERREICHT TAXIFAHRER PER „EC- Karte“ BEZAHLT AUS TAXI GESTIEGEN FAHRT BEENDET „La Casetta Ristorante“ BETRETEN AN „reservierten Tisch“ GESETZT „Pizza Scampi“ und „Großes Alster“ BESTELLT
SUBDOMÄNEN M en EN FAHRTZIEL „La Casetta Ristorante“ GENANNT TAXI GESTARTET FAHRT BEGONNEN NACH „Ahrensburg“ GEFAHREN VOR „La Casetta Ristorante“ GESTOPPT FAHRTZIEL ERREICHT TAXIFAHRER PER „EC- Karte“ BEZAHLT AUS TAXI GESTIEGEN FAHRT BEENDET „La Casetta Ristorante“ BETRETEN AN „reservierten Tisch“ GESETZT „Pizza Scampi“ und „Großes Alster“ BESTELLT BOUNDARY
SUBDOMÄNEN M en EN FAHRTZIEL „La Casetta Ristorante“ GENANNT TAXI GESTARTET FAHRT BEGONNEN NACH „Ahrensburg“ GEFAHREN VOR „La Casetta Ristorante“ GESTOPPT FAHRTZIEL ERREICHT TAXIFAHRER PER „EC- Karte“ BEZAHLT AUS TAXI GESTIEGEN FAHRT BEENDET „La Casetta Ristorante“ BETRETEN AN „reservierten Tisch“ GESETZT „Pizza Scampi“ und „Großes Alster“ BESTELLT BOUNDARY EVENT
SUBDOMÄNEN M en EN FAHRTZIEL „La Casetta Ristorante“ GENANNT TAXI GESTARTET FAHRT BEGONNEN NACH „Ahrensburg“ GEFAHREN VOR „La Casetta Ristorante“ GESTOPPT FAHRTZIEL ERREICHT TAXIFAHRER PER „EC- Karte“ BEZAHLT AUS TAXI GESTIEGEN FAHRT BEENDET „La Casetta Ristorante“ BETRETEN AN „reservierten Tisch“ GESETZT „Pizza Scampi“ und „Großes Alster“ BESTELLT „Auf dem Weg zum Restaurant“ „Im Restaurant“
SUBDOMÄNEN M en EN FAHRTZIEL „La Casetta Ristorante“ GENANNT TAXI GESTARTET FAHRT BEGONNEN NACH „Ahrensburg“ GEFAHREN VOR „La Casetta Ristorante“ GESTOPPT FAHRTZIEL ERREICHT TAXIFAHRER PER „EC- Karte“ BEZAHLT AUS TAXI GESTIEGEN FAHRT BEENDET „La Casetta Ristorante“ BETRETEN AN „reservierten Tisch“ GESETZT „Pizza Scampi“ und „Großes Alster“ BESTELLT „Auf dem Weg zum Restaurant“ „Im Restaurant“
SUBDOMÄNEN ZIEL etta nte“ NNT TAXI GESTARTET FAHRT BEGONNEN NACH „Ahrensburg“ GEFAHREN VOR „La Casetta Ristorante“ GESTOPPT FAHRTZIEL ERREICHT TAXIFAHRER PER „EC- Karte“ BEZAHLT AUS TAXI GESTIEGEN FAHRT BEENDET „La Casetta Ristorante“ BETRETEN AN „reservierten Tisch“ GESETZT „Pizza Scampi“ und „Großes Alster“ BESTELLT „Im Restaurant“ „Auf dem Weg zum Restaurant“
SUBDOMÄNEN ZIEL etta nte“ NNT TAXI GESTARTET FAHRT BEGONNEN NACH „Ahrensburg“ GEFAHREN VOR „La Casetta Ristorante“ GESTOPPT FAHRTZIEL ERREICHT TAXIFAHRER PER „EC- Karte“ BEZAHLT AUS TAXI GESTIEGEN FAHRT BEENDET „La Casetta Ristorante“ BETRETEN AN „reservierten Tisch“ GESETZT „Pizza Scampi“ und „Großes Alster“ BESTELLT „Auf dem Weg zum Restaurant“ „Im Restaurant“ axi buchen“ „Zahlen bitte!“ „Auf dem Weg zum Restaurant“
FAHRTZIEL ERREICHT TAXIFAHRER PER „EC- Karte“ BEZAHLT AUS TAXI GESTIEGEN FAHRT BEENDET „La Casetta Ristorante“ BETRETEN „Im Restaurant“ „Zahlen bitte!“ „Auf dem Weg zum Restaurant“
WISH FOR 1 SALES-PERSON SIGNS TO GIVES FOR CONTRACT 3 RISIK MANAGER CONTRACT PASSES ON TO 4 CONTRACT VOTES CHECKS CALCULATES 5 6 7 CALCU- LATES TO 8 2 CAR CREDIT RATING INSTALLMENT CAR RESALE VALUE CONTRACT SALES RISK MANAGMENT SALES RISK MANAGMENT
context map 2) How is it? 1) Architecture Analysis 2) As-is context map 3) How to move the “is” to the “ideal”? 1) Extract a supporting domain to learn 2) Then extract core(s)
– SCHICHTENARCHITEKTUR § User-Interface-Schicht § Nimmt Eingaben und Benutzerkommandos entgegen und stellt Informationen dar. § Application-Schicht § Beschreibt und koordiniert Geschäftsprozesse. § Domain-Schicht § Repräsentiert die Fachdomäne. § Infrastruktur-Schicht § Bietet technische Dienste, wie beispielsweise Persistenz oder die Kommunikation mit anderen Systemen. User Interface Domain Infrastructure Application
KRITIK User Interface Domain Infrastructure Application TIEFENMESSUNG Domain-Schicht ist an Datenbank-Schicht gebunden èFachlichkeit „tropft“ in Technik èTrennung Fachlichkeit/Technik nicht mehr sauber Alistair Cockburn Foto: Fotograf Dennis Hamilton/Alistair Cockburn/flickr/CC BY 2.0
ZU HEXAGONEN § UI-Schicht und Infrastrukturschicht sind beides Dinge mit denen die Fachlogik (Domäne) mit der Außenwelt kommuniziert § Die Hexagonale Architektur betrachtet UI und Infrastruktur (aus Fachlogiksicht) deshalb gleich § außen/innen statt oben/unten § Ein Hexagon bietet Ports (die Kanten) http://alistair.cockburn.us/Hexagonal+architecture DOMAIN Port Port Port Port Port Port Adapter Adapter Adapter Adapter Adapter Adapter § Auf die Ports werden Adapter gesetzt
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 Value Objects. § Sind praktisch immer persistent. § Auch: Business Objects / Domain Objects à NICHT ZU VERWECHSELN mit dem Begriff "ENTITY" aus dem Entity-Relationship-Modell!
§ Value Objects sind Symbole für Werte eines bestimmten Typs in der Fachdomäne. § Symbolisieren bei Gleichheit denselben Wert. § Sie werden vom Anwender nicht bearbeitet und sind unveränderlich. § Können ggf. (aus anderen Value Objects) berechnet werden. § Können aus anderen Value Objects bestehen, aber nie aus Entities! ValueObject 2,5 ValueObject ValueObject ValueObject ValueObject zwei- einhalb