450 likes | 463 Views
Learn how Niyum provides tools and services to build decision table-based rules using an open source, cloud-based platform. Discover how to simplify rule complexity and document rules effectively.
E N D
Building Business Capability 2012 • 3nd World Congress on Decision Tables Verifying and Maintaining Complex Policies with Unbalanced Decision Tables
The Speakers Paul Snow Rules Management Chief Architect, SourcePulse BhushanNaniwadekar Director of Application Development , SourcePulse
Context of the Talk • Niyum provides a set of tools and services to build Decision Table based Rules • Cloud based • Workstation support • Niyum is built on DTRules, an Open Source, Pure Java Decision Table based Rules Engine http://SourcePulse.com http://DTRules.com
A Decision Table Conditions Conditions The page_limit == 0 The weeks from the begin_date to the current_date > the day_limit the number of pages_viewed + 1 is greater than the publisher. page_limit The page_number is with chapters_viewed The page_number is within the excluded_chapters Thelimit > 20 The days from the begin_date to the current_date > the day_limit the number of pages_viewed + 1 is greater than the publisher. page_limit The page_number is within the chapters_viewed The page_number is within the y y yyy n nnnnn - - - - - y n n n n n y n n n n - y n n n n - y n n n - - y n n n - - y n n - - - y n n - - - y n - - - - y n y yyyy n nnnnn - - - - - y n n n n n y n n n n - y n n n n - y n n n - - y n n n Condition Table Conditions Set the page_limit= 0; Set the period = the days from the begin date to the current_date; remove the persons from ages viewed + 1 is greater than the publisher.page_limitThe page num is within the chapters_viewedThe page Add 1 to the page count; add expected Children to The Client's dependents; Move the client from the x xxxxxxx x xxxx x xx x xxx x xxxxx x xxx x xxxxxx x xxxx x xx x x x x Action Table Actions
In a Decision Table… N N Y Y N Y Y YY Y Y Y N N * The Customer is over 18 The Customer is over 25 Accident Count > 4 Valuation > 30,000 dollars Driving is Urban Customer is a home owner Otherwise Do not Issue Policy Issue Policy X XXX X
In a Decision Table… These are the rules! N N Y Y N Y Y YY Y Y Y N N * The Customer is over 18 The Customer is over 25 Accident Count > 4 Valuation > 30,000 dollars Driving is Urban Customer is a home owner Otherwise Do not Issue Policy Issue Policy X XXX X
Documenting the Rules in a Decision Table The Customer is over 18 The Customer is over 25 Accident Count > 4 Valuation > 30,000 dollars Driving is Urban Customer is a home owner Otherwise N NY N Y Y YY Y Y Y N N * Do not Issue Policy Issue Policy X XXX X Reject Customers under 19 with four accidents Reject Customers under 19 who primarily drive in Urban Areas Reject under 26, 4 accidents, no home ownership Reject over 25, 4 accidents, high valuation, urban driving, no home ownership Otherwise, Accept the Customer
Simplifying the Complexity of Rules Just using the four quadrants and balanced Decision Tables is not a simple way of representing Rules and Policy • Make the Rules obvious in a Table • Provide Easy ways of Tracking and Documenting what rules are being applied
Niyum Supports Two Types of Unbalanced Decision Tables • FIRST – Resolve by priority. Only execute the first column whose conditions are met. • ALL – Resolve by generosity. Every column whose conditions are met is evaluated.
First: Execute Until a Rule Matches The Customer is over 18 The Customer is over 25 Accident Count > 4 Valuation > 30,000 dollars Driving is Urban Customer is a home owner Otherwise N NY N Y Y YY Y Y Y N N * OR Do not Issue Policy Issue Policy X XXX X Reject Customers under 19 with four accidents Reject Customers under 19 who primarily drive in Urban Areas Reject under 26, > 4 accidents, no home ownership Reject over 25, > 4 accidents, high value , urban, no home ownership Otherwise, Accept the Customer
All: Execute All Rules that Match The Customer is over 18 The Customer is over 25 Accident Count > 4 Valuation > 30,000 dollars Driving is Urban Customer is a home owner Otherwise N NY N Y Y YY Y Y Y N N * OR Do not Issue Policy Issue Policy X XXX X Reject Customers under 19 with four accidents Reject Customers under 19 who primarily drive in Urban Areas Reject under 26, > 4 accidents, no home ownership Reject over 25, > 4 accidents, high value , urban, no home ownership Otherwise, Accept the Customer
Four Patterns of Decision Tables • Control • Exclusion/Inclusion • Independent • Interdependent
Four Patterns of Decision Tables • Control • Exclusion/Inclusion • Independent • Interdependent This is not always so clear with Balanced Decision Tables
Control Tables (Selection) : Order Decision Table Execution Chooses a path through the Decision Tables based on a switch or a Test
Control Tables (Event Handling): Order Decision Table Execution
Exclusion Tables:Define a Set of Exceptions to Disqualify (or Qualify) an Action Just Look for a Reason to say “No!” Could Not Find a Reason to Say “No!”
How to Verify an Exclusion Table • Each column is a rule that excludes a case from the conclusion of the table • But It is critical to look at what is left over • The right tools will balance your table for you • Look to the Balanced Table for what is being accepted
Tools like Niyum Provide a Balanced Table View The Blue Is Where We Issue the Policy The White Where we Reject the Policy. These are Straight from our Table! Review with your Expert!
How about Tracking? • That we are going to exclude an action is not always enough • How do we track all the reasons for not taking an action? • The last thing we want a client to do is expend a great deal of effort to resolve an issue, only to find there is another (and maybe another!) lurking behind!
Exclusion Tables can collect all the Rules that Excluded an Action • The goal is to report every rule excluding or qualifying some action • With Unbalanced Tables, it is straight forward to flip the type to ALL, and add tracking
Independent Decision Tables • A collection of independent rules in a Decision Table • Scorecards • Complex Event handling
With Independent Tables, the Rules are the Rules. Looking at the Balanced Table does little if any good
Interdependent Tables • The Hardest to maintain • Examine the Table. Where are the Patterns? • Can you make the Table into a FIRST table? • Can you make the Table into an ALL table?
Check your Work • The Balanced representation does not Change. • Converting to an Exclusion Table tends to simplify the representation of complexity in the Conditions • Converting to an Independent Table tends to simplify the Representation of Complexity in the Actions
Advantages of Unbalanced Tables • The Business User doesn’t have to learn to Balance Tables • The Business User doesn’t have to read Balanced Tables • Because Columns can be moved easily, Priorities are easy to manage in FIRST tables • Simplifies Independent Rules when present in Decision Tables • Avoids “Scrambling” the actual Business Rules
Advantages of Unbalanced Tables Even when Balanced Tables are Better… Your Tools can simply provide the Balanced Representation.