Business Rules and Application Design
Published by Rajgo April 10th, 2007 in Business Rules, BRMS, Rule Engine, QuickRules.NET, Business Rule Engine, Business Rules Management System, Business Rules Codex, Programming, Software DesignThis is the second post in the Business Rules & the SDLC Series.I will try and explain how Business Rules Technologies will fit into the Application Design Process.
Design Goals & Business Rules
If you are designing a software system that will also automate Business Decisions, then what design goals should you be aiming for?
You should aim to design a highly Efficient software system that will take very Effective Business Decisions.
Peter Drucker defines Effectiveness and Efficiency in the following way
Effectiveness >> Do the Right Thing
Efficiency >> Do the Thing Right
Introducing the Business Decision Service
Before we see how Business Rules will fit in, it is important to understand a Decision Service
A Business Decision Service represents a Decision Making Unit in a software system.
You can visualize a Pricing Service that computes the Cost of a Loan for a particular applicant.
- Business Decision Services consume Business Data (which represent one situation), and provide a decision.
- A Business Decision Service uses a Rule Engine that applies certain Business Rules on the Data to return a Decision.
- The Business Rules will be managed using a BRMS, of which the Rule Engine is one component.

Where does a Decision Service Fit in ?
A typical application can be composed of several Business Decision Services.For example, a Loan Origination System will use a Pricing Service, a CreditAnalysis Service, an UnderWriter Service.
Now, the question is how do these Business Decision Services fit into the Application Design.
The below Graphic illustrates how you need to think using Business Decision Services. The Decision Services Layer represents the set of all Business Decision Services that you have identified in your System.

Now the following rules will apply when you introduce the Decision Service Layer.
- The Domain Model will of course be the center of the Universe.
- The Application Logic Layer will use the Decision Services Layer
- The Decision Services will use the Domain Model and Application Services.
- The Presentation Layer can use the Application Logic, Application Services, Domain Model and the Decision Services Layer
Designing for Evolution & Change
It is important to illustrate why modeling using Business Decision Services is important.
As I have explained in an earlier section, the business rules that determine how a decision needs to be taken are externalized using a Business Rules Management System, like QuickRules.
I have explained why Business Rules evolve differently from the rest of the system, in my earlier post on Business Rules and Software Requirements.
The changes to the Business Rules will be managed using the Management Capabilities provided by the BRMS. Change Management Capabilities include Rule Versioning, Regression Testing Capabilities, Retrospective Rule Invocation, Rule Approval Mechanisms etc.
It is clear that using Decision Services powered by a Rule Engine, and using a BRMS to manage Business Rule Change, provides for easy Service Behavior evolution and change
Designing for Effective Business Decisions
The Business Rules that determine the Decision Service behavior need to be able to drive effective decisions.
This means that all the business test cases need to be identified, starting at this stage after the Decision Services are defined. And Business Analysts need to be set to work to define not only the business rules, but also the test cases.
Commercial BRMS provide simple mechanisms for capturing test cases using Excel Sheets, where each row of data will represent one single test input and expected output
Summary & Final Words
- Business Decisions Must be designed for Effectiveness
- Decision making Units should be modeled as Business Decision Services
- Using a BRMS to manage the business rules that drive the Decision Service behavior Must be managed using a BRMS
- Identify business test cases early to ensure effective Business Decision
Related Reading



















It should be the other way around.
Efficiency is doing things right, and effectiveness is doing the right things.
Right ! I will correct that Right away!