blob: 149e0ab3073ebf4c7050c9dd9cb3fb4cac3f37e8 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:TaskDescription 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="-QyQxGy-JR3YceDG_VUN5aw"
name="execute_rule_discovery_roadmap,_sruW3AjqEdyj5bYZ0eCR5g" guid="-QyQxGy-JR3YceDG_VUN5aw"
authors="Jerome Boyer" changeDate="2008-09-05T09:39:11.467-0700" version="1.0.0">
<mainDescription>&lt;p>&#xD;
Rule elicitation is an ongoing activity you perform throughout the project. Collaboration with your stakeholders is&#xD;
critical. They will change their minds as the project proceeds and that’s perfectly fine.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
The documentation of the rule may be done using different language. The natural language is initially used during&#xD;
business conversations to describe the rule, informally, without trying to impose any structure. SMEs express their&#xD;
ideas using a language very close to them, but they usually are not able to formalize their concepts in a clear and&#xD;
unambiguous way. Using this language we may have redundancy and inconstancy in the rule ex-pression, in the business&#xD;
terms, and overall by it may not be relevant and precise enough to be able to implement the decision logic.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
Conceptualization and representation play fundamental roles in thinking, communicating, and modeling.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
A second evolution is still in natural language, and is still consumable by both analysts and developers, but, we have&#xD;
imposed some structure, and we made sure that they are relevant and have the right form, but may not be correct&#xD;
semantically. We use the rule description template to log the rule.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
The last type of expressiveness of the language to document the rule is precise and there are no ambiguities: the rule&#xD;
refers exactly to information system objects. This language is parsable and non-ambiguous. Semantics of Business&#xD;
Vocabulary and Business Rules or SBVR from Object Management Group can be used at this stage to specify formally&#xD;
representations of concepts, definitions, instances, and rules&amp;nbsp;in natural language.&#xD;
&lt;/p></mainDescription>
<sections xmi:id="_sruW4QjqEdyj5bYZ0eCR5g" name="Discover rule from Subject Matter Expert"
guid="_sruW4QjqEdyj5bYZ0eCR5g">
<sectionDescription>Discover rules from Subject Matter Expert using workshop sessions. There are two types of interactions: interviews and&#xD;
analysis workshop. For interview the typical number of people in the same room is around two or three. Workshop implies a&#xD;
bigger logistic with six to ten persons involved.&lt;span style=&quot;mso-bidi-language: HE&quot;>The requirements workshop is perhaps&#xD;
the most powerful technique for eliciting requirements. It gathers all key stakeholders together for a short but intensely&#xD;
focused period. The use of an outside facilitator experienced in requirements management can ensure the success of the&#xD;
workshop. Brainstorming is the most efficient techniques used during the sessions.&lt;/span></sectionDescription>
</sections>
<sections xmi:id="_sruW4AjqEdyj5bYZ0eCR5g" name="Discover rule from documentation"
guid="_sruW4AjqEdyj5bYZ0eCR5g">
<sectionDescription>&lt;p>&#xD;
Discover rules from legal document or from policies description. When using electronic document annotate it on anything&#xD;
that needs some future discussion, copy and paste the business policy to the rule template to clearly isolate it for&#xD;
future analysis.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
&lt;span&#xD;
style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-language: AR-SA; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US&quot;>One&#xD;
risk with this approach is that the reader is making his own interpretation of the context, the document may not&#xD;
include all the cases and rules, it is some time difficult to get some of the business motivation.&lt;/span>&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
So we recommend a strong discipline to be able to achieve the following goal:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
&lt;li>&#xD;
Get an exhaustive list of the business events under scope: log them in a table&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
Get the activities, tasks, processes that support the processing of those business events&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
Get the business motivation behind the rules&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
Get explanation on rule if they are unclear, ambiguous.&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
Try to extract the object model under scope, domain values&#xD;
&lt;/li>&#xD;
&lt;/ul></sectionDescription>
</sections>
<sections xmi:id="_sruW3gjqEdyj5bYZ0eCR5g" name="Discover rule from code" guid="_sruW3gjqEdyj5bYZ0eCR5g">
<sectionDescription>&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 3pt 0cm&quot;>&#xD;
&lt;span style=&quot;mso-bidi-font-size: 10.0pt; mso-bidi-font-family: Arial&quot;>Discover rules from current application code.&#xD;
This elicitation method is time consuming and does not lead to great results. The analyst needs to study a lot of line&#xD;
of codes, and procedures (most of the time in old computer language) to find some if statement that are linked to&#xD;
business decision. Depending of the design and code structure of the application this work can take time. It is&#xD;
important to do not forget the context of execution of the application when the if statement is executed, some&#xD;
variables have can be set that may change the implemented &quot;business rules&quot;. The different variable names set for a&#xD;
concept may lead to difficulties to understand a rule.&lt;/span>&#xD;
&lt;/p>&#xD;
&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 3pt 0cm&quot;>&#xD;
&lt;span style=&quot;mso-bidi-font-size: 10.0pt; mso-bidi-font-family: Arial&quot;>Code mining tools exist on the market which help&#xD;
to extract if statement and the variables meaning. It is important to keep in mind that rule written in the past may&#xD;
not be relevant any more.&lt;/span>&#xD;
&lt;/p></sectionDescription>
</sections>
<sections xmi:id="_sruW3QjqEdyj5bYZ0eCR5g" name="Document the business rules with some first level of meta data"
guid="_sruW3QjqEdyj5bYZ0eCR5g">
<sectionDescription>&lt;p>&#xD;
Use template for writing rule description during the discovery phase.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
&lt;span style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Arial&quot;>&lt;span&#xD;
style=&quot;mso-bidi-font-size: 10.0pt; mso-bidi-font-family: Arial; mso-bidi-font-weight: bold&quot;>To document the rule try to&#xD;
use the language of the business (&quot;problem domain&quot;) rather than the language of the technology (&quot;solution&#xD;
domain&quot;)&lt;/span>&lt;/span>&#xD;
&lt;/p>&#xD;
&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0cm 0cm 0pt; tab-stops: 54.0pt&quot;>&#xD;
&lt;span style=&quot;mso-bidi-font-size: 10.0pt; mso-bidi-font-family: Arial&quot;>The following rule is as stated by a business&#xD;
user in a car rental industry:&lt;/span>&#xD;
&lt;/p>&#xD;
&lt;div&#xD;
style=&quot;BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 3pt; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 0cm; MARGIN-LEFT: 36pt; BORDER-LEFT: gray 1.5pt solid; MARGIN-RIGHT: 0cm; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none; mso-element: para-border-div&quot;>&#xD;
&lt;p class=&quot;ISISCodeParagraph&quot; style=&quot;BACKGROUND: #f3f3f3; MARGIN: 6pt 0cm; mso-add-space: auto&quot;>&#xD;
&lt;font face=&quot;Courier&quot;>“Each driver authorized to drive a car of group K must be over 29”&lt;/font>&#xD;
&lt;/p>&#xD;
&lt;/div>&lt;br class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0cm 0cm 0pt&quot; />&#xD;
&lt;br />&#xD;
&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0cm 0cm 0pt&quot;>&#xD;
&lt;span style=&quot;mso-bidi-font-size: 10.0pt; mso-bidi-font-family: Arial&quot;>A rule developer may better think to document the&#xD;
rule as&lt;/span>&#xD;
&lt;/p>&#xD;
&lt;div&#xD;
style=&quot;BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 3pt; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 0cm; MARGIN-LEFT: 36pt; BORDER-LEFT: gray 1.5pt solid; MARGIN-RIGHT: 0cm; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none; mso-element: para-border-div&quot;>&#xD;
&lt;p class=&quot;ISISCodeParagraph&quot; style=&quot;BACKGROUND: #f3f3f3; MARGIN: 6pt 0cm; mso-add-space: auto&quot;>&#xD;
&lt;font face=&quot;Courier&quot;>If the age of the driver is less than 29 and the requested group of the reservation is K,&#xD;
modify the authorized attribute of the driver accordingly&lt;/font>&#xD;
&lt;/p>&#xD;
&lt;/div></sectionDescription>
</sections>
<purpose>Discover the business rules from the different sources</purpose>
</org.eclipse.epf.uma:TaskDescription>