Decision Tables * Example scenario: “A marketing company wishes to construct a decision table to decide how to treat clients according to three characteristics: Gender, City Dweller, and age group: A (under 30), B (between 30 and 60), C (over 60). The company has four products (W, X, Y and Z) to test market. Product W will appeal to female city dwellers. Product X will appeal to young females. Product Y will appeal to Male middle aged shoppers who do not live in cities. Product Z will appeal to all but older females.” Decision tables are used to model complicated programming logic. They can make it easy to see that all possible combinations of conditions have been considered; when conditions are missed, it is easy to see this. The tables are composed of 4 parts: conditions, actions, condition alternatives (each column is a rule), and actions for the rules. The process used to create a decision table is the following: 1. Identify conditions and their alternative values. There are 3 conditions: gender, city dweller, and age group. Put these into table as 3 rows in upper left side. Gender’s alternative values are: F and M. City dweller’s alternative values are: Y and N Age group’s alternative values are: A, B, and C 2. Compute max. number of rules. Determine the product of number of alternative values for each condition. 2 x 2 x 3 = 12. Fill table on upper right side with one column for each unique combination of these alternative values. Label each column using increasing numbers 1-12 corresponding to the 12 rules. For example, the first column (rule 1) corresponds to F, Y, and A. Rule 2 corresponds to M, Y, and A. Rule 3 corresponds to F, N, and A. Rule 4 corresponds to M, N, and A. Rule 5 corresponds to F, Y, and B. Rule 6 corresponds to M, Y, and B and so on. 3. Identify possible actions Market product W, X, Y, or Z. Put these into table as 4 rows in lower left side. 4. Define each of the actions to take given each rule. For example, for rule 1 where it is F, Y, and A; we see from the above example scenario that products W, X, and Z will appeal. Therefore, we put an ‘X’ into the table’s intersection of column 1 and the rows that correspond to the actions: market product W, market product X, and market product Z. 1 2 3 4 5 6 7 8 9 10 11 12 Gender F M F M F M F M F M F M City Y Y N N Y Y N N Y Y N N Age A A A A B B B B C C C C MarketW X MarketX X X X X MarketY MarketZ X X X X X X X X X X X 5. Verify that the actions given to each rule are correct. 6. Simplify the table. Determine if there are rules (columns) that represent impossible situations. If so, remove those columns. There are no impossible situations in this example. Determine if there are rules (columns) that have the same actions. If so, determine if these are rules that are identical except for one condition and for that one condition, all possible values of this condition are present in the rules in these columns. In the example scenario, columns 2, 4, 6, 7, 10, and 12 have the same action. Of these columns: 2, 6, and 10 are identical except for one condition: age group. The gender is M and they are city dwellers. The age group is A for rule 2, B for rule 6, and C for rule 10. Therefore, all possible values of condition ‘age group’ are present. For rules 2, 6, and 10; the age group is a “don’t care”. These 3 columns can be collapsed into one column and a hyphen is put into the age group location to signify that we don’t care what the value of the age group is, we will treat all male city dwellers the same: market product Z. 1 2 3 4 5 6 7 8 9 10 Gender F M F M F M F M F M City Y Y N N Y N N Y N N Age A A A B B B C C C MarketW X MarketX X X X X MarketY MarketZ X X X X X X X X * Example and material taken from www.saintmarys.edu/~psmith/417lab3b.html X Decision Table - Example Save Supermarket has a policy for cashing customers checks. If the check is a personal check for $75.00 or less the check can be cashed. If the check is the customers pay check, it can be cashed for over $75.00 providing it is a company accredited by the supermarket. Step 1 - Name the conditions and the values for each condition Type of check - personal (PE), payroll (PA) Amount of check - equal to or less than $75.00 (=<$75), greater than $75.00 (>$75) Accredited company - Yes (Y), No (N) Step 2 - name all possible actions Cash the check Don't cash the check Step 3 - list all possible rules 2 x 2 x 2 = 8 rules Rules Conditions Type of check Amount of check Accredited Company 1 2 3 4 5 6 7 8 PE PE PE PE PA PA PA PA =<$75 =<$75 >$75 >$75 =<$75 =<$75 >$75 >$75 Y N Y N Y N Y N Step 4 - Define the Actions for each rule Rules Conditions Type of check Amount of check 1 2 3 4 5 6 7 8 PE PE PE PE PA PA PA PA =<$75 =<$75 >$75 >$75 =<$75 =<$75 >$75 >$75 Accredited Company Y N Y N Y N Y N Actions Cash the check X X - - X - X - Don't cash the check - - X X - X - X Step 5 - Simplify the Decision Table Rules Conditions Type of check Amount of check 1 2 3 4 5 6 7 8 PE PE PE PE PA PA PA PA - - - - =<$75 =<$75 >$75 >$75 Accredited Company - - - - Y N Y N Actions Cash the check X X - - X - X - Don't cash the check - - X X - X - X Remove indifferent conditions. Combine rules 1 and 2, 3 and 4, 5 and 7, and 6 and 8 Simplified Decision Table Rules Conditions Type of check 1 2 3 4 PE PE PA PA Amount of check =<$75 >$75 - - Accredited Company - - Y N Cash the check X - X - Don't cash the check - X - X Actions (adapted from Whitten JL, Bentley LD and Dittman KC, 2001, Systems Analysis and Design Methods 5th Edn, McGraw-Hill, New York) Additional Scenario Following the steps outlined above create a Decision Table for the following scenario. The local video store is planning a promotional giveaway for it�s long-standing customers. If the customer has been a member for 12 months or more they will receive a coupon booklet allowing them to hire 5 movies for free. If during that same 12 months they have hired at least 10 videos, they will receive an additional 5 free movie hire vouchers. If the customer�s membership is less than 12 months and they have hired at least 10 videos then they will receive 3 free movie hire vouchers. All members will receive a Thank You letter. Decision Tables A decision table is a table composed of rows and columns, separated into four separate quadrants. Conditions Condition Alternatives Actions Action Entries The upper left quadrant contains the conditions. The upper right quadrant contains the condition rules ofr alternatives. The lower left quadrant contains the actions to be taken and the lower right quadrant contains the action rules. Developing Decision Tables In order to build decision tables, you need to determine the maximum size of the table, eliminate any impossible situations, inconsistencies, or redundancies, and simplify the table as much as possible. The following steps provide offer some guidelines to developing decision tables: 1. Determine the number of conditions that may affect the decision. Combine rows that overlap, for example, conditions that are mutually exclusive. The number of conditions becomes the number of rows in the top half of the decision table. 2. Determine the number of possible actions that can be taken. This becomes the number of rows in the lower half of the decision table. 3. Determine the number of condition alternatives for each condition. In the simplest form of decision table, there would be two alternatives (Y or N) for each condition. In an extended-entry table, there may be many alternatives for each condition. 4. Calculate the maximum number of columns in the decision table by multiplying the number of alternatives for each condition. If there were four conditions and two alternatives (Y or N) for each of the conditions, there would be sixteen possibilities as follows: Condition 1: x 2 alternatives Condition 2: x 2 alternatives Condition 3: x 2 alternatives Condition 4: x 2 alternatives 16 possibilities 5. Fill in the condition alternatives. Start with the first condition and divide the number of columns by the number of alternatives for that condition. In the foregoing example, there are sixteen columns and two alternatives (Y and N), so sixteen divided by two is eight. Then choose one of the alternatives and write Y in all of the eight columns. Finish by writing N in the remaining eight columns as follows: Condition 1 YYYYYYYYNNNNNNNN Repeat this for each condition using a subset of the table: Y Y Y Y Y Y Y Y Y Y Y Y N N N N Y Y N N Y N N N N N N N N N and continue the pattern for each condition: Condition 1 Y Y Y Y Y Y Y Y N N N N N N N N Condition 2 Y Y Y Y N N N N Y Y Y Y N N N N Condition 3 Y Y N N Y Y N N Y Y N N Y Y N N Condition 4 Y N Y N Y N Y N Y N Y N Y N Y N 6.Complete the table by inserting an X where rules suggest certain actions. 7.Combine rules where it is apparent that an alternative does not make a difference in the outcome; for example: Condition 1 Y Y Condition 2 Y N Action 1 XX can be expressed as: Condition 1 Y Condition 2 -Action 1 X The dash (-) signifies that condition 2 can be either Y or N and action will still be taken. 8.Check the table for any impossible situations, contradictions, redundancies. 9. Rearrange the conditions and actions (or even rules) to make the decision table more understandable. An Example A store wishes to program a decision on non-cash receipts for goods into their intelligent tills. The conditions to check are agreed as: 1. Transaction under £50 2. Pays by check with check card (guarantee £50) 3. Pays by credit card The possible actions that a cashier could take are agreed as: 1. Ring up sale 2. Check credit card from local database 3. Call a supervisor 4. Automatic check of credit card company database Using the rules above construct a decision table showing all possible combinations of alternatives. The condition rules are yes or no, therefore the number of possible condition rules are 2 alternatives for condition 1 x 2 alternatives for condition 2 x 2 alternatives for condition 3 or 2 3 =8 Under £50 Y Y Y Y N N N N Pays by check Y Y N N Y Y N N Pays by credit card Y N Y N Y N Y N Ring up sale Check from local database Call Supervisor Check credit card database We can see that some of the condition rules are invalid, the customer cannot pay by check AND pay by credit card or not pay by either method. We have decided that these combinations are mutually exclusive. This decision table can be reduced to 4 condition rules. Under £50 Y Y N N Pays by check Y N Y N Pays by credit card N Y N Y Under £50 Y Y N N Pays by check Y N Y N Ring up sale Check from local database Call Supervisor Check credit card database Indicate the actions. Pays by credit card N Ring up sale X Y Check from local database N Y X Call Supervisor X Check credit card database X Check for completeness. What if the customer has not shopped their before? Missing some as obvious as this means reconstructing the table! The conditions are now: 1. Transaction under £50 2. Pays by check with check card (guarantee £50) 3. Pays by credit card 4. Unknown customer The actions remain the same but the number of condition rules increases by a multiple of 2. Under £50 Y Y Y Y N N N N Pays by check Y Y N N Y Y N N Pays by credit card N N Y Y N N Y Y Unknown customer Y N Y N Y N Y N Ring up sale Check from local database Call Supervisor Check credit card database The dash in the Pays by credit row indicates that it does not matter about the condition rule since if a customer pays by check they will not pay by credit card and vice versa ( mutually exclusive ). Under £50 - Y - Y - N - N Pays by check Y Y N N Y Y N N Pays by credit card - - - - - - - - Unknown customer Y N Y N Y N Y N X X X X Ring up sale X Check from local database Call Supervisor X X Check credit card database X Look for redundancies, contradictions and impossible situations. Under £50 - Y - Y - N - N Pays by check Y Y N N Y Y N N Pays by credit card - - - - - - - - Unknown customer Y N Y N Y N Y N X X X X Ring up sale X Check from local database Call Supervisor Check credit card database X X X The red and cyan columns are repeats and one is therefore redundant. Under £50 - Y - Y N N Pays by check Y Y N N Y N Pays by credit card - - - - - - Unknown customer Y N Y N N N Ring up sale X Check from local database Call Supervisor X X X Check credit card database X X Some condition rules can be combined by examing the action stub for identical actions and the pay by credit row in the condition stub can be removed since it can create an impossible situation. Under £50 - Y - Y N N Pays by check Y Y N N Y N Pays by credit card - - - - - - Unknown customer Y N Y N N N Ring up sale X Check from local database Call Supervisor Check credit card database Final version of the decision table. X X X X X Under £50 Y Y N N Pays by check Y N Y N Unknown customer N N - - Ring up sale X Check from local database Call Supervisor Check credit card database X X X