# Decision table

﻿
Decision table

Decision tables are a precise yet compact way to model complicated logic.[1]

Decision tables, like flowcharts and if-then-else and switch-case statements, associate conditions with actions to perform, but in many cases do so in a more elegant way.

In the 1960s and 1970s a range of "decision table based" languages such as Filetab were popular for business programming.

## Structure

 Conditions Condition alternatives Actions Action entries

Each decision corresponds to a variable, relation or predicate whose possible values are listed among the condition alternatives. Each action is a procedure or operation to perform, and the entries specify whether (or in what order) the action is to be performed for the set of condition alternatives the entry corresponds to. Many decision tables include in their condition alternatives the don't care symbol, a hyphen. Using don't cares can simplify decision tables, especially when a given condition has little influence on the actions to be performed. In some cases, entire conditions thought to be important initially are found to be irrelevant when none of the conditions influence which actions are performed.

Aside from the basic four quadrant structure, decision tables vary widely in the way the condition alternatives and action entries are represented.[2][3] Some decision tables use simple true/false values to represent the alternatives to a condition (akin to if-then-else), other tables may use numbered alternatives (akin to switch-case), and some tables even use fuzzy logic or probabilistic representations for condition alternatives.[4] In a similar way, action entries can simply represent whether an action is to be performed (check the actions to perform), or in more advanced decision tables, the sequencing of actions to perform (number the actions to perform).

## Example

The limited-entry decision table is the simplest to describe. The condition alternatives are simple Boolean values, and the action entries are check-marks, representing which of the actions in a given column are to be performed.

A technical support company writes a decision table to diagnose printer problems based upon symptoms described to them over the phone from their clients.

The following is a balanced decision table.

 Rules Conditions Printer does not print Y Y Y Y N N N N A red light is flashing Y Y N N Y Y N N Printer is unrecognised Y N Y N Y N Y N Actions Check the power cable X Check the printer-computer cable X X Ensure printer software is installed X X X X Check/replace ink X X X X Check for paper jam X X

Of course, this is just a simple example (and it does not necessarily correspond to the reality of printer troubleshooting), but even so, it demonstrates how decision tables can scale to several conditions with many possibilities.

## Software engineering benefits

Decision tables, especially when coupled with the use of a domain-specific language, allow developers and policy experts to work from the same information, the decision tables themselves.

Tools to render nested if statements from traditional programming languages into decision tables can also be used as a debugging tool[5][6]

Decision tables have proven to be easier to understand and review than code, and have been used extensively and successfully to produce specifications for complex systems.[7]

## Program embedded decision tables

Decision tables can be, and often are, embedded within computer programs and used to 'drive' the logic of the program. A simple example might be a lookup table containing a range of possible input values and a function pointer to the section of code to process that input.

 Input Function Pointer '1' Function 1 (initialize) '2' Function 2 (process 2) '9' Function 9 (terminate)

Multiple conditions can be coded for in similar manner to encapsulate the entire program logic in the form of an 'executable' decision table or control table.

## References

1. ^ "A History of Decision Tables", www.catalyst.com
2. ^ [1]
3. ^ [2]
4. ^ Wets, Geert; Witlox, Frank; Timmermans, Harry; Vanthienen, Jan (1996), "Locational choice modelling using fuzzy decision tables", Biennial Conference of the North American Fuzzy Information Processing Society, Berkeley, CA: IEEE, pp. 80–84
5. ^ "A Real CCIDE Example"
6. ^ Experience With The Cope Decision Table Processor
7. ^ Udo W. Pooch, "Translation of Decision Tables," ACM Computing Surveys, Volume 6, Issue 2 (June 1974) Pages: 125–151 ISSN:0360-0300

• Dwyer, B. and Hutchings, K. (1977) "Flowchart Optimisation in Cope, a Multi-Choice Decision Table" Aust. Comp. J. Vol. 9 No. 3 p. 92 (Sep. 1977).
• Fisher, D.L. (1966) "Data, Documentation and Decision Tables" Comm ACM Vol. 9 No. 1 (Jan. 1966) p. 26–31.
• General Electric Company (1962) GE-225 TABSOL reference manual and GF-224 TABSOL application manual CPB-l47B (June 1962).
• Grindley, C.B.B. (1968) "The Use of Decision Tables within Systematics" Comp. J. Vol. 11 No. 2 p. 128 (Aug. 1968).
• Jackson, M.A. (1975) Principles of Program Design Academic Press
• Myers, H.J. (1972) "Compiling Optimised Code from Decision Tables" IBM J. Res. & Development (Sept. 1972) p. 489–503.
• Pollack, S.L. (1962) "DETAB-X: An improved business-oriented computer language" Rand Corp. Memo RM-3273-PR (August 1962)
• Schumacher, H. and Sevcik, K.C. (1976) "The Synthetic Approach to Decision Table Conversion" Comm. ACM Vol. 19 No. 6 (June 1976) p. 343–351

Wikimedia Foundation. 2010.

### Look at other dictionaries:

• Decision Table —   [engl.], Entscheidungstabelle …   Universal-Lexikon

• decision table — noun a table of all contingencies and the actions to be taken for each • Hypernyms: ↑multidimensional language * * * noun : a table that indicates a course of action to be taken for each value or combination of values of one or more variables or… …   Useful english dictionary

• decision table — sprendinių lentelė statusas T sritis automatika atitikmenys: angl. decision table vok. Entscheidungstabelle, f rus. таблица решений, f pranc. table de décision, f …   Automatikos terminų žodynas

• decision table — sprendimų lentelė statusas T sritis informatika apibrėžtis Lentelė, kurios viename stulpelyje surašytos sąlygos, kitame – sprendimo rezultatai arba veiksmai, kuriuos reikia atlikti, kad būtų gauti rezultatai. Pagal sprendimų lentelę nesunku… …   Enciklopedinis kompiuterijos žodynas

• decision table — A table used to aid decision making. The table shows the problems requiring actions to be considered and estimated probabilities of outcomes. Where probabilities are difficult to estimate, the maximax and maximin criteria are often used, the… …   Accounting dictionary

• decision table — A table used to aid decision making. The table shows the problems requiring actions to be considered and estimated probabilities of outcomes. Where probabilities are difficult to estimate, the maximax and maximin criteria are often used, the… …   Big dictionary of business and management

• Таблица решений (DECISION TABLE)  — Систематическая схема альтернативных подходов к решению проблемы с описанием действий и оценкой результатов каждой альтернативы. Таблица решений может служить одним из инструментов принятия решений …   Словарь терминов по управленческому учету

• table — [ tabl ] n. f. • 1050; var. taule XIIIe (→ tôle); lat. tabula « planche, tablette » I ♦ Objet formé essentiellement d une surface plane horizontale, généralement supportée par un pied, des pieds, sur lequel on peut poser des objets. 1 ♦ Surface… …   Encyclopédie Universelle

• table de décision — sprendinių lentelė statusas T sritis automatika atitikmenys: angl. decision table vok. Entscheidungstabelle, f rus. таблица решений, f pranc. table de décision, f …   Automatikos terminų žodynas

• Decision-making software — (DMS) is a term integrating decision analysis tools to facilitate a person s decision making process, which results in a choice of a course of action or a variant among several alternatives. DMS belongs to the class of decision support systems… …   Wikipedia