<?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.6/uma.ecore" xmlns:rmc="http://www.ibm.com/rmc" rmc:version="7.5.1" xmlns:epf="http://www.eclipse.org/epf" epf:version="1.5.1" xmi:id="-UMwO0Odv_iQVxPV40lG2kA" name="new_guideline,__I8S0D2kEd-lU6YVR9_PJQ" guid="-UMwO0Odv_iQVxPV40lG2kA" changeDate="2011-10-10T10:16:03.667-0700" version="7.5.0">
  <mainDescription>&lt;h3>&#xD;
    General Naming Conventions&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
    This guidance provides general information on naming method elements.&amp;nbsp; For method element-specific naming&#xD;
    guidance, see the attached guidance.&#xD;
&lt;/p>&#xD;
&lt;h5>&#xD;
    Abbreviations&#xD;
&lt;/h5>&#xD;
&lt;p>&#xD;
    It is a good practice is to provide a list of approved abbreviations for your project.&amp;nbsp;Using a standard set of&#xD;
    abbreviations simplifies searches for not only the method authoring team, but also for users of your published web&#xD;
    site.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Name fields&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Most method elements have two name fields:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        The&amp;nbsp;&lt;strong>Name&lt;/strong> is always present since it is the internal name&amp;nbsp;for the element.&lt;br />&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        The &lt;strong>Presentation Name&lt;/strong> is present for some elements; it is the name&amp;nbsp;displayed in the published&#xD;
        web site for the element. Thus, a friendly name&amp;nbsp;should be used.&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
    General naming guidelines&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    In general, all method elements should following the following recommendations:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        Name should reflect the essence of the element&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Where an element has both a name and a Presentation Name field, try to name them consistently (though abbreviations&#xD;
        may be used in the internal name)&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Abbreviations should be either very common to the plug-in domain (for example, J2EE for Java 2 Enterprise Edition)&#xD;
        or they should be taken out of a list of common abbreviations for the project. If abbreviations are not&#xD;
        standardized, it is very likely that similar but not quite identical abbreviations will occur here and there,&#xD;
        introducing confusion and errors later on&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
    For general guidelines on naming variants, see the section on that topic later in this guideline.&lt;br />&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Method element-specific naming guidelines&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Table 1 provides element-specific guidelines for naming the different types of method elements.&amp;nbsp;&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    &lt;strong>Table 1: Method Element Naming Conventions&lt;/strong>&lt;br />&#xD;
    &lt;br />&#xD;
