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.
Betingelser | Alternative betingelser |
Handlinger | Handlinger 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.
Betingelser | Printeren udskriver ikke | J | J | J | J | N | N | N | N |
Der blinker en rød lampe | J | J | N | N | J | J | N | N | |
Printeren er ikke genkendt | J | N | J | N | J | N | J | N | |
Handlinger | Kontrollér strømkablet | X | |||||||
Kontroller printerkablet | X | X | |||||||
Undersøg om den nødvendige printersoftware er installeret | X | X | X | X | |||||
Kontroller/udskift blæk/toner | X | X | X | X | |||||
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.