Beslutningstabel

Beslutningstabeller er et præcist og kompakt værktøj til at modellere mere eller mindre kompliceret logik.

På samme måde som f.eks. hvis-så-ellers (engelsk: if-then-else) kommandoer i et programmeringssprog forbinder beslutningstabeller betingelser med de handlinger, der skal udføres, men til forskel fra sådanne kommandoer kan beslutningstabeller på elegant måde forbinde mange uafhængige betingelser med mange forskellige handlinger.

Struktur

Beslutningstabeller er typisk opdelt i fire kvadranter, som vist nedenfor.


De fire kvadranter
BetingelserAlternative betingelser
HandlingerHandlinger at udføre

Hver betingelse svarer til en variabel, en relation eller et udsagn, hvis mulige værdier listes under de alternative betingelser. Hver handling er en fremgangsmåde eller operation, som skal udføres, og mulighederne angiver, om (eller i hvilken rækkefølge) handlingen skal udføres for det sæt alternative betingelser, den svarer til.

I mange beslutningstabeller benyttes en tankestreg i afsnittet med alternative betingelser til at angive, at en given betingelse er ligegyldig for valg af handling. Det viser sig af og til, at hele betingelser, som man først tror er vigtige, viser sig at være irrelevante ved, at ingen af alternativer peger på handlinger, som skal udføres.

Udover den grundlæggende struktur med fire kvadranter er der stor forskel på, hvordan alternative betingelser og afledte handlinger vises i beslutningstabeller. Nogle tabeller kan bruge simple sand/falsk værdier til at repræsentere alternativerne (svarende til hvis-så-ellers), men andre kan benytte nummererede alternativer og atter andre igen endog fuzzy logic eller sandsynligheder til at specificere de alternative betingelser.

Tilsvarende kan de anførte handlinger være en simpel anførsel af, at den skal udføres (handlingen afmærkes) eller – i mere avancerede tabeller – i hvilken rækkefølge, det skal ske (handlingen nummereres).

Eksempel

Den enkle beslutningstabel, hvor de alternative betingelser er enkle, boolske værdier, og hvor handlingerne udpeges ved afmærkning, er naturligvis også den letteste at beskrive.

Et eksempel kan være, at et firma, som yder teknisk support udarbejder en beslutningstabel som hjælp til at diagnisticere printerproblemer ud fra symptomer, som kunder beskriver for dem over telefonen.


Printer-problemløsning
BetingelserPrinteren udskriver ikkeJJJJNNNN
Der blinker en rød lampeJJNNJJNN
Printeren er ikke genkendtJNJNJNJN
HandlingerKontrollér strømkablet  X     
Kontroller printerkabletX X     
Undersøg om den nødvendige printersoftware er installeretX X X X 
Kontroller/udskift blæk/tonerXX  XX  
Undersøg om der er papirstop X X    

Selv i dette simple eksempel (der ikke nødvendigvis svarer til realiteterne omkring fejlsøgning vedrørende udskrivning) ses det, hvordan beslutningstabeller kan varieres til at dække adskillige betingelser med mange muligheder.

Fordele ved programkonstruktion

Beslutningstabeller gør det enkelt at kontrollere, om der er taget hensyn til alle mulige kombinationer af betingelserne, således som det klart fremgår ovenfor: Alle kombinationer af de tre betingelser er dækket.