&lt;/p>&#xD;
&lt;table id=&quot;table3&quot; border=&quot;1&quot;>&#xD;
    &lt;tbody>&#xD;
        &lt;tr align=&quot;middle&quot;>&#xD;
            &lt;td width=&quot;20%&quot;>&#xD;
                &lt;strong>Element&lt;/strong>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;25%&quot;>&#xD;
                &lt;strong>Guideline&lt;/strong>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;55%&quot;>&#xD;
                &lt;strong>Reason&lt;/strong>&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td width=&quot;20%&quot;>&#xD;
                Plug-in&#xD;
            &lt;/td>&#xD;
            &lt;td valign=&quot;top&quot; width=&quot;30%&quot;>&#xD;
                &lt;ul>&#xD;
                    &lt;li>&#xD;
                        use&amp;nbsp; internal name&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use friendly name&amp;nbsp;for the Presentation name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        Omit the word &quot;plug-in&quot; in the names (it is redundant)&#xD;
                    &lt;/li>&#xD;
                &lt;/ul>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;50%&quot;>&#xD;
                &lt;p>&#xD;
                    The value&amp;nbsp;of the&amp;nbsp;Name field determines the directory name used in the file&#xD;
                    system.&amp;nbsp;&amp;nbsp;&#xD;
                &lt;/p>&#xD;
                &lt;p>&#xD;
                    Compound names, separated by periods, can be used in the Name field to organize the list of plug-ins in&#xD;
                    the library view to make them easier to navigate for process authors.&amp;nbsp;&#xD;
                &lt;/p>&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td width=&quot;20%&quot;>&#xD;
                &lt;p>&#xD;
                    Method content package&#xD;
                &lt;/p>&#xD;
            &lt;/td>&#xD;
            &lt;td valign=&quot;top&quot; width=&quot;30%&quot;>&#xD;
                &lt;ul>&#xD;
                    &lt;li>&#xD;
                        use&amp;nbsp; internal name&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use friendly name&amp;nbsp;for the Presentation name field&#xD;
                    &lt;/li>&#xD;
                &lt;/ul>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;50%&quot;>&#xD;
                &lt;p>&#xD;
                    Method content package names are displayed when viewing the method library. They are also the elements&#xD;
                    that users can choose to include or exclude from their configurations. Thus, these names need to be&#xD;
                    easy to understand and&amp;nbsp;self-explanatory.&#xD;
                &lt;/p>&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td width=&quot;20%&quot;>&#xD;
                &lt;p>&#xD;
                    Process package&#xD;
                &lt;/p>&#xD;
            &lt;/td>&#xD;
            &lt;td valign=&quot;top&quot; width=&quot;30%&quot;>&#xD;
                &lt;ul>&#xD;
                    &lt;li>&#xD;
                        use friendly name&amp;nbsp;friendly name&amp;nbsp;for Name field (process&amp;nbsp;packages only have a single&#xD;
                        name field)&#xD;
                    &lt;/li>&#xD;
                &lt;/ul>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;50%&quot;>&#xD;
                &lt;p>&#xD;
                    Process package names are displayed when viewing the method library. They are also the elements that&#xD;
                    users can choose to include or exclude from their configurations. Thus, these names should be easy to&#xD;
                    understand and&amp;nbsp;self-explanatory.&#xD;
                &lt;/p>&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td width=&quot;20%&quot;>&#xD;
                Standard category&#xD;
            &lt;/td>&#xD;
            &lt;td valign=&quot;top&quot; width=&quot;30%&quot;>&#xD;
                &lt;ul class=&quot;noindent&quot;>&#xD;
                    &lt;li>&#xD;
                        use internal name&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use friendly name&amp;nbsp;for the Presentation name field&#xD;
                    &lt;/li>&#xD;
                &lt;/ul>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;50%&quot;>&#xD;
                &lt;p>&#xD;
                    Standard Category names are displayed when viewing the method library. They are also the elements that&#xD;
                    users can choose to include or exclude from their configurations, as well as to include or exclude from&#xD;
                    other custom categories. Thus, these names should be easy to understand and&amp;nbsp;self-explanatory.&#xD;
                &lt;/p>&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td width=&quot;20%&quot;>&#xD;
                Custom category&#xD;
            &lt;/td>&#xD;
            &lt;td valign=&quot;top&quot; width=&quot;30%&quot;>&#xD;
                &lt;ul class=&quot;noindent&quot;>&#xD;
                    &lt;li>&#xD;
                        use internal name&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use friendly name&amp;nbsp;for the Presentation name field&#xD;
                    &lt;/li>&#xD;
                &lt;/ul>&#xD;
                &lt;p>&#xD;
                    If the custom category is to be used for a navigation view, include &quot;view&quot; in both name fields.&amp;nbsp;&#xD;
                &lt;/p>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;50%&quot;>&#xD;
                &lt;p>&#xD;
                    Custom Category names are displayed when viewing the method library. They are also the elements that&#xD;
                    users can choose to include or exclude from their configurations, as well as to include or exclude from&#xD;
                    other custom categories. Thus, these names should be easy to understand and&amp;nbsp;self-explanatory.&#xD;
                &lt;/p>&#xD;
                &lt;p>&#xD;
                    The Presentation name of a custom category that is used as a navigation view&amp;nbsp;is also used as the&#xD;
                    name of the tab that is published for that view.&#xD;
                &lt;/p>&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td width=&quot;20%&quot;>&#xD;
                Configuration&#xD;
            &lt;/td>&#xD;
            &lt;td valign=&quot;top&quot; width=&quot;30%&quot;>&#xD;
                &lt;ul>&#xD;
                    &lt;li>&#xD;
                        use internal name&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use friendly name&amp;nbsp;for the Presentation name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        Omit the word &quot;configuration&quot; in the names (it is redundant)&#xD;
                    &lt;/li>&#xD;
                &lt;/ul>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;50%&quot;>&#xD;
                &lt;p>&#xD;
                    The Name field determines the file name used in the file system.&amp;nbsp;&#xD;
                &lt;/p>&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td width=&quot;20%&quot;>&#xD;
                Role&#xD;
            &lt;/td>&#xD;
            &lt;td valign=&quot;top&quot; width=&quot;30%&quot;>&#xD;
                &lt;ul>&#xD;
                    &lt;li>&#xD;
                        use internal name&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use friendly name&amp;nbsp;for the Presentation name field&#xD;
                    &lt;/li>&#xD;
                &lt;/ul>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;50%&quot;>&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td width=&quot;20%&quot;>&#xD;
                Task&#xD;
            &lt;/td>&#xD;
            &lt;td valign=&quot;top&quot; width=&quot;30%&quot;>&#xD;
                &lt;ul>&#xD;
                    &lt;li>&#xD;
                        use internal name&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use friendly name&amp;nbsp;for the Presentation name field&#xD;
                    &lt;/li>&#xD;
                &lt;/ul>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;50%&quot;>&#xD;
                &lt;p>&#xD;
                    Task names should form a verb object phrase. The verb should be carefully chosen to ensure that the&#xD;
                    action to be performed is clear to the practitioner. For a list of acceptable verbs, see the&#xD;
                    &quot;Acceptable Verbs&quot; table in a later section.&amp;nbsp; The object should be closely related to the output&#xD;
                    work product.&#xD;
                &lt;/p>&#xD;
                &lt;blockquote style=&quot;MARGIN-RIGHT: 0px&quot; dir=&quot;ltr&quot;>&#xD;
                    &lt;p>&#xD;
                        For example:&amp;nbsp; Define Test Specification&lt;br />&#xD;
                        &quot;Define&quot; is the verb and means &quot;to determine the essential qualities&quot;. (see Table 2). &quot;Test&#xD;
                        Specification&quot; is the main output work product for the task.&#xD;
                    &lt;/p>&#xD;
                &lt;/blockquote>&#xD;
                &lt;p dir=&quot;ltr&quot;>&#xD;
                    Alternatively, the task name may reflect the objective of performing the task, instead of being closely&#xD;
                    related to the output work product.&#xD;
                &lt;/p>&#xD;
                &lt;blockquote style=&quot;MARGIN-RIGHT: 0px&quot; dir=&quot;ltr&quot;>&#xD;
                    &lt;p dir=&quot;ltr&quot;>&#xD;
                        For example: Plan the Project.&#xD;
                    &lt;/p>&#xD;
                &lt;/blockquote>&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td width=&quot;20%&quot;>&#xD;
                Work product: Artifact&#xD;
            &lt;/td>&#xD;
            &lt;td valign=&quot;top&quot; width=&quot;30%&quot;>&#xD;
                &lt;ul>&#xD;
                    &lt;li>&#xD;
                        use internal name&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use friendly name&amp;nbsp;for the Presentation name field&#xD;
                    &lt;/li>&#xD;
                &lt;/ul>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;50%&quot;>&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td width=&quot;20%&quot;>&#xD;
                Work product: Deliverable&#xD;
            &lt;/td>&#xD;
            &lt;td valign=&quot;top&quot; width=&quot;30%&quot;>&#xD;
                &lt;ul>&#xD;
                    &lt;li>&#xD;
                        use internal name&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use friendly name&amp;nbsp;for the Presentation name field&#xD;
                    &lt;/li>&#xD;
                &lt;/ul>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;50%&quot;>&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td width=&quot;20%&quot;>&#xD;
                Work product: Outcome&#xD;
            &lt;/td>&#xD;
            &lt;td valign=&quot;top&quot; width=&quot;30%&quot;>&#xD;
                &lt;ul>&#xD;
                    &lt;li>&#xD;
                        use internal name&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use friendly name&amp;nbsp;for the Presentation name field&#xD;
                    &lt;/li>&#xD;
                &lt;/ul>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;50%&quot;>&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td width=&quot;20%&quot;>&#xD;
                Guidance&#xD;
            &lt;/td>&#xD;
            &lt;td valign=&quot;top&quot; width=&quot;30%&quot;>&#xD;
                &lt;ul>&#xD;
                    &lt;li>&#xD;
                        use internal name&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use friendly name&amp;nbsp;for the Presentation name field&#xD;
                    &lt;/li>&#xD;
                &lt;/ul>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;50%&quot;>&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td width=&quot;20%&quot;>&#xD;
                Capability pattern&#xD;
            &lt;/td>&#xD;
            &lt;td valign=&quot;top&quot; width=&quot;30%&quot;>&#xD;
                &lt;ul>&#xD;
                    &lt;li>&#xD;
                        use internal name&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use friendly name&amp;nbsp;for the Presentation name field&#xD;
                    &lt;/li>&#xD;
                &lt;/ul>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;50%&quot;>&#xD;
                &lt;br />&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td width=&quot;20%&quot;>&#xD;
                Delivery process&#xD;
            &lt;/td>&#xD;
            &lt;td valign=&quot;top&quot; width=&quot;30%&quot;>&#xD;
                &lt;ul>&#xD;
                    &lt;li>&#xD;
                        use internal name&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use friendly name&amp;nbsp;for the Presentation name field&#xD;
                    &lt;/li>&#xD;
                &lt;/ul>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;50%&quot;>&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
    &lt;/tbody>&#xD;
