<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI 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:epf="http://www.eclipse.org/epf" epf:version="1.5.1">
  <org.eclipse.epf.uma:ProcessDescription xmi:id="-E-d4Jcu297rxUq8lte8qnw" name="CP1 with all elements,_4sCtsTzgEdq5ysFONr1BGQ" guid="-E-d4Jcu297rxUq8lte8qnw">
    <mainDescription>&lt;p>
    The subcategories of process are delivery process and capability pattern.&amp;nbsp; A delivery process defines a complete
    or end-to-end process.&amp;nbsp; A capability pattern is a process fragment used to compose a delivery process.
&lt;/p>
&lt;p>
    &amp;nbsp;
&lt;/p></mainDescription>
    <externalId>EXternal ID:CP1 with all elements</externalId>
    <keyConsiderations>This capability pattern can be used to quickly construct an Inception phase iteration in a delivery process.&amp;nbsp; Copy or
extend the pattern&amp;nbsp;repeatedly to create as many iterations as necessary for the particular delivery process.</keyConsiderations>
    <purpose>This capability pattern can be used to quickly construct an Inception phase iteration in a delivery process.&amp;nbsp; Copy or
extend the pattern&amp;nbsp;repeatedly to create as many iterations as necessary for the particular delivery process. &lt;br />
&lt;br /></purpose>
    <alternatives>&lt;p>
    To explain the work involved in the Analysis and Design discipline, the activities and work products are organized into
    a capability pattern for the discipline.
