| <?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.4/uma.ecore" |
| xmlns:epf="http://www.eclipse.org/epf" |
| epf:version="1.2.0" xmi:id="-SqArASoV4hTpxAprrWhS1g" |
| name="resources_for_modifying_methods,_omneEMX4EduywMSzPTUUwA" guid="-SqArASoV4hTpxAprrWhS1g" |
| changeDate="2007-07-02T14:20:00.218-0700" version="1.0.0"> |
| <mainDescription><h1> Customization resources</h1>
 |
| <p> There are a number of use scenarios for OpenUP. The simplest&nbsp;is to use 
 |
| the&nbsp;content available from the EPF project (either the available published 
 |
| Web site or the one that you publish from the available library). You can find 
 |
| those resources at&nbsp;<a href="http://www.eclipse.org/epf">www.eclipse.org/epf</a>. 
 |
| </p>
 |
| <p> However, you may be&nbsp;looking for&nbsp;adding, removing, suppressing, or 
 |
| modifying method and process elements to make OpenUP&nbsp;more&nbsp;suitable&nbsp;to 
 |
| your teams' needs, while keeping it consistent and understandable. </p>
 |
| <p> The following sections introduce a few fundamental concepts about&nbsp;method 
 |
| content and process, as well as&nbsp;descriptions of typical customization scenarios 
 |
| and&nbsp;links to additional information on how to customize methods. </p>
 |
| <h2> Method organization </h2>
 |
| <p> You can use EPF Composer to write, configure, and publish method and process 
 |
| content. EPF Composer organizes the content in a <a class="elementLinkWithUserText" href="./../../../base_concepts/guidances/termdefinitions/method_library_6E08F9E5.html" guid="_1xELEMaFEduMlb2cQZNTYw">method 
 |
| library</a>. Each method library contains one or more <a class="elementLinkWithUserText" href="./../../../base_concepts/guidances/termdefinitions/method_plugin_190B9F5E.html" guid="_D4TLgMaGEduMlb2cQZNTYw">method 
 |
| plug-ins</a>. Every plug-in consists of two major packages:&nbsp;<a class="elementLinkWithUserText" href="./../../../base_concepts/guidances/termdefinitions/content_package_F5C69063.html" guid="_SAWgwMaFEduMlb2cQZNTYw">content 
 |
| packages</a> and <a class="elementLinkWithUserText" href="./../../../base_concepts/guidances/termdefinitions/process_package_368B7463.html" guid="_MN1doMaHEduMlb2cQZNTYw">process 
 |
| packages</a>. Content packages contain <a class="elementLinkWithUserText" href="./../../../base_concepts/guidances/termdefinitions/content_element_DA3AD029.html" guid="_N8x34B_LEdq6CKKKq4D7YA">content 
 |
| elements</a>, such as <a class="elementLinkWithUserText" href="./../../../base_concepts/guidances/termdefinitions/role_37A0C602.html" guid="_yUefQNnmEdmO6L4XMImrsA">roles</a>, 
 |
| <a class="elementLinkWithUserText" href="./../../../base_concepts/guidances/termdefinitions/task_6C1FF051.html" guid="_x459ktnmEdmO6L4XMImrsA">tasks</a>, 
 |
| <a class="elementLinkWithUserText" href="./../../../base_concepts/guidances/termdefinitions/work_product_826E4C22.html" guid="_H4JXwB_SEdq6CKKKq4D7YA">work 
 |
| products</a>, and <a class="elementLinkWithUserText" href="./../../../base_concepts/guidances/termdefinitions/guidance_549AC394.html" guid="_83ttAB_NEdq6CKKKq4D7YA">guidance</a>. 
 |
| Process packages contain <a class="elementLinkWithUserText" href="./../../../base_concepts/guidances/termdefinitions/capability_pattern_F5DDC5F.html" guid="_2RUJACO4EdqaNq6Ptg8uyA">capability 
 |
| patterns</a> and <a class="elementLinkWithUserText" href="./../../../base_concepts/guidances/termdefinitions/delivery_process_BCDF50B7.html" guid="_ZufeMCO3EdqaNq6Ptg8uyA">delivery 
 |
| processes</a>. </p>
 |
| <p> Method content and processes are organized in the EPF method library according 
 |
| to how they build logical units for useful <a class="elementLinkWithUserText" href="./../../../base_concepts/guidances/termdefinitions/method_configuration_C2B8FA8A.html" guid="__V7pAMaEEduMlb2cQZNTYw">method 
 |
| configurations</a>. For example, all content belonging to one specific discipline, 
 |
| such as requirements or development, can be found in one content package. Each 
 |
| of these packages might be further divided into sub-packages for specific practices 
 |
| in these disciplines. For example,&nbsp;under Development,&nbsp;you may want 
 |
| to&nbsp;have a package that&nbsp;factors all of the specific information about 
 |
| visual modeling. Thus, you can add or remove&nbsp;visual modeling&nbsp;specifics 
 |
| from&nbsp;Development with just one simple mouse-click by selecting or deselecting 
 |
| the right package. </p>
 |
| <p> For more information on method organization, see <b>EPF Composer Overview</b>, 
 |
| <a href="http://www.eclipse.org/epf/general/EPFComposerOverviewPart1.pdf" target="_blank">Part 
 |
| 1</a> and <a href="http://www.eclipse.org/epf/general/EPFComposerOverviewPart2.pdf" target="_blank">Part 
 |
| 2</a>. </p>
 |
| <h2> Customization scenarios </h2>
 |
| <p> The following sections describe&nbsp;several possible customization scenarios. 
 |