&lt;/table>&lt;br />&#xD;
&lt;br />&#xD;
&lt;h4>&#xD;
    Acceptable verbs&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Table 2 provides a starter set of verbs. Method authors may add verbs but they should do so in such a way that avoids&#xD;
    duplication. If a new verb is created, ensure that the definition of what it means is included in the configuration.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    &lt;strong>Table 2: Acceptable Verbs&lt;/strong>&lt;br />&#xD;
&lt;/p>&#xD;
&lt;table id=&quot;table4&quot; border=&quot;1&quot; width=&quot;100%&quot;>&#xD;
    &lt;tbody>&#xD;
        &lt;tr>&#xD;
            &lt;td width=&quot;20%&quot;>&#xD;
                &lt;strong>Verb&lt;/strong>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;60%&quot;>&#xD;
                &lt;strong>Meaning&lt;/strong>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;20%&quot;>&#xD;
                &lt;strong>Comments&lt;/strong>&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Acquire&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To come into possession of&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Analyze&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To determine the relationship of component parts&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Assemble&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To fit parts together&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                Especially useful for deliverables&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Assess&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To make a judgment of worth&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Assign&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To appoint to a post or duty&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Build&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To construct by putting parts or materials together&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Capture&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To document&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Categorize&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To analyze and group according to a particular criteria&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Cleanse&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To purify&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Communicate&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To transmit information so that it is understood&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Conduct&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To direct or manage&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Configure&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To set up for operation&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Confirm&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To verify that you have what's needed&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Define&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To determine the essential qualities&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Detail&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To provide the details for an outlined artifact&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Develop&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To bring to maturity;&amp;nbsp; to provide a more specific definition&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Elicit&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To draw out or evoke&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Enable&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To make operational&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Estimate&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To judge approximate value&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Evaluate&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To determine significance or worth&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Gather&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To bring together into one collection&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Gather&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To locate and bring together&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Identify&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To establish identity&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Implement&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To fulfill; to realize&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Initiate&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To facilitate the beginning&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Install&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To place in position of use&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Manage&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To direct or supervise&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Obtain&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To get or attain by planned action or effort&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Outline&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To describe key elements&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Perform&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To do&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Plan&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To describe objectives, as well as a sequence and deadline for reaching a goal; to specify how to reach a&#xD;
                goal&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Prepare&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To make ready&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Prioritize&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To set priorities&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Receive&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To &lt;span&#xD;
                style=&quot;FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA&quot;>acquire,&#xD;
                come into possession&lt;/span>&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Reconcile&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To check against another for accuracy and make them match&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Release&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To make available for use&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Review&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To examine carefully, looking for errors, omissions, ambiguity, inconsistency&amp;nbsp;&amp;nbsp;&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Run&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To perform, generally by executing a program on a computer&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Select&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To choose&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Specify&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To name or state explicitly or in detail&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Ship&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To transport an item&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Train&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To teach a task or job&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Understand&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To comprehend meaning&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Validate&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To confirm that a solution or process is correct&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td>&#xD;
                Verify&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                To ensure correctness according to specific criteria&#xD;
            &lt;/td>&#xD;
            &lt;td>&#xD;
                &amp;nbsp;&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
    &lt;/tbody>&#xD;
