<?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.5/uma.ecore"
    xmlns:epf="http://www.eclipse.org/epf" epf:version="1.5.0">
  <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>
