| <?xml version="1.0" encoding="UTF-8"?> |
| <org.eclipse.epf.uma:ContentDescription xmi:version="2.0" |
| xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.5/uma.ecore" |
| xmlns:epf="http://www.eclipse.org/epf" epf:version="1.5.0" xmi:id="-zJrrd5jHHhFAcnOJTOW4rQ" |
| name="cycle_approach,_ftAoIAjrEdyj5bYZ0eCR5g" guid="-zJrrd5jHHhFAcnOJTOW4rQ" authors="Jerome Boyer" |
| changeDate="2008-01-31T13:54:35.882-0800" version="1.0.0"> |
| <copyrightStatement href="uma://_NFyDwAjqEdyj5bYZ0eCR5g#_hRkAkAjqEdyj5bYZ0eCR5g"/> |
| <mainDescription><a id="XE_rules_development__cycle_approach" name="XE_rules_development__cycle_approach"></a> 
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0in">
 |
| The Agile Business Rule&nbsp;Development methodology&nbsp;details all the different activities the project team may
 |
| need to follow to develop a business rule application. Starting from&nbsp;from rule discovery to rule set deployment
 |
| and maintenance, this method helps to develop rule set using an agile, iterative approach. We can group the set of
 |
| activities into five groups. Those groups&nbsp;are used to build an iterative&nbsp;development of each rule set and
 |
| decision service:
 |
| </p>
 |
| <ul>
 |
| <li>
 |
| <div class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| <a href="./../../../abrd/disciplines/rule_discovery_FA7BDF5F.html" guid="_jfdmsAsHEdyPCr4G1Tb79A">Rule
 |
| Discovery</a>
 |
| </div>
 |
| </li>
 |
| <li>
 |
| <div class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| <a href="./../../../abrd/disciplines/rule_analysis_443FDB7.html" guid="_lT6WEBDJEdyJtJ3PbfdVDw">Rule
 |
| Analysis</a>
 |
| </div>
 |
| </li>
 |
| <li>
 |
| <div class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| <a href="./../../../abrd/disciplines/rule_authoring_954E2047.html" guid="_qO63gBDJEdyJtJ3PbfdVDw">Rule
 |
| Authoring</a>
 |
| </div>
 |
| </li>
 |
| <li>
 |
| <div class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| <a href="./../../../abrd/disciplines/rule_validation_EE8F93A2.html" guid="_trBK8BDJEdyJtJ3PbfdVDw">Rule
 |
| Validation</a>
 |
| </div>
 |
| </li>
 |
| <li>
 |
| <div class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| <a class="elementLink" href="./../../../abrd/disciplines/rule_deployment_97D5B5DE.html"
 |
| guid="_5yUT8BDJEdyJtJ3PbfdVDw">Rule Deployment</a><a
 |
| href="./../../../abrd/disciplines/rule_validation_EE8F93A2.html" guid="_trBK8BDJEdyJtJ3PbfdVDw"></a>
 |
| </div>
 |
| </li>
 |
| </ul>
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0in">
 |
| The following diagram represents&nbsp;how&nbsp;the five groups of activities can be executed in a process flow
 |
| using&nbsp;loops to implement short iterations. The rule set will grow following these cycles to get closer to the
 |
| outcome expected by the business.
 |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" />
 |
| <br />
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| <img style="WIDTH: 704px; HEIGHT: 207px" height="193" alt="" src="./resources/life_cycle_horizontal.bmp" width="710" />
 |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" />
 |
| <br />
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| <span
 |
| style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-language: AR-SA; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt">In
 |
| the first loop, between Discovery and Analysis, the team harvests the rules from the business process description, the
 |
| subject matter expert knowledge or any other source. This loop represents the first phase of the rule set
 |
| construction</span>.<br />
 |
| </p>
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| <strong><a class="elementLink" href="./../../../abrd/deliveryprocesses/Cycle%201-%20Harvesting_93DF97D7.html"
 |
| guid="_6I7r4RDDEdyJtJ3PbfdVDw">Cycle 1- Harvesting</a>:</strong>
 |
