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 2) 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:
- niet-gekoppelde feitwaarde-toets;
- circulariteit-toets;
- transitieve afhankelijkheid-toets;
- conflicterende conclusie-toets.
Verificatietoets #5: niet-gekoppelde feitwaarde-toets
De niet-gekoppelde feitwaarde-toets controleert of een feitwaarde correct (kan worden) wordt gebruikt in de bovenliggende beslissing, zie figuur 12.
Figuur 12. Situatie waarin de bedrijfslogica ontbreekt
Het verschil tussen de ontbrekende bedrijfslogica-toets en de niet-gekoppelde feitwaarde-toets is als volgt. De laatste toetst niet alleen of er bedrijfslogica ontbreekt maar ook of de resultaten van de bedrijfslogica (de conclusiefeitwaarde) correct kan worden toegepast in bovenliggende beslissing(en), zie figuur 13 en 14.
In figuur 13 worden de beslissingen “C – Beoordeel gewichtsverlies” en “D – Bereken gewichtsverlies” weergeven. Wanneer het resultaat “D – Bereken gewichtsverlies” hoger is dan 16%, dan kan dit resultaat niet correct worden verwerkt door de beslissing “C – Beoordeel gewichtsverlies”. En daarmee is de DRD en de onderliggende bedrijfslogica niet bruikbaar.
Figuur 13. Situatie waarin de feitwaarde niet gekoppeld zijn
Om de DRD en de onderliggende bedrijfslogica werkend te krijgen dient daarom de bedrijfslogica van de beslissing “C – Beoordeel gewichtsverlies” aangepast te worden, zie figuur 14. Het voorbeeld toont een opwaardse toets, maar deze toets kan ook andersom worden toegepast, in een neerwaardse vorm. Met deze vorm is het mogelijk om de koppeling van een waarde van het bovenliggende conclusiefeit op aanwezigheid te toetsen.
Figuur 14. Situatie waarin de feitwaarde wel gekoppeld zijn
Verificatietoets #6: circulariteits-toets
De circulariteits-toets controleert of het conclusiefeit van de bovenliggende beslissing niet gebruikt wordt als een conditiefeit in onderliggende beslissing(en) terwijl het conclusiefeit van de onderliggende beslissing(en) wordt gebruikt als een conditiefeit voor de bovenliggende beslissing, zie figuur 15.
Figuur 15. Circulariteit-toets
Een voorbeeld waar circulariteit plaatsvindt tussen twee beslissingen: “E – Beoordeel vloeibaar voedsel patroon” en “F – Beoordeel vast voedsel patroon”, wordt weergeven in figuur 16. In de beslissing “E – Beoordeel vloeibaar voedsel patroon” wordt gebruik gemaakt van het conclusiefeit “vast voedsel status” van beslissing “F – Beoordeel vast voedsel patroon”. Echter, om het conclusiefeit “vast voedsel status” van de beslissing “F – Beoordeel vast voedsel patroon” te bepalen is het conclusiefeit “vloeibaar voedsel status” van de beslissing “E – Beoordeel vloeibaar voedsel patroon” benodigd. Met als resultaat dat beide beslissingen naar elkaar verwijzen en daarmee onstaat circulairiteit, zie figuur 16. Als circulairiteit ontstaat, is de DRD en de onderliggende bedrijfslogica niet bruikbaar.
Figuur 16. Situatie waarin cirulariteit zich voordoet
Om circulariteit te voorkomen, en de DRD werkend te krijgen, moet er worden gezorgd dat één van beide beslissingen niet langer gebruikt maakt van de andere beslissingen. De situatie waarin dit verholpen is wordt weergegeven in figuur 17.
Figuur 17. Situatie waarin circulariteit verholpen is
Verificatietoets #7: transitieve afhankelijkheid-toets
De transitieve afhankelijkheid-toets controleert of ’hetzelfde conclusiefeit’ tweemaal wordt gebruikt in een set van drie beslissingen die met elkaar verbonden zijn.
Figuur 18. Transitieve afhankelijkheid-toets
Als voorbeeld worden de beslissingen “B – Beoordeel voedsel inname risicopunten”, “C – Beoordeel vast voedsel status” en “D – Beoordeel vloeibaar voedsel status” getoond. Deze zijn, in de context van deze toets, veranderd op basis van de originele beslisboom in Figuur 0 om het voorbeeld eenvoudig te houden. In deze specifieke casus wordt bij beslissing “B – Beoordeel voedsel inname risicopunten” het conclusiefeit “vast voedsel status” van de beslissing “C – Beoordeel vast voedsel status” en het conclusiefeit “vloeibaar voedsel status” van de beslissing “D – Beoordeel vloeibaar voedsel status” gebruikt. Maar het conclusiefeit “vast voedsel status” van de beslissing “C – Beoordeel vast voedsel status” wordt ook gebruikt in de beslissing “D – Beoordeel vloeibaar voedsel status”. Dit zorgt voor een driehoeksverhouding zoals weergeven in figuur 19.
Figuur 19. Situatie waarin transitieve afhankelijkheid aanwezig is
Een driehoeksverhouding zoals weergeven in figuur 19 hoeft niet per se te duiden op een onbruikbare DRD en onderliggende bedrijfslogica. Het is daadwerkelijk mogelijk dat hetzelfde conditiefeit in beide onderliggende beslissingen benodigd is. Echter kan dit soort constructies duiden op een fout in de beslissingslogica en dient daarom te worden geëvalueerd. In de huidige case kan de driehoeksverhouding worden opgelost zoals weergegeven in figuur 20. Waarin de relatie tussen de beslissingen “C – Beoordeel vast voedsel status” en “D – Beoordeel vloeibaar voedsel status” is verwijderd.
Figuur 20. Situatie waarin transitieve afhankelijkheid verholpen is
Verificatietoets #8: conflicterende conclusie-toets
De conflicterende conclusie-toets controleert dat er geen verschilllende waarden van het conclusie-feit mogelijk zijn op basis van dezelfde conditiefeiten. Om dit probleem te demonstreren gebruiken we de beslissing: “G – Beoordeel vloeibaar voedsel patroon” (figuur 21). Te zien is dat beide bedrijfsregels met dezelfde condities (vast voedsel status van de patient en vloeibaar toename van de patient) en dezelfde conditiewaarde (regel 1 hoog en lepel, regel 2 hoog en lepel) komen tot een andere waarde van het conclusiefeit “vloeibaar voedsel status van de patient” komen, namelijk 1 (in regel 1) en 2 (in regel 2). Dit levert een conflicterende conclusie op waardoor een onbruikbare DRD en onderliggende bedrijfslogica worden gecreëerd.
Figuur 21. Conflicterende conclusie-toets
Het conflict in figuur 21 kan worden opgelost door de conditiefeitwaarde van bedrijfsregel 2 aan te passen. In deze specifieke situatie betekent dit het aanpassen van de conditefeitwaarde van lepel naar infuus van het conditiefeit vloeibaar toename van de patient, zie figuur 22.
Figuur 22. Conflicterende conclusie-toets
Dit was deel 2 (deel 1 is hier terug te lezen), in deel 3 van Decision Management – Verificatie Toetsen worden de volgende toetsen behandeld: equivalente bedrijfsregel-toets, ondergeschikte bedrijfsregel-toets en overbodige conditiefeit-toets.
Auteurs:
Mocht u al 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.