Condition Table

A '''condition table''' is an analysis tool in information analysis, programming and project management. It is a means to represent decision situations in a clear, unambiguous, and brief manner.

General description

A condition table consists of a matrix with four quadrants:

Conditions Condition alternatives
Actions Action entries

The upper left quadrant lists the conditions. Conditions may be, but need not be mutually exclusive. Conditions should be atomic, that is, conditions may not be compositions of smaller conditions. Thus conditions like 'The amount must be smaller than 50$ and the customer must be male' should be avoided. On the other hand, conditions may be mutually exclusive. For example, conitions like "Customer wants to pay cash", "Customer wants to pay by cheque", and "Customer wants to pay with a credit card" are all valid conditions and may be grouped into one matrix. 

A condition is called closed if te answer is yes or no. Else the condition is calles open.

The upper right quadrant lists the alternatives. The possible values in this quadrant are Yes and No. Typically, if all conditions are closed, there are 2n alternatives where n is the number of conditions. They are traditionally grouped in a pattern as shown below:

Damage < 50 Y Y Y Y N N N N
Insurance < 2 months old Y Y N N Y Y N N
Damage >=50 Y N Y N Y N Y N

Mutually exclusive conditions will lead to colums which can be deleted.

The lower left quadrant lists the possible actions. Possible actions are : "Consult customer record", "Send approval letter", "Send refusal letter". 

The lower right quadrant list the action entries. These are typically denoted by X if the action is appropriate for the combination of conditions in the column listed in the above quadrant.

Example

Damage < 50 Y Y Y Y N N N N
Insurance < 2 months old Y Y N N Y Y N N
Damage >=50 Y N Y N Y N Y N
Send refusal letter X X - - X X - -
Pay damage - - - X - - - -
Ask more info - - - - - - X -

Two of the columns above are impossible. The 3rd and 8th column are  impossible because of mutually exclusive conditions, we should delete them.

A table with one or more actions in every column is called complete. The table above may be made complete by eliminating the imposssible columns.

If conditions become increasingly complex, users sometimes keep things managable by introducing sub-tables: for one or more of the actions a reference is made to another table.

Limitations

Condition tables are a usefull tool in representing decision schemes, but they do have their limitations. In software development, they are a "stand alone" technique, as decision tables are not part of any of the mainstream system design methodologies such as UML. But they are extremely useful in highlighting deficiencies in existing methods. For large tables, checking completeness, redundancy, and consistency requires the support of an automated tool such as Decision Table Designer.