&lt;/table>&lt;br />&#xD;
&lt;br />&#xD;
Do not use &lt;em>leverage&lt;/em> because it is marketing jargon and also outdated jargon. We avoid jargon because it always&#xD;
becomes outdated and doesn't translate accurately.&lt;br />&#xD;
&lt;br />&#xD;
&lt;h4>&#xD;
    Naming method variants&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    This section provides specific recommendations on how to name elements that have a variability relationship to another&#xD;
    element.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    The following table provides guidance about naming specific variants.&#xD;
&lt;/p>&#xD;
&lt;table id=&quot;table3&quot; border=&quot;1&quot;>&#xD;
    &lt;tbody>&#xD;
        &lt;tr align=&quot;middle&quot;>&#xD;
            &lt;td width=&quot;20%&quot;>&#xD;
                &lt;strong>Element&lt;/strong>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;25%&quot;>&#xD;
                &lt;strong>Guideline&lt;/strong>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;55%&quot;>&#xD;
                &lt;strong>Reason&lt;/strong>&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td width=&quot;20%&quot;>&#xD;
                &lt;strong>Base element&lt;/strong>&#xD;
            &lt;/td>&#xD;
            &lt;td valign=&quot;top&quot; width=&quot;30%&quot;>&#xD;
                &lt;ul>&#xD;
                    &lt;li>&#xD;
                        use internal name&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use friendly name&amp;nbsp;for the Presentation Name field&amp;nbsp;&#xD;
                    &lt;/li>&#xD;
                &lt;/ul>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;50%&quot;>&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td width=&quot;20%&quot;>&#xD;
                &lt;strong>Contributor&lt;/strong>&#xD;
            &lt;/td>&#xD;
            &lt;td valign=&quot;top&quot; width=&quot;30%&quot;>&#xD;
                &lt;ul>&#xD;
                    &lt;li>&#xD;
                        use internal name&amp;nbsp;for the Name field &#xD;
                        &lt;ul>&#xD;
                            &lt;li>&#xD;
                                use exactly the same name as the element to which the contribution is being made&#xD;
                            &lt;/li>&#xD;
                            &lt;li>&#xD;
                                add a suffix that identifies the plug-in providing the contribution&#xD;
                            &lt;/li>&#xD;
                            &lt;li>&#xD;
                                if there are multiple contributions to the same element from different packages in the same&#xD;
                                plug-in, it may also be necessary to identify the content package in the suffix&#xD;
                            &lt;/li>&#xD;
                            &lt;li>&#xD;
                                the suffix should be distinct from the name. Use a period (.) to separate a suffix from the&#xD;
                                name&lt;br />&#xD;
                            &lt;/li>&#xD;
                        &lt;/ul>&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        leave&amp;nbsp;Presentation Name field blank (it is inherited)&#xD;
                    &lt;/li>&#xD;
                &lt;/ul>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;50%&quot;>&#xD;
                &lt;p>&#xD;
                    Do not specify a presentation name for contributing elements because&amp;nbsp;it is inherited from the base&#xD;
                    element.&#xD;
                &lt;/p>&#xD;
                &lt;p>&#xD;
                    The Method Composer tool often provides an indication of the variability type, the content element&#xD;
                    affected and the plug-in containing the content element affected. It does not do so everywhere,&#xD;
                    especially in search dialogs. Thus, it is recommended to use the same name as the base as the first&#xD;
                    part of the name and then include a post-fix to help clarify the plug-in or content package that&#xD;
                    contains the variant.&#xD;
                &lt;/p>&#xD;
                &lt;p>&#xD;
                    To aid in distinguishing between different contributors and the base element, it is a good idea to name&#xD;
                    contributors differently from the base element.&#xD;
                &lt;/p>&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td width=&quot;20%&quot;>&#xD;
                &lt;strong>Replacement&lt;/strong>&#xD;
            &lt;/td>&#xD;
            &lt;td valign=&quot;top&quot; width=&quot;30%&quot;>&#xD;
                &lt;ul class=&quot;noindent&quot;>&#xD;
                    &lt;li>&#xD;
                        use internal name&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use friendly name&amp;nbsp;for the Presentation name field&#xD;
                    &lt;/li>&#xD;
                &lt;/ul>&#xD;
                &lt;p>&#xD;
                    Note:&amp;nbsp; If the presentation name of the replacement is identical to the element that it replaces,&#xD;
                    then follow the naming convention for naming a contributor.&#xD;
                &lt;/p>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;50%&quot;>&#xD;
                A &lt;em>replacing element&lt;/em> replaces the original and results in a new element; therefore, follow the&#xD;
                conventions for naming a new element. If you are not changing the presentation name, follow the naming&#xD;
                convention for naming a contributor.&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
        &lt;tr>&#xD;
            &lt;td width=&quot;20%&quot;>&#xD;
                &lt;strong>Extension&lt;/strong>&#xD;
            &lt;/td>&#xD;
            &lt;td valign=&quot;top&quot; width=&quot;30%&quot;>&#xD;
                &lt;ul>&#xD;
                    &lt;li>&#xD;
                        use internal name&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use friendly name&amp;nbsp;for the Presentation Name field&#xD;
                    &lt;/li>&#xD;
                &lt;/ul>&#xD;
            &lt;/td>&#xD;
            &lt;td width=&quot;50%&quot;>&#xD;
                &lt;p>&#xD;
                    An extending element is a new element.&amp;nbsp; Thus, the name of an extending element should be different&#xD;
                    from the element being extended.&#xD;
                &lt;/p>&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
    &lt;/tbody>&#xD;
