Foreword
Back in the day, flow charts were all the rage for "defining" program logic. Programs seldom followed flowcharts very closely and were seldom updated so very few people actually used them other than as part of initial design. The most basic problem was that flowcharts are limited in the amount of logic and symbols they can represent. Furthermore, beyond a certain level of complexity, they don't really work. Logic problems can be n dimensional and flow charts are 2 dimensional.
I ran into the flowchart problem on a consulting job for a supplier of lab equipment. It had an inventory of 62,000 items, equipment, supplies, chemicals, whatever. Customers included schools, scientific labs, government agencies of all levels, private industry and probably a few mad scientists and inventors, for all we knew. Some of the inventory had special requirements and regulations, each customer group seemed to have its own special rules, purchasing requirements, and credit limits. Added to that were many special rules and regulations about handling and shipping. Given the almost endless and it was a problem impossible to flowchart.
I had just come across decision tables in a technical publication and decided to try them on defining the problem. It worked and worked well. The problem came when I tried to translate the tables into code. Obviously,the ideal solution was a program that translated the tables into code. There were one or two at the time but they were very expensive, well beyond the project budget. Furthermore, they translated the tables into huge strings of if-then-else logic. I didn't have the budget and I didn't like what they produced so I wrote my own!
But to digress:
Decision table references
There are a lot of sites about decision tables.
http://www.econ.kuleuven.ac.be/prologa/ Goes deeply into automatic building and verifying.
http://www.cems.uwe.ac.uk/jharney/table.html Simplified explanation and examples.
http://nxbre.wiki.sourceforge.net/ Open source project. Business rules engine.
http://en.wikipedia.org/wiki/Decision_table The inevitable wikipedia article with some goodlinks.
All of projects/products seem to make things very complex and yet only give very simple, if not toy, examples.
OpenRules http://www.openrules.com/index.htm is open, ambitious, and operates in the "real" world. There are also some complex examples on the site.
In general, most of the above do very ambitious things and are an extension of ideas from CASE and the latest object (OO) buzz. At this point I am trying to use decision tables in a very simple/limited way using a structure that could be called a state machine.
Top of Page
Comments (0)
You don't have permission to comment on this page.