blob: 56fd50b3fa32deb0edf543681e83a83b60ed1e42 [file] [log] [blame]
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<title>Using EPF with a Version Control System</title>
<style><!--
.MsoToc1
{line-height:12.0pt;
font-size:10.0pt;
font-family:"Times New Roman";}
.MsoToc2
{line-height:12.0pt;
font-size:10.0pt;
font-family:"Times New Roman";}
.MsoTitle
{text-align:center;
font-size:18.0pt;
font-family:Arial;
font-weight:bold;}
.MsoHyperlink
{color:blue;
text-decoration:underline;}
.InfoBlue
{line-height:12.0pt;
font-size:10.0pt;
font-family:"Times New Roman";
color:blue;
font-style:italic;}
.InfoBlue0
{text-indent:-.25in;
line-height:12.0pt;
font-size:10.0pt;
font-family:"Times New Roman";}
.Section1
{page:Section1;}
.Section2
{page:Section2;}
-->
</style>
</head>
<body bgcolor="#FFFFFF" link=blue vlink=purple class="Normal" lang=EN-US>
<div class=Section1>
<p class=MsoTitle style='text-align:justify'>Using Eclipse Process Framework
Composer with a Version Control System</p>
<p class=MsoTitle style='text-align:justify'><span style='font-size:12.0pt'>Version
&lt;1.0&gt;</span></p>
<p></p><br>
<p style='text-align:justify'><a name="_Toc121737925"><b><span
style='font-size:12.0pt'>Abstract:</span></b></a><b><span style='font-size:
12.0pt'>  </span></b></p>
<p style='text-align:justify'>The initial Eclipse Process Framework (EPF) Composer
tool does not provide native support for version control systems, such as
the IBM® Rational® ClearCase® configuration management tool, the open source
version control system Concurrent Versions System (CVS) or other version control
systems.  </p>
<p style='text-align:justify'>This document describes some techniques to facilitate
using EPF Composer with a version control system. Most examples provided here
relate to usage of IBM Rational ClearCase, as it was the version control system
used before donation of source code and process content to Eclipse organization.
As this community tries out using EPF Composer with other version control
systems, please provide feedback so we can update this document. </p>
</div>
<br clear=all
style='page-break-before:always'>
<div class=Section2>
<p class=MsoTitle style='text-align:justify'>Table of Contents</p>
<p class=MsoToc1><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301463">1.<span style='font-size:12.0pt;color:windowtext;
text-decoration:none'>     </span>Overview of EPF Composer Files<span
style='color:windowtext;display:none;text-decoration:none'>  </span><span
style='color:windowtext;display:none;text-decoration:none'>3</span></a></span></span></p>
<p class=MsoToc2><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301464">1.1<span style='font-size:12.0pt;color:windowtext;
text-decoration:none'>      </span>library.xmi<span style='color:windowtext;
display:none;text-decoration:none'> </span><span
style='color:windowtext;display:none;text-decoration:none'>3</span></a></span></span></p>
<p class=MsoToc2><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301465">1.2<span style='font-size:12.0pt;color:windowtext;
text-decoration:none'>      </span>plugin.xmi<span style='color:windowtext;
display:none;text-decoration:none'> </span><span
style='color:windowtext;display:none;text-decoration:none'>3</span></a></span></span></p>
<p class=MsoToc2><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301466">1.3<span style='font-size:12.0pt;color:windowtext;
text-decoration:none'>      </span>&lt;method content element&gt;.xmi<span
style='color:windowtext;display:none;text-decoration:none'> </span><span
style='color:windowtext;display:none;text-decoration:none'>3</span></a></span></span></p>
<p class=MsoToc2><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301467">1.4<span style='font-size:12.0pt;color:windowtext;
text-decoration:none'>      </span>model.xmi<span style='color:windowtext;
display:none;text-decoration:none'> </span><span
style='color:windowtext;display:none;text-decoration:none'>3</span></a></span></span></p>
<p class=MsoToc2><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301468">1.5<span style='font-size:12.0pt;color:windowtext;
text-decoration:none'>      </span>content.xmi<span style='color:windowtext;
display:none;text-decoration:none'> </span><span
style='color:windowtext;display:none;text-decoration:none'>3</span></a></span></span></p>
<p class=MsoToc1><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301469">2.<span style='font-size:12.0pt;color:windowtext;
text-decoration:none'>     </span>Locate your Library and Prime It Appropriately<span style='color:windowtext;display:none;text-decoration:none'> 
</span><span
style='color:windowtext;display:none;text-decoration:none'>3</span></a></span></span></p>
<p class=MsoToc2><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301470">2.1<span style='font-size:12.0pt;color:windowtext;
text-decoration:none'>      </span>You Want to Extend BUP<span
style='color:windowtext;display:none;text-decoration:none'>  </span><span
style='color:windowtext;display:none;text-decoration:none'>4</span></a></span></span></p>
<p class=MsoToc2><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301471">2.2<span style='font-size:12.0pt;color:windowtext;
text-decoration:none'>      </span>You Want to Create Your own Library<span
style='color:windowtext;display:none;text-decoration:none'>  </span><span
style='color:windowtext;display:none;text-decoration:none'>4</span></a></span></span></p>
<p class=MsoToc2><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301472">2.3<span style='font-size:12.0pt;color:windowtext;
text-decoration:none'>      </span>A Note for IBM Rational ClearCase Users<span
style='color:windowtext;display:none;text-decoration:none'>  </span><span
style='color:windowtext;display:none;text-decoration:none'>4</span></a></span></span></p>
<p class=MsoToc2><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301473">2.4<span style='font-size:12.0pt;color:windowtext;
text-decoration:none'>      </span>A Note about the .project File<span
style='color:windowtext;display:none;text-decoration:none'>  </span><span
style='color:windowtext;display:none;text-decoration:none'>4</span></a></span></span></p>
<p class=MsoToc2><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301474">2.5<span style='font-size:12.0pt;color:windowtext;
text-decoration:none'>      </span>Put all Files being Developed under Version
Control<span style='color:windowtext;display:none;text-decoration:none'> </span><span
style='color:windowtext;display:none;text-decoration:none'>4</span></a></span></span></p>
<p class=MsoToc1><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301475">3.<span style='font-size:12.0pt;color:windowtext;
text-decoration:none'>     </span>Ensure the Appropriate Files Are Writable<span
style='color:windowtext;display:none;text-decoration:none'>  </span><span
style='color:windowtext;display:none;text-decoration:none'>4</span></a></span></span></p>
<p class=MsoToc2><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301476">3.1<span style='font-size:12.0pt;color:windowtext;
text-decoration:none'>      </span>Method 1 (Recommended):  Work directly in your
controlled source library<span style='color:windowtext;display:none;
text-decoration:none'>  </span><span
style='color:windowtext;display:none;text-decoration:none'>5</span></a></span></span></p>
<p class=MsoToc2><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301477">3.2<span style='font-size:12.0pt;color:windowtext;
text-decoration:none'>      </span>Method 2:  Work in a copy of your controlled
source library<span style='color:windowtext;display:none;text-decoration:none'> 
</span><span
style='color:windowtext;display:none;text-decoration:none'>5</span></a></span></span></p>
<p class=MsoToc1><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301478">4.<span style='font-size:12.0pt;color:windowtext;
text-decoration:none'>     </span>Extremely Important:  Refresh EPF Composer’s
Memory Cache<span style='color:windowtext;display:none;text-decoration:none'> 
</span><span
style='color:windowtext;display:none;text-decoration:none'>5</span></a></span></span></p>
<p class=MsoToc1><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301479">5.<span style='font-size:12.0pt;color:windowtext;
text-decoration:none'>     </span>Keep Both Applications Happy<span
style='color:windowtext;display:none;text-decoration:none'>  </span><span
style='color:windowtext;display:none;text-decoration:none'>6</span></a></span></span></p>
<p class=MsoToc2><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301480">5.1<span style='font-size:12.0pt;color:windowtext;
text-decoration:none'>      </span>Rename a Method Element<span
style='color:windowtext;display:none;text-decoration:none'> </span><span
style='color:windowtext;display:none;text-decoration:none'>6</span></a></span></span></p>
<p class=MsoToc1><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301481">6.<span style='font-size:12.0pt;color:windowtext;
text-decoration:none'>     </span>Maintain Consistency of Method Library References<span style='color:windowtext;display:none;text-decoration:none'> 
</span><span
style='color:windowtext;display:none;text-decoration:none'>7</span></a></span></span></p>
<p class=MsoToc2><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301482">6.1<span style='font-size:12.0pt;color:windowtext;
text-decoration:none'>      </span>Checking in plugin.xmi or library.xmi<span
style='color:windowtext;display:none;text-decoration:none'> </span><span
style='color:windowtext;display:none;text-decoration:none'>7</span></a></span></span></p>
<p class=MsoToc2><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301483">6.2<span style='font-size:12.0pt;color:windowtext;
text-decoration:none'>      </span>Checking in model.xmi<span style='color:
windowtext;display:none;text-decoration:none'> </span><span
style='color:windowtext;display:none;text-decoration:none'>7</span></a></span></span></p>
<p class=MsoToc1><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301484">7.<span style='font-size:12.0pt;color:windowtext;
text-decoration:none'>     </span>Some Ways to Minimize Shared File Conflicts<span
style='color:windowtext;display:none;text-decoration:none'>  </span><span
style='color:windowtext;display:none;text-decoration:none'>7</span></a></span></span></p>
<p class=MsoToc1><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301485">8.<span style='font-size:12.0pt;color:windowtext;
text-decoration:none'>     </span>For ClearCase Users<span style='color:windowtext;
display:none;text-decoration:none'>  </span><span
style='color:windowtext;display:none;text-decoration:none'>8</span></a></span></span></p>
<p class=MsoToc1><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301486">Appendix A:  Based on Your Actions, What Files Change?<span
style='color:windowtext;display:none;text-decoration:none'>  </span><span
style='color:windowtext;display:none;text-decoration:none'>9</span></a></span></span></p>
<p class=MsoToc1><span class=MsoHyperlink><span style='color:blue'><a
href="#_Toc128301487">Appendix B:  For each EPF Composer File, What Changes Affect
the File?<span style='color:windowtext;display:none;text-decoration:
none'>  </span><span
style='color:windowtext;display:none;text-decoration:none'>12</span></a></span></span></p>
<p class=MsoTitle style='text-align:justify'><br clear=all style='page-break-before:
always'>
Using EPF Composer with a Version Control System</p>
<h1 style='text-align:justify'><a name="_Toc121737927"></a><a
name="_Toc128301463">1.<span style='font:7.0pt "Times New Roman"'>&nbsp;
</span>Overview of EPF Composer Files</a></h1>
<p style='text-align:justify'>Before we delve into the details of using EPF
Composer with a version control system, you should be aware of some files
play a key role in the EPF Composer library.  These need to be carefully controlled
because they contain information that must be kept in synch with other files
in your library.  They are referenced often in this document.  The following
summarizes those files and the role they play in your EPF Composer library. 
For specific information on what changes affect what EPF Composer .xmi file,
see <i>Appendix A:  Based on Your Actions, What Files Change?</i>  or <i>Appendix
B:  For each EPF Composer File, What Changes Affect the File?</i>.</p>
<h2 style='text-align:justify'><a name="_Toc128301464">1.1<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span>library.xmi</a></h2>
<p style='text-align:justify'>There is one library.xmi file for each method
library.  This file contains a reference to every plug-in in your EPF Composer
library.  It also contains the details of what is included in each configuration,
including which content packages, which process packages, and which processes
(capability patterns and delivery processes) are included, as well as the
specification of what’s included in each view.  When you create new packages,
EPF Composer does not modify this file, but this file is updated if you create
a new process.  This file is shared by all plug-ins in your EPF Composer library,
so you need to be especially careful to coordinate changes being made by different
individuals.  </p>
<h2 style='text-align:justify'><a name="_Toc128301465">1.2<span
style='font:7.0pt "Times New Roman"'>&nbsp;</span>plugin.xmi</a></h2>
<p style='text-align:justify'>There is one plugin.xmi file for each plug-in. 
This file contains a reference to every content element in the plug-in, as
well as the presentation names, brief descriptions, and relationships for
each element, such as guidance, inputs or outputs (tasks), performing role
(tasks), work products responsible for (role) etc.  It also contains the definition
of what is included in each standard category as well as the definition and
contents of each custom category.  When more than one person works on a plug-in,
you need to be especially careful about coordinating changes to this file
and any files it references.  </p>
<h2 style='text-align:justify'><a name="_Toc128301466">1.3<span
style='font:7.0pt "Times New Roman"'>&nbsp;</span>&lt;method content element&gt;.xmi</a></h2>
<p style='text-align:justify'>There is one file per method content element. 
It contains the descriptive text for the method content element for all fields
except the name, presentation name, and brief description.  The file name
(&lt;method content element&gt;) is the same as the ‘name’ field for the element.
(One exception to this:  if you create a second method content element with
the same name and that element is located in the same directory in your library,
then EPF Composer will append ‘2’ to the end of the actual filename.  The
appended ‘2’ will not appear in the name field in EPF Composer.)</p>
<h2 style='text-align:justify'><a name="_Toc128301467">1.4<span
style='font:7.0pt "Times New Roman"'>&nbsp;
</span>model.xmi</a></h2>
<p style='text-align:justify'>There is one model.xmi file for each process (capability
pattern or delivery process).  This file contains a reference to the descriptors
(role, task, and work product), as well as the names and brief descriptions
for each of them.  It also contains the diagrams.  However, the brief description
and presentation name for the process itself is kept in the plugin.xmi.</p>
<h2 style='text-align:justify'><a name="_Toc128301468">1.5<span
style='font:7.0pt "Times New Roman"'>&nbsp;
</span>content.xmi</a></h2>
<p style='text-align:justify'>There is one content.xmi file for each process
(capability pattern or delivery process).  This file contains the descriptive
text for the descriptors of the process elements, with the exception of the
names, presentation names and brief descriptions.</p>
<h1 style='text-align:justify'><a name="_Toc128301469"></a><a
name="_Toc124955446"></a><a name="_Toc124955472"></a><a name="_Toc124955447"></a><a
name="_Toc124955473"></a>2.<span style='font:7.0pt "Times New Roman"'>&nbsp;</span>Locate
your Library and Prime It Appropriately</h1>
<p style='text-align:justify'>Now let’s get started.  Before you can set up
your version control system to support your Method Library, you need to decide
where you want to locate your method library.  </p>
<p style='text-align:justify'>Next, you may need to prime your library.  If
you want to use the Method Library that is provided with EPF Composer (BUP),
rather than create all of your method content from scratch, then you also
need to prime your library with the bundled library.</p>
<h2 style='text-align:justify'><a name="_Toc128301470">2.1<span
style='font:7.0pt "Times New Roman"'>&nbsp;</span>You Want to Extend BUP</a></h2>
<p style='text-align:justify'>If you want to use the Method Library that is
provided with EPF Composer, you will need all of the files in the <b>\library</b>
directory (located in the directory where you unzipped EPF Composer) to be
in the same location as all of the files that you will create as part of your
own plug-ins.  </p>
<p style='text-align:justify'>We suggest that you make a copy of the \library
directory and place it where you want your controlled source.  Also place
the library.xmi file (<i>\library\library.xmi</i>) under source code control,
since you will need to modify this file.  </p>
<p style='text-align:justify'>EPF Composer users will typically have all plug-ins
that are bundled with EPF Composer locked, to remind that these files should
not be changed.  We suggest that you keep them locked.  There is no need to
control the source of the EPF Composer library shipped with the product, with
the exception of library.xmi.  You should control the source for all of the
plug-ins that you create.  EPF Composer creates a separate directory for each
plug-in, so it will be easy for you to distinguish your source files from
those that were shipped with EPF Composer. </p>
<p style='text-align:justify'>When you start EPF Composer, you just need to
point it to the directory where your controlled library.xmi file exists.</p>
<p style='text-align:justify'>Differently from EPF Composer users, EPF project
committers have write access to CVS repositories and are expected to source
control the plug-ins available in order to develop and maintain their contents.</p>
<h2 style='text-align:justify'><a name="_Toc128301471">2.2<span
style='font:7.0pt "Times New Roman"'>&nbsp;
</span>You Want to Create Your own Library</a></h2>
<p style='text-align:justify'>If you want to create your own method content
entirely from scratch using EPF Composer and are not interested in using any
of the supplied method content, then you just need to point EPF Composer to
the directory where you want your library files to exist (Use the menu item
File &gt; New &gt; Method Library in EPF Composer).</p>
<h2 style='text-align:justify'><a name="_Toc128301472">2.3<span
style='font:7.0pt "Times New Roman"'>&nbsp;
</span>A Note for IBM Rational ClearCase Users</a></h2>
<p style='text-align:justify'>You cannot successfully use a dynamic view with
EPF Composer.  You need to create a snapshot view.</p>
<h2 style='text-align:justify'><a name="_Toc128301473">2.4<span
style='font:7.0pt "Times New Roman"'>&nbsp;
</span>A Note about the .project File</a></h2>
<p style='text-align:justify'>When you start EPF Composer, it will create a
.project file in the directory where your controlled library.xmi file exists. 
You should not place this .project file under version control since the tool
will create one on each user’s workspace.</p>
<h2 style='text-align:justify'><a name="_Toc128301474">2.5<span
style='font:7.0pt "Times New Roman"'>&nbsp;
</span>Put all Files being Developed under Version Control</a></h2>
<p style='text-align:justify'>As files and directories are added to your method
library, place them under version control.</p>
<h1 style='text-align:justify'><a name="_Toc128301475"></a><a
name="_Ref124216809"></a><a name="_Ref124216337"></a><a name="_Toc121737931">3.<span
style='font:7.0pt "Times New Roman"'>&nbsp;
</span>Ensure the Appropriate Files Are Writable</a></h1>
<p style='text-align:justify'>Whenever you make changes using EPF Composer that
cause changes to the underlying files for your Method Library, those files
must be writable.  Due to the way the EPF Composer is designed, more than
one file may need to be modified when you make a change.  (See <i>Appendix
A:  Based on Your Actions, What Files Change?</i> for a list of actions that
cause this situation.)  Many version control systems keep the controlled files
in your file system read-only unless you have unlocked or checked out the
files.  Before you can make changes in EPF Composer you need to guarantee
that the files you will be modifying are writable.   There are two methods
you can use to accomplish this.</p>
<h2 style='text-align:justify'><a name="_Toc128301476"></a><a
name="_Toc121737932">3.1<span style='font:7.0pt "Times New Roman"'>&nbsp;
</span>Method 1 (Recommended):  Work directly in your controlled source library</a></h2>
<p style='text-align:justify'>You can point EPF Composer directly to your controlled
source (e.g., to your snapshot from IBM Rational ClearCase or to your working
directory from CVS).  When you want to make a change in EPF Composer, you
need to ensure that the files EPF Composer needs to modify are writable. 
This typically means checking out the files in your version control system. 
</p>
<p style='text-align:justify'>When you first start EPF Composer, you are asked
for the location of the method library.  You should point EPF Composer to
your library snapshot, that is, to the directory that contains the library.xmi
file. </p>
<p style='text-align:justify'><b>Pros:</b>  This method is the simplest.  There
is no need to synchronize your workspace with your controlled source, as in
Method 2 below.  Another advantage to this method is that it enforces proper
version control because you must obtain proper control over the files you
need to modify before you make any changes.</p>
<p style='text-align:justify'><b>Cons:</b>   You may find it frustrating to
need to continually check out files before you can make any changes.  If you
can check out all of the files in the plug-in you will be working in, you
can minimize the files you need to check out before you can proceed with your
work; however, you may not always be able to do this.  Additionally, you cannot
easily see the changes that are made to the files you update.  Some errors
can be easily caught by making such a comparison.  For instance, if someone
accidentally dragged/dropped an item from the library view into a rich text
view, a link is created.  If this was done inadvertently, the user may not
have noticed the creation of the link.  The comparison will point out the
incorrect change.</p>
<h2 style='text-align:justify'><a name="_Toc128301477"></a><a
name="_Toc121737933"></a><a name="_Toc124772802"></a><a name="_Toc124772837"></a><a
name="_Toc124772804"></a><a name="_Toc124772839"></a>3.2<span style='font:7.0pt "Times New Roman"'>&nbsp;
</span>Method 2:  Work in a copy of your controlled source library</h2>
<p style='text-align:justify'>You can make a copy of your controlled source
from your version control system; make all of the files writable, and point
EPF Composer to this copy for the Method Library. When you want to make a
change, you still need to understand what files will be changed and obtain
proper control over these files (e.g., check them out of your version control
system) so that no one else will update them while you are updating them. 
Once you’ve made your changes, you can compare the controlled source with
your copy to discover what files changed using a directory comparison tool
such as Beyond Compare® from Scooter Software (<a
href="http://www.scootersoftware.com/">www.scootersoftware.com</a>).  Copy the
files that changed over to your source control library and check these files
into your version control system.  </p>
<p style='text-align:justify'>When you first start EPF Composer, you are asked
for the location of the method library.  You should point EPF Composer to
your copy of your controlled source library, that is, to the directory that
contains the library.xmi file. </p>
<p style='text-align:justify'><b>Pros:</b>  Since all of the files are writable,
EPF Composer will allow any change.  When you are just experimenting in your
‘sandbox’ and do not intend to make your changes permanent, this can be quite
useful.  This method is also useful if you want to compare the changes you
have made with the current source in your source library before checking in
your changes.</p>
<p style='text-align:justify'><b>Cons:  </b>The disadvantage to this method
is that there is more manual work involved in copying files back and forth
to ensure that your copy of the source library is up-to-date.  There’s also
the tendency to forget to check out the files from your version control system
before you make changes.  This could lead to conflicts when you try to check
these files back in because someone else may have modified them while you
were making your changes.  This is especially true for library.xmi or plugin.xmi.</p>
<p style='text-align:justify'><b>Caution:</b>  We offer this method as an alternative
because there are times when it is useful.  However, if you use this method
to make changes to controlled source, <b>you must be very careful</b> to ensure
that you check out the files you need and ensure that no one has changed them
in your source library since you initially made your copy of these files.</p>
<h1 style='text-align:justify'><a name="_Ref124216864"></a><a
name="_Toc121737934"></a><a name="_Toc128301478"></a><a name="_Ref125593979"></a><a
name="_Ref124249400"></a><a name="_Ref124216936"></a><a name="_Toc121737936">4.<span
style='font:7.0pt "Times New Roman"'>&nbsp;
</span>Extremely Important:  Refresh EPF Composer’s Memory Cache</a></h1>
<p style='text-align:justify'>When you open a method library in EPF Composer,
some of the information contained in the source files is read into memory. 
If you update the files in your Method Library outside of EPF Composer, you
risk losing those changes if you do not force EPF Composer to refresh its
memory cache.  When you update files from your version control system, those
files are being changed outside of EPF Composer.  </p>
<p style='text-align:justify'><b>Rule:  Whenever you update files from your
version control system,</b> y<b>ou MUST refresh EPF Composer’s memory cache.</b> 
</p>
<p style='text-align:justify'>You can refresh the memory cache by either:</p>
<ul type=disc>
<li style='text-align:justify;line-height:normal'>Shutting down EPF Composer
and starting it again</li>
<li style='text-align:justify;line-height:normal'>Reopening your method library
in EPF Composer (File &gt; Open &gt; Method Library)</li>
</ul>
<p style='text-align:justify'>Here is a very common scenario that illustrates
this problem.</p>
<p style='text-align:justify;line-height:normal'>1.<span style='font:7.0pt "Times New Roman"'>&nbsp;
</span>You start EPF Composer</p>
<p style='text-align:justify;line-height:normal'>2.<span style='font:7.0pt "Times New Roman"'>&nbsp;
</span>You realize that you want to make a change that will affect the plugin.xmi
file</p>
<p style='text-align:justify;line-height:normal'>3.<span style='font:7.0pt "Times New Roman"'>&nbsp;
</span>You go to your version control system and discover that you do not
have the latest version of plugin.xmi because another team member has updated
it.  </p>
<p style='text-align:justify;line-height:normal'>4.<span style='font:7.0pt "Times New Roman"'>&nbsp;
</span>You update plugin.xmi from the library and check it out.</p>
<p style='text-align:justify;line-height:normal'><i><span style='color:black'>5.<span
style='font:7.0pt "Times New Roman"'>&nbsp; </span></span></i>You
go back to EPF Composer and make your change.  <i><span style='color:black'>(Notice
that since you left EPF Composer open, it has the old plugin.xmi in its memory
cache.)</span></i></p>
<p style='text-align:justify;line-height:normal'>6.<span style='font:7.0pt "Times New Roman"'>&nbsp;
</span>You check back in all of the files involved in your change, including
plugin.xmi.</p>
<p style='text-align:justify;line-height:normal'>7.<span style='font:7.0pt "Times New Roman"'>&nbsp;
</span><b><span style='color:black'>PROBLEM:</span></b>  Since you did NOT
refresh EPF Composer’s memory cache after you updated and checked out plugin.xmi,
the plugin.xmi you have just checked into your version control system has
lost the changes made by your teammate.</p>
<p style='text-align:justify;line-height:
normal'><span style='color:black'>If you encounter this problem, the safest way
to recover is to back out your changes and redo them with the proper version
of plugin.xmi in EPF Composer’s memory cache.</span></p>
<p style='text-align:justify;line-height:
normal'><span style='color:black'>NOTE:  When you check out the files you need
to modify, if you are uncertain whether any file changed, then it is best
to be safe:  shut down and restart EPF Composer before making your changes.</span></p>
<h1 style='text-align:justify'><a name="_Toc128301479">5.<span
style='font:7.0pt "Times New Roman"'>&nbsp;
</span>Keep Both Applications Happy</a></h1>
<p style='text-align:justify'>Both EPF Composer and your version control system
need to be in control of the names of files and directories.  Some changes
that you make to the Method Library in EPF Composer will cause files to be
renamed, deleted or moved, but your version control system will know nothing
about these changes.  You need to manually simulate the same change for your
version control system.  Changes that affect the names of files or directories,
or that delete files or directories, must be performed in both EPF Composer
and in your version control system.</p>
<p style='text-align:justify'>The following instructions describe how to rename
a method element using IBM Rational Clear Case.  The procedure for other version
control systems is similar.  The procedure to rename a directory or to delete
a file or directory is also similar.  When new files are created, don’t forget
to put them under source code control, as usual.</p>
<h2 style='text-align:justify'><a name="_Toc128301480"></a><a
name="_Toc121737935">5.1<span style='font:7.0pt "Times New Roman"'>&nbsp;
</span>Rename a Method Element</a></h2>
<p style='text-align:justify'>Renaming a method element not only changes the
name of the element’s file, but also causes a change to <i>plugin.xmi</i>.</p>
<ol start=1 type=1>
<li style='text-align:justify;line-height:normal'>Update your library to make
sure you have the latest files.</li>
<li style='text-align:justify;line-height:normal'>Use IBM Rational ClearCase
to check out the content file and the <i>plugin.xmi</i> file.  Put in a
comment to say that you are doing a rename, in case someone needs to back
out this change.</li>
<li style='text-align:justify;line-height:normal'>Open EPF Composer and rename
the method element.  For example, rename the content element <i>oldname</i>
to <i>newname</i>.  EPF Composer actually renames the file <i>oldname.xmi</i>
to <i>newname.xmi</i>.</li>
</ol>
<p style='text-align:justify'>At this point, IBM Rational ClearCase thinks you
have <i>oldname.xmi</i> checked out, but that file is gone now.  We need to
do a rename in IBM Rational ClearCase, as well.  We cannot do that while the
file is checked out.</p>
<ol start=4 type=1>
<li style='text-align:justify;line-height:normal'>Using your file system,
rename <i>newname.xmi</i> back to <i>oldname.xmi</i>.</li>
<li style='text-align:justify;line-height:normal'>Check <i>oldname.xmi</i>
back in.</li>
<li style='text-align:justify;line-height:normal'>Use IBM Rational ClearCase
to rename <i>oldname.xmi</i> to <i>newname.xmi.</i>  At this point, the
library is corrupt, because the old <i>plugin.xmi</i> is still referring
to <i>oldname.xmi</i>.</li>
<li style='text-align:justify;line-height:normal'>Check <i>plugin.xmi</i>
back in.  The library is no longer corrupt.  </li>
<li style='text-align:justify;line-height:normal'>The rename in IBM Rational
ClearCase also causes a change to the version controlled DIRECTORY that
contains the files, as well as a change to the file itself.  Do a “find
checkouts” on the library to make sure that the directory got checked in
correctly.  If the directory is still checked out, check it in.  If it requires
merging, just accept the automatic merge.</li>
</ol>
<h1 style='text-align:justify'><a name="_Toc128301481"></a><a
name="_Ref124772881">6.<span style='font:7.0pt "Times New Roman"'>&nbsp;
</span>Maintain Consistency of Method Library References</a></h1>
<p style='text-align:justify'>Several files (library.xmi, plugin.xmi, and model.xmi)
contain cross-reference information about other files.  It is important to
check in your files in a manner that preserves the validity of these cross-references.
 </p>
