Specializing Rules by Location and Line of Business
This presentation is part of the Reusability and Specialization e-Learning Course.
Transcript
Requirements
A mortgage company, MyCo, has underwriting rules that are specialized based on location of property, for example state, and line of business: commercial and personal properties. There are approximately 500 “base” rules needed to define the underwriting decisions. As design architects we must ask the right questions to determine the most appropriate solution. Some questions would be…
- How many rules are specialized by state and line of business?
- Are rules specialized for every state?
- Is security, from a rules management standpoint, needed to separate rules by Locale and/or Commercial/Personal lines?
- Is work object persistence based on either specialization? That is, will we be storing work objects in separate tables depending on state and/or line of business?
- Will rules be promoted into production along these specialization lines?
Approach
Keeping in mind the specialization guidelines outlined earlier, let’s examine some possible answers to these questions.
How many rules are specialized by state and line of business? By asking this question we learn that approximately 30% of the base rules are specialized by line of business, but only a small number of rules are specialized by state. The fact that 30% of the rules are specialized by line of business means that line of business is a good candidate to be implemented by a class. In addition, since line of business is often a key area for security and reporting, specialization by class makes sense.
Are rules specialized for every state? Only three states have specialized rules. Having a small number of different values points us towards circumstances being an appropriate solution.
Is security, from a rules management standpoint, needed to separate rules by Locale and/or Commercial/Personal lines? In our scenario, the answer to this question is that lines of business will require security but locales will not. What we can interpret from that answer is that MyCo requires rule developers across lines of business to be separate but not by locale.
Is work object persistence based on either specialization? Currently, “all work objects can be stored together” is the requirement that the customer has given us. Work object persistence requirements always point to separate classes, as classes are the only way to delineate work object persistence.
Will rules be promoted into production along these specialization lines? In our scenario, each line of business will promote rules independently of other lines of business; however, all specialization lines will move at once. Rule promotion granularity will be used to determine the RuleSet design for this application.