<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:RoleDescription 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="--6iEQW4eBPeK20vzxlDBMQ"
    name="subject_matter_expert,_e5BXwBtcEdu_BZ3CL1I6hw" guid="--6iEQW4eBPeK20vzxlDBMQ"
    authors="Jerome Boyer" changeDate="2008-01-22T22:25:58.950-0800" version="1.0.0">
  <mainDescription>&lt;a id=&quot;XE_subject_matter_expert&quot; name=&quot;XE_subject_matter_expert&quot;>&lt;/a>&lt;a id=&quot;XE_SME&quot; name=&quot;XE_SME&quot;>&lt;/a> &#xD;
&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt&quot;>&#xD;
    The SME has the following responsibilities:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;div class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt&quot;>&#xD;
            Support the definition of business processes&#xD;
        &lt;/div>&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;div class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt&quot;>&#xD;
            Determine and manage the implementation of a business policy, generally by providing&#xD;
        &lt;/div>&#xD;
        &lt;ul>&#xD;
            &lt;li>&#xD;
                &lt;div class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt&quot;>&#xD;
                    the contents for the business rules that enforce the policy and&#xD;
                &lt;/div>&#xD;
            &lt;/li>&#xD;
            &lt;li>&#xD;
                &lt;div class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt&quot;>&#xD;
                    the process contexts in which the rules are applied.&#xD;
                &lt;/div>&#xD;
            &lt;/li>&#xD;
        &lt;/ul>&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;div class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt&quot;>&#xD;
            Oversee the execution of that policy via business rules applied. Such oversight includes confirming that the&#xD;
            implemented rules fully and faithfully correspond to the intended policy.&#xD;
        &lt;/div>&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;div class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt&quot;>&#xD;
            Once Rule Writers have created the first set of rules, the SME reviews the rules, and the rule flow to give&#xD;
            feedbacks on the logic and pattern used.&#xD;
        &lt;/div>&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;div class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt&quot;>&#xD;
            Review the results of testing and simulation&#xD;
        &lt;/div>&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;div class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt&quot;>&#xD;
            Manage business vocabulary&#xD;
        &lt;/div>&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;div class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt&quot;>&#xD;
            Resolve business issues relating to business rule execution.&#xD;
        &lt;/div>&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;div class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt&quot;>&#xD;
            Be accountable for the quality of the business rule&#xD;
        &lt;/div>&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;div class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt&quot;>&#xD;
            Approve major changes to business rule&#xD;
        &lt;/div>&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p class=&quot;MsoNormal&quot; style=&quot;MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt&quot;>&#xD;
    In term of skill and competencies,&amp;nbsp;the&amp;nbsp;Subject matter Expert&amp;nbsp;has a strong business knowledge and&#xD;
    experience, some management skill, effective communication, leadership, decision making skills.&#xD;
&lt;/p></mainDescription>
</org.eclipse.epf.uma:RoleDescription>
