Professional Documents
Culture Documents
Cathy Dew & Leo Fernig Kuali Days :: Chicago May 13-14, 2008
Agenda
1. Harvesting and Structuring Rules (Cathy)
Industry Best Thinking and Practices Kuali Student Analysis
RESEARCH
Theory Concepts Best Practices
DATA COLLECTION
Partner Institutions Focus on Learning Unit
Service Definitions Actors & Scenarios Entity Diagrams & Message Structures
Essential Reading
Business Rules and Information Systems: Aligning IT with Business Goal -- Tony Morgan
The Business Rule Book: Classifying, Defining and Modeling Rules -- Ronald G. Ross
Business Rules Management and Service Oriented Architecture: A Pattern Language -- Ian Graham Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML -- Jim Arlow and Ila Neustadt Principles of the Business Rules Approach -- Ronald G. Ross Smart (Enough) Systems -- James Taylor and Neil Raden What Not How: The Business Rules Approach to Application Development -- C. J. Date Business Rules Applied: Building Better Systems Using the Business Rules Approach -- Barbara von Halle
Everyone Agrees
A business rule should define what should be the case It should not prescribe ::
Who invokes the rule (use case) When the rule is executed (business event or process description) Where the rule executes (design) How the rule is to be implemented (design)
Rulespeak Terminology
Establish the anchor of the rule
The thing being constrained Rule must have one and only one anchor
Discovering Rules
Collecting Examples
Transfer Articulation
Degree Composition Grades, GPA, etc. Enrollment Transfer Credit Articulation
Kuali Days :: Chicago May 13-14 9
10
11
12
13
14
15
Workflow
Business Rules that are managed in the BRMS can be moved through workflow processes for various levels of approval, just like any other object.
17
Metadata is used to produce the users palette to create and edit rules
Data Warehouse
Rules are created, saved and updated through the user interface
18
Phase 1
Business Service Business Service Business Service
Drools
Executable Rules Rule Execution Engine Rules
BRMS
Rules Metadata
Data Warehouse
19
Phase 2
Business Service Business Service Business Service
1) 2)
Drools
Executable Rules Rule Execution Engine Rules
BRMS
Rules Metadata
Data Warehouse
20
Phase 3
Business Service Business Service Business Service
Drools
Executable Rules Rule Execution Engine Rules
BRMS
Rules Metadata
Data Warehouse
21
Phase 4
Business Service Business Service Business Service
Drools
Executable Rules Rule Execution Engine Rules
BRMS
Rules Metadata
Data Warehouse
22
A Business Rule
A rule consists of a condition and action(s)
When proposition 1 proposition 2 Then action 1 and
Condition
Action
23
A Business Rule
Example rule:
Total credits > grade point average > 30 3.5 and
Boolean Operator Right Hand Side Comparison Operator Left Hand Side
Proposition
24
25
How do we get rules into the system? The Rules User Interface There are 3 stereotypical ways of presenting rules:
1. A decision table
2. A flowchart 3. A procedural rule (ifthen)
26
Visa status
Canadian Student visa, Visitor Canadian Student visa, Visitor
This is not a look-up table. Not only can you change data but you can change the structure of the table without any programming changes. For example, two new columns can be added with no changes to the code:
Program
Arts Arts Arts Arts Science, Applied Science Science, Applied Science
Min credits
0 0 15 15 0 0
Max credits
15 15 30 30 30 30
Visa status
Canadian Student visa, Visitor Canadian Student visa, Visitor Canadian Student visa, Visitor
27
No
Yes
Apply Evaluation Rule
No
Yes
28
CHEM120, CHEM130
>12 CHEM 230
AND OR AND
Average
>80%
29
30
31
Drools
Executable Rules Rule Execution Engine Rules
BRMS
Rules Metadata
Data Warehouse
32
Output
Anchor
Business Rule
Fact
34
Type
Output
course enrolled/ Student enrollment reqs (student, admitted, no registered Enrolls in holds) Course academic reqts (min GPA, good standing) course reqts (pre/co/anti-reqs, w/grade) program reqts (GPA, major match) financial reqts (enr fees paid, lui fees paid) course planned Student Plans Course course reqts (pre/co/anti-reqs, w/grade) program reqts (GPA, major match)
35
OK / Not OK
2. Agenda :: Student Enrolls in MATH 301 3. Output :: OK / Not OK 4. Business Rule :: Student has met pre-reqs of
MATH 301
Harvested a bunch of rules Developed a strategy for collecting and classifying rules Agreed on terminology and a business rule entity model Completed a Proof of Concept for a representative prerequisite rule Built the Core BRMS Defined and stored a business rule Translated it to a Drools Executed the rule from our Enrollment business service
37
Who is responsible for getting the facts needed to execute the rule
Without violating SOA (who knows what) Without requiring BRMS to know about domains
38
Thank You
39