Artikel

Constructieprincipes voor de informaticus (13): Maak koppeling zichtbaar

4 min read
juni 17, 2025
Constructieprincipes voor de informaticus (13): Maak koppeling zichtbaar

Ontkoppelen = koppelen!

Koppelingen zijn onvermijdelijk en vaak zelfs gewenst om te kunnen ontkoppelen en complexe systemen op te delen in beheerbare componenten (“minimale koppeling, maximale samenhang”). Maar het moet altijd duidelijk zijn voor degene die een wijziging wil aanbrengen in component 1 wat die wijziging voor gevolgen heeft in de gekoppelde component 2 en verder. Dus er moet inzicht zijn in de aangebrachte koppelingen. Een goed aangebracht ontkoppelpunt zorgt juist voor onafhankelijke componenten die onafhankelijk van elkaar kunnen werken. De interne werking van de component is onzichtbaar voor de gekoppelde buitenwereld en kan worden gewijzigd zonder consequenties voor de omgeving zolang de functie naar buiten hetzelfde blijft. Maar of de wijziging impact heeft op de functie naar buiten moet inzichtelijk zijn. Dat kan door goede documentatie over de koppelingen in een systeem en/of testen en scenarioanalyse.

Onzichtbare koppelingen en modulariteit

In veel informatielandschappen zijn onzichtbare koppelingen aanwezig. Het stelsel van de basisadministraties is er één van. Realiseert iedere houder van een administratie zich de consequenties van het wijzigen van het gegevensmodel (een object, de betekenis, attributen of relaties) bij alle afnemers? De interne samenhang van de gegevens in het stelsel is niet onzichtbaar voor de buitenwereld omdat de verwevenheid zo groot is. Dat vereist minutieuze documentatie over aansluitvoorwaarden en een goed beheerst wijzigingsproces.

Door het veelvuldig toepassen van het modulariteitsprincipe in het applicatielandschap ontstaat tegelijk het vraagstuk van inzicht in de samenhang van het landschap als geheel. De samenhang van de domeinen (CRM, financieel, HRM, transactiesystemen) blijft immers bestaan als je domeinen modulair maakt. Het wijzigen van de CRM module kan impact hebben op de financiële module. De koppelingen moeten dus zichtbaar zijn!

Onzichtbare koppelingen en herleidbaarheid

Vanuit het perspectief van een audit moet het mogelijk zijn om vanuit de uitvoer de invoer op te sporen die tot die uitvoer heeft geleid. Dit is bij veel toepassingen voor het maken van rapportages en analyses ook uitgangspunt. Maar dat vergt veel van de vastlegging van metadata bij de registratie van de brondata en bewerkingen daar op. Met de huidige technieken voor Big- data-analyse en zeker AI-algoritmen wordt dit steeds lastiger. Feitelijk gaat gebruik van AI in tegen het principe van onzichtbare koppelingen vermijden want je hebt te maken met een probabilistisch verwerkingsproces in plaats van een deterministisch proces.

Bouw van code en regressietesten.

Het feit dat bij de bouw van (complexe) code nog steeds regressietesten nodig zijn onderstreept dat alleen documentatie niet voldoende is om onzichtbare koppelingen te vermijden. Testen blijft nodig om ze aan het licht te brengen in complexe systemen. Het blijkt toch steeds weer lastig om echt onafhankelijke componenten te ontwikkelen die blijven voldoen aan de interfacekarakteristiek zoals die was gedocumenteerd naar de buitenwereld. En dus vallen bij een nieuwe release bepaalde functies “om” omdat de impact van een wijziging elders in het landschap onvoldoende zichtbaar was.

Het belang van documentatie en afspraken

Documentatie maakt dingen zichtbaar door ze te beschrijven. Een koppeling moet gedocumenteerd zijn om de werking te weten en de impact van een wijziging in de component te kunnen beoordelen. Wie ooit in de buurt van een stopcontact of waterleiding in de muur heeft geboord weet wat de waarde is van kennis over waar die leidingen lopen. Muur en waterleiding zijn zelfstandige componenten maar ze zijn wel fysiek gekoppeld. Daarom staat bij waterwegen langs de kant een geel bord met de letter K er op. Zodat bij baggeren van het kanaal duidelijk is waar de koppeling met die kabel zich bevindt.

