<?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="-2Vi1KjWxO7_4YSVPhYdIgA"
    name="customizing_standard_categories,_Y_tk0KkVEd2XsY8-UtPVvw" guid="-2Vi1KjWxO7_4YSVPhYdIgA"
    changeDate="2008-11-02T12:02:50.140-0800" version="7.5.0">
  <mainDescription>&lt;p>&#xD;
    It is assumed that the&amp;nbsp;standard category&amp;nbsp;(e.g., &lt;a class=&quot;elementLink&quot;&#xD;
    href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/domain_D8238B93.html&quot;&#xD;
    guid=&quot;_yHEVYdnmEdmO6L4XMImrsA&quot;>domain&lt;/a>&amp;nbsp;or &lt;a class=&quot;elementLink&quot;&#xD;
    href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/discipline_7667F451.html&quot;&#xD;
    guid=&quot;_yGUuidnmEdmO6L4XMImrsA&quot;>discipline&lt;/a>) being customized cannot be modified directly. Thus, all changes must be&#xD;
    stored in a separate plug-in from the&amp;nbsp;standard category being customized. To see the resulting changes, you need&#xD;
    to browse or publish a configuration that includes the original standard category plus the customizations. If&amp;nbsp;you&#xD;
    can modify the standard category directly, you should follow the guidelines described in &lt;a class=&quot;elementLinkWithType&quot;&#xD;
    href=&quot;./../../../core.mdev.common.base/guidances/guidelines/categorizing_method_elements_using_std_cats_854BD33A.html&quot;&#xD;
    guid=&quot;_thsRIMjnEdyoXMhaXAJ-6g&quot;>Guideline: Categorizing Method Elements Using Standard Categories&lt;/a>.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    There are a number of different ways that you can customize an existing standard category.&amp;nbsp;You can:&amp;nbsp;&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        Assign elements to the category&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Remove elements from the category&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Replace an existing standard category with a new standard category&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Rename the standard category&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
    Specific standard category customization scenarios are described in the remaining sections of this guideline.&#xD;
&lt;/p>&#xD;
&lt;h3>&#xD;
    Assign elements to the category&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
    Perform the following steps to add a method element to an existing standard category:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        If it does not already exist, create a plug-in to contain the standard category customizations.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        In the new plug-in, define a standard category that contributes to the existing standard category and assign the&#xD;
        new elements. For more information on contribution, see &lt;a class=&quot;elementLinkWithType&quot;&#xD;
        href=&quot;./../../../core.mdev.common.base/guidances/guidelines/using_method_content_variability_DCE37365.html&quot;&#xD;
        guid=&quot;_8YIMYCNQEdycLddDalDmbA&quot;>Guideline: Using Method Content Variability&lt;/a>. For more information on assigning&#xD;
        elements to a standard category, see &lt;a class=&quot;elementLinkWithType&quot;&#xD;
        href=&quot;./../../../core.mdev.common.base/guidances/guidelines/categorizing_method_elements_using_std_cats_854BD33A.html&quot;&#xD;
         guid=&quot;_thsRIMjnEdyoXMhaXAJ-6g&quot;>Guideline: Categorizing Method Elements Using Standard Categories&lt;/a>.&amp;nbsp;&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h3>&#xD;
    Remove elements from the category&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
    Perform the following steps to remove a method element from an existing standard category:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        If it does not already exist, create a plug-in to contain the standard category customizations.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        In the new plug-in, define a standard category and assign the same elements as in the original standard category,&#xD;
        except for the element you want to remove. For more information on assigning elements to a standard category, see&#xD;
        &lt;a class=&quot;elementLinkWithType&quot;&#xD;
        href=&quot;./../../../core.mdev.common.base/guidances/guidelines/categorizing_method_elements_using_std_cats_854BD33A.html&quot;&#xD;
         guid=&quot;_thsRIMjnEdyoXMhaXAJ-6g&quot;>Guideline: Categorizing Method Elements Using Standard Categories&lt;/a>.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Change the definition of the new standard categoy to extends-replace the original standard category. For more&#xD;
        information on extends-replace, see &lt;a class=&quot;elementLinkWithType&quot;&#xD;
        href=&quot;./../../../core.mdev.common.base/guidances/guidelines/using_method_content_variability_DCE37365.html&quot;&#xD;
        guid=&quot;_8YIMYCNQEdycLddDalDmbA&quot;>Guideline: Using Method Content Variability&lt;/a>.&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h3>&#xD;
    Replace an existing standard category with a new&amp;nbsp;standard category&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
    Perform the following steps to replace an existing standard category with a new standard category:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        If it does not already exist, create a plug-in to contain the standard category customizations.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        In the new plug-in, define the standard category and assign the desired elements. For more information on assigning&#xD;
        elements to a standard category, see &lt;a class=&quot;elementLinkWithType&quot;&#xD;
        href=&quot;./../../../core.mdev.common.base/guidances/guidelines/categorizing_method_elements_using_std_cats_854BD33A.html&quot;&#xD;
         guid=&quot;_thsRIMjnEdyoXMhaXAJ-6g&quot;>Guideline: Categorizing Method Elements Using Standard Categories&lt;/a>.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Change the definition of the new standard categoy to replace the original standard category. For more information&#xD;
        on replace, see &lt;a class=&quot;elementLinkWithType&quot;&#xD;
        href=&quot;./../../../core.mdev.common.base/guidances/guidelines/using_method_content_variability_DCE37365.html&quot;&#xD;
        guid=&quot;_8YIMYCNQEdycLddDalDmbA&quot;>Guideline: Using Method Content Variability&lt;/a>.&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h3>&#xD;
    Rename an existing standard category&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
    Perform the following steps to rename an existing standard category:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        If it does not already exist, create a plug-in to contain the standard category customizations.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        In the new plug-in, define a standard category and give it the desired presentation name. Specify that the new&#xD;
        standard category is to extend-replace the existing standard category. For more information on extends-replace, see&#xD;
        &lt;a class=&quot;elementLinkWithType&quot;&#xD;
        href=&quot;./../../../core.mdev.common.base/guidances/guidelines/using_method_content_variability_DCE37365.html&quot;&#xD;
        guid=&quot;_8YIMYCNQEdycLddDalDmbA&quot;>Guideline: Using Method Content Variability&lt;/a>.&#xD;
    &lt;/li>&#xD;
&lt;/ul></mainDescription>
</org.eclipse.epf.uma:ContentDescription>
