Task: Analyze Business Rules
Analyze business rules for implementation in a rules engine.
Disciplines: Rule Analysis
Relationships
Main Description

As each service is modeled, the rules associated with the associated task(s) within the business process should be further analyzed. The goal of this activity is to prepare the rules for implementation (authoring).

There is one Business Rule list for each package at the end of this task.

It may not be possible to complete a rule package in one iteration, but the analysis activity should address the questions of completeness and prepare for the future iterations.

An example:

Assume we have a domain model with an Account object with balance, replenishmentThreshold, replenishmentAmount, and replenishmentMeans as attributes along with a Replenishment object.

If
  Account balance less than Account replenishmentThreshold

Then
  Create new Replenishment with Account replenishmentAmount and Account replenishmentMeans

Steps
For each candidate service, examine each business rule from Identify Business Rules.
Re-organize the Business Rule List to reflect any merging of tasks into candidate services that may have occurred during service analysis.
The rules were originally organized by task in the initial BPMN model. The final organization should be reflected in the specification of the rule packages. I.e. each candidate service would map to a different package.
Transform the rules to use terms found in the Domain Object Model.
Refine the rules so that they are atomic, standalone rules.
E.g., so that they cannot be split into multiple rules without losing meaning or exhibiting great redundancy.
Consider rule patterns, remove redundant rules, resolve overlaps and inconsistencies among rules, and ensure completeness among rules.
Prototype several rules in the Drools Rules Language.
Initial prototypes should be created as technical rules using the Eclipse Drools IDE.
Create JUnit tests for each rule.
Tests should be run to validate that the business requirements have been captured as well as to judge the potential performance implications of using rules.
Prototype rules using the Drools BRMS (Guvnor).
Create the package in the BRMS, and re-implement the prototyped rules using the Guided Rule Editor. This will help answer questions related to which tooling to use. Discuss the applicability of Decision Tables (either spreadsheet based or web based), as well as a Domain Specific Language.