Het kan niet genoeg worden benadrukt; documenteer alle koppelingen en onderhoud deze documentatie!

Daarnaast zijn afspraken nodig over de wijzigbaarheid van de koppeling zelf als die eenmaal is gerealiseerd. Denk aan backward compatability, twee opvolgende versies naast elkaar kunnen draaien en dergelijke.

Conclusie

Als informaticus moet je alle interfaces zichtbaar maken en documenteren omdat je niet kunt voorzien hoe in de toekomst een koppeling kan worden beïnvloed door een nieuwe ontwikkeling. Om bij veranderingen de impact op het systeem als geheel te kunnen bepalen is inzicht in alle koppelingen essentieel.

Lees hier de andere constructieprincipes:

  1. Betekenisloze identiteitsaanduiding
  2. Ontkoppelpunten voor complexiteitsreductie en flexibiliteit, maximale onafhankelijkheid van delen
  3. Consistentie van taal
  4. Duidelijke verantwoordelijkheidsverdeling en functiescheiding voor de administratie
  5. Beslissingsbevoegdheid voor de uitvoering zo laag mogelijk beleggen
  6. Autorisatie loskoppelen van identificatie/authenticatie
  7. Enkelvoudige vastlegging van stamdata
  8. Data en metadata scheiden in opslag en verwerking
  9. Standaardpatronen toepassen zonder afwijkingen
  10. Applicatiefunctie en dataopslag scheiden
  11. Apparaat onafhankelijk ontwikkelen
  12. Kies een opslagstructuur op basis van de eisen
  13. Maak koppeling zichtbaar

Rutger Gooszen
Rutger Gooszen

Principal Architect

Rutger heeft ruim 15 jaar ervaring als Lead Architect/Business Architect in complexe ketens en in coachen van een team van architecten om een keten- of…
Lees meer

Gerelateerde inzichten

Constructieprincipes voor de informaticus (12): Kies een opslagstructuur op basis van de eisen
Artikel
1 jaar ago | 7 min read
Constructieprincipes voor de informaticus (12): Kies een opslagstructuur op basis van de eisen

In deze serie van blogs sta ik stil bij de nog steeds geldige informatiekundige constructieprincipes die garant staan voor betere “informatiebouwwerken”. Deze 12e blog in de reeks vervolgt met het derde informatica principe (zie voor het onderscheid mijn startblog ). Waarom en wanneer kies je voor een relationele structuur (RDB en SQL) en wanneer is linked data (RDF en SPARQL) als opslagstructuur beter? De meeste mensen denken bij gegevens in termen van tabellen om ze te ordenen maar dat zorgt tegelijk voor een bepaald keurslijf als je later iets wil wijzigen in de structuur. Welke tradeoff’s zijn er tussen de mogelijke oplossingen?

Constructieprincipes voor de informaticus: (10) Applicatiefunctie en dataopslag scheiden
Artikel
2 jaar ago | 5 min read
Constructieprincipes voor de informaticus: (10) Applicatiefunctie en dataopslag scheiden

In deze serie van blogs sta ik stil bij de nog steeds geldige informatiekundige constructieprincipes die garant staan voor betere “informatiebouwwerken”. Deze 10e blog in de reeks vervolgt met het eerste informatica principe (zie voor het onderscheid mijn startblog ). Deze gaat over de constructie van de dataverwerking. We staan er niet bij stil maar elk scherm waar we informatie op verwerken verbergt een achterliggende constructie die data uit een opslag haalt en de mogelijkheid geeft deze data te raadplegen of te wijzigen of nieuwe data toe te voegen. Als de verwerkingsfunctie en de dataopslag zijn gescheiden heeft dat grote voordelen. Feitelijk is dit het informatiekundige principe van ontkoppelen maar dan toegepast in de informatica.

