Context Mapping
- = Landkarte der Kontexte
- Kontextübersicht skizzieren: Wie hängen die einzelnen Kontexte zusammen? Was sind die Abhängigkeiten?
- Auf Whiteboard oder Papier erstellen zusammen mit dem gesamten Team (Entwickler und Domänenexperten)
- Namen der Kontexte finden!
Anhand der erstellten Map lässt sich erkennen, wie die Teams zusammenarbeiten (müssen).
Tool zum digitalen Erstellen: Context Mapper
Patterns
- Big Ball Of Mud
- In-Beetween Patterns:
- Partnership (P)
- Shared Kernel (SK)
- Modell/Code/DB wird geteilt
- kann nur geändert werden, wenn beide Teams zustimmen
- Published Language (PL)
- Austausch des Modells über eine definierte Spracht (WSDL)
- wird oft zusammen mit dem Open Host Service verwendet
- Separate Ways (SW)
- es bestehen keine Beziehungen zwischen den Kontexten
- in der Übersicht nur markieren, wenn keine Beziehungen bestehen sollen (sonst wird es zu unübersichtlich)
- Upstream Patterns:
- Open Host Service (OHS)
- Definition eines Protokolls, um anderen Systemen den Zugriff zu ermöglichen (REST, Soap)
- Event Publisher (EP)
- Publizierung eines Events (z.B. über Kafka) * wer das Event nutzt, ist nicht bekannt
- Open Host Service (OHS)
- Downstream Patterns:
- Customer/Supplier (CS)
- Downstream kann mitbestimmen, ob eine Änderung gemacht werden soll
- Beispiel: APIs innerhalb einer Firma
- Conformist (CF)
- Downstream kann nicht mitbestimmen und muss auf Änderungen reagieren
- Beispiel: öffentliche APIs wie z.B. von Facebook
- Anticorruption Layer (ACL)
- Tanslationlayer, um die Abhängigkeit zum Upstream Team zu minimieren
- übersetzt das Modell des Upstream Teams in das eigene Modell
- kann beidseitig sein
- Customer/Supplier (CS)
Context Mapper
Tool zum Erstellen von ContextMaps. Es gibt ein Eclipse Plugin.
Möchte man die Map grafisch erstellen lassen, muss GraphViz installiert sein.
- Neues Projekt erstellen oder vorhandenes nutzen
- Configure > Convert to Xtext Project
- *.cml Datei erstellen
- Im Kontextmenü: Context Mapper > Generate Graphical Context Map
- ContextMap wird unter src-gen erstellt
Auflistung der einzelnen Beziehungen ab hier