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