Context
In de uitvoering van wetgeving door de overheid (als voorbeeld) liggen er specifieke wetten ten grondslag. Deze wetten hebben een bepaalde scope, doelgerichtheid en reikwijdte. Veel uitvoering vindt plaats binnen slechts één wet of wetscontext. Fysieke objecten in de ruimte of ik als persoon ben echter onderwerp welke door meerdere wetten geraakt wordt. Al die wetten hebben wel een samenhang maar zijn niet in samenhang geschreven. Sterker nog, er zijn voldoende voorbeelden dat er ruimte is tussen wetten of dat in de uitvoering bijv. ik als burger door de combinatie van meerdere wetten in een slecht positie terecht kom ... zonder uitgang. De wetten zijn immers niet in samenhang ontworpen, in ieder geval niet tot in alle finesses.
Er zal nooit een volledig in samenhang ontworpen wetgeving en uitvoering zijn of komen. Net zoals er nooit één enkel samenhangend model van de werkelijkheid zal zijn. Dat is simpelweg niet mogelijk. Dan hebben we (dus) andere methodieken en benadering nodig. En dat kan!
We moeten daarom constateren dat bij het ontstaan van data er vaak (altijd?) slechts één wet aan ten grondslag ligt. Je zou kunnen zeggen: één context. Sterker nog, wij deponeren hier de stelling dat het ontstaan van data altijd één context heeft, welke heel duidelijk en expliciet is. Data ontstaat altijd op één plaats, één tijd door één (verantwoordelijke) actor. Dit is de context waarin de data ontstaat.
Tot zover het ontstaan van data uit één context. Over naar het gebruik van data. Daar waar de data gebruikt wordt, is steeds vaker veelzijdig en vanuit heel verschillende perspectieven. Dit duiden we aan met gebruikscontexten. Vanuit de ontstaanscontext zijn er vaak vele gebruikscontexten en elke 'overgang' dient expliciet ontworpen te worden. Hierin wordt verantwoord hoe begrippen en semantiek op elkaar aansluiten (of niet) tussen de contexten en welke transformatie(s) er nodig zijn en toegepast worden.
Data uitwisseling vindt altijd plaats tussen partijen. Er zijn dus altijde meerdere partijen betrokken. Hoe die uitwisseling plaatsvindt, is daarom een afspraak tussen de partijen. Voor een ontstaanscontext is het prettiger als er een beperkt aantal context overgangen gedefinieerd zijn en geleverd worden. Dit is in het belang van de ontstaanscontext eigenaar welke ook wel bronhouder genoemd wordt. Daar ontstaat tenslotte de data. Het is daarom aan de ontstaanscontext eigenaar / bronhouder om te organiseren dat alle gebruikscontexten goed worden voorzien en geoptimaliseerd worden door uniformiteit.
Vandaag de dag zijn we gewend aan één model voor alle contextovergangen. Eén view for all, zullen we maar zeggen. Maar als we elke contextovergang recht willen doen, zullen we specifieke overgangen moeten realiseren in model, semantiek, samenstelling en transformatie. Dat betekent dat de eigenaar van de data in de primaire context betrokken moet worden bij elke overgang naar een andere context.
In het ontwerpen van contexten en contextovergangen is taal en semantiek van groot belang ...
In Domain Driven Design is Bounded Contexts een expliciet begrip. Dit is goede basis om dit hoofdstuk goed te doorgronden.