Decision Tables

Consider the following programming task:

Your program contains two variables, A and B. Each variable can
have a value of 0 to 4. Each combination of values of A and B will
require that a different operation must be performed. There are eight
possible operations. For instance, if A and B both equal zero, Module 1
is executed, if A equals 0 and B equals 1, Module 2 is executed, etc.
Which Module is required to be executed can not be determined mathematically
because each choice is completely arbitrary.

A second requirement is that every two or three weeks, changes in
which modules will be called must be made.

How would you program something like this? There are twenty-five
combinations, each one pointing to one of eight modules. Can you
imagine what your code would look like if you tried to use IF statements
to do this job?.

To simplify your project, you can design a decision table as shown
below dimensioned as AB_TABLE(5,5).

Contents of the Variable AB_TABLE(5,5)

For each value of A and B, the computer looks at the table to
select the proper module to go to. A single CASE statement can then
be used to route control to the proper module. If the choice of
module depends on more than just two variables, additional tables
could be linked together.

If the values to be tested are larger, a table like this can still
be used. Simply multiply by and/or add a correction factor to each
variable to give it a value that is within the range of the table.
These corrected values would be used to reference the table.

This kind of a system is good because the logic of the program
is easy to keep track of and is easily changed. In fact, the program
can be designed so that a user can change the contents of the table,
and therefore reprogram the application, while it is running.

Decision tables were first used in programming in the late fifties.
The web site for the Logitech Company
provides a historic overview of decision tables and the software used to create them.
Two different commercial programs for generating the code for decision tables are available
for download there for a low price