Constructieprincipes voor de informaticus: (11) Apparaat onafhankelijk ontwikkelen
Artikel
1 jaar ago | 5 min read
Constructieprincipes voor de informaticus: (11) Apparaat onafhankelijk ontwikkelen

In deze serie van blogs sta ik stil bij de nog steeds geldige informatiekundige constructieprincipes die garant staan voor betere “informatiebouwwerken”. Deze 11 e blog in de reeks vervolgt met het tweede informatica principe (zie voor het onderscheid mijn startblog ). Waarom en wanneer apparaat onafhankelijk ontwikkelen? Het staat altijd zo mooi in de architectuurprincipes op bedrijfsniveau of in een beleidsdocument “Onze medewerkers kunnen tijd- plaats- en apparaat-onafhankelijk werken”. Maar de impact van de wens om apparaat onafhankelijk te kunnen werken op de inrichting van het IT-landschap en de te ontwikkelen software is niet gering.

Constructieprincipes voor de informatiekundige (9): Standaardpatronen toepassen zonder afwijkingen
Artikel
2 jaar ago | 5 min read
Constructieprincipes voor de informatiekundige (9): Standaardpatronen toepassen zonder afwijkingen

In deze serie van blogs sta ik stil bij de nog steeds geldige informatiekundige constructieprincipes die garant staan voor betere “informatiebouwwerken”. Deze laatste blog in de reeks over informatiekundige principes is eigenlijk ook een brug naar het vervolg van deze reeks met enkele informatica principes (zie voor het onderscheid mijn startblog ). Standaardpatronen bestaan namelijk zowel in de informatiekunde als in de informatica. Het elegante van een standaardpatroon is… dat het een standaard is. Maar in de praktijk blijkt er telkens een reden om een beetje af te wijken. Met als gevolg een gebruiker die de gebruikersinterface niet meer begrijpt of een niet langer interoperabel concept, lagere onderhoudbaarheid van een systeem en tijdverlies.

Constructieprincipes voor de informatiekundige: (6) Aantonen “wie je bent” loskoppelen van “wat je mag”
Artikel
2 jaar ago | 6 min read
Constructieprincipes voor de informatiekundige: (6) Aantonen “wie je bent” loskoppelen van “wat je mag”

In deze serie van blogs sta ik stil bij de nog steeds geldige informatiekundige constructieprincipes die garant staan voor betere “informatiebouwwerken”. Ze zijn soms, in de vaart van de voortschrijdende technologie, een beetje vergeten. Met als gevolg soms wankele of slecht onderhoudbare en uitbreidbare “informatiebouwwerken”. Deze keer over de noodzaak van het ontkoppelen van identificatie/authenticatie (wie je bent) en autorisatie (wat je mag). Hoeveel inlogcombinaties heb jij in gebruik? Waarschijnlijk meer dan 30. Nog dagelijks stoeien we met inlognamen en wachtwoorden voor al die dienstverleners die we online bezoeken. In theorie is de oplossing simpel maar in de praktijk gaat het nog steeds moeizaam.

Constructieprincipes voor de informatiekundige: (8) Data en metadata scheiden in opslag en verwerking
Artikel
2 jaar ago | 6 min read
Constructieprincipes voor de informatiekundige: (8) Data en metadata scheiden in opslag en verwerking

Data is hot. Iedereen wil datagedreven werken en AI werkt alleen op grote hoeveelheden data. Kortom, data is het nieuwe goud! Maar wat is data precies? In de vorige blog heb ik aangegeven dat er verschillende categorieën data zijn en die ging specifiek over de omgang met stamdata en transactiedata. In deze blog sta ik stil bij metadata en de noodzaak om dat te onderscheiden van de data zelf en gescheiden te verwerken. Anders ontstaat een spaghetti in het systeemlandschap en wordt zoeken naar specifieke data de spreekwoordelijke speld in de hooiberg.