Decision Table Applications
Logic tables are useful during all phases of software development for the simple reason that all phases of software development need correct logic. The only thing that changes is the conceptual level of the conditions and actions given in the tables. The analysis phase will use high level concepts, the design phase will use lower level concepts and the coding phase will have actual computer language code in the table.
Logic tables are easy to read and can convey more information in a smaller space and clearer format than conventional documentation techniques. Logic tables are also easier for both business analysts and users to construct and alter than flowcharts, pseudo-code, narratives and other conventional system analysis techniques. The non-analyst user can be given an empty logic table and be asked to fill it out himself. He can provide information to the business analyst who would normally require intensive interviews and a great deal of time to obtain.
Logic tables can be used to automatically generate source code in any programming language which supports if/then/else or switch/case control constructs. While the time saved by generating code would be worth the effort of learning logic tables, there are other bonuses.
The first bonus is that the code from a perfect logic table will have far fewer bugs and less complexity than a program written by a human programmer. A human being has extreme difficulty in keeping in mind more than six or seven things at the same time. As the number of decisions in a module approaches ten, it is increasingly harder to understand and maintain. This is why most bugs are control flow problems, and not computations.
The second bonus is that LogicGem can optimize the generated code by considering the relative cost and frequency of the whole logic table. The cost of a rule is a number assigned to performing the associated actions of the rule. The cost can be subjective (estimated difficulty on a scale from one to ten) or objective (actual computer time and resource used). For example, "write a letter" would have a lower cost than "write an epic poem" on a subjective scale. The frequency of a rule is how often the rule is expected to be invoked. The frequency can be estimated or actual, and is often expressed as a percentage for convenience. For example, an automobile insurance company might know that 80% of their clients are between the ages of 18 and 25 who have not taken a drivers education course. This frequency information would be used to optimize generated computer source code.
Cost and frequency are independent of each other, and both are independent of the structure of the logic table. LogicGem allows the analyst to change cost and frequency for rules and immediately create completely new optimized source code at the click of a mouse. Furthermore, an option in the generated computer source code will save the frequency information, so that the program can be changed as the environment changes.