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 3) 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:

  • identieke bedrijfsregel-toets;
  • equivalente bedrijfsregel-toets;
  • ondergeschikte bedrijfsregel-toets;
  • overbodige conditiefeit-toets;

Verificatietoets #9: identieke bedrijfsregel-toets

De identieke bedrijfsregel-toets controleert of er binnen de beslissing identieke bedrijfsregels zijn geformuleerd. Als voorbeeld van deze toets, zie beslissing “G – Bereken gewichtsverlies”  (figuur 23). Waarin twee identieke bedrijfsregels zijn geformuleerd.

 

Figuur 23. Regelset met twee identieke bedrijfsregels

 

Het conflict in figuur 23 kan worden opgelost door één van de twee bedrijfsregels te verwijderen, zie figuur 24. Of één van de twee bedrijfsregels aan te passen.

 

Figuur 24. Regelset zonder identieke bedrijfsregels

Verificatietoets #10: equivalente bedrijfsregel-toets

De equivalente bedrijfsregel-toets controleert of er binnen een DRD bedrijfsregels aanwezig zijn die tot dezelfde conclusiefeitwaarde komen maar hiervoor verschillende bedrijfsregels gebruiken. Als voorbeeld van deze toets, zie twee varianten (figuur 25 en figuur 26) van de beslissing “D – Bereken gewichtsverlies”. Om dit te vermijden dient één van twee bedrijfsregels te worden verwijderd.

 

Figuur 25. Variant één op beslissing “D – Bereken gewichtsverlies”

 

In dit voorbeeld heeft het gewichtsverlies van de patiënt geen decimalen. Indien het gewichtsverlies van de patiënt ook een decimaal kan hebben, bijv. 4,1% of 10,9%, dan is geen sprake van equivalentie van de regels, maar van subsumptie. Tussen 5% en 10% valt dan onder >= 4% en <11%, maar is niet equivalent.

 

Figuur 26. Variant twee op beslissing “D – Bereken gewichtsverlies”

Verificatietoets #11: ondergeschikte bedrijfsregel-toets

De ondergeschikte bedrijfsregel-toets controleert of er bedrijfsregels aanwezig zijn die hetzelfde conclusiefeit bepalen op basis van verschillende conditiefeiten. Als voorbeeld van deze toets, zie twee varianten van de beslissingen “D – Bereken gewichtsvlies”, zie figuur 27 en 28. Als deze situatie voorkomt hoeft dit niet per se te resulteren in een onbruikbare DRD en onbruikbare onderliggende bedrijfslogica, maar de bedrijfslogica zelf dient wel gecontroleerd te worden.

 

Figuur 27. Uitgebreidere beslissing

 

Het conflict in figuur 27 en 28 kan op verschillende manieren worden opgelost. In dit specifieke geval dient één van de twee conditiefeiten te worden verwijderd.

 

Figuur 28. Beslissing waarbij de overbodige condities zijn verwijderd.

 

Verificatietoets #12: overbodige conditiefeit-toets

De overbodige conditiefeit-toets controleert of er geen condities aan de beslissing zijn gekoppeld die niet door de onderliggende bedrijfsregels worden gebruikt om het conclusie-feit te bepalen. Een voorbeeld van deze toets is weergegeven met behulp van zie beslissing “D – Bereken gewichtsverlies”, zie figuur 29 en 30.

 

Figuur 29. Beslissing met overbodige conditie

 

In de DRD, in figuur 29, staan twee condities “gewichtsverlies %” en “leeftijd”. In de bedrijfsregels onderliggende aan de beslissing is te zien dat alleen de conditie “gewichtsverlies %”  wordt gebruikt om het conclusiefeit af te leiden.

 

Figuur 30. Beslissing met overbodige conditie

 

Het probleem in figuur 29 kan worden opgelost door het conditiefeit “leeftijd” te verwijderen, zie figuur 31.

Figuur 31. Beslissing zonder overbodige conditie

 

Dit was deel 3 (deel 1 is hier terug te lezen, deel 2 is hier terug te lezen), in deel 4 van Decision Management – Verificatie Toetsen worden de volgende toetsen behandeld: overlappende feitwaarde-toets, feitwaarde gebaseerde bedrijfsregel reductie-toets, feitwaardevrije label-toets en ongebruikte feittype-toets.

Auteurs: 

Martijn Zoet

Koen Smit

Miranda Lintermans

Ruben Post

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.