| </p>
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0in">
 |
| A first phase includes a short time period&nbsp;where the development team splits the day into two parts, executing
 |
| discovery workshop in the morning (2 or 3-hour sessions), then performing some analysis and documentation for the
 |
| remaining of the day. The team iterates on these two steps during 2 to 5 days maximum, depending on the number of rules
 |
| and their complexity.
 |
| </p>
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| <span
 |
| style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-language: AR-SA; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt">The
 |
| goal is to document just enough rules to be able to start the implementation. In addition, this phase aims at
 |
| understanding the object model within the scope of the application and to identify and extract some rule
 |
| patterns</span>.
 |
| </p>
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| &nbsp;<img height="222" alt="" src="./resources/cycle1.bmp" width="242" />
 |
| </p>
 |
| <p>
 |
| <br class="MsoNormal" style="MARGIN: 3pt 0cm" />
 |
| <span
 |
| style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-language: AR-SA; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt">The
 |
| starting point of the Rule Discovery is the</span> <em><span
 |
| style="FONT-SIZE: 10pt; COLOR: #003399; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-language: AR-SA; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US"><a
 |
| class="elementLink" href="./../../../abrd/guidances/templates/decision_point_table_AB877257.html"
 |
| guid="_kRoWgBDFEdyJtJ3PbfdVDw">Decision Point Table</a></span></em><span
 |
| style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-language: AR-SA; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt">:&nbsp;
 |
| During the <a class="elementLink" href="./../../../openup/guidances/concepts/inception_phase_C4456871.html"
 |
| guid="_0hmKgBOMEduCNqgZdt_OaA">Inception Phase</a>&nbsp;(See OpenUP for more information)&nbsp;the project team is
 |
| doing business modeling activities (not covered here) which aim at describing the business process and decisions
 |
| applied to the <a class="elementLink" href="./../../../abrd/guidances/termdefinitions/business_event_559AC1D5.html"
 |
| guid="_4xo4Sgp1EdyPCr4G1Tb79A">business event</a>&nbsp;corresponding to the scope of the business application.&nbsp;One
 |
| important work product built during&nbsp;this modeling phase is the&nbsp;</span><em><span
 |
| style="FONT-SIZE: 10pt; COLOR: #003399; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-language: AR-SA; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US"><span
 |
| style="FONT-SIZE: 10pt; COLOR: #003399; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-language: AR-SA; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US"><a
 |
| class="elementLink" href="./../../../abrd/guidances/templates/decision_point_table_AB877257.html"
 |
| guid="_kRoWgBDFEdyJtJ3PbfdVDw">Decision Point Table</a></span></span></em><em><span
 |
| style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-language: AR-SA; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt">&nbsp;</span></em><span
 |
| style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-language: AR-SA; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt">which
 |
| describes the point in the process (task, activities, transition) where there is a lot of decision points involved
 |
| (test conditions and actions). These decision points represent potential candidate for rule sets</span>
 |
| </p>
 |
| <p>
 |
| <br />
 |
| <strong><a class="elementLink" href="./../../../abrd/deliveryprocesses/Cycle%202-%20Prototyping_CF177184.html"
 |
| guid="_Jd4pYTzGEdyA6a_I80swHw">Cycle 2- Prototyping</a></strong>:
 |
| </p>
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0in">
 |
| Once a certain level of discovery progress is done, the development team should be able to define the structure of the
 |
| rule project: the rule set parameters (input-output business objects), the basic sequencing of the rules, also called
 |
| <i style="mso-bidi-font-style: normal"><a class="elementLink"
 |
| href="./../../../abrd/guidances/termdefinitions/ruleflow_27B05442.html"
 |
| guid="__2sZYBCWEdyJtJ3PbfdVDw">ruleflow</a></i>, and the first major elements of the <a class="elementLink"
 |
| href="./../../../abrd/guidances/templates/bom_6D3FB2B2.html" guid="_sruW0gjqEdyj5bYZ0eCR5g">Business Object Model</a>.
 |
| The team then should be able to already implement some rules.
 |
