<?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="-htSFQ8Rj8R0VkuxENOZGaA" name="customizing_method_content_elements,_1V5psEH9Ed-bmYzvomIdMg" guid="-htSFQ8Rj8R0VkuxENOZGaA" changeDate="2011-10-12T12:55:48.613-0700" version="7.5.0">
  <mainDescription>&lt;h3>&#xD;
    Customizing a Method Content Element&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
    Any &lt;a class=&quot;elementLink&quot;&#xD;
    href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/method_content_6972AE81.html&quot;&#xD;
    guid=&quot;_Ts2joB_MEdq6CKKKq4D7YA&quot;>method content&lt;/a>&amp;nbsp;element can be customized. The different ways you can customize&#xD;
    an element include:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        adding guidance to existing method content elements&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        adding new roles, tasks and work products&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        adding text and/or relationships to an existing method content element&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        replacing an existing method content element&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        renaming an existing method content element&amp;nbsp;&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        changing method content relationships (e.g., changing&amp;nbsp;the role that is responsible for a work&#xD;
        product,&amp;nbsp;changing the primary performing role for a task, changing the input and/or output work products of a&#xD;
        task)&amp;nbsp;&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        deleting existing method content elements&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
    It is assumed that the method content element being customized cannot be modified directly. Thus, all changes must be&#xD;
    stored in a separate plug-in from the method content elements being customized. The customizations are then defined&#xD;
    using method content variability. To see the resulting changes, you need to browse or publish a configuration that&#xD;
    includes the element being customized and the customizations. For more information, see the topic Using Method Content&#xD;
    Variability in&amp;nbsp;&amp;nbsp;&lt;a class=&quot;elementLinkWithType&quot;&#xD;
    href=&quot;./../../../practice.bus.mdev.base/guidances/guidelines/defining_method_elements_CADE4FF6.html&quot;&#xD;
    guid=&quot;_fx7TMD3REd-realK_We5vA&quot;>Guideline: Defining Method Elements&lt;/a>. If&amp;nbsp;you can modify the elements directly,&#xD;
    you&amp;nbsp;can follow the&amp;nbsp;topic described in &lt;a class=&quot;elementLinkWithType&quot;&#xD;
    href=&quot;./../../../practice.bus.mdev.base/guidances/guidelines/defining_method_elements_CADE4FF6.html&quot;&#xD;
    guid=&quot;_fx7TMD3REd-realK_We5vA&quot;>Guideline: Defining Method Elements&lt;/a>.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    If you customize a method content element that participates in a process, then&amp;nbsp;you will need to customize that&#xD;
    process to use the customized method content.&amp;nbsp;For more information, see the topic Customizing a Process in&amp;nbsp;&lt;a&#xD;
    class=&quot;elementLinkWithType&quot;&#xD;
    href=&quot;./../../../practice.bus.mdev.base/guidances/guidelines/defining_customizing_processes_55E6CE53.html&quot;&#xD;
    guid=&quot;_E9J1kD9EEd-Xgadv74rzHA&quot;>Guideline: Defining and Customizing Processes&lt;/a>.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    If you add a new element that is categorized, then&amp;nbsp;you may need to add the new elements to the appropriate&#xD;
    standard categories.&amp;nbsp;For more information, see the topic Categorizing Method Elements using Standard Categories&#xD;
    in&amp;nbsp;&lt;a class=&quot;elementLinkWithType&quot;&#xD;
    href=&quot;./../../../practice.bus.mdev.base/guidances/guidelines/defining_method_elements_CADE4FF6.html&quot;&#xD;
    guid=&quot;_fx7TMD3REd-realK_We5vA&quot;>Guideline: Defining Method Elements&lt;/a>.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    The following sections provide specific information on how to customize method content elements.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Add guidance to an existing method content element&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Perform the following steps to add guidance to existing method content elements:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        If one does not already exist, define the plug-in to contain the customization&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        In the new plug-in, define the guidance element.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Determine what method elements the guidance should be associated with/referenced from and where those elements&#xD;
        exist.&amp;nbsp;&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        In the new plug-in, define an element that contributes to the original and add the association to the guidance in&#xD;
        the contributor.&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
    Add a new role&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Perform the following steps to add new method &lt;a class=&quot;elementLink&quot;&#xD;
    href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/role_37A0C602.html&quot;&#xD;
    guid=&quot;_yUefQNnmEdmO6L4XMImrsA&quot;>role&lt;/a>:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        If one does not already exist, create a plug-in to contain the new role.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        In the new plug-in, create the new role and specify what work products the role should own.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        If&amp;nbsp;you want to add the role as a performer of an existing task, in the new plug-in, create a task that&#xD;
        contributes to the task you want to change. In the contributor, add an association to the new role.&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
    Add a new task&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Perform the following steps to add new method &lt;a class=&quot;elementLink&quot;&#xD;
    href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/task_6C1FF051.html&quot;&#xD;
    guid=&quot;_x459ktnmEdmO6L4XMImrsA&quot;>task&lt;/a>:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        If one does not already exist, create a plug-in to contain the new task.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        In the new plug-in, create the new task, being sure to&amp;nbsp;specify&amp;nbsp;what role performs the task and what work&#xD;
        products are input and output.&amp;nbsp;&amp;nbsp;&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
    Add a new work product&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Perform the following steps to add new method &lt;a class=&quot;elementLink&quot;&#xD;
    href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/work_product_826E4C22.html&quot;&#xD;
    guid=&quot;_H4JXwB_SEdq6CKKKq4D7YA&quot;>work product&lt;/a>:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        If one does not already exist, create a plug-in to contain the new work product.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        In the new plug-in, create the new work product.&amp;nbsp;&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        If&amp;nbsp;you want to add the work product as an input or an output&amp;nbsp;of&amp;nbsp;an existing task, in the new&#xD;
        plug-in, create a task that contributes to the task you want to change. In the contributor, add an association to&#xD;
        the work product.&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
    Add new&amp;nbsp;text and/or relationships to an existing method content element&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Anything (text and/or associations can be added to any method content element using contribution, a type of method&#xD;
    content variability.&amp;nbsp;&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Perform the following steps to add text and/or associations to an existing method content element:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        If one does not already exist, create a plug-in to contain the method content element additions.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        In the new plug-in, create an element of the same type as the element you want to add to an make that element&#xD;
        contribute to the element you want to add to. For example, if I wanted to add an input work product to a task, I&#xD;
        would create a task contributor.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        In the contributor, add whatever it is you want to add to the original element. For example, if I wanted to add an&#xD;
        input work product to a task, create an input work product to the task contributor.&amp;nbsp;&amp;nbsp;&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
    Replace an existing method content element&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Any method content element can be replaced using replaces, a type of method content variability.&amp;nbsp;&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Perform the following steps to replace an existing method content element (e.g., a &lt;a class=&quot;elementLink&quot;&#xD;
    href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/role_37A0C602.html&quot;&#xD;
    guid=&quot;_yUefQNnmEdmO6L4XMImrsA&quot;>role&lt;/a>, &lt;a class=&quot;elementLink&quot;&#xD;
    href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/task_6C1FF051.html&quot;&#xD;
    guid=&quot;_x459ktnmEdmO6L4XMImrsA&quot;>task&lt;/a>, &lt;a class=&quot;elementLink&quot;&#xD;
    href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/work_product_826E4C22.html&quot;&#xD;
    guid=&quot;_H4JXwB_SEdq6CKKKq4D7YA&quot;>work product&lt;/a>&amp;nbsp;or &lt;a class=&quot;elementLink&quot;&#xD;
    href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/guidance_549AC394.html&quot;&#xD;
    guid=&quot;_83ttAB_NEdq6CKKKq4D7YA&quot;>guidance&lt;/a>):&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        If one does not already exist, create a plug-in to contain the method content element that will be replacing the&#xD;
        original.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        In the new plug-in, create the element you want to replace the existing element with (they must be of the same&#xD;
        type). For example, if I wanted to replace a task with a new task, I would create a new task.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Specify that the new task is to replace the original task (replaces variability).&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Add the replacers outgoing relationships and textual descriptions. For example, if&amp;nbsp;you wanted to replace task,&#xD;
        specify the task's primary performing role and input and output work products.&amp;nbsp;&amp;nbsp;&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
    Rename an existing method content element&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Any method content element can be renamed using extends-replaces, a type of method content variability.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Perform the following steps to rename an existing method content element (e.g., a &lt;a class=&quot;elementLink&quot;&#xD;
    href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/role_37A0C602.html&quot;&#xD;
    guid=&quot;_yUefQNnmEdmO6L4XMImrsA&quot;>role&lt;/a>, &lt;a class=&quot;elementLink&quot;&#xD;
    href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/task_6C1FF051.html&quot;&#xD;
    guid=&quot;_x459ktnmEdmO6L4XMImrsA&quot;>task&lt;/a>, &lt;a class=&quot;elementLink&quot;&#xD;
    href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/work_product_826E4C22.html&quot;&#xD;
    guid=&quot;_H4JXwB_SEdq6CKKKq4D7YA&quot;>work product&lt;/a>&amp;nbsp;or &lt;a class=&quot;elementLink&quot;&#xD;
    href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/guidance_549AC394.html&quot;&#xD;
    guid=&quot;_83ttAB_NEdq6CKKKq4D7YA&quot;>guidance&lt;/a>):&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        If one does not already exist, create a plug-in to contain the method content element with the new name.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        In the new plug-in, create a method content element of the same type as the one you want to rename and give it the&#xD;
        name you want to use as the new name. For example, if I wanted to rename a task to MyTask, I would create a new&#xD;
        task and name it MyTask.&amp;nbsp;&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Specify that the new task is to extends-replace the original task (extends-replaces variability).&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
    Change the role that is responsible for a work product&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    A &lt;a class=&quot;elementLink&quot; href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/role_37A0C602.html&quot;&#xD;
    guid=&quot;_yUefQNnmEdmO6L4XMImrsA&quot;>role&lt;/a>&amp;nbsp;may be responsible for one or more work products. A work product may have&#xD;
    only one responsible role. The role &quot;owns&quot; the role-responsible for-work product association.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Perform the following steps to change the responsible role for an existing work product:&#xD;
&lt;/p>&#xD;
&lt;ul class=&quot;noindent&quot;>&#xD;
    &lt;li>&#xD;
        If one does not already exist, create a plug-in to contain the customizations.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        In the new plug-in, add a new role and make it a contributor to the role that you want to assign the work product&#xD;
        to.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        In the role contributor, add an association to the work product.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        If there are now two roles that are responsible for the work product, the original responsibility must be removed.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Define a role that extends and replaces the original responsible role. In the extends-replaces element, add all of&#xD;
        the role-responsible for-work product associations that existed in the original role, except for the one your just&#xD;
        replaced.&amp;nbsp;&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
    Change the primary performing role for a task&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    A &lt;a class=&quot;elementLink&quot; href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/task_6C1FF051.html&quot;&#xD;
    guid=&quot;_x459ktnmEdmO6L4XMImrsA&quot;>task&lt;/a>&amp;nbsp;may only have one primary performing &lt;a class=&quot;elementLink&quot;&#xD;
    href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/role_37A0C602.html&quot;&#xD;
    guid=&quot;_yUefQNnmEdmO6L4XMImrsA&quot;>role&lt;/a>. The task &quot;owns&quot; the task-primarily perform by-role association.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Perform the following steps to change the primary performing role for an existing task:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        If one does not already exist, create a plug-in to contain the customizations.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        In the new plug-in, define a task that extends and replaces the original task.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        In the new task, specify the role as the primary performer. There is no need to make any more changes since every&#xD;
        task can only have one primary performing role.&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
    Change the input and/or output work products of a task&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    A &lt;a class=&quot;elementLink&quot; href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/task_6C1FF051.html&quot;&#xD;
    guid=&quot;_x459ktnmEdmO6L4XMImrsA&quot;>task&lt;/a>&amp;nbsp;may only have any number of input and output &lt;a class=&quot;elementLink&quot;&#xD;
    href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/work_product_826E4C22.html&quot;&#xD;
    guid=&quot;_H4JXwB_SEdq6CKKKq4D7YA&quot;>work product&lt;/a>s. The task &quot;owns&quot; the task-work product associations.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Perform the following steps to change the input and/or output work products of an existing task:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        If one does not already exist, create a plug-in to contain the customizations.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        In the new plug-in, define a task that extends and replaces the original task.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        In the new task, specify the desired input and output work products for the task, including those from the original&#xD;
        that you want to carry forward, plus the associations to your new work products.&amp;nbsp;&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
    Delete existing method content elements&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Perform the following steps to remove an existing method element:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        If one does not already exist, define a new plug-in to contain the customizations.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        In the new plug-in, create a custom category; name it something like &quot;do not publish&quot;. Assign the elements you want&#xD;
        removed to that category.&amp;nbsp;&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Define a new &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>&amp;nbsp;that includes everything you want to publish. Specify&#xD;
        not to publish the new custom category.&amp;nbsp; For more information, see topic&amp;nbsp;Defining Method Configurations&#xD;
        in&amp;nbsp;&lt;a class=&quot;elementLinkWithType&quot;&#xD;
        href=&quot;./../../../practice.bus.mdev.base/guidances/guidelines/creating_plugins_practices_configurations_4C84B4C2.html&quot;&#xD;
         guid=&quot;_EXvLwD3NEd-realK_We5vA&quot;>Guideline: Creating Plug-ins, Practices and Configurations&lt;/a>. When you publish&#xD;
        that configuration, those elements will not appear.&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
    Customizing a&amp;nbsp;Method Content Element in the UMF&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    When customizing method content elements that are already existing within the Unified Method Framework (UMF), the&#xD;
    following needs to be considered:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        In general, the practice framework plug-in types need to be considered.&amp;nbsp;These types affect what elements can&#xD;
        be placed in what plug-in.&amp;nbsp;For example, customizations of method elements are defined in Extend&#xD;
        plug-ins.&amp;nbsp;For more information on these plug-in types, see [Concept: Practice Library Plug-In Types].&amp;nbsp;&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        When customizing roles and role assignments, keep in mind that the UMF implements a delayed assignment approach for&#xD;
        roles.&amp;nbsp;However, practices may include default role assignments (e.g., specifying what &lt;a class=&quot;elementLink&quot;&#xD;
        href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/role_37A0C602.html&quot;&#xD;
        guid=&quot;_yUefQNnmEdmO6L4XMImrsA&quot;>role&lt;/a>s perform the practice &lt;a class=&quot;elementLink&quot;&#xD;
        href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/task_6C1FF051.html&quot;&#xD;
        guid=&quot;_x459ktnmEdmO6L4XMImrsA&quot;>task&lt;/a>s and what &lt;a class=&quot;elementLink&quot;&#xD;
        href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/role_37A0C602.html&quot;&#xD;
        guid=&quot;_yUefQNnmEdmO6L4XMImrsA&quot;>role&lt;/a>s are responsible for the practice &lt;a class=&quot;elementLink&quot;&#xD;
        href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/work_product_826E4C22.html&quot;&#xD;
        guid=&quot;_H4JXwB_SEdq6CKKKq4D7YA&quot;>work product&lt;/a>s) in separate Assign plug-ins.&amp;nbsp;To change these assignments,&#xD;
        make a copy of the Assign plug-in for the practice,&amp;nbsp;and change the desired roles and/or role assignments, as&#xD;
        needed. Then use the new assignment plug-in place of the original assignment plug-in when the alternative roles are&#xD;
        needed.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        When customizing standard category assignments, keep in mind that the UMF implements a delayed assignment approach&#xD;
        for some standard categories.&amp;nbsp;However, practices may include default standard category assignments (e.g.,&#xD;
        mapping the practice &lt;a class=&quot;elementLink&quot;&#xD;
        href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/task_6C1FF051.html&quot;&#xD;
        guid=&quot;_x459ktnmEdmO6L4XMImrsA&quot;>task&lt;/a>s to &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>s, mapping the practice &lt;a class=&quot;elementLink&quot;&#xD;
        href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/work_product_826E4C22.html&quot;&#xD;
        guid=&quot;_H4JXwB_SEdq6CKKKq4D7YA&quot;>work product&lt;/a>s to &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>s, etc) in separate Assign plug-ins.&amp;nbsp;To change these assignments,&#xD;
        make a copy of the Assign plug-ins,&amp;nbsp;and change the desired standard categories and/or category assignments, as&#xD;
        needed. Then use the new assignment plug-in place of the original assignment plug-in when the alternative standard&#xD;
        category assignments are needed.&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h3>&#xD;
    Delayed Assignment in the UMF&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
    In the Unified Method Framework (UMF), the following are &quot;delayed assigned&quot;:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;strong>Role assignments&lt;/strong>: Assignment of performing &lt;a class=&quot;elementLink&quot;&#xD;
        href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/role_37A0C602.html&quot;&#xD;
        guid=&quot;_yUefQNnmEdmO6L4XMImrsA&quot;>role&lt;/a>s to &lt;a class=&quot;elementLink&quot;&#xD;
        href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/task_6C1FF051.html&quot;&#xD;
        guid=&quot;_x459ktnmEdmO6L4XMImrsA&quot;>task&lt;/a>s and assignment of role responsibility for &lt;a class=&quot;elementLink&quot;&#xD;
        href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/work_product_826E4C22.html&quot;&#xD;
        guid=&quot;_H4JXwB_SEdq6CKKKq4D7YA&quot;>work product&lt;/a>s&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;strong>Work product kind assignments&lt;/strong>: Assignment of work products to &lt;a class=&quot;elementLink&quot;&#xD;
        href=&quot;./../../../core.default.uma_concept.base/guidances/termdefinitions/work_product_kind_F04A382B.html&quot;&#xD;
        guid=&quot;_QWhfYMaJEduMlb2cQZNTYw&quot;>work product kind&lt;/a>s&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;strong>Discipline assignments&lt;/strong>: Assignment of tasks to &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>s&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;strong>Domain assignments&lt;/strong>: Assignment of work products to &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>s&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
    The delayed assignment&amp;nbsp;of roles, domains, work product kinds and disciplines is implemented is through the use of&#xD;
    Assign plug-ins.&amp;nbsp;An Assign plug-in is defined for every Base plug-in that contains work products or tasks.&amp;nbsp;&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Assign plug-ins contain:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        Role assignments: &#xD;
        &lt;ul>&#xD;
            &lt;li>&#xD;
                A role for every role to be assigned responsibility for a work product.&amp;nbsp; Each role is defined as a&#xD;
                contributor to an existing role and adds the necessary &quot;role responsible for work product&quot;&#xD;
                associations.&amp;nbsp;&#xD;
            &lt;/li>&#xD;
            &lt;li>&#xD;
                A task for every task to be assigned a performing or a supporting role.&amp;nbsp; Each task is defined as a&#xD;
                contributor to an existing task and adds the necessary &quot;task is is performed by role&quot; associations.&amp;nbsp;&#xD;
            &lt;/li>&#xD;
        &lt;/ul>&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Standard category assignments:&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;LIST-STYLE-TYPE: none&quot;>&#xD;
        &lt;ul>&#xD;
            &lt;li>&#xD;
                A discipline for every discipline that is to have tasks&amp;nbsp;mapped to it.&amp;nbsp; Each discipline is defined&#xD;
                as a contributor to an existing discipline and adds the necessary &quot;discipline includes task&quot;&#xD;
                associations.&amp;nbsp;&#xD;
            &lt;/li>&#xD;
            &lt;li>&#xD;
                A domain for every domain that is to have work products mapped to it.&amp;nbsp; Each domain is defined as a&#xD;
                contributor to an existing domain and adds the necessary &quot;domain includes work product&quot; associations.&#xD;
            &lt;/li>&#xD;
        &lt;/ul>&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Practice-specific role, role set and standard category definitions.&amp;nbsp;Practice-specific definitions for delayed&#xD;
        elements are defined in the Assign plug-in to make them easy to change.&#xD;
    &lt;/li>&#xD;
&lt;/ul></mainDescription>
</org.eclipse.epf.uma:ContentDescription>