&lt;/p>
&lt;p>
    In the Inception Phase, analysis and design is concerned with establishing whether the system as envisioned is
    feasible, and with assessing potential technologies for the solution (in &lt;a href=&quot;resources/wfs_archsyn.htm&quot;>&lt;font
    color=&quot;#0000ff&quot;>Perform Architectural Synthesis&lt;/font>&lt;/a>). If it is felt that little risk attaches to the development
    (because, for example, the domain is well understood, the system is not novel, and so on) then this workflow detail may
    be omitted.
&lt;/p>
&lt;p>
    The early Elaboration Phase focuses on creating an initial architecture for the system ( &lt;a
    href=&quot;resources/wfs_and1.htm&quot;>&lt;font color=&quot;#0000ff&quot;>Define a Candidate Architecture&lt;/font>&lt;/a>) to provide a starting
    point for the main analysis work. If the architecture already exists (either because it was produced in previous
    iterations, in previous projects, or is obtained from an application framework), the focus of the work changes to
    refining the architecture ( &lt;a href=&quot;resources/wfs_and2.htm&quot;>&lt;font color=&quot;#0000ff&quot;>Refine the Architecture&lt;/font>&lt;/a>)
    and analyzing behavior and creating an initial set of elements which provide the appropriate behavior ( &lt;a
    href=&quot;resources/wfs_and3.htm&quot;>&lt;font color=&quot;#0000ff&quot;>Analyze Behavior&lt;/font>&lt;/a>).
&lt;/p>
&lt;p>
    After the initial elements are identified, they are further refined. &lt;a href=&quot;resources/wfs_and4.htm&quot;>&lt;font
    color=&quot;#0000ff&quot;>Design Components&lt;/font>&lt;/a> produce a set of components which provide the appropriate behavior to
    satisfy the requirements on the system. If the system includes a database, then &lt;a href=&quot;resources/wfs_and7.htm&quot;>&lt;font
    color=&quot;#0000ff&quot;>Design the Database&lt;/font>&lt;/a> occurs in parallel. The result is an initial set of components which are
    further refined in &lt;a href=&quot;resources/wfd_imp.htm&quot;>&lt;font color=&quot;#0000ff&quot;>Implementation&lt;/font>&lt;/a>.&lt;br />
&lt;/p>&amp;nbsp;&lt;br />
&lt;br /></alternatives>
    <howtoStaff>&lt;p>
    To explain the work involved in the Analysis and Design discipline, the activities and work products are organized into
    a capability pattern for the discipline.
&lt;/p>
&lt;p>
    In the Inception Phase, analysis and design is concerned with establishing whether the system as envisioned is
    feasible, and with assessing potential technologies for the solution (in &lt;a href=&quot;resources/wfs_archsyn.htm&quot;>&lt;font
    color=&quot;#0000ff&quot;>Perform Architectural Synthesis&lt;/font>&lt;/a>). If it is felt that little risk attaches to the development
    (because, for example, the domain is well understood, the system is not novel, and so on) then this workflow detail may
    be omitted.
&lt;/p>
&lt;p>
    The early Elaboration Phase focuses on creating an initial architecture for the system ( &lt;a
    href=&quot;resources/wfs_and1.htm&quot;>&lt;font color=&quot;#0000ff&quot;>Define a Candidate Architecture&lt;/font>&lt;/a>) to provide a starting
    point for the main analysis work. If the architecture already exists (either because it was produced in previous
    iterations, in previous projects, or is obtained from an application framework), the focus of the work changes to
    refining the architecture ( &lt;a href=&quot;resources/wfs_and2.htm&quot;>&lt;font color=&quot;#0000ff&quot;>Refine the Architecture&lt;/font>&lt;/a>)
    and analyzing behavior and creating an initial set of elements which provide the appropriate behavior ( &lt;a
    href=&quot;resources/wfs_and3.htm&quot;>&lt;font color=&quot;#0000ff&quot;>Analyze Behavior&lt;/font>&lt;/a>).
&lt;/p>
&lt;p>
    After the initial elements are identified, they are further refined. &lt;a href=&quot;resources/wfs_and4.htm&quot;>&lt;font
    color=&quot;#0000ff&quot;>Design Components&lt;/font>&lt;/a> produce a set of components which provide the appropriate behavior to
    satisfy the requirements on the system. If the system includes a database, then &lt;a href=&quot;resources/wfs_and7.htm&quot;>&lt;font
    color=&quot;#0000ff&quot;>Design the Database&lt;/font>&lt;/a> occurs in parallel. The result is an initial set of components which are
    further refined in &lt;a href=&quot;resources/wfd_imp.htm&quot;>&lt;font color=&quot;#0000ff&quot;>Implementation&lt;/font>&lt;/a>.&lt;br />
&lt;/p>
&amp;nbsp;&lt;br />
&lt;br /></howtoStaff>
    <scope>&lt;p>
    To explain the work involved in the Analysis and Design discipline, the activities and work products are organized into
    a capability pattern for the discipline.
&lt;/p>
&lt;p>
    In the Inception Phase, analysis and design is concerned with establishing whether the system as envisioned is
    feasible, and with assessing potential technologies for the solution (in &lt;a href=&quot;resources/wfs_archsyn.htm&quot;>&lt;font
    color=&quot;#0000ff&quot;>Perform Architectural Synthesis&lt;/font>&lt;/a>). If it is felt that little risk attaches to the development
    (because, for example, the domain is well understood, the system is not novel, and so on) then this workflow detail may
    be omitted.
&lt;/p>
&lt;p>
    The early Elaboration Phase focuses on creating an initial architecture for the system ( &lt;a
    href=&quot;resources/wfs_and1.htm&quot;>&lt;font color=&quot;#0000ff&quot;>Define a Candidate Architecture&lt;/font>&lt;/a>) to provide a starting
    point for the main analysis work. If the architecture already exists (either because it was produced in previous
    iterations, in previous projects, or is obtained from an application framework), the focus of the work changes to
    refining the architecture ( &lt;a href=&quot;resources/wfs_and2.htm&quot;>&lt;font color=&quot;#0000ff&quot;>Refine the Architecture&lt;/font>&lt;/a>)
    and analyzing behavior and creating an initial set of elements which provide the appropriate behavior ( &lt;a
    href=&quot;resources/wfs_and3.htm&quot;>&lt;font color=&quot;#0000ff&quot;>Analyze Behavior&lt;/font>&lt;/a>).
&lt;/p>
&lt;p>
    After the initial elements are identified, they are further refined. &lt;a href=&quot;resources/wfs_and4.htm&quot;>&lt;font
    color=&quot;#0000ff&quot;>Design Components&lt;/font>&lt;/a> produce a set of components which provide the appropriate behavior to
    satisfy the requirements on the system. If the system includes a database, then &lt;a href=&quot;resources/wfs_and7.htm&quot;>&lt;font
    color=&quot;#0000ff&quot;>Design the Database&lt;/font>&lt;/a> occurs in parallel. The result is an initial set of components which are
    further refined in &lt;a href=&quot;resources/wfd_imp.htm&quot;>&lt;font color=&quot;#0000ff&quot;>Implementation&lt;/font>&lt;/a>.&lt;br />
&lt;/p>&amp;nbsp;&lt;br />
&lt;br /></scope>
    <usageNotes>&lt;p>
    The subcategories of process are delivery process and capability pattern.&amp;nbsp; A delivery process defines a complete
    or end-to-end process.&amp;nbsp; A capability pattern is a process fragment used to compose a delivery process.
&lt;/p></usageNotes>
  </org.eclipse.epf.uma:ProcessDescription>
  <org.eclipse.epf.uma:ActivityDescription xmi:id="-YVTZRE5oy5oGcue1XXh3dQ" name="Activity1,_E73rITziEdq5ysFONr1BGQ" guid="-YVTZRE5oy5oGcue1XXh3dQ">
    <mainDescription>&lt;p>
    This Workflow Detail:
&lt;/p>
&lt;ul>
    &lt;li>
        Provides the natural &lt;b>transition from analysis&lt;/b> activities &lt;b>to design&lt;/b> activities, identifying: 
        &lt;ul>
            &lt;li>
                appropriate design elements from analysis elements
            &lt;/li>
            &lt;li>
                appropriate design mechanisms from related analysis mechanisms
            &lt;/li>
        &lt;/ul>
    &lt;/li>
    &lt;li>
        &lt;b>Describes&lt;/b> the organization of the system's &lt;b>run-time and deployment architecture&lt;/b>
    &lt;/li>
    &lt;li>
        &lt;b>Organizes the implementation model&lt;/b> so as to make the transition between design and implementation seamless
    &lt;/li>
    &lt;li>
        &lt;b>Maintains the consistency and integrity of the architecture&lt;/b>, ensuring that: 
        &lt;ul>
            &lt;li>
                new design elements identified for the current iteration are integrated with pre-existing design elements.
            &lt;/li>
            &lt;li>
                maximal re-use of available components and design elements is achieved as early as possible in the design
                effort.
            &lt;/li>
        &lt;/ul>
    &lt;/li>
&lt;/ul></mainDescription>
    <keyConsiderations>&lt;p>
    Key considerations:
&lt;/p>
&lt;ul>
    &lt;li>
        key1
    &lt;/li>
    &lt;li>
        key2
    &lt;/li>
    &lt;li>
        key3
    &lt;/li>
    &lt;li>
        key4
    &lt;/li>
    &lt;li>
        key5
    &lt;/li>
    &lt;li>
        key6
    &lt;/li>
    &lt;li>
        key7
    &lt;/li>
&lt;/ul></keyConsiderations>
    <usageGuidance>&lt;p>
    The work is best done in several sessions, perhaps performed over a few days (or weeks and months for very large
    systems). The initial focus will be on the activities &lt;a class=&quot;elementLink&quot;
    href=&quot;resources/identify_design_mechanisms,{C7A26BD7-3820-48D9-830F-684C3AF155F9}.html&quot;
    guid=&quot;{C7A26BD7-3820-48D9-830F-684C3AF155F9}&quot;>Identify Design Mechanisms&lt;/a> and &lt;a class=&quot;elementLink&quot;
    href=&quot;resources/identify_design_elements_real-time_design,{586963D0-607D-4EC2-8D53-292DAFAB9C92}.html&quot;
    guid=&quot;{586963D0-607D-4EC2-8D53-292DAFAB9C92}&quot;>identify_design_elements_real-time_design&lt;/a>, with a great deal of
    iteration with the &lt;a class=&quot;elementLink&quot;
    href=&quot;resources/incorporate_design_elements,{5C647173-4E32-4594-96A9-2548B47722FA}.html&quot;
    guid=&quot;{5C647173-4E32-4594-96A9-2548B47722FA}&quot;>Incorporate Existing Design Elements&lt;/a> activity to make sure that new
    elements do not duplicate functionality of existing elements.
&lt;/p>
&lt;p>
    As the design emerges, concurrency and distribution issues are introduced in the activities &lt;a class=&quot;elementLink&quot;
    href=&quot;resources/describe_runtime_architecture,{4D35C038-A2D0-48B8-9ECD-52717FEAE33A}.html&quot;
    guid=&quot;{4D35C038-A2D0-48B8-9ECD-52717FEAE33A}&quot;>Describe the Run-time Architecture&lt;/a> and &lt;a class=&quot;elementLink&quot;
    href=&quot;resources/describe_distribution,{6A112808-0A90-427A-BAB9-E14F3FBF72B5}.html&quot;
    guid=&quot;{6A112808-0A90-427A-BAB9-E14F3FBF72B5}&quot;>Describe Distribution&lt;/a>, respectively. As these issues are considered,
    changes to design elements may be required to split behavior across processes, threads or nodes.
&lt;/p>
&lt;p>
    As the individual models are refined to incorporate the architectural decisions, the results are documented in
    respective view sections in the Software Architecture Document (e.g., as the Design Model is refined, the Logical View
    of the Software Architecture Document is refined, as well). The resulting architecture is reviewed.
&lt;/p>
&lt;br />
&lt;br /></usageGuidance>
    <purpose>&lt;p>
    Purpose of this activity is to have tasks that are associated to other tasks.
&lt;/p>
&lt;p>
    &amp;nbsp;&lt;img height=&quot;71&quot; alt=&quot;&quot; src=&quot;resources/rup.jpg&quot; width=&quot;176&quot; />
&lt;/p></purpose>
    <alternatives>&lt;p>
    Alterantives:
&lt;/p>
&lt;ol>
    &lt;li>
        Alter1
    &lt;/li>
    &lt;li>
        Alter2
    &lt;/li>
    &lt;li>
        Alter3
    &lt;/li>
&lt;/ol></alternatives>
    <howtoStaff>&lt;p>
    These activities are best carried out by a small team staffed by cross-functional team members. Issues that are
    typically architecturally significant include usability, performance, scaling, process and thread synchronization, and
    distribution. The team should also include members with domain experience who can identify key abstractions. The team
    should also have experience with model organization and layering. The team will need to be able to pull all these
    disparate threads into a cohesive, coherent (albeit preliminary) architecture.
&lt;/p>
&lt;p>
    Because the focus of the architecture effort is shifting toward implementation issues, greater attention needs to be
    paid to specific technology issues. This will force the architecture team to shift members or expand to include people
    with distribution and deployment expertise (if those issues are architecturally significant). In order to understand
    the potential impact of the structure on the implementation model on the ease of integration, expertise in the software
    build management process is useful to have.
&lt;/p>
&lt;p>
    At the same time, it is essential that the architecture team not be composed of a large extended team. A strategy for
    countering this trend is to retain a relatively small core team with a satellite group of extended team members that
    are brought in as &quot;consultants&quot; on key issues&lt;b>.&lt;/b> This structure also works well for smaller projects where
    specific expertise may be borrowed or contracted from other organizations; they can be brought in as specific issues
    need to be addressed.
&lt;/p></howtoStaff>
  </org.eclipse.epf.uma:ActivityDescription>
  <org.eclipse.epf.uma:ActivityDescription xmi:id="-VRUCShAvXrsLgs7PZzHgUw" name="Iteration1,_EFVrwTziEdq5ysFONr1BGQ" guid="-VRUCShAvXrsLgs7PZzHgUw">
    <mainDescription>&lt;p>
    This workflow detail has the following goals:
&lt;/p>
&lt;ul>
    &lt;li>
        Create an initial sketch of the architecture of the system 
        &lt;ul>
            &lt;li>
                Define an initial set of architecturally significant elements to use as the basis for analysis
            &lt;/li>
            &lt;li>
                Define an initial set of analysis mechanisms
            &lt;/li>
            &lt;li>
                Define the initial layering and organization of the system
            &lt;/li>
            &lt;li>
                Define the use-case realizations to be addressed in the current iteration
            &lt;/li>
        &lt;/ul>
    &lt;/li>
    &lt;li>
        Identify analysis classes from the architecturally significant use cases
    &lt;/li>
    &lt;li>
        Update the use-case realizations with analysis class interactions
    &lt;/li>
&lt;/ul></mainDescription>
    <keyConsiderations>&lt;p>
    Key considerations:
&lt;/p>
&lt;ul>
    &lt;li>
        key11
    &lt;/li>
    &lt;li>
        key22
    &lt;/li>
    &lt;li>
        key33
    &lt;/li>
&lt;/ul></keyConsiderations>
    <usageGuidance>&lt;p>
    The work is best done in several sessions, perhaps performed over a few days (or weeks and months for very large
    systems), with iteration between &lt;a class=&quot;elementLink&quot;
    href=&quot;resources/architectural_analysis,{8CB48402-D4C5-4E17-BB33-507315CB1BBF}.html&quot;
    guid=&quot;{8CB48402-D4C5-4E17-BB33-507315CB1BBF}&quot;>Architectural Analysis&lt;/a> and &lt;a class=&quot;elementLink&quot;
    href=&quot;resources/use_case_analysis,{28014615-A62F-452D-B821-30C7CAB0EC44}.html&quot;
    guid=&quot;{28014615-A62F-452D-B821-30C7CAB0EC44}&quot;>Use-Case Analysis&lt;/a>. Perform an initial pass at the architecture in &lt;a
    class=&quot;elementLink&quot; href=&quot;resources/architectural_analysis,{8CB48402-D4C5-4E17-BB33-507315CB1BBF}.html&quot;
    guid=&quot;{8CB48402-D4C5-4E17-BB33-507315CB1BBF}&quot;>Architectural Analysis&lt;/a>, then choose architecturally significant use
    cases, performing &lt;a class=&quot;elementLink&quot; href=&quot;resources/use_case_analysis,{28014615-A62F-452D-B821-30C7CAB0EC44}.html&quot;
    guid=&quot;{28014615-A62F-452D-B821-30C7CAB0EC44}&quot;>Use-Case Analysis&lt;/a> on each one. After (or as) each use case is
    analyzed, update the architecture as needed to reflect adaptations required to accommodate new behavior of the system
    and to address potential architectural problems which are identified.
&lt;/p>
&lt;p>
    Where the architecture already exists (either from a prior project or iteration), change requests may need to be
    created to change the architecture to account for the new behavior the system must support. These changes may be to any
    artifact in the process, depending on the scope of the change.
&lt;/p>
&lt;br />
&lt;br /></usageGuidance>
    <purpose>&lt;p>
    Purpose: This itertaion is created for two activities.
&lt;/p>
&lt;p>
    &amp;nbsp;&lt;img height=&quot;474&quot; alt=&quot;&quot; src=&quot;resources/rup_platform.jpg&quot; width=&quot;504&quot; />
&lt;/p></purpose>
    <alternatives>&lt;p>
    Alternatives:
&lt;/p>
&lt;ol>
    &lt;li>
        &lt;a href=&quot;../roles/role_A1.xmi&quot; target=&quot;_blank&quot;>role_A1.xmi&lt;/a>
    &lt;/li>
    &lt;li>
        &lt;a href=&quot;../tasks/task_A2.xmi&quot; target=&quot;_blank&quot;>task_A2.xmi&lt;/a>
    &lt;/li>
&lt;/ol></alternatives>
    <howtoStaff>&lt;p>
    These activities are best carried out by a small team staffed by cross-functional team members. Issues that are
    typically architecturally significant include performance, scaling, process and thread synchronization, and
    distribution. The team should also include members with domain experience who can identify key abstractions. The team
    should also have experience with model organization and layering. The team will need to be able to pull all these
    disparate threads into a cohesive, coherent (albeit preliminary) architecture.
&lt;/p></howtoStaff>
  </org.eclipse.epf.uma:ActivityDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-nUH0voD7RoKQgPT0rbOwQQ" name="task_B2,_McYH0DzlEdq5ysFONr1BGQ" guid="-nUH0voD7RoKQgPT0rbOwQQ">
    <keyConsiderations>&lt;p>
    key considerations:
&lt;/p>
&lt;ol>
    &lt;li>
        k1
    &lt;/li>
    &lt;li>
        k2
    &lt;/li>
    &lt;li>
        k3
    &lt;/li>
&lt;/ol></keyConsiderations>
    <usageGuidance>&lt;p>
    usage guidance for task_B2
&lt;/p>
&lt;table cellspacing=&quot;2&quot; cellpadding=&quot;2&quot; width=&quot;180&quot; border=&quot;1&quot;>
    &lt;tbody>
        &lt;tr>
            &lt;td>
            &lt;/td>
        &lt;/tr>
    &lt;/tbody>
&lt;/table>
&lt;table cellspacing=&quot;2&quot; cellpadding=&quot;2&quot; width=&quot;180&quot; border=&quot;1&quot;>
    &lt;tbody>
        &lt;tr>
            &lt;th scope=&quot;col&quot;>
                r1
            &lt;/th>
            &lt;th scope=&quot;col&quot;>
                c2
            &lt;/th>
            &lt;th scope=&quot;col&quot;>
                c3
            &lt;/th>
            &lt;th scope=&quot;col&quot;>
                c4
            &lt;/th>
        &lt;/tr>
        &lt;tr>
            &lt;th scope=&quot;row&quot;>
                r2
            &lt;/th>
            &lt;td>
                asd
            &lt;/td>
            &lt;td>
                dsf
            &lt;/td>
            &lt;td>
                dsf
            &lt;/td>
        &lt;/tr>
        &lt;tr>
            &lt;th scope=&quot;row&quot;>
                r3
            &lt;/th>
            &lt;td>
                &lt;img height=&quot;28&quot; alt=&quot;&quot; src=&quot;resources/buttons.jpg&quot; width=&quot;337&quot; /> 
            &lt;/td>
            &lt;td>
                dsf
            &lt;/td>
            &lt;td>
            &lt;/td>
        &lt;/tr>
        &lt;tr>
            &lt;th scope=&quot;row&quot;>
                r4
            &lt;/th>
            &lt;td>
            &lt;/td>
            &lt;td>
            &lt;/td>
            &lt;td>
                sdf
            &lt;/td>
        &lt;/tr>
        &lt;tr>
            &lt;th scope=&quot;row&quot;>
                r5
            &lt;/th>
            &lt;td>
                daf
            &lt;/td>
            &lt;td>
                sdf
            &lt;/td>
            &lt;td>
                &lt;img height=&quot;12&quot; alt=&quot;&quot; src=&quot;resources/bullet1.gif&quot; width=&quot;12&quot; /> 
            &lt;/td>
        &lt;/tr>
    &lt;/tbody>
&lt;/table>
&lt;br />
&lt;br />
&lt;br />
&lt;br /></usageGuidance>
    <refinedDescription>&lt;p>
    &lt;a href=&quot;resources/papers.htm&quot; target=&quot;_blank&quot;>papers.htm&lt;/a>
&lt;/p>
&lt;p>
    refined description:
&lt;/p></refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-aDE4yFzE_m_n2PIzcOt4rA" name="task_A2,_JCrBEDzlEdq5ysFONr1BGQ" guid="-aDE4yFzE_m_n2PIzcOt4rA">
    <keyConsiderations>&lt;p>
    keys:
&lt;/p>
&lt;ol>
    &lt;li>
        kk1
    &lt;/li>
    &lt;li>
        kk2
    &lt;/li>
    &lt;li>
        kk3
    &lt;/li>
&lt;/ol></keyConsiderations>
    <usageGuidance>&lt;p>
    usage guidance for task_B2
&lt;/p>
&lt;table cellspacing=&quot;2&quot; cellpadding=&quot;2&quot; width=&quot;180&quot; border=&quot;1&quot;>
    &lt;tbody>
        &lt;tr>
            &lt;th scope=&quot;col&quot;>
                r1
            &lt;/th>
            &lt;th scope=&quot;col&quot;>
                c2
            &lt;/th>
            &lt;th scope=&quot;col&quot;>
                c3
            &lt;/th>
            &lt;th scope=&quot;col&quot;>
                c4
            &lt;/th>
        &lt;/tr>
        &lt;tr>
            &lt;th scope=&quot;row&quot;>
                r2
            &lt;/th>
            &lt;td>
                asd
            &lt;/td>
            &lt;td>
                dsf
            &lt;/td>
            &lt;td>
                dsf
            &lt;/td>
        &lt;/tr>
        &lt;tr>
            &lt;th scope=&quot;row&quot;>
                r3
            &lt;/th>
            &lt;td>
                &lt;img height=&quot;28&quot; alt=&quot;&quot; src=&quot;resources/buttons.jpg&quot; width=&quot;337&quot; /> 
            &lt;/td>
            &lt;td>
                dsf
            &lt;/td>
            &lt;td>
            &lt;/td>
        &lt;/tr>
        &lt;tr>
            &lt;th scope=&quot;row&quot;>
                r4
            &lt;/th>
            &lt;td>
            &lt;/td>
            &lt;td>
            &lt;/td>
            &lt;td>
                sdf
            &lt;/td>
        &lt;/tr>
        &lt;tr>
            &lt;th scope=&quot;row&quot;>
                r5
            &lt;/th>
            &lt;td>
                daf
            &lt;/td>
            &lt;td>
                sdf
            &lt;/td>
            &lt;td>
                &lt;img height=&quot;12&quot; alt=&quot;&quot; src=&quot;resources/bullet1.gif&quot; width=&quot;12&quot; /> 
            &lt;/td>
        &lt;/tr>
    &lt;/tbody>
&lt;/table>
&lt;br />
&lt;br />
&lt;br />
&lt;br /></usageGuidance>
    <refinedDescription>Task A2's refined description</refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-5t8GtoL4IBoxfazBI_0crA" name="wpDesc1,_SUGQgDziEdq5ysFONr1BGQ" guid="-5t8GtoL4IBoxfazBI_0crA">
    <keyConsiderations>key:wpDesc1</keyConsiderations>
    <usageGuidance>usage:wpDesc1</usageGuidance>
    <refinedDescription>&lt;p>
    refined: wpDesc1
&lt;/p></refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-ifmQNB5y1RZKF1Hrm3CdRA" name="task associated to taskA1,_FrtMoDziEdq5ysFONr1BGQ" guid="-ifmQNB5y1RZKF1Hrm3CdRA">
    <keyConsiderations>&lt;p>
    keys:
&lt;/p>
&lt;p>
    key1,key2
&lt;/p></keyConsiderations>
    <usageGuidance>&lt;p>
    usage:
&lt;/p>
&lt;p>
    The work is best done in several sessions, perhaps performed over a few days (or weeks and months for very large
    systems). The initial focus will be on the activities &lt;a class=&quot;elementLink&quot;
    href=&quot;resources/identify_design_mechanisms,{C7A26BD7-3820-48D9-830F-684C3AF155F9}.html&quot;
    guid=&quot;{C7A26BD7-3820-48D9-830F-684C3AF155F9}&quot;>Identify Design Mechanisms&lt;/a> and &lt;a class=&quot;elementLink&quot;
    href=&quot;resources/identify_design_elements_real-time_design,{586963D0-607D-4EC2-8D53-292DAFAB9C92}.html&quot;
    guid=&quot;{586963D0-607D-4EC2-8D53-292DAFAB9C92}&quot;>identify_design_elements_real-time_design&lt;/a>, with a great deal of
    iteration with the &lt;a class=&quot;elementLink&quot;
    href=&quot;resources/incorporate_design_elements,{5C647173-4E32-4594-96A9-2548B47722FA}.html&quot;
    guid=&quot;{5C647173-4E32-4594-96A9-2548B47722FA}&quot;>Incorporate Existing Design Elements&lt;/a> activity to make sure that new
    elements do not duplicate functionality of existing elements.
&lt;/p>
&lt;p>
    As the design emerges, concurrency and distribution issues are introduced in the activities &lt;a class=&quot;elementLink&quot;
    href=&quot;resources/describe_runtime_architecture,{4D35C038-A2D0-48B8-9ECD-52717FEAE33A}.html&quot;
    guid=&quot;{4D35C038-A2D0-48B8-9ECD-52717FEAE33A}&quot;>Describe the Run-time Architecture&lt;/a> and &lt;a class=&quot;elementLink&quot;
    href=&quot;resources/describe_distribution,{6A112808-0A90-427A-BAB9-E14F3FBF72B5}.html&quot;
    guid=&quot;{6A112808-0A90-427A-BAB9-E14F3FBF72B5}&quot;>Describe Distribution&lt;/a>, respectively. As these issues are considered,
    changes to design elements may be required to split behavior across processes, threads or nodes.
&lt;/p>
&lt;p>
    As the individual models are refined to incorporate the architectural decisions, the results are documented in
    respective view sections in the Software Architecture Document (e.g., as the Design Model is refined, the Logical View
    of the Software Architecture Document is refined, as well). The resulting architecture is reviewed.
&lt;/p>
&lt;p>
    &lt;br />
    &lt;br />
    &amp;nbsp;
&lt;/p></usageGuidance>
    <refinedDescription>&lt;p>
    refined description
&lt;/p>
&lt;p>
    &lt;img height=&quot;16&quot; alt=&quot;&quot; src=&quot;resources/helpbook.gif&quot; width=&quot;16&quot; />
&lt;/p>
&lt;p>
    &lt;a href=&quot;resources/papers.htm&quot; target=&quot;_blank&quot;>papers.htm&lt;/a>
&lt;/p></refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-pO8LeceGXjKeapuLoFfkxA" name="roleDesc1,_P1sUYDziEdq5ysFONr1BGQ" guid="-pO8LeceGXjKeapuLoFfkxA">
    <keyConsiderations>&lt;p>
    key considerations:
&lt;/p>
&lt;p>
    key1
&lt;/p>
&lt;p>
    key2
&lt;/p></keyConsiderations>
    <usageGuidance>&lt;p>
    &lt;img height=&quot;474&quot; alt=&quot;&quot; src=&quot;resources/rup_platform.jpg&quot; width=&quot;504&quot; />usage for roleA1&amp;nbsp;
&lt;/p></usageGuidance>
    <refinedDescription>refined description for roleDesc1</refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-_Th-jv5jm0h0f0mFhKtqgQ" name="roleDesc2,_Q99kADziEdq5ysFONr1BGQ" guid="-_Th-jv5jm0h0f0mFhKtqgQ">
    <keyConsiderations>key consideration for roleA2</keyConsiderations>
    <usageGuidance>&lt;p>
    &lt;img height=&quot;12&quot; alt=&quot;&quot; src=&quot;resources/bullet1.gif&quot; width=&quot;12&quot; />
&lt;/p>
&lt;p>
    usage guidance for roleA2
&lt;/p></usageGuidance>
    <refinedDescription>&lt;p>
    refined description for roleA2
&lt;/p>
&lt;p>
&lt;/p>
&lt;p>
    refined description for roleA2
&lt;/p></refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-Bkv6VTdMpg4bD0YkfHZ4dg" name="task associated to taskA2,_LwLQgDziEdq5ysFONr1BGQ" guid="-Bkv6VTdMpg4bD0YkfHZ4dg">
    <keyConsiderations>keys: task associated to taskA2</keyConsiderations>
    <usageGuidance>usage:task associated to taskA2</usageGuidance>
    <refinedDescription>&lt;p>
    refined:task associated to taskA2
&lt;/p>
&lt;table cellspacing=&quot;2&quot; cellpadding=&quot;2&quot; width=&quot;180&quot; border=&quot;1&quot;>
    &lt;tbody>
        &lt;tr>
            &lt;th scope=&quot;col&quot;>
                1
            &lt;/th>
            &lt;th scope=&quot;col&quot;>
                z
            &lt;/th>
            &lt;th scope=&quot;col&quot;>
                z
            &lt;/th>
            &lt;th scope=&quot;col&quot;>
                z
            &lt;/th>
            &lt;th scope=&quot;col&quot;>
                z
            &lt;/th>
            &lt;th scope=&quot;col&quot;>
                z
            &lt;/th>
        &lt;/tr>
        &lt;tr>
            &lt;td>
                z
            &lt;/td>
            &lt;td>
                2
            &lt;/td>
            &lt;td>
            &lt;/td>
            &lt;td>
            &lt;/td>
            &lt;td>
            &lt;/td>
            &lt;td>
            &lt;/td>
        &lt;/tr>
        &lt;tr>
            &lt;td>
                z
            &lt;/td>
            &lt;td>
            &lt;/td>
            &lt;td>
                3
            &lt;/td>
            &lt;td>
            &lt;/td>
            &lt;td>
            &lt;/td>
            &lt;td>
            &lt;/td>
        &lt;/tr>
        &lt;tr>
            &lt;td>
                z
            &lt;/td>
            &lt;td>
            &lt;/td>
            &lt;td>
            &lt;/td>
            &lt;td>
                4
            &lt;/td>
            &lt;td>
            &lt;/td>
            &lt;td>
            &lt;/td>
        &lt;/tr>
        &lt;tr>
            &lt;td>
                z
            &lt;/td>
            &lt;td>
            &lt;/td>
            &lt;td>
            &lt;/td>
            &lt;td>
            &lt;/td>
            &lt;td>
                5
            &lt;/td>
            &lt;td>
            &lt;/td>
        &lt;/tr>
    &lt;/tbody>
&lt;/table></refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-TRxhxAs1xOKNRrFCEPpAlw" name="task with no links,_5jJYADzkEdq5ysFONr1BGQ" guid="-TRxhxAs1xOKNRrFCEPpAlw">
    <keyConsiderations>key:task with no links</keyConsiderations>
    <usageGuidance>usage:task with no links</usageGuidance>
    <refinedDescription>&lt;p>
    refined:task with no links
&lt;/p></refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:ActivityDescription xmi:id="-AdwAjn5vRCnEQQLUaYJ1dw" name="Activity2,_BS6gETzlEdq5ysFONr1BGQ" guid="-AdwAjn5vRCnEQQLUaYJ1dw">
    <mainDescription>&lt;p>
    This Workflow Detail:
&lt;/p>
&lt;ul>
    &lt;li>
        Provides the natural &lt;b>transition from analysis&lt;/b> activities &lt;b>to design&lt;/b> activities, identifying: 
        &lt;ul>
            &lt;li>
                appropriate design elements from analysis elements
            &lt;/li>
            &lt;li>
                appropriate design mechanisms from related analysis mechanisms
            &lt;/li>
        &lt;/ul>
    &lt;/li>
    &lt;li>
        &lt;b>Describes&lt;/b> the organization of the system's &lt;b>run-time and deployment architecture&lt;/b>
    &lt;/li>
    &lt;li>
        &lt;b>Organizes the implementation model&lt;/b> so as to make the transition between design and implementation seamless
    &lt;/li>
    &lt;li>
        &lt;b>Maintains the consistency and integrity of the architecture&lt;/b>, ensuring that: 
        &lt;ul>
            &lt;li>
                new design elements identified for the current iteration are integrated with pre-existing design elements.
            &lt;/li>
            &lt;li>
                maximal re-use of available components and design elements is achieved as early as possible in the design
                effort.
            &lt;/li>
        &lt;/ul>
    &lt;/li>
&lt;/ul></mainDescription>
    <keyConsiderations>&lt;p>
    Key considerations:
&lt;/p>
&lt;ul>
    &lt;li>
        key1
    &lt;/li>
    &lt;li>
        key2
    &lt;/li>
    &lt;li>
        key3
    &lt;/li>
    &lt;li>
        key4
    &lt;/li>
    &lt;li>
        key5
    &lt;/li>
    &lt;li>
        key6
    &lt;/li>
    &lt;li>
        key7
    &lt;/li>
&lt;/ul></keyConsiderations>
    <usageGuidance>&lt;p>
    The work is best done in several sessions, perhaps performed over a few days (or weeks and months for very large
    systems). The initial focus will be on the activities &lt;a class=&quot;elementLink&quot;
    href=&quot;resources/identify_design_mechanisms,{C7A26BD7-3820-48D9-830F-684C3AF155F9}.html&quot;
    guid=&quot;{C7A26BD7-3820-48D9-830F-684C3AF155F9}&quot;>Identify Design Mechanisms&lt;/a> and &lt;a class=&quot;elementLink&quot;
    href=&quot;resources/identify_design_elements_real-time_design,{586963D0-607D-4EC2-8D53-292DAFAB9C92}.html&quot;
    guid=&quot;{586963D0-607D-4EC2-8D53-292DAFAB9C92}&quot;>identify_design_elements_real-time_design&lt;/a>, with a great deal of
    iteration with the &lt;a class=&quot;elementLink&quot;
    href=&quot;resources/incorporate_design_elements,{5C647173-4E32-4594-96A9-2548B47722FA}.html&quot;
    guid=&quot;{5C647173-4E32-4594-96A9-2548B47722FA}&quot;>Incorporate Existing Design Elements&lt;/a> activity to make sure that new
    elements do not duplicate functionality of existing elements.
&lt;/p>
&lt;p>
    As the design emerges, concurrency and distribution issues are introduced in the activities &lt;a class=&quot;elementLink&quot;
    href=&quot;resources/describe_runtime_architecture,{4D35C038-A2D0-48B8-9ECD-52717FEAE33A}.html&quot;
    guid=&quot;{4D35C038-A2D0-48B8-9ECD-52717FEAE33A}&quot;>Describe the Run-time Architecture&lt;/a> and &lt;a class=&quot;elementLink&quot;
    href=&quot;resources/describe_distribution,{6A112808-0A90-427A-BAB9-E14F3FBF72B5}.html&quot;
    guid=&quot;{6A112808-0A90-427A-BAB9-E14F3FBF72B5}&quot;>Describe Distribution&lt;/a>, respectively. As these issues are considered,
    changes to design elements may be required to split behavior across processes, threads or nodes.
&lt;/p>
&lt;p>
    As the individual models are refined to incorporate the architectural decisions, the results are documented in
    respective view sections in the Software Architecture Document (e.g., as the Design Model is refined, the Logical View
    of the Software Architecture Document is refined, as well). The resulting architecture is reviewed.
&lt;/p>
&lt;br />
&lt;br /></usageGuidance>
    <purpose>&lt;p>
    Purpose of this activity is to have tasks that are associated to other tasks.
&lt;/p>
&lt;p>
    &amp;nbsp;&lt;img height=&quot;71&quot; alt=&quot;&quot; src=&quot;resources/rup.jpg&quot; width=&quot;176&quot; />
&lt;/p></purpose>
    <alternatives>&lt;p>
    Alterantives:
&lt;/p>
&lt;ol>
    &lt;li>
        Alter1
    &lt;/li>
    &lt;li>
        Alter2
    &lt;/li>
    &lt;li>
        Alter3
    &lt;/li>
&lt;/ol></alternatives>
    <howtoStaff>&lt;p>
    These activities are best carried out by a small team staffed by cross-functional team members. Issues that are
    typically architecturally significant include usability, performance, scaling, process and thread synchronization, and
    distribution. The team should also include members with domain experience who can identify key abstractions. The team
    should also have experience with model organization and layering. The team will need to be able to pull all these
    disparate threads into a cohesive, coherent (albeit preliminary) architecture.
&lt;/p>
&lt;p>
    Because the focus of the architecture effort is shifting toward implementation issues, greater attention needs to be
    paid to specific technology issues. This will force the architecture team to shift members or expand to include people
    with distribution and deployment expertise (if those issues are architecturally significant). In order to understand
    the potential impact of the structure on the implementation model on the ease of integration, expertise in the software
    build management process is useful to have.
&lt;/p>
&lt;p>
    At the same time, it is essential that the architecture team not be composed of a large extended team. A strategy for
    countering this trend is to retain a relatively small core team with a satellite group of extended team members that
    are brought in as &quot;consultants&quot; on key issues&lt;b>.&lt;/b> This structure also works well for smaller projects where
    specific expertise may be borrowed or contracted from other organizations; they can be brought in as specific issues
    need to be addressed.
&lt;/p></howtoStaff>
  </org.eclipse.epf.uma:ActivityDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-BY__tijwRrV41YUrXItU0w" name="role_A2,_JC98ADzlEdq5ysFONr1BGQ" guid="-BY__tijwRrV41YUrXItU0w">
    <keyConsiderations>keys consideration:Role A2</keyConsiderations>
    <usageGuidance>usage:Role A2</usageGuidance>
    <refinedDescription>&lt;p>
    refined description : Role A2
&lt;/p></refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-DOZrR_sZwwpcUtcou-jIyQ" name="role_A1,_JC98ATzlEdq5ysFONr1BGQ" guid="-DOZrR_sZwwpcUtcou-jIyQ">
    <keyConsiderations>Role A1:key consideration</keyConsiderations>
    <usageGuidance>Role A1:usage</usageGuidance>
    <refinedDescription>Role A1:Refined description</refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-arFrJisByP90YCrMb-iyjg" name="roleDesc with no links,_3_UNwDzkEdq5ysFONr1BGQ" guid="-arFrJisByP90YCrMb-iyjg">
    <keyConsiderations>key consideration:roleDesc with no links</keyConsiderations>
    <usageGuidance>usage:roleDesc with no links</usageGuidance>
    <refinedDescription>refined description : roleDesc with no links</refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-5OeGPH8JRzSRAFPzBgHnJA" name="role_B2,_Mc0zwDzlEdq5ysFONr1BGQ" guid="-5OeGPH8JRzSRAFPzBgHnJA">
    <keyConsiderations>key:Role B2</keyConsiderations>
    <usageGuidance>usage:Role B2</usageGuidance>
    <refinedDescription>refined:Role B2</refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-YerIjDrIlewd8iDhISMg1g" name="role_B1,_Mc0zwTzlEdq5ysFONr1BGQ" guid="-YerIjDrIlewd8iDhISMg1g">
    <keyConsiderations>key:Role B1</keyConsiderations>
    <usageGuidance>usage:Role B1</usageGuidance>
    <refinedDescription>refined: Role B1</refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-ncLhU4vhg6dhoEKTTkKkDQ" name="wpDesc2,_TCu4IDziEdq5ysFONr1BGQ" guid="-ncLhU4vhg6dhoEKTTkKkDQ">
    <keyConsiderations>key:wpdesc2</keyConsiderations>
    <usageGuidance>usage:wpdesc2</usageGuidance>
    <refinedDescription>refined: wpdesc2</refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-rDXoW6bWZ_7mkL_E9Wcyhg" name="wpDesc3 with no links,_1x57ADzkEdq5ysFONr1BGQ" guid="-rDXoW6bWZ_7mkL_E9Wcyhg">
    <keyConsiderations>key: wpDesc3 with no links</keyConsiderations>
    <usageGuidance>usage: wpDesc3 with no links</usageGuidance>
    <refinedDescription>refined: wpDesc3 with no links</refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-hmCCr-DKZ6zr8S6DXdqfSA" name="artifact_A2,_JC98AjzlEdq5ysFONr1BGQ" guid="-hmCCr-DKZ6zr8S6DXdqfSA">
    <keyConsiderations>key : Artifact A2</keyConsiderations>
    <usageGuidance>usage: Artifact A2</usageGuidance>
    <refinedDescription>refined: Artifact A2</refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-CDJo_oYCdDi5vp8I69v9Ow" name="deliverable_A2,_JC98AzzlEdq5ysFONr1BGQ" guid="-CDJo_oYCdDi5vp8I69v9Ow">
    <keyConsiderations>keys: Deliverable A2</keyConsiderations>
    <usageGuidance>usage: Deliverable A2</usageGuidance>
    <refinedDescription>refined:Deliverable A2</refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-QN9RGL5cn0SlbUwnGV2G_A" name="artifact_A2,_JDHtADzlEdq5ysFONr1BGQ" guid="-QN9RGL5cn0SlbUwnGV2G_A">
    <keyConsiderations>keys:Artifact A2</keyConsiderations>
    <usageGuidance>usage:Artifact A2</usageGuidance>
    <refinedDescription>refined:Artifact A2</refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-1jTDqS4Rv_PAEHYFpeojmA" name="outcome_A2,_JDHtATzlEdq5ysFONr1BGQ" guid="-1jTDqS4Rv_PAEHYFpeojmA">
    <keyConsiderations>key:Outcome A2</keyConsiderations>
    <usageGuidance>usage:Outcome A2</usageGuidance>
    <refinedDescription>refined:Outcome A2</refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-DakzmvA-qhwGESCfZK11sQ" name="artifact_B2,_MdRfsDzlEdq5ysFONr1BGQ" guid="-DakzmvA-qhwGESCfZK11sQ">
    <keyConsiderations>key:Artifact B2</keyConsiderations>
    <usageGuidance>usage:Artifact B2</usageGuidance>
    <refinedDescription>refined:Artifact B2</refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-LaDyAujxBkPThr28t2Xdwg" name="deliverable_B2,_MdRfsTzlEdq5ysFONr1BGQ" guid="-LaDyAujxBkPThr28t2Xdwg">
    <keyConsiderations>key:Deliverable B2</keyConsiderations>
    <usageGuidance>usage:Deliverable B2</usageGuidance>
    <refinedDescription>refined:Deliverable B2</refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-nTt6H3rXytUsOqpJLEQjdw" name="outcome_B2,_MdkaoTzlEdq5ysFONr1BGQ" guid="-nTt6H3rXytUsOqpJLEQjdw">
    <usageGuidance>&amp;nbsp;&amp;nbsp;&amp;nbsp;</usageGuidance>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-zBAs11RgLg_YSbs7BdkSuQ" name="task_A1,_0DR_QEDEEdqO9M3fukYA_A" guid="-zBAs11RgLg_YSbs7BdkSuQ">
    <keyConsiderations>Task A1&amp;nbsp; key</keyConsiderations>
    <usageGuidance>&lt;p>
    Task A1&amp;nbsp; guidance
&lt;/p>
&lt;p>
    &lt;img height=&quot;16&quot; alt=&quot;&quot;
    src=&quot;file:///C:/Documents%20and%20Settings/Administrator/IBM/MethodLibraries/Paris/Paris/Plug%20A/capabilitypatterns/resources/synced.gif&quot;
     width=&quot;16&quot; />
&lt;/p>
&lt;p>
    &lt;img height=&quot;16&quot; alt=&quot;&quot;
    src=&quot;file:///C:/Documents%20and%20Settings/Administrator/IBM/MethodLibraries/Paris/Paris/Plug%20A/capabilitypatterns/resources/helpbook.gif&quot;
     width=&quot;16&quot; />
&lt;/p></usageGuidance>
    <refinedDescription>Task A1&amp;nbsp; refined description</refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-yb-LGikcA5MPeR8L3YW2CA" name="task_A2,_2887EEDEEdqO9M3fukYA_A" guid="-yb-LGikcA5MPeR8L3YW2CA">
    <keyConsiderations>Task A2 key</keyConsiderations>
    <usageGuidance>Task A2 guidance</usageGuidance>
    <refinedDescription>Task A2 refined description</refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-wBVwnKNA7vxPZpY5h0njBQ" name="role_A1,_0Dk6MEDEEdqO9M3fukYA_A" guid="-wBVwnKNA7vxPZpY5h0njBQ">
    <keyConsiderations>Role A1 key</keyConsiderations>
    <usageGuidance>Role A1 guidance</usageGuidance>
    <refinedDescription>&lt;p>
    Role A1 refined desc
&lt;/p>
&lt;p>
    &lt;img height=&quot;71&quot; alt=&quot;&quot;
    src=&quot;file:///C:/Documents%20and%20Settings/Administrator/IBM/MethodLibraries/Paris/Paris/Plug%20A/capabilitypatterns/resources/rup.jpg&quot;
     width=&quot;176&quot; />
&lt;/p></refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
  <org.eclipse.epf.uma:DescriptorDescription xmi:id="-_j3f8djwKxsKaCHDnJIqVA" name="role_A2,_0Dk6MUDEEdqO9M3fukYA_A" guid="-_j3f8djwKxsKaCHDnJIqVA">
    <keyConsiderations>&lt;p>
    Role A2 key
&lt;/p>
&lt;p>
    &lt;img height=&quot;167&quot; alt=&quot;&quot;
    src=&quot;file:///C:/Documents%20and%20Settings/Administrator/IBM/MethodLibraries/Paris/Paris/Plug%20A/capabilitypatterns/resources/rup1_a.gif&quot;
     width=&quot;26&quot; />
&lt;/p></keyConsiderations>
    <usageGuidance>Role A2 usage</usageGuidance>
    <refinedDescription>Role A2 refined desc</refinedDescription>
  </org.eclipse.epf.uma:DescriptorDescription>
</xmi:XMI>
