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