| </p>
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0in">
 |
| The idea is to execute the step “Rule Authoring” as soon as possible to uncover possible analysis and design issues.
 |
| Indeed, most of the rules look good on paper but real issues arise most of the time during implementation and test. The
 |
| next morning workshop session communicates the issues back to the business team. This leverages the feedback loop
 |
| approach and provides an efficient mechanism to build a pragmatic, adequate and business-relevant executable rule
 |
| set.<span style="mso-spacerun: yes">&nbsp;</span>
 |
| </p>
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| .&nbsp;
 |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" />
 |
| <br />
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| &nbsp;<img height="239" alt="" src="./resources/cycle2.bmp" width="330" />
 |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" />
 |
| <br />
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| The second phase still does discovery and analysis, to complete the rule harvesting.
 |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" />
 |
| <br />
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| <strong><a class="elementLink" href="./../../../abrd/deliveryprocesses/Cycle%203-%20Building_6DDB6C06.html"
 |
| guid="_Qo-YUUXgEdy14e5PT9v3HQ">Cycle 3- Building</a></strong>
 |
| </p>
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0in">
 |
| From our experience based on hundreds of successful implementations of decision-support systems, executable rules are
 |
| more important than the ones defined on paper or in requirement tracking tools in a non-executable form.
 |
| </p>
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| <span
 |
| style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-language: AR-SA; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt">This
 |
| agile statement is at the core of this cycle. Based on a Test-Driven Development (TDD) approach the goal of this phase
 |
| is to implement a set of test scenarios with real or close to real data, to test the rules within their corresponding
 |
| rule sets and their targeted execution context</span>.
 |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" />
 |
| <br />
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| &nbsp;<img height="240" alt="" src="./resources/cycle3.bmp" width="512" />
 |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" />
 |
| <br />
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0in">
 |
| The&nbsp;day-to-day authoring activities can be seen as a set of little steps including&nbsp;test case implementation,
 |
| writing rules, executing them, and doing&nbsp;some validation with the team members.
 |
| </p>
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0in">
 |
| This cycle is still using short daily&nbsp;loops:
 |
| </p>
 |
| <ul style="MARGIN-TOP: 0in" type="disc">
 |
| <li class="MsoNormal" style="MARGIN: 3pt 0in; tab-stops: list .5in; mso-list: l0 level1 lfo1">
 |
| Loop on Authoring and Validation to develop test cases and rules
 |
| </li>
 |
| <li class="MsoNormal" style="MARGIN: 3pt 0in; tab-stops: list .5in; mso-list: l0 level1 lfo1">
 |
| Loop on Analysis, Authoring and Validation to author executable rules, complete the analysis, do some unit testing
 |
| and address/resolve issues.
 |
| </li>
 |
| <li class="MsoNormal" style="MARGIN: 3pt 0in; tab-stops: list .5in; mso-list: l0 level1 lfo1">
 |
| Loop on a bi-daily basis on Discovery, Analysis, Authoring and Validation. The discovery will be used to complete
 |
| the scope of the rule set and address the issues identified during implementation.
 |
| </li>
 |
| </ul>
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0in">
 |
| The cycle 3 should finish after 2 to 3 weeks. The goal is to release the rule set within an integrated development
 |
| build in order to start testing the business application with the decision service. The rule set should only be 40 to
 |
| 60% complete. Business users or rule writers will then elaborate and complete it in cycle 5 (Enhancement). But at the
 |
| end of cycle 3, the Object Model used with the rule should be at least 90% complete, and the project structure should
 |
| be finalized.
 |
| </p>
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| <span
 |
| style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-language: AR-SA; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt">It
 |
| is still possible to execute this cycle multiple times, if the size of the rule set is bigger than what can be done in
 |
| three weeks (exactly 40% of the size of the rule set cannot be done in three weeks).<span
 |
| style="mso-spacerun: yes">&nbsp;</span> In this case, it is recommended to still time-box this cycle to three weeks and
 |
| deliver a concrete build to the QA or validation team for review and execution. Then embark on another build for the
 |