<h2 style='text-align:justify'><a name="_Toc128301482">6.1<span
style='font:7.0pt "Times New Roman"'>&nbsp;
</span>Checking in plugin.xmi or library.xmi</a></h2>
<p style='text-align:justify'>The order in which you check in <i>plugin.xmi</i>
and <i>library.xmi</i> depends upon the type of changes you were making. 
Since plugin.xmi and library.xmi contain references to other files or plug-ins
(library.xmi), you will encounter errors opening EPF Composer if the files
referenced by plugin.xmi or library.xmi are not present.  To prevent this
from occurring, you need to be careful about timing your check-ins of these
two files.</p>
<ul type=disc>
<li style='text-align:justify'><b>New files created:</b>  In this case, you
should check in plugin.xmi and library.xmi after you have added the new
content to source control.  </li>
<li style='text-align:justify'><b>Files deleted:</b>  If you delete method
content or a plug-in, then you should check in plugin.xmi and library.xmi
first, prior to actually deleting the files from your version control system. 
</li>
<li style='text-align:justify'><b>Other changes</b> <b>that also affect plugin.xmi
or library.xmi:  </b>It is probably best to check plugin.xmi or library.xmi
into your version control system last, after checking in modifications made
to the other files.</li>
</ul>
<h2 style='text-align:justify'><a name="_Toc128301483">6.2<span
style='font:7.0pt "Times New Roman"'>&nbsp;
</span>Checking in model.xmi</a></h2>
<p style='text-align:justify'>Similarly, model.xmi should be checked in first,
if you delete elements from your processes, and last if you are adding new
elements to your processes.  See the previous section on checking in plugin.xmi
or library.xmi for details.<a name="_Ref124749104"></a><a
name="_Ref124248415"></a><a name="_Toc121737937"></a></p>
<h1 style='text-align:justify'><a name="_Toc128301484">7.<span
style='font:7.0pt "Times New Roman"'>&nbsp;
</span>Some Ways to Minimize Shared File Conflicts</a></h1>
<p style='text-align:justify'>It is recommended that you control access to the
shared files (library.xmi and plugin.xmi) in order to minimize conflicts between
these files that may be shared by many.  You can do this by:</p>
<ul type=disc>
<li style='text-align:justify'>Establishing the overall content of the method
library first (e.g., what plug-ins and what configurations will it include). 
Make these changes in EPF Composer to prime the library.xmi file. If you
will have many individuals working on your library, you might want to develop
your content in many separate plug-ins, so that you minimize the number
of persons working on each plug-in.  This will reduce the number of shared
files that you need to contend with.</li>
<li style='text-align:justify'>Establishing the method architecture up front
(e.g., what method elements the plug-in will contain, their names, presentation
names, brief descriptions, and relationships).  Make these changes in EPF
Composer to prime the plugin.xmi file.</li>
<li style='text-align:justify'>Making many small, incremental changes, checking
each change into your source library, rather than making many at one time
before checking in the changes.</li>
<li style='text-align:justify'>Checking out the files you need to change (see
<i>Appendix A:  Based on Your Actions, What Files Change?</i>), making your
change, and then checking the files back in right away.  (<b>Hint:</b> 
If you are not sure what files you need to check out, you can let EPF Composer
tell you.  With the files still read only, try to make your change in EPF
Composer.  EPF Composer will tell you what files need to be writable.)</li>
</ul>
<p style='text-align:justify'><b>Caution:</b>  Remember, if you need to check
out library.xmi or plugin.xmi to make your change, be sure you refresh EPF
Composer’s memory cache if you did not already have the latest version of
one of these files.  (See <i>Extremely Important:  Refresh EPF Composer’s
Memory Cache</i>)</p>
<h1 style='text-align:justify'><a name="_Toc128301485">8.<span
style='font:7.0pt "Times New Roman"'>&nbsp;
</span>For ClearCase Users</a></h1>
<p style='text-align:justify'>If you are using IBM Rational ClearCase, remember
that you must update your files before you check them out.  This order is
important because ClearCase does not update any files that you have checked
out.  So, if someone has made a change to a file after you obtained your snapshot
of that file and you check out the file before updating it from your source
library, then you will be making your changes to an old version of the file. 
ClearCase will not allow you to check your changed file back in.  You will
need to obtain a new version of the file and make your changes all over again.</p>
<br clear=all
style='page-break-before:always'>
<h1 style='text-align:justify;'><a
name="_Ref124773090"></a><a name="_Toc128301486"></a><a name="_Ref124957972">Appendix
A:  Based on Your Actions, What Files Change</a>?</h1>
<p style='text-align:justify'>The following table shows examples of actions
that may result in more than one file being updated or that could result in
a change that requires special attention in your version control system, such
as</p>
<ul type=disc>
<li style='text-align:justify;line-height:normal'>A filename change</li>
<li style='text-align:justify;line-height:normal'>A filed moved from one directory
to another</li>
<li style='text-align:justify;line-height:normal'>A file deleted</li>
<li style='text-align:justify;line-height:normal'>A file created</li>
</ul>
<p style='text-align:justify'><i>Note:  This table shows common actions, it
may not cover every action that needs special attention.</i></p>
<table class=MsoTableGrid border=1 cellspacing=0 cellpadding=0>
<thead>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'><b>Action</b></p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'><b>What
Changed</b></p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'><b>Comments</b></p></td>
</tr>
</thead>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Change
the name of a method content element (task, role, work product, guidance,
custom category, or standard category)</p>
<p style='text-align:justify'>Note:  This includes contributing, extending,
or replacing content elements.</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;</span></span>The&lt;method_content&gt;.xmi
file name is changed</p>
<p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;</span></span>plugin.xmi
is changed</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Name
refers to the name field for the element in the EPF Composer editor. 
Be sure to rename the file in your version control system.</p></td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Change
the name of a process element (capability pattern (CP) or delivery process
(DP))</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;</span></span>The
directory name for your CP/DP is changed to match the new name.</p>
<p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>plugin.xmi
is changed to reference the new directory name.  </p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'><span
style='color:black'>In your version control system, be sure to rename the directory
before you check-in the updated plugin.xmi.</span></p></td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Change
the Presentation Name of a method element or process</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify;line-height:normal'>plugin.xmi
is modified</p></td>
<td width=197 valign=top class="Normal">&nbsp; </td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Move
a content element to another plug-in</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;</span></span>File
moves from one directory to another</p>
<p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>plugin.xmi
for both plug-ins changes</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'><span style='color:black'>In
your version control system, be sure to move the file before you check-in
the updated plugin.xmi files. </span></p></td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Create
a new method content element (task, role, work product, guidance, custom
categories, or standard category)</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;</span></span>A
new &lt;method content&gt;.xmi file is created</p>
<p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;</span></span>plugin.xmi
is changed</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'><span style='color:black'>Need
to place the new file under source code control.  Be sure to place the
new file under source code control BEFORE checking in plugin.xmi.</span></p></td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Delete
a method content element (task, role, work product, guidance, custom
categories, or standard category)</p></td>
<td width=197 valign=top class="Normal"> <p class=InfoBlue0 style='text-align:justify;'><span style='font-family:Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>The &lt;method content&gt;.xmi file is deleted</p>
<p class=InfoBlue0 style='text-align:justify;'><span style='font-family:Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>plugin.xmi is changed</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'><span style='color:black'>Be
sure to delete the file in your version control system.</span></p></td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Refine
the descriptive text for a method element (all fields except the name,
presentation name, or brief description)</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify;line-height:normal'>The
&lt;method content&gt;.xmi file is updated</p></td>
<td width=197 valign=top class="Normal">&nbsp; </td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Create
a new plug-in</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;</span></span>New
directory is created</p>
<p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>New
plugin.xmi is created in the new plug-in directory</p>
<p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;</span></span>library.xmi 
is changed</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'><span style='color:black'>Need
to place new directory and new plugin.xmi file under source code control. 
Be sure to check in the new plugin.xmi BEFORE checking in library.xmi.</span></p>
<p style='text-align:justify'><span style='color:black'>Note: Y</span>ou
might want to develop your content in many separate plug-ins, to minimize
the number of persons working on each plug-in.<span
style='color:black'> </span></p></td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Delete
a plug-in</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;</span></span>The
entire directory for the plug-in is deleted</p>
<p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>library.xmi
is changed</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'><span style='color:black'>Be
sure to perform the corresponding deletes in your version control system.</span></p></td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Rename
a plug-in</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;</span></span>The
name of the plug-in’s directory is changed</p>
<p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;</span></span>library.xmi
is changed</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'><span style='color:black'>Be
sure to rename the directory in your version control system.</span></p></td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Create
a new capability pattern (CP) or delivery process (DP)</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&</span></span>library.xmi
is modified</p>
<p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;</span></span>plugin.xmi
is modified</p>
<p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;</span></span>New
directory and new model.xmi and content.xmi files are created for the
new CP/DP</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'><span style='color:black'>library.xmi
is modified to update the configuration to include the new CP or DP. 
Plugin.xmi is updated to include a reference to the new CP or DP.  
Be sure to place the new file(s) under source code control BEFORE checking
in library.xmi.</span></p>
<p style='text-align:justify'><span style='color:black'>Note: It is advisable
to double-check that your new process has been selected in your configuration. 
If it is not, you will not see it in the Configuration View.</span></p></td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Delete
a process (CP or DP)</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;</span></span>library.xmi
is modified</p>
<p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;</span></span>plugin.xmi
is modified</p>
<p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;</span></span>The
directory for the process and its contents are deleted</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'><span style='color:black'>Be
sure to delete the directory and its contents in your version control
system.</span></p></td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Rename
a process (CP or DP)</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>library.xmi
is modified</p>
<p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;</span></span>plugin.xmi
is modified</p>
<p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>The
directory for the process is renamed</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'><span style='color:black'>Be
sure to rename the directory in your version control system.</span></p></td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Create,
rename, or delete content package or process package</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;</span></span>plugin.xmi
is modified</p>
<p style='text-align:justify'>Note: Content and process packages do not
result in new directories being created in the file structure.</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'><span style='color:black'>When
you create a new package, you may want to select it in your configuration. 
This will cause library.xmi to be modified. </span></p></td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Create
a new custom category</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify;line-height:normal'><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>plugin.xmi
is modified</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'><span style='color:black'>You
may notice a \customcategories directory in some of the plug-ins shipped
with EPF Composer.  Early versions of EPF Composer created a directory
for each custom category.</span></p></td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Update
the brief description for a method content element (task, role, work
product, guidance, custom categories, standard category, or process
(CP or DP))</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>plugin.xmi
is modified</p></td>
<td width=197 valign=top class="Normal">&nbsp; </td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Assign
a relationship to an element, such as adding guidance, tool mentors,
input or output work product, responsible role, performing role, etc.</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>plugin.xmi
is modified</p></td>
<td width=197 valign=top class="Normal">&nbsp; </td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Categorize
an element by assigning it to a domain, work product kind, role set,
or discipline)</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>plugin.xmi
is modified</p></td>
<td width=197 valign=top class="Normal">&nbsp; </td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Assigning
variability to an element by making it a contributor, extension, or
replacement for another element</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>plugin.xmi
is modified</p></td>
<td width=197 valign=top class="Normal">&nbsp; </td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Assigning
a shape or node icon</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>plugin.xmi
is modified</p></td>
<td width=197 valign=top class="Normal">&nbsp; </td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Add
or change descriptive text for a process (not the brief description)</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>content.xmi
is modified</p></td>
<td width=197 valign=top class="Normal">&nbsp; </td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Update
the brief description an activity in a process (CP or DP) </p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>model.xmi
is modified</p></td>
<td width=197 valign=top class="Normal">&nbsp; </td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Modify
or create a diagram for a process</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>model.xmi
is modified</p></td>
<td width=197 valign=top class="Normal">&nbsp; </td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Update
the name or presentation name of an activity</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>model.xmi
is modified</p></td>
<td width=197 valign=top class="Normal">&nbsp; </td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Update
the attributes for a process activity (ongoing, repeatable, etc) </p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>model.xmi
is modified</p></td>
<td width=197 valign=top class="Normal">&nbsp; </td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Set
or update the entry or exit state of a work product</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>model.xmi
is modified</p></td>
<td width=197 valign=top class="Normal">&nbsp; </td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Set
or update activity relationships (predecessors, extend, copy)</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>model.xmi
is modified</p></td>
<td width=197 valign=top class="Normal">&nbsp; </td>
</tr>
<tr>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>Create,
delete, or modify a configuration</p></td>
<td width=197 valign=top class="Normal"> <p style='text-align:justify'>library.xmi
is modified</p></td>
<td width=197 valign=top class="Normal">&nbsp; </td>
</tr>
</table>
<br clear=all
style='page-break-before:always'>
<h1 style='text-align:justify;'><a
name="_Ref124741993"></a><a name="_Toc124662184"></a><a name="_Toc128301487"></a><a
name="_Ref124958016">Appendix B:  For each EPF Composer File, What Changes Affect
the File?</a></h1>
<p style='text-align:justify'>This section describes what changes affect what
EPF Composer file.</p>
<p style='text-align:justify'>The following table lists the .xmi files created
and managed by EPF Composer.  For each file, we describe what types of changes
affect those files:</p>
<table class=MsoTableGrid border=1 cellspacing=0 cellpadding=0>
<thead>
<tr>
<td width=193 valign=top class="Normal"> <p style='text-align:justify'><b>EPF
Composer File</b></p></td>
<td width=445 valign=top class="Normal"> <p style='text-align:justify'><b>Changes
that Affect the File</b></p></td>
</tr>
</thead>
<tr>
<td width=193 valign=top class="Normal"> <p style='text-align:justify'>library.xmi</p></td>
<td width=445 valign=top class="Normal"> <ul type=disc>
<li style='
text-align:justify'>Creating/deleting/renaming a plug-in</li>
<li style='
text-align:justify'>Creating/deleting/renaming a process (a capability
pattern or a delivery process)</li>
<li style='
text-align:justify'>Changing a configuration</li>
</ul></td>
</tr>
<tr>
<td width=193 valign=top class="Normal"> <p style='text-align:justify'>plugin.xmi
(one for each plug-in)</p></td>
<td width=445 valign=top class="Normal"> <ul type=disc>
<li style='
text-align:justify'>Creating/deleting method elements (method content or
processes)</li>
<li style='
text-align:justify'>Creating/refining method element brief descriptions
(method content or processes)</li>
<li style='
text-align:justify'>Creating/refining method element names (name or presentation
name)</li>
<li style='
text-align:justify'>Creating/refining method content variability (contribute,
extend, replace)</li>
<li style='
text-align:justify'>Creating/refining relationships (guidance, inputs work
products, output work products, roles) </li>
<li style='text-align:justify'>Creating/refining categorizations (domain,
work product kind, role set, discipline)</li>
<li style='
text-align:justify'>Creating/refining method content categories (custom
or standard)</li>
<li style='text-align:justify'>Creating/refining method packages (method
content or process packages)</li>
<li style='text-align:justify'>Assigning a shape or node icon</li>
<li style='text-align:justify'>A new plugin.xmi file is created when
a new plug-in is created</li>
</ul></td>
</tr>
<tr>
<td width=193 valign=top class="Normal"> <p style='text-align:justify'>&lt;method
content name&gt;.xmi (one for each method content element)</p></td>
<td width=445 valign=top class="Normal"> <ul type=disc>
<li style='
text-align:justify'>Refining the descriptive text for the method content
element (all fields except the name, presentation name and brief description).</li>
<li style='
text-align:justify'>Changing the name of a method content element will
cause the name of this file to change.</li>
</ul></td>
</tr>
<tr>
<td width=193 valign=top class="Normal"> <p style='text-align:justify'>&lt;process
name&gt;\model.xmi </p>
<p style='text-align:justify'>(one for each process)</p></td>
<td width=445 valign=top class="Normal"> <ul type=disc>
<li style='
text-align:justify'>Creating/refining activities</li>
<li style='text-align:justify'>Creating/refining activity brief descriptions</li>
<li style='text-align:justify'>Creating/refining activity names (name
and presentation name)</li>
<li style='text-align:justify'>Creating/refining activity relationships
(predecessor, extend, copy)</li>
<li style='text-align:justify'>Creating/refining process diagrams</li>
<li style='text-align:justify'>Refining the activity attributes (found
on the General properties tab), such as repeatable, ongoing, etc.
or predecessor relationships</li>
<li style='text-align:justify'>Creating/refining the entry or exit state
of a work product</li>
</ul></td>
</tr>
<tr>
<td width=193 valign=top class="Normal"> <p style='text-align:justify'>&lt;process
name&gt;\content.xmi (one for each process)</p></td>
<td width=445 valign=top class="Normal"> <ul type=disc>
<li style='
text-align:justify'>Refining textual content of method descriptors (tasks,
roles, work products).  This includes all of the descriptive text,
except the presentation names and brief descriptions</li>
</ul></td>
</tr>
</table>
<p></p>
<p class=MsoTitle style='text-align:justify'><span style='font-size:10.0pt'>Made available under the EPL v1.0</span></p>
</div>
</body>
</html>