&lt;/table>&#xD;
&lt;h4>&#xD;
    UMF naming conventions&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    The Unified Method Framework (UMF)&amp;nbsp;defines a naming convention for each library element: &lt;a class=&quot;elementLink&quot;&#xD;
    href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/method_plugin_190B9F5E.html&quot;&#xD;
    guid=&quot;_D4TLgMaGEduMlb2cQZNTYw&quot;>method plug-in&lt;/a>s, &lt;a class=&quot;elementLink&quot;&#xD;
    href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/method_configuration_C2B8FA8A.html&quot;&#xD;
    guid=&quot;__V7pAMaEEduMlb2cQZNTYw&quot;>method configuration&lt;/a>s, plug-in projects, configuration projects and tag groups.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    The UMF naming convention divides the element names into name parts, where each name part is separated by a dot&#xD;
    (‘.').&amp;nbsp;For example, the plug-in name &quot;core.tech.com.base&quot; has&amp;nbsp;four name parts.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    The benefits of UMF's naming convention is that it takes advantage of Method Composer support for a hierarchical&#xD;
    library view where a new level is introduced for each name part. The resulting hierarchy is defined to optimize&#xD;
    configuration of the method.&amp;nbsp;The most important categorization for someone configuring the process is listed&#xD;
    first: the plug-in or configuration type.&amp;nbsp; Licensing level is applied as a suffix and no suffix means open source&#xD;
    (in other words, open source method elements do not have a licensing level suffix).&#xD;
&lt;/p>&#xD;
&lt;h5>&#xD;
    UMF plug-in naming conventions&#xD;
&lt;/h5>&#xD;
&lt;p>&#xD;
    UMF plug-in naming convention: &amp;lt;&lt;strong>plug-in&#xD;
    type&lt;/strong>&amp;gt;.[&amp;lt;&lt;strong>context&lt;/strong>&amp;gt;].&amp;lt;&lt;strong>descriptive name&lt;/strong>&amp;gt;.&amp;lt;&lt;strong>plug-in&#xD;
    part&lt;/strong>&amp;gt;[_&amp;lt;&lt;strong>part qualifier&lt;/strong>&amp;gt;][-&amp;lt;&lt;strong>source/licensing level&lt;/strong>&amp;gt;]&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Where:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;strong>Plug-in type&lt;/strong>:&amp;nbsp; The following are the possible values for the plug-in type.&amp;nbsp; For more&#xD;
        information on the plug-in types, see [Concept: Practice Library Plug-In Types]. &#xD;
        &lt;ul>&#xD;
            &lt;li>&#xD;
                core = Core&#xD;
            &lt;/li>&#xD;
            &lt;li>&#xD;
                practice = Practice&#xD;
            &lt;/li>&#xD;
            &lt;li>&#xD;
                process = Process&#xD;
            &lt;/li>&#xD;
            &lt;li>&#xD;
                publish = Publish&#xD;
            &lt;/li>&#xD;
            &lt;li>&#xD;
                meth_mgmt = Method Management&#xD;
            &lt;/li>&#xD;
        &lt;/ul>&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;blockquote style=&quot;MARGIN-RIGHT: 0px&quot; dir=&quot;ltr&quot;>&#xD;
    &lt;br />&#xD;
&lt;/blockquote>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;strong>Context&lt;/strong>: Not required (some plug-ins are &quot;context-free&quot; meaning that they are not specific to any&#xD;
        context).&amp;nbsp;&amp;nbsp;The following are some examples of contexts:&amp;nbsp; &#xD;
        &lt;ul>&#xD;
            &lt;li>&#xD;
                gen = general purpose (&lt;em>general purpose&lt;/em> means applies across multiple contexts.&amp;nbsp; This is NOT&#xD;
                the same as context-free)&#xD;
            &lt;/li>&#xD;
            &lt;li>&#xD;
                tech = technology&#xD;
            &lt;/li>&#xD;
            &lt;li>&#xD;
                bus = business&#xD;
            &lt;/li>&#xD;
            &lt;li>&#xD;
                mgmt = management&#xD;
            &lt;/li>&#xD;
            &lt;li>&#xD;
                legacy = legacy&#xD;
            &lt;/li>&#xD;
            &lt;li>&#xD;
                mdev&amp;nbsp;= method development&amp;nbsp;&#xD;
            &lt;/li>&#xD;
            &lt;li>&#xD;
                sdpl = solution deployment&#xD;
            &lt;/li>&#xD;
        &lt;/ul>&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;blockquote style=&quot;MARGIN-RIGHT: 0px&quot; dir=&quot;ltr&quot;>&#xD;
    &lt;p>&#xD;
        Note: If you would like to implement &quot;nested&quot; contexts, you can break the context name into multiple &quot;parts&quot;, where&#xD;
        each of those parts are separated by a dot (period) so that Method Composer creates a hierarchical view of the&#xD;
        related plug-ins. For example: You could define an authoring&amp;nbsp;(auth)&amp;nbsp;context that is a sub-context of&#xD;
        method development (mdev).&amp;nbsp;In such a case,&amp;nbsp;the name of the context would be&#xD;
        &quot;mdev.auth&quot;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&#xD;
    &lt;/p>&#xD;
&lt;/blockquote>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;strong>Descriptive name&lt;/strong>: The following conventions apply to the Descriptive name part of of a plug-in&#xD;
        name:&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;LIST-STYLE-TYPE: none&quot;>&#xD;
        &lt;ul>&#xD;
            &lt;li>&#xD;
                Actual names will vary, but the name should be descriptive of what the plug-in contains, should be pretty&#xD;
                close to the presentation name for the plug-in, using UMF Approved Acronyms.&amp;nbsp;&amp;nbsp;&#xD;
            &lt;/li>&#xD;
            &lt;li>&#xD;
                For example:&amp;nbsp;Descriptive name:&amp;nbsp;practice_auth;&amp;nbsp;Presentation name: Practice Authoring.&lt;br />&#xD;
                &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#xD;
            &lt;/li>&#xD;
        &lt;/ul>&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;strong>Plug-in part&lt;/strong>: The following are the possible values for the plug-in part.&amp;nbsp; For more&#xD;
        information on the plug-in parts, see [Concept: Practice Library Plug-In Types]. &#xD;
        &lt;ul>&#xD;
            &lt;li>&#xD;
                base = base plug-in&#xD;
            &lt;/li>&#xD;
            &lt;li>&#xD;
                assign = assign plug-in&#xD;
            &lt;/li>&#xD;
            &lt;li>&#xD;
                extend = extend plug-in&lt;br />&#xD;
                &amp;nbsp;&amp;nbsp;&amp;nbsp;&#xD;
            &lt;/li>&#xD;
        &lt;/ul>&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;strong>Part qualifier&lt;/strong>: Not required. This can be used to provide some additional information about the&#xD;
        plug-in part.&amp;nbsp; This is most applicable for Extend plug-ins, where the part qualifier can be used to indicate&#xD;
        the reason for the extension.&amp;nbsp; For example, UMF-specific extensions to an existing plug-in may be indicated&#xD;
        with a &quot;_umf&quot; part qualifier (e.g., &quot;&amp;lt;some plug-in&amp;gt;.extend_umf&quot;).&amp;nbsp;&amp;nbsp; Another example of a qualifier&#xD;
        is &quot;gbl&quot; for globalization&quot;.&lt;br />&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;strong>Source/licensing level suffix&lt;/strong>.&amp;nbsp; Can be used to indicate the company that the plug-in applies&#xD;
        to and/or the licensing level of the plug-in. Open source plug-ins do not include a licensing level in their&#xD;
        names.&lt;br />&#xD;
        Note: The use of a hyphen (-) rather than a dot or period (.) is intentional because the&#xD;
        source/licensing&amp;nbsp;level&amp;nbsp;is not intended to be another hierarchical level.&amp;nbsp; Do no use a hyphen in any&#xD;
        other place in the name&amp;nbsp;except to separate the actual plug-in name from the suffix.&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
    Note the following:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        All practices are grouped together because the first part of their names is &quot;practice&quot;&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        All the practices that support a specific context are grouped under the content name&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        All plug-in &quot;parts&quot; for a practice are grouped together because the practice descriptive name is the same&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        The reason for the extension is included as part of the Extend plug-in name, separated from the word &quot;extend&quot; with&#xD;
        an underscore and not a&amp;nbsp;hyphen.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        The licensing level is separated from the rest of the plug-in name with a hyphen.&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h5>&#xD;
    UMF plug-in project naming conventions&#xD;
&lt;/h5>&#xD;
&lt;p>&#xD;
    Plug-in projects should be named exactly the same as the plug-ins they contain. See the earlier section on plug-in&#xD;
    naming conventions for more information.&#xD;
&lt;/p>&#xD;
&lt;h5>&#xD;
    UMF configuration naming conventions&#xD;
&lt;/h5>&#xD;
&lt;p>&#xD;
    UMF configuration naming convention: &amp;lt;&lt;strong>configuration&#xD;
    type&lt;/strong>&amp;gt;[.&lt;strong>context&lt;/strong>].&amp;lt;&lt;strong>descriptive name&amp;gt;[-&amp;lt;source/licensing level&amp;gt;]&lt;/strong>&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Where:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;strong>Configuration type&lt;/strong>: The following are the possible values for the&amp;nbsp;configuration&#xD;
        type.&amp;nbsp;For more information on UMF configuration types, see [Concept: Practice Library Configuration Types]. &#xD;
        &lt;ul>&#xD;
            &lt;li>&#xD;
                publish = Publish Configuration&#xD;
            &lt;/li>&#xD;
            &lt;li>&#xD;
                zconstruct = Process Construction Configuration (not commonly used since the advent of configuration-free&#xD;
                processes)&lt;br />&#xD;
            &lt;/li>&#xD;
        &lt;/ul>&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;strong>Context&lt;/strong>: Same as for plug-ins.&lt;br />&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;strong>Descriptive name&lt;/strong>: The following conventions apply to the Descriptive name part of of a&#xD;
        configuration name:&amp;nbsp;&amp;nbsp; &#xD;
        &lt;ul>&#xD;
            &lt;li>&#xD;
                For Publish configurations, the Practice Configuration&amp;nbsp;name being published&amp;nbsp;makes a&amp;nbsp;good&#xD;
                descriptive name&#xD;
            &lt;/li>&#xD;
            &lt;li>&#xD;
                For Process Construction configurations, the name of the plug-in that contains the process makes a good&#xD;
                descriptive name&lt;br />&#xD;
            &lt;/li>&#xD;
        &lt;/ul>&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;strong>Source/licensing level&lt;/strong>: Same as for plug-ins.&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
    Note the following :&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        All configurations of the same type are grouped together because the first part of the configuration name is the&#xD;
        configuration type&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        All configurations that support a specific context are grouped under the content name&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        The publish configurations for a specific configuration are easy to spot because the configuration name is in the&#xD;
        descriptive name&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        The configuration to be used as the default configuration when constructing a process in a plug-in is easy to spot&#xD;
        because the owning plug-in name is in the descriptive name&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        The unique identifier suffix is used to indicate the licensing level of the configurations (e.g., -ibm for&#xD;
        commercial content and -ibm_int for internal IBM content)&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h5>&#xD;
    UMF configuration project naming conventions&#xD;
&lt;/h5>&#xD;
&lt;p>&#xD;
    UMF configuration project naming convention: &lt;strong>configs[-&lt;/strong>&amp;lt;&lt;strong>descriptive&#xD;
    name&amp;gt;][-&amp;lt;source/licensing level&amp;gt;]&lt;/strong>&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Where:&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Descriptive name: This is optional (i.e., you may only have one tag group per licensing level).&amp;nbsp; If you use one,&#xD;
    the descriptive name should be a name that represents a specific set or category of configurations.&amp;nbsp;&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Source/licensing level: Same as for plug-ins.&#xD;
&lt;/p>&#xD;
&lt;h5>&#xD;
    UMF tag group naming conventions&#xD;
&lt;/h5>&#xD;
&lt;p>&#xD;
    UMF tag group naming convention: &lt;strong>tags-&lt;/strong>&amp;lt;&lt;strong>descriptive name&amp;gt;[-&amp;lt;source/licensing&#xD;
    level&amp;gt;]&lt;/strong>&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Where:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        Descriptive name: A name that represents a specific set or category of tags.&amp;nbsp; For example: mdev: Method&#xD;
        Development&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Source/licensing level: Same as for plug-ins.&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
    IBM Licensing Levels&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    The following are the unique identifiers being used for elements defined at the commercial level and above (they&#xD;
    reflect IBM's licensing Levels:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        ibm = part of IBM's commercial methods (licensing level =&amp;nbsp; commercial)&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        ibm_int = part of IBM's internal methods (licensing level =&amp;nbsp; internal)&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        ibm_lic = part of IBM's licensable methods (licensing level = licensable)&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        ibm_prp = part of IBM's licensable methods (licensing level = proprietary)&amp;nbsp;&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
    Other companies may defined their own licensing levels following similar conventions.&#xD;
&lt;/p>&#xD;
&lt;h3>&#xD;
    Writing Brief Descriptions&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
    In general, all non-contributing method elements&amp;nbsp;need a brief description. A brief description provides a one or&#xD;
    two sentence description of what the element is (in other words, what content the element contains).&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Brief descriptions should be written at the time the element is identified.&amp;nbsp;A well-written description is&#xD;
    important because if you find it hard to describe what an element is, it may not be a good element&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Follow these guidelines when developing method element brief descriptions:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        Do not include presentation names in brief descriptions because that makes it harder to change the presentation&#xD;
        name. Instead, refer to &quot;this &amp;lt;element type&amp;gt;&quot;, where &amp;lt;element type&amp;gt; is the type of method element. For&#xD;
        example, &quot;this role&quot;... or &quot;this guidance&quot;.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Do not state the obvious. The brief description should not just repeat what can be understood from the element type&#xD;
        and the presentation name. For example, for Concept: Pattern, don't just say, &quot;This concept describes what a&#xD;
        Pattern is&quot;.&amp;nbsp;Such information does not provide any value.&amp;nbsp;Instead,&amp;nbsp;provide a one or two sentence&#xD;
        summary of what the element contains.&amp;nbsp;For example, &quot;This concept describes&amp;nbsp;s generalized solution that&#xD;
        can be implemented and applied in a problem situation (a context) and thereby eliminate one or more of the inherent&#xD;
        problems.&quot;&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Avoid repeating the brief description in other fields of the method element. If there is nothing more to add to&#xD;
        what is in the brief description, then omit the other description fields.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Make sure that there is a period at the end of the brief description.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Check for general spelling and spacing errors.&#xD;
    &lt;/li>&#xD;
&lt;/ul></mainDescription>
</org.eclipse.epf.uma:ContentDescription>
