blob: 0c597325fce9c4e1112777216478de67f89cc5c2 [file] [log] [blame]
<?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="-fr4NS-AIAVE2DWBEN30Zaw"
name="new_guideline,_bAjgIIAhEd2RgsZLwhqsAA" guid="-fr4NS-AIAVE2DWBEN30Zaw" changeDate="2008-09-11T09:52:30.953-0700"
version="7.5.0">
<mainDescription>&lt;p>&#xD;
Method packages represent a set of selectable method content elements that provide the user with flexibility in&#xD;
choosing what portions of the method he wants to publish. Method elements in one package can reference elements in&#xD;
another package.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
Method packages should be used to represent logical units for useful configurations – sets of elements that should&#xD;
either be included together in a configuration or excluded from a configuration. The user can choose which packages to&#xD;
include in the published site by making selections in the configuration.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
Consider packaging very carefully to provide flexibility in what is published. For example, you could put all of the&#xD;
tool mentors for a specific tool into a single content package.&amp;nbsp; This makes it very easy for someone to deselect&#xD;
the tool mentors from publication.&lt;br />&#xD;
&lt;br />&#xD;
Packages should be defined so that selecting all packages does not result in overlapping or conflicting content. If&#xD;
alternatives are needed, separate plug-ins should be defined, not just separate packages.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
Method packages can also be used to collect obvious categories of content to make it easy to find things, as opposed to&#xD;
just seeing a long list of elements.&amp;nbsp;&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
The following sections provide guidelines on the use of the two types of packages: method content packages and process&#xD;
packages.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
For recommendations on naming content packages, see &lt;a class=&quot;elementLinkWithType&quot;&#xD;
href=&quot;./../../../core.mdev.common.base/guidances/guidelines/method_element_naming_conventions_4A4F743B.html&quot;&#xD;
guid=&quot;_lAphAF5-EduT-Px7fh0LSg&quot;>Guideline: Method Element Naming Conventions&lt;/a>.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&#xD;
&lt;/p>&#xD;
&lt;h3>&#xD;
Method content packages&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
There are several organizational strategies that can be applied to refine the method content packaging structure.&amp;nbsp;&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
Option 1: Organizing the content packages along the major areas of concern of the plug-in.&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
When organizing the method content packages of the plug-in along the plug-in’s major areas of concern, group all method&#xD;
content that supports a specific area of concern together in the same (or sub-) content packages.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
The pros of organizing the content packages along the plug-in’s major areas of concern are as follows:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
&lt;li>&#xD;
It is easy for users configuring the method to select only those areas of concern that they are interested in.&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
The method package structure truly reflects the architecture of the plug-in itself, where each content package is&#xD;
cohesive, but loosely coupled with other packages.&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
A plug-in’s content package structure should not be dependent on the base library package structure, which may&#xD;
change at any time.&#xD;
&lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
The cons of organizing the content packages along the plug-in’s major areas of concern are as follows:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
&lt;li>&#xD;
When the plug-in’s package structure is not aligned the base library’s package structure, it is harder to see what&#xD;
plug-in content packages should be selected when specific base content packages are selected. When the packages are&#xD;
aligned, it is easy to see where the plug-in content fits into the base content.&#xD;
&lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
Option 2: Echo the packaging used in the base plug-in.&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
In this approach, align the content package with the base plug-ins content packages. Define a content package structure&#xD;
that looks just like the base plug-in’s and place the method content elements in the most appropriate package.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
If content is contributed to only one or two packages of the base plug-in, rather than to most packages, echo only that&#xD;
portion of the base plug-in structure that is needed. For instance, if the base package \Design\Visual Modeling is the&#xD;
only package modified, echo only the base plug-in packaging structure of \Visual Modeling and its eventual&#xD;
sub-packages.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
The pros of aligning the plug-in package structure with the base content’s are as follows:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
&lt;li>&#xD;
When the packages are aligned, it is easy to see where the plug-in contents fit into the base plug-in.&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
It also preserves the package selection choices provided by the base plug-in for publication.&#xD;
&lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
The cons of aligning the plug-in package structure with the base plug-in’s are as follows:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
&lt;li>&#xD;
The plug-in structure does not reflect its architecture, but instead reflects the base plug-in’s architecture,&#xD;
which can change at any time.&#xD;
&lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
Method elements that support specific aspects of the plug-in are not packaged together, so it is not easy to select&#xD;
relevant subsets of content to be included in a configuration.&lt;br />&#xD;
&lt;br />&#xD;
&amp;nbsp;&amp;nbsp;&#xD;
&lt;/p>&#xD;
&lt;h3>&#xD;
Process packages&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
Process packages organize processes so they can be managed and located easily. The Configuration View is often used&#xD;
when defining new processes because drag and drop is enabled from this view into the process editors. In this view,&#xD;
plug-in divisions are not shown, so it can sometimes be helpful to define process packages in plug-ins as the process&#xD;
packaging hierarchy for each plug-in is preserved.&amp;nbsp;For example, you may want to put all processes in a plug-in in&#xD;
a process package that is named&amp;nbsp;to represent the plug-in.&amp;nbsp; If a plug-in has many processes, you may want to&#xD;
define subpackages.&amp;nbsp;&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
In most cases,&amp;nbsp;process packages are used for capability patterns only (the number of delivery processes is usually&#xD;
so small,&amp;nbsp;packages are not&amp;nbsp; needed).&amp;nbsp;&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
For recommendations on naming process packages, see see &lt;a class=&quot;elementLinkWithType&quot;&#xD;
href=&quot;./../../../core.mdev.common.base/guidances/guidelines/method_element_naming_conventions_4A4F743B.html&quot;&#xD;
guid=&quot;_lAphAF5-EduT-Px7fh0LSg&quot;>Guideline: Method Element Naming Conventions&lt;/a>.&#xD;
&lt;/p></mainDescription>
</org.eclipse.epf.uma:ContentDescription>