| For step-by-step instructions, see the <a href="http://www.eclipse.org/epf/general/EPFComposer_OpenUP.zip" target="_blank">Customization 
 |
| Scenarios</a> tutorial. </p>
 |
| <h3> Use existing plug-ins and packages to build your own process </h3>
 |
| <p> This is the most straight-forward customization scenario. Based on the content 
 |
| provided by OpenUP, you can use EPF Composer to pick and choose the packages 
 |
| with the content that you want to have published and made available to your 
 |
| team. Removing a method package removes all references to the content of that 
 |
| package from the published process. For example, you can simplify a process 
 |
| to have it contain a minimal subset of its content by removing packages that 
 |
| contain elements of work that you do not want to perform. You do this by creating 
 |
| a new method configuration (or copying an existing one) into your method library. 
 |
| You can select packages as appropriate without affecting the configuration provided. 
 |
| </p>
 |
| <h3> Add&nbsp;method content&nbsp;that your team needs</h3>
 |
| <p> Some teams may need to perform a different task that is not contemplated by 
 |
| the out-of-the-box content. Maybe they need to perform an extra step in an existing 
 |
| task, or they may need to add a new guideline for a given technique that they 
 |
| are following. Eventually, they need a new template for a document (or may need 
 |
| to add or remove sections in an existing template). </p>
 |
| <p> In such situations, the recommended approach is to create a separate plug-in 
 |
| in your library.&nbsp;It is not a good practice&nbsp;to make changes in the 
 |
| provided OpenUP plug-in (or any plug-in for which you do not have control), 
 |
| because new versions of these plug-ins, when deployed, can override the changes 
 |
| that you have made. </p>
 |
| <p> EPF Composer provides a series of mechanisms that allow you to indirectly 
 |
| modify the content in an existing plug-in by using content variability. In your 
 |
| plug-in, you can define an element that contributes, extends, or replaces an 
 |
| element in the existing plug-in. For example, in your plug-in, you can define 
 |
| a task that contributes a new step to an existing task in OpenUP. You can also 
 |
| define a new artifact that replaces one in OpenUP, and this new artifact can 
 |
| have a different name, structure, and associated template, for example. </p>
 |
| <p> When you create a new plug-in, it should depend on existing plug-ins to where 
 |
| content will be contributed, extended or replaced. After you have created your 
 |
| plug-in, you add&nbsp;it to a new configuration from which you can finally select 
 |
| the packages with content that you want published. During publication, EPF Composer 
 |
| will resolve the content variability that you defined by adding the new content 
 |
| into the existing content where appropriate, replacing existing content with 
 |
| the content you defined, and so on. </p>
 |
| <h3> Define a different development lifecycle </h3>
 |
| <p> Both method content and process are created independently from&nbsp;each other. 
 |
| For example, you create tasks in the method content (and define their&nbsp;inputs, 
 |
| outputs, and responsible roles), but you do not necessarily define the lifecycle 
 |
| of your process, meaning the sequence in which the various tasks will be performed. 
 |
| On the process side, you then define the lifecycle (such as phases, iterations, 
 |
| activities, and tasks), as well as the precedence among these elements. </p>
 |
| <p> Some teams may find the method content appropriate without any further customization, 
 |
| but they may want to work by following a different software development lifecycle. 
 |
| Some teams may like the four development phases and iterations from OpenUP, 
 |
| but some may want to develop iteratively, without being tied to the phase structure. 
 |
| </p>
 |
| <p> You can add, remove and replace elements in the work breakdown structure of 
 |
| an existing process by applying variability. This is called<b> process contribution</b>, 
 |
| which means that differential changes can be applied to an existing process. 
 |
| </p>
 |
| <p> As an alternative to tailoring an existing process, you can write a completely 
 |
| new process that reuses activities from one or more existing processes. In cases 
 |
| where you cannot find any reusable material at all, you can also create a completely 
 |
| new process from scratch. In most cases, however, you will start developing 
 |
| your own process by assembling reusable building blocks from method content, 
 |
| as well as predefined process patterns&nbsp;called <a class="elementLinkWithUserText" href="./../../../base_concepts/guidances/termdefinitions/capability_pattern_F5DDC5F.html" guid="_2RUJACO4EdqaNq6Ptg8uyA">capability 
 |
| patterns</a>. The resulting assembled process is called a&nbsp;<a class="elementLinkWithUserText" href="./../../../base_concepts/guidances/termdefinitions/delivery_process_BCDF50B7.html" guid="_ZufeMCO3EdqaNq6Ptg8uyA">delivery 
 |
| process</a>. </p>
 |
| <p> This newly created delivery process&nbsp;is part of a configuration that you 
 |
| publish and make available to members of your team. </p>
 |
| <h3> Publish the process Web site </h3>
 |
| <p> Every customization scenario is finalized by publishing content in a Web site 
 |
| format that can&nbsp;be accessed by practitioners in the project. EPF Composer 
 |
| allows you to publish&nbsp;content based on a given configuration, which will 
 |
| publish all of the content available from the&nbsp;method and process packages 
 |
| selected in that configuration. Another option for publishing is to select only 
 |
| the capability patterns or delivery process of interest. This will make available 
 |
| only the content related to the process packages that you select.</p>
 |
| <p> For the published Web site look and feel, you can customize the views and 
 |
| nodes in the directory (tree) browser by defining <a class="elementLinkWithUserText" href="./../../../base_concepts/guidances/termdefinitions/custom_category_554AC4D6.html" guid="_eqw94MaFEduMlb2cQZNTYw">custom 
 |
| categories</a> that will be part of your configuration. </p></mainDescription> |
| </org.eclipse.epf.uma:ContentDescription> |