HOME

TheInfoList



OR:

Decision tables are a concise visual representation for specifying which actions to perform depending on given conditions. They are algorithms whose output is a set of actions. The information expressed in decision tables could also be represented as
decision tree A decision tree is a decision support tool that uses a tree-like model of decisions and their possible consequences, including chance event outcomes, resource costs, and utility. It is one way to display an algorithm that only contains condit ...
s or in a programming language as a series of if-then-else and
switch-case In computer programming languages, a switch statement is a type of selection control mechanism used to allow the value of a variable or expression to change the control flow of program execution via search and map. Switch statements function som ...
statements.


Overview

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. To make them more concise, many decision tables include in their condition alternatives a don't care symbol. This can be a hyphen or blank, although using a blank is discouraged as it may merely indicate that the decision table has not been finished. One of the uses of decision tables is to reveal conditions under which certain input factors are irrelevant on the actions to be taken, allowing these input tests to be skipped and thereby streamlining decision-making procedures. Aside from the basic four quadrant structure, decision tables vary widely in the way the condition alternatives and action entries are represented. Some decision tables use simple true/false values to represent the alternatives to a condition (similar to if-then-else), other tables may use numbered alternatives (similar to switch-case), and some tables even use fuzzy logic or probabilistic representations for condition alternatives. 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). A decision table is considered ''balanced'' or ''complete'' if it includes every possible combination of input variables. In other words, balanced decision tables prescribe an action in every situation where the input variables are provided.


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. 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 A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging f ...
, 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. 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.


History

In the 1960s and 1970s a range of "decision table based" languages such as
Filetab Filetab is a decision table-based computer programming language widely used in business in the 1960s and 1970s. History Filetab has a long history, originally designed in the late 1960s and descended from the DETAB programming. Filetab was devel ...
were popular for business programming.


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 In computer science, a lookup table (LUT) is an array that replaces runtime computation with a simpler array indexing operation. The process is termed as "direct addressing" and LUTs differ from hash tables in a way that, to retrieve a value v wi ...
containing a range of possible input values and a function pointer to the section of code to process that input.


Control tables

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. There may be several such tables in practice, operating at different levels and often linked to each other (either by pointers or an index value).


Implementations

*
Filetab Filetab is a decision table-based computer programming language widely used in business in the 1960s and 1970s. History Filetab has a long history, originally designed in the late 1960s and descended from the DETAB programming. Filetab was devel ...
, originally from the
NCC NCC may refer to: Biology *Neural correlates of consciousness, neuronal events and mechanisms relating to perception phenomena *Sodium-chloride symporter, abbreviated as NCC Companies *National Certification Corporation, a nursing specialty cer ...
* DETAB/65, 1965, ACM * FORTAB from Rand in 1962, designed to be imbedded in FORTRAN * A Ruby implementation exists using MapReduce to find the correct actions based on specific input values.Alexander Williams (2015)
"Ruby decision table parser"
/ref>


See also

*
Decision tree A decision tree is a decision support tool that uses a tree-like model of decisions and their possible consequences, including chance event outcomes, resource costs, and utility. It is one way to display an algorithm that only contains condit ...
s *
Case based reasoning In artificial intelligence and philosophy, case-based reasoning (CBR), broadly construed, is the process of solving new problems based on the solutions of similar past problems. In everyday life, an auto mechanic who fixes an engine by recalli ...
*
Cause–effect graph A causal map can be defined as a network consisting of links or arcs between nodes or factors, such that a link between C and E means, in some sense, that someone believes or claims C has or had some causal influence on E. This definition could ...
* Dominance-based rough set approach *
DRAKON DRAKON is a free and open source algorithmic visual programming and modeling language developed within the Buran space project following ergonomic design principles. The language provides a uniform way to represent flowcharts of any com ...
*
Karnaugh-Veitch diagram The Karnaugh map (KM or K-map) is a method of simplifying Boolean algebra expressions. Maurice Karnaugh introduced it in 1953 as a refinement of Edward W. Veitch's 1952 Veitch chart, which was a rediscovery of Allan Marquand's 1881 ''logica ...
* Many-valued logic *
Semantic decision table A semantic decision table uses modern ontology engineering technologies to enhance traditional a decision table. The term "semantic decision table" was coined by Yan Tang and Prof. Robert Meersman from VUB STARLab (Free University of Brussels) in 20 ...
* Decision Model and Notation


References

{{reflist


Further reading

* 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 * CSA, (1970): Z243.1–1970 for Decision Tables, Canadian Standards Association * Jorgensen, Paul C. (2009) Modeling Software Behavior: A Craftsman's Approach. Auerbach Publications, CRC Press. Chapter 5.


External links


RapidGen Software
For Windows, Unix, Linux and OpenVMS versions of decision table based programming tools and compilers
LogicGem Software
For Windows decision table processor for perfecting logic and business rules

A Decision Table Example Software testing Decision analysis