| <?xml version="1.0" encoding="UTF-8"?> |
| <xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.6/uma.ecore" xmlns:epf="http://www.eclipse.org/epf" epf:version="1.5.1" xmlns:rmc="http://www.ibm.com/rmc" rmc:version="7.5.1"> |
| <org.eclipse.epf.uma:ProcessDescription xmi:id="-18b5hLyhHSSG8Wk1_T7fVQ" name="design,_4NT9AX9XEd26h9j0X6pKmw" guid="-18b5hLyhHSSG8Wk1_T7fVQ" version="7.5.1"/> |
| <org.eclipse.epf.uma:DescriptorDescription xmi:id="-6wO1WkYhqlhcM-5FwEvgmA" name="determine_rule_implementation,_59VJIH9XEd26h9j0X6pKmw" guid="-6wO1WkYhqlhcM-5FwEvgmA"> |
| <refinedDescription><a id="XE_rule__determine_implementation" name="XE_rule__determine_implementation"></a> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| Project teams involved in BRMS deployment are often asking the following type of questions: |
| </p> |
| <ul style="MARGIN-TOP: 0cm" type="disc"> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l4 level1 lfo5; tab-stops: list 36.0pt"> |
| When should I use BRMS versus a&nbsp;BPM? |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l4 level1 lfo5; tab-stops: list 36.0pt"> |
| How do I decide what decisions should I put into a BRE? |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l4 level1 lfo5; tab-stops: list 36.0pt"> |
| When should I use BRMS versus code?&nbsp; |
| </li> |
| </ul> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| There are definitively multiple variables which could influence the decision on where to implement rules. We can start |
| by looking at the BRMS value propositions, it should help to get a first set of variables: |
| </p> |
| <ul style="MARGIN-TOP: 0cm" type="disc"> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l1 level1 lfo6; tab-stops: list 36.0pt"> |
| Adaptability – Measure the ability to change the business logic easily. The motivation can be due to short deadline |
| constraint, or frequent small changes or important change that may occur every month or quarter. |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l1 level1 lfo6; tab-stops: list 36.0pt"> |
| Transparency – Represents the need to clearly implement the business logic as what was agreed upon the business |
| unit and the IT team, in a way that every parties understand the logic. This is leading to express the logic in |
| natural or close to natural language. |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l1 level1 lfo6; tab-stops: list 36.0pt"> |
| Auditability – Represents the ability to trace from the business motivation to the execution of the policy to |
| better understand what was the logic behind a decision. |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l1 level1 lfo6; tab-stops: list 36.0pt"> |
| Reusability – Need to share business logic across processes or applications and stay . consistent across |
| applications/transactions |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l1 level1 lfo6; tab-stops: list 36.0pt"> |
| Manageability- This variable addresses the life cycle management of the business logic. Who writes what, and when, |
| and all the questions related to maintenance and evolutions of the rule-based service. |
| </li> |
| </ul> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| The purpose here is not to say it is not possible to support those variables in standard software development |
| practices, but more to find some good patterns on how to decide on where to implement the business logic. |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| When looking at a business rules statement software engineer can see different possible choices of implementation like: |
| </p> |
| <ul style="MARGIN-TOP: 0cm" type="disc"> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l0 level1 lfo7; tab-stops: list 36.0pt"> |
| Data model: designing an object oriented object model involves supporting a lot of business rules. A statement like |
| a mortgage application can have a primary and a secondary borrower, will be supported by two classes and a 1 to 2 |
| relationship. At the instantiation of those classes the control of the cardinality can be done in the application |
| logic, or the database, or the GUI structure. |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l0 level1 lfo7; tab-stops: list 36.0pt"> |
| Application code: implementing the logic in function, procedural code or methods in service layer or business |
| objects. |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l0 level1 lfo7; tab-stops: list 36.0pt"> |
| BPM process flow, tasks or links: BPM tools are addressing business process efficiency issue specifically on "who |
| is involved", "when they should be involved". "what they need to do". BPM supports manual human and automated |
| actors. At a glance the business logic to implement in BPM is linked to people, task, and data to process within a |
| task. When supporting purely automated tasks BPM is orchestrating the application logic and services (BPEL engine). |
| BRMS complements BPM by adding the why to a BPM task, why it behaves a certain way, why this decision is done. |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l0 level1 lfo7; tab-stops: list 36.0pt"> |
| Rule engine: <span style="mso-spacerun: yes">&nbsp;</span>using predefined structure like if then else statement or |
| decision table, rule flow, decision tree, function, rule template or other high level language... |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l0 level1 lfo7; tab-stops: list 36.0pt"> |
| Graphical user interface: <span style="mso-spacerun: yes">&nbsp;</span>using scripting language or server side code |
| in controller class it is possible to implement data validation type of business rules. |
| </li> |
| </ul> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| In the following paragraphs address each of different choices with their impact on the variables |
| </p><br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <a><font color="#0066B2"><em><font size="3">Rule in Data Model</font></em></font></a> |
| </p> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-language: HE">Rule which is controlling the structure of the model and the reference integrity |
| should be in the physical data model, the O/R mapping layer or on the domain object model.</span> |
| </p> |
| <ul style="MARGIN-TOP: 0cm" type="disc"> |
| <li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-list: l6 level1 lfo2; tab-stops: list 36.0pt"> |
| <span style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt">Rule setting constraint on relationship - |
| <span style="mso-spacerun: yes">&nbsp;</span>like a loan application could only have two borrowers</span> |
| </li> |
| <li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-list: l6 level1 lfo2; tab-stops: list 36.0pt"> |
| <span style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt">Rule on the structure of the business |
| entities - like this attribute is part of this object</span> |
| </li> |
| <li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-list: l6 level1 lfo2; tab-stops: list 36.0pt"> |
| <span style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt">The following facts are based on a simple |
| user authentication problem, are well implemented in an object model and the supporting application code which |
| create the instance from the data (O/R mapping layer or DAO or service layer):</span> |
| </li> |
| </ul> |
| <p class="MsoNormal" |
| style="MARGIN: 3pt 0cm 3pt 54pt; TEXT-INDENT: -18pt; mso-list: l5 level1 lfo3; tab-stops: list 54.0pt"> |
| <span |
| style="FONT-FAMILY: Symbol; mso-bidi-language: HE; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><span |
| style="mso-list: Ignore">·<span |
| style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span> <span |
| style="mso-bidi-language: HE">A Company has a list of users who can login to the application</span> |
| </p> |
| <p class="MsoNormal" |
| style="MARGIN: 3pt 0cm 3pt 54pt; TEXT-INDENT: -18pt; mso-list: l5 level1 lfo3; tab-stops: list 54.0pt"> |
| <span |
| style="FONT-FAMILY: Symbol; mso-bidi-language: HE; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><span |
| style="mso-list: Ignore">·<span |
| style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span> <span |
| style="mso-bidi-language: HE">A Company has a list of groups of user</span> |
| </p> |
| <p class="MsoNormal" |
| style="MARGIN: 3pt 0cm 3pt 54pt; TEXT-INDENT: -18pt; mso-list: l5 level1 lfo3; tab-stops: list 54.0pt"> |
| <span |
| style="FONT-FAMILY: Symbol; mso-bidi-language: HE; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><span |
| style="mso-list: Ignore">·<span |
| style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span> <span |
| style="mso-bidi-language: HE">A User is part of a group</span> |
| </p> |
| <p class="MsoNormal" |
| style="MARGIN: 3pt 0cm 3pt 54pt; TEXT-INDENT: -18pt; mso-list: l5 level1 lfo3; tab-stops: list 54.0pt"> |
| <span |
| style="FONT-FAMILY: Symbol; mso-bidi-language: HE; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><span |
| style="mso-list: Ignore">·<span |
| style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span> <span |
| style="mso-bidi-language: HE">A group includes a list of Users</span> |
| </p> |
| <p class="MsoNormal" |
| style="MARGIN: 3pt 0cm 3pt 54pt; TEXT-INDENT: -18pt; mso-list: l5 level1 lfo3; tab-stops: list 54.0pt"> |
| <span |
| style="FONT-FAMILY: Symbol; mso-bidi-language: HE; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><span |
| style="mso-list: Ignore">·<span |
| style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span> <span |
| style="mso-bidi-language: HE">A group has one user reference who is the creator of the group</span> |
| </p> |
| <p> |
| Terms and facts and derived attributes&nbsp;are the primary constituents of data models and are represented in a UML |
| class diagram, and logical data model (entities/relationship model), or a physical data model. |
| </p> |
| <p> |
| <span style="mso-bidi-language: HE">The following table lists the impact of this implementation on the previously |
| defined variables</span> |
| </p> |
| <div align="center"> |
| <table class="ISISTable" |
| style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-alt: solid silver 1.0pt; mso-yfti-tbllook: 480; mso-border-insideh: 1.0pt solid silver; mso-border-insidev: 1.0pt solid silver" |
| cellspacing="0" cellpadding="0" border="1"> |
| <thead> |
| <tr style="mso-yfti-irow: -1; mso-yfti-firstrow: yes"> |
| <td |
| style="BORDER-RIGHT: gray 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: gray 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 0cm; BORDER-LEFT: gray 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: gray 1pt solid" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle" style="TEXT-ALIGN: center; mso-yfti-cnfc: 1" align="center"> |
| <b style="mso-bidi-font-weight: normal"><i style="mso-bidi-font-style: normal"><span |
| style="COLOR: #005da0; mso-bidi-language: HE"><font size="3"><font |
| face="Times New Roman">Variables</font></font></span></i></b> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: gray 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: gray 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 221.4pt; PADDING-TOP: 0cm; BORDER-BOTTOM: gray 1pt solid; mso-border-left-alt: solid gray 1.0pt" |
| valign="top" width="295"> |
| <p class="MsoNormalCxSpMiddle" style="TEXT-ALIGN: center; mso-yfti-cnfc: 1" align="center"> |
| <b style="mso-bidi-font-weight: normal"><i style="mso-bidi-font-style: normal"><span |
| style="COLOR: #005da0; mso-bidi-language: HE"><font size="3"><font |
| face="Times New Roman">Evaluation</font></font></span></i></b> |
| </p> |
| </td> |
| </tr> |
| </thead> |
| <tbody> |
| <tr style="mso-yfti-irow: 0"> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle"> |
| <font face="Times New Roman"><span |
| style="FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt">Adaptability</span></font> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 221.4pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="295"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt"><font |
| face="Times New Roman">Very static implementation. A change in the constraints of the object model |
| impact, data persistence, logical data model, service and presentation layers. Change is managed on |
| a monthly or yearly basis</font></span> |
| </p> |
| </td> |
| </tr> |
| <tr style="mso-yfti-irow: 1"> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle"> |
| <font face="Times New Roman"><span |
| style="FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt">Transparency</span></font> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 221.4pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="295"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt"><font |
| face="Times New Roman">Data model represented as UML classes diagram is doing a poor job to |
| communicate to business. Entities diagram represents a more high level representation of the domain |
| model, but forces the team to maintain the link between the implementation and the business |
| representation.</font></span> |
| </p> |
| </td> |
| </tr> |
| <tr style="mso-yfti-irow: 2"> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle"> |
| <font face="Times New Roman"><span |
| style="FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt">Auditability</span></font> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 221.4pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="295"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt"><font |
| face="Times New Roman">Configuration management tool, with a strict development process and |
| disciplines can help to trace back to the business motivation.</font></span> |
| </p> |
| </td> |
| </tr> |
| <tr style="mso-yfti-irow: 3"> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt"><font |
| face="Times New Roman">Reusability</font></span> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 221.4pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="295"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt"><font |
| face="Times New Roman">Domain Object model can be designed as reusable. But in the reality each |
| application needs a view of the core business object model, and so part of the implemented |
| application will be to build those view.</font></span> |
| </p> |
| </td> |
| </tr> |
| <tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes"> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt"><font |
| face="Times New Roman">Manageability</font></span> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 221.4pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="295"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt"><font |
| face="Times New Roman">Configuration management tools and strict discipline can help maintain the |
| business logic.</font></span> |
| </p> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div><br class="MsoNormal" style="MARGIN: 3pt 0cm" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <a><font color="#0066B2"><em><font size="3">Rule in application code</font></em></font></a> |
| </p> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt">Implementing business rule in application code is |
| currently the most common way the IT developer is doing it. The major justifications are performance and flexibility of |
| the coding language. Using hard coded if/then/else statements isn't too flexible, but in the hands of a top notch |
| programmer it can be very fast and arguably as fast as or faster than a rule engine. Assuming the programmer has |
| unlimited time to optimize the execution for a fixed set of rules. If the ruleset changes frequently and the system |
| can't tolerate a big drop in performance, than a rule engine is the solution.</span> |
| </p> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt">The following example of business rules may be |
| easily implemented in code:</span> |
| </p> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span class="ISISCodeParagraphChar"><font face="Courier">verify in each items the customer bought since he is customer |
| with us there is at least one article of type T so that we can propose the new product Y with X % of discount, except |
| if the customer is from the state of New York or New Jersey</font></span><span |
| style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt">.</span> |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt">We can implement this in a method which loops on |
| the articles bought by a given customer and do the search. At a first analysis, navigating in a collection of objects |
| and testing multiples conditions on them is easy to implement using the power of programming language.</span> |
| </p> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt">One thing interesting will be the hard coding of |
| the value of New York, New Jersey... If this logic change we need to add if statements in the code.</span> |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt">Other type of rules are related to the control of |
| the execution of a set of "services" to support specific use case. Dispatching, orchestration, data manipulation, … are |
| better candidate to be implemented in application code. Those rules are more static, often more complex, and |
| definitively linked to context of execution. The context may be too complex to expose to a rule engine.</span> |
| </p> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt">Orchestration are now very well supported by |
| BPM-BPEL engine because the developer needs to add flexibility on the service selection and invocation.<span |
| style="mso-spacerun: yes">&nbsp;</span></span> |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt">The evaluation of the important variables |
| is:</span> |
| </p> |
| <div align="center"> |
| <table class="ISISTable" |
| style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-alt: solid silver 1.0pt; mso-yfti-tbllook: 480; mso-border-insideh: 1.0pt solid silver; mso-border-insidev: 1.0pt solid silver" |
| cellspacing="0" cellpadding="0" border="1"> |
| <thead> |
| <tr style="mso-yfti-irow: -1; mso-yfti-firstrow: yes"> |
| <td |
| style="BORDER-RIGHT: gray 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: gray 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 0cm; BORDER-LEFT: gray 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: gray 1pt solid" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle" style="TEXT-ALIGN: center; mso-yfti-cnfc: 1" align="center"> |
| <b style="mso-bidi-font-weight: normal"><i style="mso-bidi-font-style: normal"><span |
| style="COLOR: #005da0; mso-bidi-language: HE"><font size="3"><font |
| face="Times New Roman">Variables</font></font></span></i></b> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: gray 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: gray 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 334.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: gray 1pt solid; mso-border-left-alt: solid gray 1.0pt" |
| valign="top" width="446"> |
| <p class="MsoNormalCxSpMiddle" style="TEXT-ALIGN: center; mso-yfti-cnfc: 1" align="center"> |
| <b style="mso-bidi-font-weight: normal"><i style="mso-bidi-font-style: normal"><span |
| style="COLOR: #005da0; mso-bidi-language: HE"><font size="3"><font |
| face="Times New Roman">Evaluation</font></font></span></i></b> |
| </p> |
| </td> |
| </tr> |
| </thead> |
| <tbody> |
| <tr style="mso-yfti-irow: 0"> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle"> |
| <font face="Times New Roman"><span |
| style="FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt">Adaptability</span></font> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 334.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="446"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"><font |
| face="Times New Roman">the necessity to change code when a business rule changes is still |
| unpleasant: software build are more efficient and cost less than before but deployment may be |
| expensive depending of the complexity of the production environment. <span |
| style="mso-spacerun: yes">&nbsp;</span></font></span> |
| </p> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"><font |
| face="Times New Roman">Changing code under time pressure usually leads to poor |
| quality</font></span> |
| </p><br class="MsoNormalCxSpMiddle" /> |
| <br /> |
| </td> |
| </tr> |
| <tr style="mso-yfti-irow: 1"> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle"> |
| <font face="Times New Roman"><span |
| style="FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt">Transparency</span></font> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 334.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="446"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt"><font |
| face="Times New Roman">Poor. The logic as defined by the business is split in multiple parts of the |
| code, methods and procedures.</font></span> |
| </p> |
| </td> |
| </tr> |
| <tr style="mso-yfti-irow: 2"> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle"> |
| <font face="Times New Roman"><span |
| style="FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt">Auditability</span></font> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 334.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="446"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt"><font |
| face="Times New Roman">Poor. Only strict use of configuration management tools with a strict |
| development process may help.</font></span> |
| </p> |
| </td> |
| </tr> |
| <tr style="mso-yfti-irow: 3"> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt"><font |
| face="Times New Roman">Reusability</font></span> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 334.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="446"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt"><font |
| face="Times New Roman">If the logic is implemented in a service layer with defined interface it may |
| be possible to reuse part of the methods.</font></span> |
| </p> |
| </td> |
| </tr> |
| <tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes"> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt"><font |
| face="Times New Roman">Manageability</font></span> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 334.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="446"> |
| <p class="MsoNormalCxSpMiddle"> |
| <font face="Times New Roman"><span |
| style="FONT-SIZE: 8pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt">Developer is |
| responsible to implement the change, and use configuration management tools and strict development |
| disciplines.</span></font> |
| </p> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div><br class="MsoNormal" style="MARGIN: 3pt 0cm" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <a><font color="#0066B2"><em><font size="3">Rule in process map</font></em></font></a> |
| </p> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-language: HE">Business process automation is the technology components substituting and/or |
| supplementing manual processes to manage information flow within an organization to lower costs, reduce risk, and |
| increase consistency. In this context Business rules describe the structure, operation, and strategy of an |
| organization's business process. The business process definition can be seen as a business rule. Typically a rule |
| involving routing of transactional data to a queue, a task, or a sub process will be most likely implemented in a |
| process map. Defined at the link level business rules are linked to the structure of the process flow. Once designed |
| and implemented there is few chance those rule will change. Changing a business process is most of the time risky: we |
| do not want to change thing working and involving a lot of parties and stakeholders. In fact</span> new policies, |
| regulations or business strategies may affect the rules without changing the core business processes. |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-language: HE">A rule like: "<i style="mso-bidi-font-style: normal">if there is an exception in |
| the claim processing we want a supervisor to study the claim and the accumulated reasons extracted by the process so |
| far"</i> will most likely finish as guard on a process map link:</span> |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <img height="348" alt="" src="resources/brinbpm.bmp" width="313" /> |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| Task 1 will most of the time call a rule engine to take decision on the claim. One of the pattern is to accumulate all |
| the possible reasons in a list. If the list include an exception or high priority reason, the process map will route to |
| the "Process Exception" task. This task can queue the work item to a supervisor queues. |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-language: HE">There are a lot tasks in a business process that are decision rich, so with a lot |
| of business rule to execute before completing the task. Those rules can be executed by a rule engine. The integration |
| Rule Engine – BPM will bring the value to support those cases. But as good practice it is always possible to try to |
| re-arrange an activity diagram of a use case or a process map so that some activities are purely automatically executed |
| in a rule engine mapped as a rule flow.</span> |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-language: HE">The variables evaluation:</span> |
| </p> |
| <div align="center"> |
| <table class="ISISTable" |
| style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-alt: solid silver 1.0pt; mso-yfti-tbllook: 480; mso-border-insideh: 1.0pt solid silver; mso-border-insidev: 1.0pt solid silver" |
| cellspacing="0" cellpadding="0" border="1"> |
| <thead> |
| <tr style="mso-yfti-irow: -1; mso-yfti-firstrow: yes"> |
| <td |
| style="BORDER-RIGHT: gray 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: gray 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 0cm; BORDER-LEFT: gray 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: gray 1pt solid" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle" style="TEXT-ALIGN: center; mso-yfti-cnfc: 1" align="center"> |
| <b style="mso-bidi-font-weight: normal"><i style="mso-bidi-font-style: normal"><span |
| style="COLOR: #005da0; mso-bidi-language: HE"><font size="3"><font |
| face="Times New Roman">Variables</font></font></span></i></b> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: gray 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: gray 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 344.65pt; PADDING-TOP: 0cm; BORDER-BOTTOM: gray 1pt solid; mso-border-left-alt: solid gray 1.0pt" |
| valign="top" width="460"> |
| <p class="MsoNormalCxSpMiddle" style="TEXT-ALIGN: center; mso-yfti-cnfc: 1" align="center"> |
| <b style="mso-bidi-font-weight: normal"><i style="mso-bidi-font-style: normal"><span |
| style="COLOR: #005da0; mso-bidi-language: HE"><font size="3"><font |
| face="Times New Roman">Evaluation</font></font></span></i></b> |
| </p> |
| </td> |
| </tr> |
| </thead> |
| <tbody> |
| <tr style="mso-yfti-irow: 0"> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle"> |
| <font face="Times New Roman"><span |
| style="FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt">Adaptability</span></font> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 344.65pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="460"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"><font |
| face="Times New Roman">Business rules hardly coded in using BPM notation is not efficient and lead |
| to complex map. The real design implementation is to mix BPM map and business rules-decision |
| delegated in a process task. In this type of implementation we can leverage the best of both |
| worlds, and the adaptability is excellent.</font></span> |
| </p> |
| </td> |
| </tr> |
| <tr style="mso-yfti-irow: 1"> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle"> |
| <font face="Times New Roman"><span |
| style="FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt">Transparency</span></font> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 344.65pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="460"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt"><font |
| face="Times New Roman">Excellent: when the integration of BPMS and BRMS is done perfectly, the |
| business and IT team have a clear understanding of the process execution and the decision done by a |
| task by studying the rules attached to the task.</font></span> |
| </p> |
| </td> |
| </tr> |
| <tr style="mso-yfti-irow: 2"> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle"> |
| <font face="Times New Roman"><span |
| style="FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt">Auditability</span></font> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 344.65pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="460"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt"><font |
| face="Times New Roman">Excellent: both tools has version control, and it is possible to link |
| process map version to rule set version.</font></span> |
| </p> |
| </td> |
| </tr> |
| <tr style="mso-yfti-irow: 3"> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt"><font |
| face="Times New Roman">Reusability</font></span> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 344.65pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="460"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt"><font |
| face="Times New Roman">Rules defined in a task should be expose to the other application as a |
| service. So reusability can be achieved. Rules in a BPM map are not really reusable.</font></span> |
| </p> |
| </td> |
| </tr> |
| <tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes"> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt"><font |
| face="Times New Roman">Manageability</font></span> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 344.65pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="460"> |
| <p class="MsoNormalCxSpMiddle"> |
| <font face="Times New Roman"><span |
| style="FONT-SIZE: 8pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt">Process logic will |
| have a more stable life cycle, and it is managed in the BPMS. <span |
| style="mso-spacerun: yes">&nbsp;</span></span></font> |
| </p> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div><br class="MsoNormal" style="MARGIN: 3pt 0cm" /> |
| <br /> |
| <br class="MsoNormal" style="MARGIN: 3pt 0cm" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <a><font color="#0066B2"><em><font size="3">Rule in a rule engine</font></em></font></a> |
| </p> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-language: HE">Any type of rule using a forward chaining approach will best fit in any RETE rule |
| engine. To avoid long explanation a rule engine will perform very efficiently the following rules which are more |
| complex to implement in code:</span> |
| </p> |
| <ul style="MARGIN-TOP: 0cm" type="disc"> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l2 level1 lfo4; tab-stops: list 36.0pt"> |
| <span style="mso-bidi-language: HE">Set parameter = A / (B ^ 2)</span> |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l2 level1 lfo4; tab-stops: list 36.0pt"> |
| <span style="mso-bidi-language: HE">If parameter is above 30 then the risk is<span |
| style="mso-spacerun: yes">&nbsp;</span> medium</span> |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l2 level1 lfo4; tab-stops: list 36.0pt"> |
| <span style="mso-bidi-language: HE">If the risk is medium then alert the manager</span> |
| </li> |
| </ul> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-language: HE"><span style="mso-spacerun: yes">&nbsp;</span>If we enter a new value for A all the |
| depend rules will be fired. Rules can be entered in any order we want, it is less declarative than procedural |
| code.</span> |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-language: HE">Backward chaining rule pattern can also been supported by a rule engine. The rule |
| system works down the tree to find the data that it requires. It will ask question to be able to infer decisions. It is |
| possible to implement backward chaining with product using pure inference by&nbsp;using a goal object.</span> |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-language: HE">As we already stated one of the key factor is flexibility. We already encounter the |
| following decision: "This rule will not change"... but in fact it will do in the future or some of related one" |
| .</span> |
| </p> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-language: HE">We can for example take a simple example of a static rule defined as</span> |
| </p> |
| <p class="MsoNormal" style="MARGIN: 1.9pt 0cm 0pt 18pt; TEXT-ALIGN: justify"> |
| <span class="ISISCodeParagraphChar"><font face="Courier">If the status of the customer is gold and the product is |
| &lt;&gt; then apply &lt;&gt; % discount</font></span><span style="mso-bidi-language: HE">.</span> |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-language: HE">This rule can be implemented within application code using some tables in a |
| database that link the product, the category of possible status and the discount to apply. But when discussing with the |
| business user to understand what is a gold customer? We can get other conditions that definitively will change over |
| time: "A customer who spend more than &lt;&gt; the amount of money... during the last 6 months ...No !<span |
| style="mso-spacerun: yes">&nbsp;</span> during the last four month only for the product X because it was only available |
| for 4 months!, … Okay but customer in the states {,,,,} could not be part of the gold status... Ah I forgot, ... A |
| customer must have 18 years old, and by the way customer working for our company or subsidiaries could not be part of |
| the gold...</span> |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-language: HE">The variables evaluation:</span> |
| </p> |
| <div align="center"> |
| <table class="ISISTable" |
| style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-alt: solid silver 1.0pt; mso-yfti-tbllook: 480; mso-border-insideh: 1.0pt solid silver; mso-border-insidev: 1.0pt solid silver" |
| cellspacing="0" cellpadding="0" border="1"> |
| <thead> |
| <tr style="mso-yfti-irow: -1; mso-yfti-firstrow: yes"> |
| <td |
| style="BORDER-RIGHT: gray 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: gray 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 0cm; BORDER-LEFT: gray 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: gray 1pt solid" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle" style="TEXT-ALIGN: center; mso-yfti-cnfc: 1" align="center"> |
| <b style="mso-bidi-font-weight: normal"><i style="mso-bidi-font-style: normal"><span |
| style="COLOR: #005da0; mso-bidi-language: HE"><font size="3"><font |
| face="Times New Roman">Variables</font></font></span></i></b> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: gray 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: gray 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 344.65pt; PADDING-TOP: 0cm; BORDER-BOTTOM: gray 1pt solid; mso-border-left-alt: solid gray 1.0pt" |
| valign="top" width="460"> |
| <p class="MsoNormalCxSpMiddle" style="TEXT-ALIGN: center; mso-yfti-cnfc: 1" align="center"> |
| <b style="mso-bidi-font-weight: normal"><i style="mso-bidi-font-style: normal"><span |
| style="COLOR: #005da0; mso-bidi-language: HE"><font size="3"><font |
| face="Times New Roman">Evaluation</font></font></span></i></b> |
| </p> |
| </td> |
| </tr> |
| </thead> |
| <tbody> |
| <tr style="mso-yfti-irow: 0"> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle"> |
| <font face="Times New Roman"><span |
| style="FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt">Adaptability</span></font> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 344.65pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="460"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt"><font |
| face="Times New Roman">Excellent, rule can change quickly and be deployed quickly too</font></span> |
| </p> |
| </td> |
| </tr> |
| <tr style="mso-yfti-irow: 1"> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle"> |
| <font face="Times New Roman"><span |
| style="FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt">Transparency</span></font> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 344.65pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="460"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt"><font |
| face="Times New Roman">Excellent: by adding meta data to implemented rule we can clearly link rule |
| to business strategies and policies</font></span> |
| </p> |
| </td> |
| </tr> |
| <tr style="mso-yfti-irow: 2"> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle"> |
| <font face="Times New Roman"><span |
| style="FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt">Auditability</span></font> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 344.65pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="460"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt"><font |
| face="Times New Roman">Excellent and most of the rule engine has log mechanism to trace what were |
| the rules executed on a given transaction.</font></span> |
| </p> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt"><font |
| face="Times New Roman">Rule reports are important to the business as part of |
| documentation</font></span> |
| </p> |
| </td> |
| </tr> |
| <tr style="mso-yfti-irow: 3"> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt"><font |
| face="Times New Roman">Reusability</font></span> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 344.65pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="460"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt"><font |
| face="Times New Roman">Very good if the BRMS use rule repository and the rule analyst designed a |
| rule sharing approach</font></span> |
| </p> |
| </td> |
| </tr> |
| <tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes"> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt solid; WIDTH: 4cm; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="151"> |
| <p class="MsoNormalCxSpMiddle"> |
| <span style="FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt"><font |
| face="Times New Roman">Manageability</font></span> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 344.65pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="460"> |
| <p class="MsoNormalCxSpMiddle"> |
| <font face="Times New Roman"><span |
| style="FONT-SIZE: 8pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt">Excellent as rules |
| are externalized and managed as a standalone artifact. Rule configuration management is complex, |
| and integrity between rule life cycle and rule set versioning is not a simple |
| practice.</span></font> |
| </p> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div><br class="MsoNormal" style="MARGIN: 3pt 0cm" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <a><font color="#0066B2"><em><font size="3">Rule in a graphical user interface</font></em></font></a> |
| </p> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| We will base the integration on the Model-View-Controller (MVC) design pattern. The presentation tier handles the |
| client interaction by abstracting the low-level protocol details into an event-based mechanism. The view's main |
| requirement is synchronization with the model so that data displayed to the user is up to date. The controller is |
| responsible to prepare the data and manage the view flow and content. Delegating the creation of content to a rule |
| engine is possible but need to be done synchronously. |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| The business rule will be related to control the list of widget the GUI will present. A typical pattern is around |
| product catalog application or dynamic questionnaire. The rule pattern to control the content looks like: |
| </p> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm 3pt 36pt"> |
| <i style="mso-bidi-font-style: normal">If the selection on this page was &lt;&gt; then add this &lt;&gt; to the model |
| used in view &lt;&gt;</i> |
| </p> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| A rule to control the flow of page looks like |
| </p> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm 3pt 36pt"> |
| <i style="mso-bidi-font-style: normal">If the user visited page &lt;&gt; (and | or page &lt;&gt;) then next page is |
| &lt;&gt;</i> |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| Both rules may be enriched with business type decision based on data of the model. |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| In these pattern it is clear we need to keep the previous context of decision, and events the user created.<span |
| style="mso-spacerun: yes">&nbsp;</span> So most of the current applications are putting the business rule in the |
| controller class or in the java script of the view, but it is possible to design the controller to use a rule engine, |
| as soon as the decision needs to change. This is particularly true for e-commerce web site, where marketing campaign |
| can quickly be put in place by proposing product or product feature more dynamically.<span |
| style="mso-spacerun: yes">&nbsp;</span> |
| </p><br /></refinedDescription> |
| </org.eclipse.epf.uma:DescriptorDescription> |
| <org.eclipse.epf.uma:DescriptorDescription xmi:id="-CuJ8KsGj2Ge8INilrucD1w" name="define_ruleset,_BZaDsH9ZEd26h9j0X6pKmw" guid="-CuJ8KsGj2Ge8INilrucD1w"> |
| <refinedDescription><a id="XE_rule_set__define" name="XE_rule_set__define"></a> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-language: HE">When designing an application using one BRE and a simple rule set this activity |
| will be done quickly. The rule developer still needs to think about the parameters the exception management, <span |
| style="mso-spacerun: yes">&nbsp;</span>what are the rule part of the rule set, and how they are executed.</span> |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-language: HE">So for a simple unique rule set the following information needs to be designed and |
| documented:</span> |
| </p> |
| <ul style="MARGIN-TOP: 0cm" type="disc"> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"> |
| <span style="mso-bidi-language: HE">Input, output parameters</span> |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"> |
| <span style="mso-bidi-language: HE">Type of data model</span> |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"> |
| <span style="mso-bidi-language: HE">Rule execution flow using a rule flow. But it is still possible with modern BRE |
| to use re-entrant rule set, so executing a rule flow from a rule task or rule package.</span> |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"> |
| <span style="mso-bidi-language: HE">Exception management</span> |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"> |
| <span style="mso-bidi-language: HE">Inference objects like a result object which may be used to control the future |
| execution of the caller application or the BRE.</span> |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"> |
| <span style="mso-bidi-language: HE">What are the rule part of the rule set</span> |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"> |
| <span style="mso-bidi-language: HE">What is their execution order. It is recommended to avoid using a ordering |
| mechanism like the rule priority, but some time at a rule task level it is needed to use sorting mechanism</span> |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"> |
| <span style="mso-bidi-language: HE">When does a rule is not candidate to enter in a rule set. This is linked to the |
| rule life cycle.</span> |
| </li> |
| </ul></refinedDescription> |
| </org.eclipse.epf.uma:DescriptorDescription> |
| <org.eclipse.epf.uma:DescriptorDescription xmi:id="-SUg_Lde8qOSnwbqR7aE35Q" name="build_object_models,_6OKacH9XEd26h9j0X6pKmw" guid="-SUg_Lde8qOSnwbqR7aE35Q"> |
| <refinedDescription><p class="MsoNormal" style="MARGIN: 3pt 0in"> |
| <span style="mso-bidi-language: HE">Depending of the technology used there is different approach to this task. The |
| domain object model at the enterprise level will represent a complex data model a rule architect does not want to |
| expose as-is to the rule engine and the rule authoring environment. Navigating a complex graph of objects will bring |
| unnecessary complexity for the rule writer. So we recommend to always try to use a view of the enterprise domain object |
| model. For example in Financial Industry the business domain&nbsp;data model defined in MISMO (<a |
| href="http://www.mismo.org/"><font color="#005DA0">www.mismo.org</font></a>), brings a lot of value for an enterprise |
| willing to define a common ontology for their data models. But exposing the MISMO model as it is within a BRMS rule |
| authoring IDE will put too much complexity. As the Architect is responsible to design decision service reusable cross |
| application, it may make sense to consider view of this object model in the context of the service.</span> |
| </p> |
| <p class="MsoNormal" style="MARGIN: 3pt 0in"> |
| <span style="mso-bidi-language: HE">For the application the view can be defined in two entities:</span> |
| </p> |
| <ul style="MARGIN-TOP: 0in" type="disc"> |
| <li class="MsoNormal" style="MARGIN: 3pt 0in; mso-list: l0 level1 lfo1; tab-stops: list .5in"> |
| <span style="mso-bidi-language: HE">the Domain Object Model using java or xml schema as the underling |
| technology</span> |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0in; mso-list: l0 level1 lfo1; tab-stops: list .5in"> |
| <span style="mso-bidi-language: HE">or out of the box object view, like ILOG-Business Object Model element. The BOM |
| is mandatory to write rule on, but it&nbsp;can be created from an existing java model or XSD or created |
| top-down.</span> |
| </li> |
| </ul> |
| <p class="MsoNormal" style="MARGIN: 3pt 0in"> |
| <span style="mso-bidi-language: HE">If the model does not exist in the application, or at the enterprise level we still |
| recommend to develop the domain model, using an UML designer and code generation tools.</span> |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0in" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0in"> |
| <span style="mso-bidi-font-weight: bold; mso-bidi-font-style: italic">It is also important to consider designing a java |
| model or XSD schema which is closed to the business concepts used by the rule but built as a view of the domain object |
| model (We called that the Rule Business Object Pattern or RBO): in the example of standard object model like MISMO or |
| ACORD, it makes sense to do not expose all the class definition, attributes and enumerated to avoid exposing a complex |
| rule language to the business user. This view will be instantiated by the application business logic in the context of |
| preparing the data for the rule services</span> |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0in" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0in"> |
| When designing a Domain Object model one of the challenges is to determine what should be an entity and what should be |
| an attribute of the entity.<span style="mso-spacerun: yes">&nbsp;</span> This is why knowledge engineers like the |
| Enterprise Ontology as a start point for developing these concepts.<span style="mso-spacerun: yes">&nbsp;</span> The |
| Enterprise Ontology describes the major entities and concepts that apply to all enterprises and it provides a very good |
| starting point for the establishment of static object models and data models. |
| </p> |
| <p class="MsoNormal" style="MARGIN: 3pt 0in"> |
| The difference between a class and an entity type is that classes have both data and behaviors whereas entity types |
| just have data. A normal entity depicts one concept. |
| </p> |
| <p class="MsoNormal" style="MARGIN: 3pt 0in"> |
| Use multiple different UML class diagram to represent entities and their relations. Then enhance them to have a |
| complete class diagram from which you should be able to generate java code or XSD. |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0in" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0in"> |
| Capture Meta data about each entity: business name, business definition, super type or subtype, number of occurrences, |
| primary key, and alternate keys. |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0in" /> |
| <br /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0in"> |
| <span style="mso-bidi-language: HE">It is possible to consider designing a Domain Model using Interface, and then apply |
| different type of implementation according to different execution pattern or platforms. For example we can design |
| a;</span> |
| </p> |
| <ul style="MARGIN-TOP: 0in" type="disc"> |
| <li class="MsoNormal" style="MARGIN: 3pt 0in; mso-list: l1 level1 lfo2; tab-stops: list .5in"> |
| <a id="1030902" name="1030902"><span style="mso-bidi-language: HE">Staged deployment with different execution |
| classes</span></a> |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0in; mso-list: l1 level1 lfo2; tab-stops: list .5in"> |
| <a id="1030906" name="1030906"><span style="mso-bidi-language: HE">Dynamic model (XML based or dynamic classes) |
| versus static model</span></a> |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0in; mso-list: l1 level1 lfo2; tab-stops: list .5in"> |
| <a id="1030907" name="1030907"><span style="mso-bidi-language: HE">Production/test models (active objects versus |
| mock objects)</span></a> |
| </li> |
| </ul><a id="XE_object_model__build" name="XE_object_model__build"></a></refinedDescription> |
| </org.eclipse.epf.uma:DescriptorDescription> |
| <org.eclipse.epf.uma:DescriptorDescription xmi:id="-9LXp5OR5EN9FZBKkwS1J8w" name="build_rule_project_structure,_6cKaMH9XEd26h9j0X6pKmw" guid="-9LXp5OR5EN9FZBKkwS1J8w"> |
| <refinedDescription><a id="XE_rule_project__build_structure" name="XE_rule_project__build_structure"></a><br class="MsoNormal" |
| style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; TEXT-ALIGN: justify; mso-list: l0 level1 lfo1; tab-stops: list .25in" /> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-language: HE"><span style="mso-bidi-language: HE">This activity is linked to the tool used. There |
| is still some considerations when designing the project structure for the rules and application:</span></span> |
| </p> |
| <ul style="MARGIN-TOP: 0cm" type="disc"> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l1 level1 lfo1; tab-stops: list 36.0pt"> |
| <span style="mso-bidi-language: HE">Apply good design practice of implementing the application using a n-tier |
| approach. The service layer includes the interfaces of the rule decision service entries.</span><br |
| class="MsoNormal" style="MARGIN: 3pt 0cm 3pt 18pt" /> |
| <br /> |
| </li> |
| </ul> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-language: HE"><img height="491" alt="" src="resources/projstruct.bmp" width="515" /></span> |
| </p> |
| <div style="MARGIN-TOP: 0cm; MARGIN-LEFT: 2em" type="disc"> |
| <ul style="MARGIN-TOP: 0cm" type="disc"> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l1 level1 lfo1; tab-stops: list 36.0pt"> |
| <span style="mso-bidi-language: HE"><span style="mso-bidi-language: HE">Organize rule project so that a few |
| person can concurrently work on&nbsp;rule artifact at the same time.</span></span> |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l1 level1 lfo1; tab-stops: list 36.0pt"> |
| <span style="mso-bidi-language: HE">Organize rule project so that they are manageable in term of performance at |
| the execution and at the rule authoring level.</span> |
| </li> |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l1 level1 lfo1; tab-stops: list 36.0pt"> |
| Separate representation of the domain object model in java project. |
| </li> |
| </ul> |
| </div></refinedDescription> |
| </org.eclipse.epf.uma:DescriptorDescription> |
| <org.eclipse.epf.uma:DescriptorDescription xmi:id="-nwZcYuKm35TyaeUzE1tIug" name="prototype_rules,_6qw24H9XEd26h9j0X6pKmw" guid="-nwZcYuKm35TyaeUzE1tIug"> |
| <refinedDescription><a id="XE_rule__prototyping" name="XE_rule__prototyping"></a> |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm"> |
| <span style="mso-bidi-language: HE">The goal of the Rule Analysis activity is to prepare the rules for the |
| implementation. The rule analyst and the rule writer will analyze the rules discovered in a disjointed way into a |
| complete and coherent set. From the rule description, the glossary of business terms and may be from a first version of |
| the logical data model (LDM), the discovery team needs to transform the rules using the terms of the business to |
| elements that will be implemented by the rule writers. The rule analyst executes a set of iterative tasks to reach rule |
| implementation.</span> |
| </p></refinedDescription> |
| </org.eclipse.epf.uma:DescriptorDescription> |
| <org.eclipse.epf.uma:DescriptorDescription xmi:id="-09Itbxe1JXVwpusKQdRW6A" name="decision_point_table,_BZaDsX9ZEd26h9j0X6pKmw" guid="-09Itbxe1JXVwpusKQdRW6A"> |
| <refinedDescription><a id="XE_decision_point_table" name="XE_decision_point_table"></a> |
| <p> |
| <span |
| style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-language: AR-SA; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US">Groups |
| together all potential rules that determine one decision.</span> <a id="XE_decision_point" name="XE_decision_point">It |
| can be found in a use case description or in a Business Process Map task description.</a>&nbsp;Presented in table |
| format the project team can use the following template: |
| </p><br /> |
| <div align="center"> |
| <table class="ISISTable" |
| style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; WIDTH: 496.15pt; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid silver 1.0pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: 1.0pt solid silver; mso-border-insidev: 1.0pt solid silver" |
| cellspacing="0" cellpadding="0" width="662" border="1"> |
| <tbody> |
| <tr style="HEIGHT: 15.75pt; mso-yfti-irow: -1; mso-yfti-firstrow: yes"> |
| <td |
| style="BORDER-RIGHT: gray 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: gray 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 0cm; BORDER-LEFT: gray 1pt solid; WIDTH: 70.9pt; PADDING-TOP: 0cm; BORDER-BOTTOM: gray 1pt solid; HEIGHT: 15.75pt" |
| valign="top" width="95"> |
| <p class="MsoNormalCxSpFirst" style="TEXT-ALIGN: center; mso-yfti-cnfc: 1" align="center"> |
| <b><i style="mso-bidi-font-style: normal"><span style="COLOR: #005da0; mso-bidi-language: HE"><font |
| size="3"><font face="Times New Roman">Decision Point<span style="mso-spacerun: yes">&nbsp;</span> |
| Name</font></font></span></i></b> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: gray 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: gray 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 148.85pt; PADDING-TOP: 0cm; BORDER-BOTTOM: gray 1pt solid; HEIGHT: 15.75pt; mso-border-left-alt: solid gray 1.0pt" |
| valign="top" width="198"> |
| <p class="MsoNormalCxSpMiddle" style="TEXT-ALIGN: center; mso-yfti-cnfc: 1" align="center"> |
| <b><i style="mso-bidi-font-style: normal"><span style="COLOR: #005da0; mso-bidi-language: HE"><font |
| size="3"><font face="Times New Roman">Description</font></font></span></i></b> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: gray 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: gray 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 106.65pt; PADDING-TOP: 0cm; BORDER-BOTTOM: gray 1pt solid; HEIGHT: 15.75pt; mso-border-left-alt: solid gray 1.0pt" |
| valign="top" width="142"> |
| <p class="MsoNormalCxSpMiddle" style="TEXT-ALIGN: center; mso-yfti-cnfc: 1" align="center"> |
| <b><i style="mso-bidi-font-style: normal"><span style="COLOR: #005da0; mso-bidi-language: HE"><font |
| size="3"><font face="Times New Roman">Source for Rule Discovery</font></font></span></i></b> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: gray 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: gray 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 94.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: gray 1pt solid; HEIGHT: 15.75pt; mso-border-left-alt: solid gray 1.0pt" |
| valign="top" width="126"> |
| <p class="MsoNormalCxSpMiddle" style="TEXT-ALIGN: center; mso-yfti-cnfc: 1" align="center"> |
| <font size="3"><font face="Times New Roman"><b><i style="mso-bidi-font-style: normal"><span |
| style="COLOR: #005da0; mso-bidi-language: HE">Current</span></i></b> <b><i |
| style="mso-bidi-font-style: normal"><span |
| style="COLOR: #005da0; mso-bidi-language: HE">State</span></i></b> <b><i |
| style="mso-bidi-font-style: normal"><span style="COLOR: #005da0; mso-bidi-language: HE">of |
| Automation</span></i></b></font></font> |
| </p> |
| </td> |
| <td |
| style="BORDER-RIGHT: gray 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: gray 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: gray 1pt solid; HEIGHT: 15.75pt; mso-border-left-alt: solid gray 1.0pt" |
| valign="top" width="100"> |
| <p class="MsoNormalCxSpMiddle" style="TEXT-ALIGN: center; mso-yfti-cnfc: 1" align="center"> |
| <b><i style="mso-bidi-font-style: normal"><span style="COLOR: #005da0; mso-bidi-language: HE"><font |
| size="3"><font face="Times New Roman">Rule Owner -</font></font></span></i></b> |
| </p> |
| <p class="MsoNormalCxSpMiddle" style="TEXT-ALIGN: center; mso-yfti-cnfc: 1" align="center"> |
| <b><i style="mso-bidi-font-style: normal"><span style="COLOR: #005da0; mso-bidi-language: HE"><font |
| size="3"><font face="Times New Roman">SME</font></font></span></i></b> |
| </p> |
| </td> |
| </tr> |
| <tr style="mso-yfti-irow: 0"> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt solid; WIDTH: 70.9pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="95"> |
| <br class="MsoNormalCxSpMiddle" /> |
| <br /> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 148.85pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="198"> |
| <br class="MsoNormalCxSpMiddle" /> |
| <br /> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 106.65pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="142"> |
| <br class="MsoNormalCxSpMiddle" /> |
| <br /> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 94.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="126"> |
| <br class="MsoNormalCxSpMiddle" /> |
| <br /> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="100"> |
| <br class="MsoNormalCxSpMiddle" /> |
| <br /> |
| </td> |
| </tr> |
| <tr style="mso-yfti-irow: 1; mso-yfti-lastrow: yes"> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt solid; WIDTH: 70.9pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="95"> |
| <br class="MsoNormalCxSpMiddle" /> |
| <br /> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 148.85pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="198"> |
| <br class="MsoNormalCxSpMiddle" /> |
| <br /> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 106.65pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="142"> |
| <br class="MsoNormalCxSpMiddle" /> |
| <br /> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 94.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="126"> |
| <br class="MsoNormalCxSpMiddle" /> |
| <br /> |
| </td> |
| <td |
| style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt" |
| valign="top" width="100"> |
| <br class="MsoNormalCxSpMiddle" /> |
| <br /> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div><br /> |
| <p> |
| The name should be explicit and without any ambiguity. It helps to link back to the business process or use case step. |
| An example may be "claim data review", or "loan eligibility"... |
| </p> |
| <p> |
| The source for rule discovery describes the main sources of rule harvesting like human, code, database, book, policies, |
| legal&nbsp;manual... |
| </p> |
| <p> |
| The current state of automation is optional and just list&nbsp;if for this given decision point we can have tools which |
| can migrate the business rules&nbsp;from one format to another.&nbsp; |
| </p> |
| <p> |
| The last column can be useful to define who will be the owner of the rule set(s) supporting the decision point. He/She |
| will be an important actor of the rule discovery. |
| </p></refinedDescription> |
| </org.eclipse.epf.uma:DescriptorDescription> |
| <org.eclipse.epf.uma:DescriptorDescription xmi:id="-Vv_9K8Dz3DHl2GFZ69FiAQ" name="rule_description_doc,_BZaDsn9ZEd26h9j0X6pKmw" guid="-Vv_9K8Dz3DHl2GFZ69FiAQ"> |
| <refinedDescription><a id="XE_rule_description__document" name="XE_rule_description__document"></a> |
| <p> |
| The rule description document is used during the discovery phase, and during the first iterations for building a rule |
| set. It is not mandatory to complete it up front with all the rules in it. The complement is done during the Rule |
| Authoring phase. |
| </p> |
| <p> |
| It is also interesting to leverage SBVR to document the rule. |
| </p></refinedDescription> |
| </org.eclipse.epf.uma:DescriptorDescription> |
| <org.eclipse.epf.uma:DescriptorDescription xmi:id="-pAIEUuJxXz-6pgjLh_pMzw" name="ruleset,_BZaDs39ZEd26h9j0X6pKmw" guid="-pAIEUuJxXz-6pgjLh_pMzw"> |
| <refinedDescription><a id="XE_rule_set__work_product" name="XE_rule_set__work_product"></a> |
| <p> |
| For more detail see <a class="elementLink" href="./../../abrd/guidances/termdefinitions/rule_set_4D4C8DB1.html" |
| guid="_DdvcwBCQEdyJtJ3PbfdVDw">Rule Set</a>&nbsp;and <a class="elementLink" |
| href="./../../abrd/guidances/termdefinitions/rule_engine_A66B71B3.html" guid="_QQcSoEXXEdy14e5PT9v3HQ">rule engine</a> |
| </p></refinedDescription> |
| </org.eclipse.epf.uma:DescriptorDescription> |
| </xmi:XMI> |