<?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" xmlns:rmc="http://www.ibm.com/rmc"
    rmc:version="7.5.0" xmi:id="-9dyAwJH3l0cxLrzWrgsniw"
    name="naming_method_elements,_lAphAF5-EduT-Px7fh0LSg" guid="-9dyAwJH3l0cxLrzWrgsniw"
    changeDate="2008-09-11T07:16:41.515-0700" version="1.0.0">
  <mainDescription>&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;h4>&#xD;
    Abbreviations&#xD;
&lt;/h4>&#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;h3>&#xD;
    Name fields&#xD;
&lt;/h3>&#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 &lt;a class=&quot;elementLink&quot;&#xD;
        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/internal_name_4F809BC3.html&quot;&#xD;
        guid=&quot;_IwawgOnyEduAapZyGeTI0Q&quot;>internal name&lt;/a>&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 &lt;a class=&quot;elementLink&quot;&#xD;
        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/friendly_name_35BC1203.html&quot;&#xD;
        guid=&quot;_39tdwOnwEduAapZyGeTI0Q&quot;>friendly name&lt;/a>&amp;nbsp;should be used.&#xD;
    &lt;/li>&#xD;
&lt;/ul>&lt;br />&#xD;
&lt;h3>&#xD;
    General naming guidelines&#xD;
&lt;/h3>&#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.&#xD;
&lt;/p>&lt;br />&#xD;
&lt;h3>&#xD;
    Method element-specific naming guidelines&#xD;
