Een onderwerp wat vaak terugkomt bij discussies over bedrijfsregels management, decision management maar ook bij smart contract management is verificatie. Ook is het een onderwerp waar vaak discussie over ontstaat. Vragen die hierbij aan de orde komen zijn: “Wat is verificatie?”, “Is er een checklist om verificatie uit te voeren?” en “Wat zijn punten waarop beslissingen, bedrijfsregels en smart contracts geverifieerd dienen te worden?”
Om deze laatste vraag te beantwoorden brengen wij een zesdelige serie (dit is deel 4) over verificatietoetsen voor decision requirements diagramen, bedrijfsregels en feittype uit (de onderdelen waar ook een smart contract uit bestaat). In deze reeks miniartikelen worden de verschillende typen verificatietoetsen omschreven. Elke omschrijving bestaat uit de daadwerkelijk toets waarmee een verificatiefout wordt gecontroleerd en één of meerdere voorbeelden. De voorbeelden zijn gebaseerd op een casus uit de medische wereld met betrekking tot het bepalen van het ondervoedingsrisico voor een patient, zie figuur 0.
Figuur 0. Bepaal risico op ondervoeding – lopend voorbeeld om de toetsen te illustreren
In de totaal zes artikelen worden er 24 verificatietoetsen behandeld. Deze 24 verificatie toetsen zijn:
conclusie-toets;
conditie-toets;
ongebruikte beslissings-toets;
ontbrekende bedrijfslogica-toets;
niet-gekoppelde feitwaarde-toets;
circulariteit-toets;
transitieve afhankelijkheid-toets;
conflicterende conclusie-toets.
identieke bedrijfsregel-toets;
equivalente bedrijfsregel-toets;
ondergeschikte bedrijfsregel-toets;
overbodige conditiefeit-toets;
overlappende feitwaarde-toets;
feitwaarde gebaseerde bedrijfsregel reductie-toets;
feitwaardevrije label-toets;
ongebruikte feittype-toets;
feitwaarde notatie overschrijdings-toets;
incomplete feitwaarde-toets;
lexicale-toets;
definitie-toets;
conformiteit met standaard-toets;
declarativiteit-toets;
omissie-toets;
atomaire-toets.
In dit artikel worden de volgende verificatie-toetsen behandeld:
conformiteit met standaard-toets;
declarativiteit-toets;
omissie-toets;
atomaire-toets.
Verificatietoets #21: conformiteit met standaard-toets
Bij de conformiteit met standaard-toets wordt gekeken of de gemaakte beslissing en onderliggende bedrijfslogica zijn opgesteld volgens de normen zoals opgesteld in de gebruikte standaard. Voor de context van het voorbeeld van deze toets, zie figuur 44. In figuur 44 wordt een onderdeel van een DRD getoond waarbij de input data is gekoppeld aan de knowledge source. Volgens de DMN standaard is dit niet mogelijk en dient de input data altijd aan een decision gekoppeld te worden.
Figuur 44. Foutief aangehouden werkwijze
De situatie zoals getoond in figuur 44 levert een onbruikbare DRD en onderliggende bedrijfslogica op. In dit specifieke geval dient de fout te worden opgelost door de input data te koppelen aan het beslissingselement bereken gewichtsverlies, zie figuur 45.
Figuur 45. Correct aangehouden werkwijze
Verificatietoets #22: declarativiteit-toets
De declarativiteit-toets controleert of er beslissingen in een specifieke volgorde dienen te worden uitgevoerd (berekend / beoordeeld). De context van het voorbeeld van deze toets is de gehele decision requirements diagram (DRD), zie figuur 46. In dit voorbeeld wordt het executieverloop weergegeven, aan de hand van de getallen, zoals gedefinieerd door de gebruiker. In het huidige voorbeeld zou eerst beslissing D moeten worden uitgevoerd, waarna beslissing E mag worden uitgevoerd en vervolgens beslissing G kan worden uitgevoerd. Hiermee voldoet de DRD niet aan het declarativiteitseis.
Figuur 46. Beslissingsoverzicht waar geen volgorde wordt aangehouden
Wanneer de getallen met betrekking tot de volgordelijkheid van de executie in figuur 46 er niet toe doen, voldoet de DRD aan de declarativiteitseis. Het maakt in deze context niet uit welke van de beslissingen D, E en G als eerste of laatste uitgevoerd wordt, maar wanneer ze allen uitgevoerd zijn kan beslissing B ook uitgevoerd worden (ervanuitgaande dat beslissing F al genomen is en beslissing C volgend op D ook genomen is).
Verificatietoets #23: omissie-toets
De omissie-toets controleert elk van de vereiste componenten voor de correcte executie van een bedrijfsregel aanwezig zijn. Dit betekent dat de toets onder andere controleert of er (gedeeltelijke) missende operanden, conditie-feiten, conclusie-feiten en feitwaardes zijn. Voor de context van het voorbeeld van deze toets, zie figuur 47. In dit voorbeeld mist het conditiefeit “gewichtsverlies van de patient” in de eerste bedrijfsregel en in de derde bedrijfsregels mist de operand “=>”.
Figuur 47. Ommissie in een regelset
De situatie zoals getoond in figuur 48 levert een onbruikbare DRD en onderliggende bedrijfslogica op. In dit specifieke geval dienen de fouten te worden opgelost door het conditiefeit “gewichtsverlies van de patient” toe te voegen aan bedrijfsregels 1 en de operand “=>” aan bedrijfsregels 3, zie figuur 48.
Figuur 48. Regelset waar de ontbrekende elementen zijn aangevuld
Verificatietoets #24: atomaire-toets
De atomaire-toets controleert of een beslissing maximaal één conclusiefeit afleidt. In andere woorden; de atomaire-toets controleert of een beslissing voldoet aan het single responbility principle. Voor de context van het voorbeeld van deze toets, zie figuur 49. In de beslissing ”beoordeel vloeibaar en vast voedsel patroon” staan twee conclusiefeiten die worden beoordeeld, namelijk “vloeibaar voedsel patroon” en “vast voedsel patroon”. Zie het voorbeeld van het feit “Beoordeel vast en vloeibaar voedselinname”, in figuur 50. Deze beslissing bestaat eigenlijk uit twee feittypes: ‘vloeibaar’ en ‘vast’ voedselinname beoordeling. Dit is niet zijn atomaire staat omdat het uit meerdere feittypes bestaat.
Figuur 49. Beslissing die bestaat uit meerdere feittypes
Om tot zijn atomaire staat te komen moet deze beslissing in tweeën gesplitst worden, zie figuur 50.
Figuur 50. Beslissing in atomaire staat
Dit was deel 6 en tevens laatste deel. (deel 1 is hier terug te lezen, deel 2 is hier terug te lezen, deel 3 is hier terug te lezen, deel 4 is hier terug te lezen, deel 5 is hier terug te lezen)
Auteurs:
Martijn Zoet
Koen Smit
Miranda Lintermans
Ruben Post
Mocht u vragen of interesse hebben, neem dan contact op via: info@martijnzoet.com of bekijk de cursus: “Verificatie van beslissingen en bedrijfsregels”, waarin elk van deze onderdelen wordt behandeld.