| next 3 weeks.</span><br />
 |
| </p>
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| <span style="mso-spacerun: yes"><strong><a class="elementLink"
 |
| href="./../../../abrd/deliveryprocesses/Cycle%204-%20Integrating_13C589B7.html" guid="_Jv_BsT5VEdyA6a_I80swHw">Cycle 4-
 |
| Integrating</a></strong></span>
 |
| </p>
 |
| <p>
 |
| <span
 |
| style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-language: AR-SA; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt">The&nbsp;goal&nbsp;of
 |
| this cycle is to deploy the rule set under construction to the execution server&nbsp;to test it with an end-to-end
 |
| testing scenario. The integration of the decision service and the&nbsp;domain object model is an important task. Data
 |
| is sent to the rule engine to fire rules and infer decisions. During the previous phases the development team develops
 |
| a set of test scenarios with realistic or real data which will trigger rule execution. Those test scenarios will be
 |
| executed during the integration phase to support end to end testing. In the future they will serve as non-regression
 |
| test suite.</span>
 |
| </p>
 |
| <p>
 |
| &nbsp;<img height="160" alt="" src="./resources/cycle4.bmp" width="208" />
 |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" />
 |
| <br class="MsoNormal" style="MARGIN: 3pt 0cm" />
 |
| <br />
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| <strong><a class="elementLink" href="./../../../abrd/deliveryprocesses/Cycle%205-%20Enhancing_41EF2FB1.html"
 |
| guid="_06x9gUXgEdy14e5PT9v3HQ">Cycle 5- Enhancing</a></strong>
 |
| </p>
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0in">
 |
| It can be seen as a more mature phase where the goal is to&nbsp;complete the rule set, and to maintain it.
 |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" />
 |
| <br />
 |
| <br class="MsoNormal" style="MARGIN: 3pt 0cm" />
 |
| <br />
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| &nbsp;<img height="188" alt="" src="./resources/cycle5.bmp" width="600" />
 |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" />
 |
| <br />
 |
| <br class="MsoNormal" style="MARGIN: 3pt 0cm" />
 |
| <p class="isisguidance" style="MARGIN: 3pt 0in">
 |
| <span
 |
| style="COLOR: windowtext; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt">It
 |
| includes authoring, validation and deployment. It is still possible to do some short face-to-face discovery activities
 |
| with the Subject Matter Expert to address and wrap-up some issues and questions. But with this approach, the team
 |
| responsible for maturing the rule set to close to 100% coverage can be another team than the initial development one.
 |
| This team is more business-oriented. As owners of the rule set and the business policies, they can develop at their own
 |
| pace as they have all of the core infrastructure implemented by the development team.</span>
 |
| </p>
 |
| <p class="isisguidance" style="MARGIN: 3pt 0in">
 |
| <span
 |
| style="COLOR: windowtext; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt">It
 |
| is important to note that there will be some needs to enhance the object model or physical data model to add some new
 |
| facts, attributes, or entities.&nbsp;Those modifications will follow the standard release management process of the
 |
| core business application.</span>
 |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" />
 |
| <strong>Summary</strong><br />
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| <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; mso-bidi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt">This
 |
| phase approach has&nbsp;many advantages in driving the development process of a Rule Set. It involves all the key
 |
| stakeholders and prepares for the future maintenance. As a business application using a rule engine is, per design,
 |
| very agile and supportive of changes, the analysts team needs to understand early in the development process how the
 |
| components exposed to the rule engine work together, how to change, add, remove rules, how to deploy them...</span>
 |
| </p><br />
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| <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; mso-bidi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt">In
 |
| parallel of these Rule Set development activities the software architect develops the <a
 |
| href="./../../../abrd/guidances/termdefinitions/decision_service_6C51F997.html" guid="_M0nWsAsYEdyPCr4G1Tb79A">Decision
 |
| Service</a>&nbsp;integrated into the core business application. This decision service will use the Rule Sets
 |
| developed.</span>
 |
| </p></mainDescription> |
| </org.eclipse.epf.uma:ContentDescription> |