&lt;/h3>&#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 &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/internal_name_4F809BC3.html&quot;&#xD;
                        guid=&quot;_IwawgOnyEduAapZyGeTI0Q&quot;>internal name&lt;/a>&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/friendly_name_35BC1203.html&quot;&#xD;
                        guid=&quot;_39tdwOnwEduAapZyGeTI0Q&quot;>friendly name&lt;/a>&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 &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/internal_name_4F809BC3.html&quot;&#xD;
                        guid=&quot;_IwawgOnyEduAapZyGeTI0Q&quot;>internal name&lt;/a>&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/friendly_name_35BC1203.html&quot;&#xD;
                        guid=&quot;_39tdwOnwEduAapZyGeTI0Q&quot;>friendly name&lt;/a>&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 &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/friendly_name_35BC1203.html&quot;&#xD;
                        guid=&quot;_39tdwOnwEduAapZyGeTI0Q&quot;>friendly name&lt;/a>&amp;nbsp;for Name field (process&amp;nbsp;packages only&#xD;
                        have a single 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 &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/internal_name_4F809BC3.html&quot;&#xD;
                        guid=&quot;_IwawgOnyEduAapZyGeTI0Q&quot;>internal name&lt;/a>&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/friendly_name_35BC1203.html&quot;&#xD;
                        guid=&quot;_39tdwOnwEduAapZyGeTI0Q&quot;>friendly name&lt;/a>&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 &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/internal_name_4F809BC3.html&quot;&#xD;
                        guid=&quot;_IwawgOnyEduAapZyGeTI0Q&quot;>internal name&lt;/a>&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/friendly_name_35BC1203.html&quot;&#xD;
                        guid=&quot;_39tdwOnwEduAapZyGeTI0Q&quot;>friendly name&lt;/a>&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 &lt;a class=&quot;elementLink&quot;&#xD;
                    href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/navigation_view_8F89044.html&quot;&#xD;
                    guid=&quot;_X_hFIPAjEdyHz_B1XFOUgA&quot;>navigation view&lt;/a>, 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 &lt;a class=&quot;elementLink&quot;&#xD;
                    href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/navigation_view_8F89044.html&quot;&#xD;
                    guid=&quot;_X_hFIPAjEdyHz_B1XFOUgA&quot;>navigation view&lt;/a>&amp;nbsp;is also used as the name of the tab that is&#xD;
                    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 &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/internal_name_4F809BC3.html&quot;&#xD;
                        guid=&quot;_IwawgOnyEduAapZyGeTI0Q&quot;>internal name&lt;/a>&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/friendly_name_35BC1203.html&quot;&#xD;
                        guid=&quot;_39tdwOnwEduAapZyGeTI0Q&quot;>friendly name&lt;/a>&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 &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/internal_name_4F809BC3.html&quot;&#xD;
                        guid=&quot;_IwawgOnyEduAapZyGeTI0Q&quot;>internal name&lt;/a>&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/friendly_name_35BC1203.html&quot;&#xD;
                        guid=&quot;_39tdwOnwEduAapZyGeTI0Q&quot;>friendly name&lt;/a>&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 &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/internal_name_4F809BC3.html&quot;&#xD;
                        guid=&quot;_IwawgOnyEduAapZyGeTI0Q&quot;>internal name&lt;/a>&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/friendly_name_35BC1203.html&quot;&#xD;
                        guid=&quot;_39tdwOnwEduAapZyGeTI0Q&quot;>friendly name&lt;/a>&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 dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&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 dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&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 &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/internal_name_4F809BC3.html&quot;&#xD;
                        guid=&quot;_IwawgOnyEduAapZyGeTI0Q&quot;>internal name&lt;/a>&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/friendly_name_35BC1203.html&quot;&#xD;
                        guid=&quot;_39tdwOnwEduAapZyGeTI0Q&quot;>friendly name&lt;/a>&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 &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/internal_name_4F809BC3.html&quot;&#xD;
                        guid=&quot;_IwawgOnyEduAapZyGeTI0Q&quot;>internal name&lt;/a>&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/friendly_name_35BC1203.html&quot;&#xD;
                        guid=&quot;_39tdwOnwEduAapZyGeTI0Q&quot;>friendly name&lt;/a>&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 &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/internal_name_4F809BC3.html&quot;&#xD;
                        guid=&quot;_IwawgOnyEduAapZyGeTI0Q&quot;>internal name&lt;/a>&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/friendly_name_35BC1203.html&quot;&#xD;
                        guid=&quot;_39tdwOnwEduAapZyGeTI0Q&quot;>friendly name&lt;/a>&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 &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/internal_name_4F809BC3.html&quot;&#xD;
                        guid=&quot;_IwawgOnyEduAapZyGeTI0Q&quot;>internal name&lt;/a>&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/friendly_name_35BC1203.html&quot;&#xD;
                        guid=&quot;_39tdwOnwEduAapZyGeTI0Q&quot;>friendly name&lt;/a>&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 &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/internal_name_4F809BC3.html&quot;&#xD;
                        guid=&quot;_IwawgOnyEduAapZyGeTI0Q&quot;>internal name&lt;/a>&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/friendly_name_35BC1203.html&quot;&#xD;
                        guid=&quot;_39tdwOnwEduAapZyGeTI0Q&quot;>friendly name&lt;/a>&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 &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/internal_name_4F809BC3.html&quot;&#xD;
                        guid=&quot;_IwawgOnyEduAapZyGeTI0Q&quot;>internal name&lt;/a>&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/friendly_name_35BC1203.html&quot;&#xD;
                        guid=&quot;_39tdwOnwEduAapZyGeTI0Q&quot;>friendly name&lt;/a>&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;br />&#xD;
&lt;h3>&#xD;
    Acceptable verbs&#xD;
&lt;/h3>&#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; width=&quot;100%&quot; border=&quot;1&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;
                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 identifty&#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-SIZE: 10pt; FONT-FAMILY: Arial; 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 trasnport 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;br />&#xD;
&lt;h3>&#xD;
    Naming method variants&#xD;
&lt;/h3>&#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 &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/internal_name_4F809BC3.html&quot;&#xD;
                        guid=&quot;_IwawgOnyEduAapZyGeTI0Q&quot;>internal name&lt;/a>&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/friendly_name_35BC1203.html&quot;&#xD;
                        guid=&quot;_39tdwOnwEduAapZyGeTI0Q&quot;>friendly name&lt;/a>&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 &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/internal_name_4F809BC3.html&quot;&#xD;
                        guid=&quot;_IwawgOnyEduAapZyGeTI0Q&quot;>internal name&lt;/a>&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 diffierent contributors and the base element, it is a good idea to&#xD;
                    name 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 &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/internal_name_4F809BC3.html&quot;&#xD;
                        guid=&quot;_IwawgOnyEduAapZyGeTI0Q&quot;>internal name&lt;/a>&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/friendly_name_35BC1203.html&quot;&#xD;
                        guid=&quot;_39tdwOnwEduAapZyGeTI0Q&quot;>friendly name&lt;/a>&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 &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/internal_name_4F809BC3.html&quot;&#xD;
                        guid=&quot;_IwawgOnyEduAapZyGeTI0Q&quot;>internal name&lt;/a>&amp;nbsp;for the Name field&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        use &lt;a class=&quot;elementLink&quot;&#xD;
                        href=&quot;./../../../core.mdev.common.base/guidances/termdefinitions/friendly_name_35BC1203.html&quot;&#xD;
                        guid=&quot;_39tdwOnwEduAapZyGeTI0Q&quot;>friendly name&lt;/a>&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>&lt;br /></mainDescription>
</org.eclipse.epf.uma:ContentDescription>
