<?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.3/uma.ecore" rmc:version="7.1.0" epf:version="1.0.0">
  <org.eclipse.epf.uma:DeliveryProcessDescription xmi:id="_mtb-4PL5Edm6Nvont3uinw" guid="_mtb-4PL5Edm6Nvont3uinw">
    <mainDescription>&lt;p&gt; OpenUP/Basic is an iterative process with &lt;a class=&quot;elementlinkwithusertext&quot; href=&quot;./../../openup_basic/guidances/concepts/core_principle_evolve,_GXiogMvoEdqukPpotm3DYg.html&quot; guid=&quot;_GXiogMvoEdqukPpotm3DYg&quot;&gt;iterations&lt;/a&gt;&amp;nbsp;distributed 
  throughout four &lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../base_concepts/guidances/concepts/phase,__7xOEC7aEdqHMdmRzC0-2g.html&quot; guid=&quot;__7xOEC7aEdqHMdmRzC0-2g&quot;&gt;phases&lt;/a&gt;: 
  &lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../openup_basic/guidances/concepts/inception_phase,_0hmKgBOMEduCNqgZdt_OaA.html&quot; guid=&quot;_0hmKgBOMEduCNqgZdt_OaA&quot;&gt;Inception&lt;/a&gt;, 
  &lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../openup_basic/guidances/concepts/elaboration_phase,_2plxwBOMEduCNqgZdt_OaA.html&quot; guid=&quot;_2plxwBOMEduCNqgZdt_OaA&quot;&gt;Elaboration&lt;/a&gt;, 
  &lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../openup_basic/guidances/concepts/construction_phase,_48EKsBOMEduCNqgZdt_OaA.html&quot; guid=&quot;_48EKsBOMEduCNqgZdt_OaA&quot;&gt;Construction&lt;/a&gt;, 
  and &lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../openup_basic/guidances/concepts/transition_phase,__ca5UBOMEduCNqgZdt_OaA.html&quot; guid=&quot;__ca5UBOMEduCNqgZdt_OaA&quot;&gt;Transition&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt; Each phase may have as many iterations as needed, depending on degree of novelty 
  of the business domain, technology being used, architectural complexity, and 
  project size, to name a few factors. &lt;/p&gt;
&lt;p&gt; To offer a quick start for teams to plan their iterations,&amp;nbsp;OpenUP/Basic 
  provides&amp;nbsp;work breakdown structure (WBS) templates for each iteration and 
  a WBS template for an end-to-end process. &lt;/p&gt;
&lt;p&gt; Iterations may have variable lengths, depending on project characteristics. 
  One-month iterations are typically recommended, because 
  this timeframe provides: &lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt; A reasonable amount of time for projects to 
    deliver meaningful increments in functionality. &lt;/li&gt;
  &lt;li&gt; Early and frequent customer feedback. &lt;/li&gt;
  &lt;li&gt; Timely management of risks and issues during the course of the project. 
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; OpenUP/Basic is intended&lt;strong&gt; &lt;/strong&gt;to 
  offer process guidance to small projects: &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;
        
    &lt;div class=&quot;O&quot; style=&quot;mso-margin-left-alt: 216; mso-char-wrap: 1; mso-kinsoku-overflow: 1&quot; v:shape=&quot;_x0000_s1026&quot;&gt; 
      3&amp;nbsp;to&amp;nbsp;6 people on the team &lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
        
    &lt;div class=&quot;O&quot; style=&quot;mso-margin-left-alt: 216; mso-char-wrap: 1; mso-kinsoku-overflow: 1&quot; v:shape=&quot;_x0000_s1026&quot;&gt; 
      3&amp;nbsp;to&amp;nbsp;6 months of work&lt;/div&gt;
    &lt;/li&gt;
&lt;/ul&gt;</mainDescription>
    <purpose>&lt;p&gt;
    The purposes of this delivery process are to:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;
        Offer process guidance for small-scale projects
    &lt;/li&gt;
    &lt;li&gt;
        Allow project managers to create project plans based on the proposed work breakdown structures
    &lt;/li&gt;
    &lt;li&gt;
        Allow project managers to track status based on goals
    &lt;/li&gt;
    &lt;li&gt;
        Allow&amp;nbsp;team members&amp;nbsp;to understand how to perform their work to achieve project goals
    &lt;/li&gt;
    &lt;li&gt;
        Provide a complete, end-to-end delivery process that serves as an example for defining alternative delivery
        processes
    &lt;/li&gt;
&lt;/ul&gt;</purpose>
  </org.eclipse.epf.uma:DeliveryProcessDescription>
  <org.eclipse.epf.uma:BreakdownElementDescription xmi:id="-aXO_Hxa-5gvaRMvpx9cngQ" name="lifecycle_objectives,_mRwHoMA9EdqSgKaj2SZBmg" guid="-aXO_Hxa-5gvaRMvpx9cngQ">
    <mainDescription>&lt;p&gt;
    The Lifecycle Objectives Milestone is the first major project milestone. During iteration &lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../openup_basic/tasks/assess_results,_0l53cMlgEdmt3adZL5Dmdw.html&quot; guid=&quot;_0l53cMlgEdmt3adZL5Dmdw&quot;&gt;assessment&lt;/a&gt;, the following evaluation criteria should be met &lt;a class=&quot;elementlinkwithusertext&quot; href=&quot;./../../openup_basic/guidances/supportingmaterials/references,_9ToeIB83Edqsvps02rpOOg.html&quot; guid=&quot;_9ToeIB83Edqsvps02rpOOg&quot;&gt;[KRO03]&lt;/a&gt;:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;
        Stakeholder concurrence on
    &lt;/li&gt;
    &lt;li style=&quot;LIST-STYLE-TYPE: none&quot;&gt;
        &lt;ul&gt;
            &lt;li&gt;
                scope definition,
            &lt;/li&gt;
            &lt;li&gt;
                initial cost/schedule estimates,
            &lt;/li&gt;
            &lt;li&gt;
                initial set of requirements defined and prioritized,
            &lt;/li&gt;
            &lt;li&gt;
                risks identified and mitigation strategies proposed.
            &lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
The project may be aborted or reconsidered if it fails to reach this milestone.&lt;br /&gt;</mainDescription>
  </org.eclipse.epf.uma:BreakdownElementDescription>
  <org.eclipse.epf.uma:BreakdownElementDescription xmi:id="-KD_OqyKE74agcRb6I4YuAg" name="lifecycle_architecture,_RYHw4MA-EdqSgKaj2SZBmg" guid="-KD_OqyKE74agcRb6I4YuAg">
    <mainDescription>&lt;p&gt;
    The Lifecycle Architecture Milestone is the&amp;nbsp;second major project milestone. During iteration &lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../openup_basic/tasks/assess_results,_0l53cMlgEdmt3adZL5Dmdw.html&quot; guid=&quot;_0l53cMlgEdmt3adZL5Dmdw&quot;&gt;assessments&lt;/a&gt;&amp;nbsp;in Elaboration, you should keep these&amp;nbsp;evaluation
    criteria&amp;nbsp;in mind&amp;nbsp;&lt;a class=&quot;elementlinkwithusertext&quot; href=&quot;./../../openup_basic/guidances/supportingmaterials/references,_9ToeIB83Edqsvps02rpOOg.html&quot; guid=&quot;_9ToeIB83Edqsvps02rpOOg&quot;&gt;[KRO03]&lt;/a&gt;:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;
        Stability of Vision, requirements and Architecture.
    &lt;/li&gt;
    &lt;li&gt;
        Major risk elements addressed and resolved by testing and evaluating executable prototypes.
    &lt;/li&gt;
    &lt;li&gt;
        Construction iterations planned in sufficient detail and&amp;nbsp;credibly estimated&amp;nbsp;to allow the work to proceed.
    &lt;/li&gt;
    &lt;li&gt;
        Agreement of stakeholders that the current vision can be met if plans are executed to develop complete system on
        top of current architecture.
    &lt;/li&gt;
    &lt;li&gt;
        Resourse expenditures versus planned expenditures are acceptable.&lt;br /&gt;
    &lt;/li&gt;
&lt;/ul&gt;</mainDescription>
  </org.eclipse.epf.uma:BreakdownElementDescription>
  <org.eclipse.epf.uma:BreakdownElementDescription xmi:id="-zGLnE1j7yvWoX9mok6lLLQ" name="product_release,_X3F_cMA-EdqSgKaj2SZBmg" guid="-zGLnE1j7yvWoX9mok6lLLQ">
    <mainDescription>&lt;p&gt;
    The Product Release Milestone is the last major project milestone. During iteration &lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../openup_basic/tasks/assess_results,_0l53cMlgEdmt3adZL5Dmdw.html&quot; guid=&quot;_0l53cMlgEdmt3adZL5Dmdw&quot;&gt;assessment&lt;/a&gt;, you decide if the objectives were met and &lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../openup_basic/tasks/close_out_project,_0mMLUMlgEdmt3adZL5Dmdw.html&quot; guid=&quot;_0mMLUMlgEdmt3adZL5Dmdw&quot;&gt;close&lt;/a&gt; the project.&amp;nbsp;The evaluation criteria to keep in mind are &lt;a class=&quot;elementlinkwithusertext&quot; href=&quot;./../../openup_basic/guidances/supportingmaterials/references,_9ToeIB83Edqsvps02rpOOg.html&quot; guid=&quot;_9ToeIB83Edqsvps02rpOOg&quot;&gt;[KRO03]&lt;/a&gt;:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;
        Users satisfaction and product acceptance.
    &lt;/li&gt;
    &lt;li&gt;
        Stakeholders concurrence on acceptable resource expenditures versus planned expenditures.
    &lt;/li&gt;
    &lt;li&gt;
        Product is in production. A new development cycle for enhancements or maintenance may start.
    &lt;/li&gt;
&lt;/ul&gt;</mainDescription>
  </org.eclipse.epf.uma:BreakdownElementDescription>
  <org.eclipse.epf.uma:BreakdownElementDescription xmi:id="-R8Q0YMat1l4nMKZaSg7Law" name="initial_operational_capability,_TV_y0MA-EdqSgKaj2SZBmg" guid="-R8Q0YMat1l4nMKZaSg7Law">
    <mainDescription>&lt;p&gt;
    The Initial Operational Capability&amp;nbsp;Milestone is the&amp;nbsp;third major project milestone. During iteration &lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../openup_basic/tasks/assess_results,_0l53cMlgEdmt3adZL5Dmdw.html&quot; guid=&quot;_0l53cMlgEdmt3adZL5Dmdw&quot;&gt;assessments&lt;/a&gt;&amp;nbsp;in Construction, you should keep these&amp;nbsp;evaluation
    criteria&amp;nbsp;in mind&amp;nbsp;&lt;a class=&quot;elementlinkwithusertext&quot; href=&quot;./../../openup_basic/guidances/supportingmaterials/references,_9ToeIB83Edqsvps02rpOOg.html&quot; guid=&quot;_9ToeIB83Edqsvps02rpOOg&quot;&gt;[KRO03]&lt;/a&gt;:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;
        Product release stable and mature enough to be deployed in the user community
    &lt;/li&gt;
    &lt;li style=&quot;LIST-STYLE-TYPE: none&quot;&gt;
        &lt;ul&gt;
            &lt;li&gt;
                the product is ready to be handed over to&amp;nbsp;the users&amp;nbsp;(beta)
            &lt;/li&gt;
            &lt;li&gt;
                all functionality has been developed and all alpha testing (if any) has been completed
            &lt;/li&gt;
            &lt;li&gt;
                in addition to the software, a user manual has been developed, and there is a description of the current
                release
            &lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li style=&quot;LIST-STYLE-TYPE: none&quot;&gt;
        &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;
        Actual resource expenditures versus planned expenditures are acceptable
    &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
    In case the project fails to reach this milestone, an iteration can be added to Construction, thus postponing
    Transition.
&lt;/p&gt;</mainDescription>
  </org.eclipse.epf.uma:BreakdownElementDescription>
  <org.eclipse.epf.uma:BreakdownElementDescription xmi:id="-qk_QXyoSxOb2C-boCISB5g" name="lifecycle_objectives,_mRwHoMA9EdqSgKaj2SZBmg" guid="-qk_QXyoSxOb2C-boCISB5g">
    <mainDescription>&lt;p&gt; The Lifecycle Objectives Milestone is the first major project milestone. During 
  the iteration&lt;a
    class=&quot;elementLinkWithUserText&quot; href=&quot;./../../openup_basic/tasks/assess_results,_0l53cMlgEdmt3adZL5Dmdw.html&quot;
    guid=&quot;_0l53cMlgEdmt3adZL5Dmdw&quot;&gt; assessment&lt;/a&gt;, the following evaluation criteria 
  should be met &lt;a
    class=&quot;elementlinkwithusertext&quot;
    href=&quot;./../../openup_basic/guidances/supportingmaterials/references,_9ToeIB83Edqsvps02rpOOg.html&quot;
    guid=&quot;_9ToeIB83Edqsvps02rpOOg&quot;&gt;[KRO03]&lt;/a&gt;: &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;
        Stakeholder concurrence on
    &lt;/li&gt;
    &lt;li style=&quot;LIST-STYLE-TYPE: none&quot;&gt;
        &lt;ul&gt;
            
      &lt;li&gt; scope definition&lt;/li&gt;
      &lt;li&gt; initial cost and schedule estimates&lt;/li&gt;
      &lt;li&gt;definitions and priorities for initial set of requirements&lt;/li&gt;
            &lt;li&gt;
                risks identified and mitigation strategies proposed.
            &lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;
  Note:&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The project may be aborted or reconsidered if it fails to reach this milestone.&lt;br /&gt;</mainDescription>
  </org.eclipse.epf.uma:BreakdownElementDescription>
  <org.eclipse.epf.uma:BreakdownElementDescription xmi:id="-3Ul1iAI1nkD0C5AsRtjHFA" name="lifecycle_architecture,_RYHw4MA-EdqSgKaj2SZBmg" guid="-3Ul1iAI1nkD0C5AsRtjHFA">
    <mainDescription>&lt;p&gt;
    The Lifecycle Architecture Milestone is the&amp;nbsp;second major project milestone. During iteration &lt;a
    class=&quot;elementLinkWithUserText&quot; href=&quot;./../../openup_basic/tasks/assess_results,_0l53cMlgEdmt3adZL5Dmdw.html&quot;
    guid=&quot;_0l53cMlgEdmt3adZL5Dmdw&quot;&gt;assessments&lt;/a&gt;&amp;nbsp;in Elaboration, you should keep these&amp;nbsp;evaluation
    criteria&amp;nbsp;in mind&amp;nbsp;&lt;a class=&quot;elementlinkwithusertext&quot;
    href=&quot;./../../openup_basic/guidances/supportingmaterials/references,_9ToeIB83Edqsvps02rpOOg.html&quot;
    guid=&quot;_9ToeIB83Edqsvps02rpOOg&quot;&gt;[KRO03]&lt;/a&gt;:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;
        Stability of Vision, requirements and Architecture.
    &lt;/li&gt;
    &lt;li&gt;
        Major risk elements addressed and resolved by testing and evaluating executable prototypes.
    &lt;/li&gt;
    &lt;li&gt;
        Construction iterations planned in sufficient detail and&amp;nbsp;credibly estimated&amp;nbsp;to allow the work to proceed.
    &lt;/li&gt;
    &lt;li&gt;
        Agreement of stakeholders that the current vision can be met if plans are executed to develop complete system on
        top of current architecture.
    &lt;/li&gt;
    &lt;li&gt;
        Resourse expenditures versus planned expenditures are acceptable.&lt;br /&gt;
    &lt;/li&gt;
&lt;/ul&gt;</mainDescription>
  </org.eclipse.epf.uma:BreakdownElementDescription>
  <org.eclipse.epf.uma:BreakdownElementDescription xmi:id="-Q37Qy6ke_PQDK4jr1EIdcA" name="initial_operational_capability,_TV_y0MA-EdqSgKaj2SZBmg" guid="-Q37Qy6ke_PQDK4jr1EIdcA">
    <mainDescription>&lt;p&gt; The Initial Operational Capability&amp;nbsp;Milestone is the&amp;nbsp;third major 
  project milestone. During iteration &lt;a
    class=&quot;elementLinkWithUserText&quot; href=&quot;./../../openup_basic/tasks/assess_results,_0l53cMlgEdmt3adZL5Dmdw.html&quot;
    guid=&quot;_0l53cMlgEdmt3adZL5Dmdw&quot;&gt;assessments&lt;/a&gt;&amp;nbsp;in Construction, keep 
  these&amp;nbsp;evaluation criteria&amp;nbsp;in mind&amp;nbsp;&lt;a class=&quot;elementlinkwithusertext&quot;
    href=&quot;./../../openup_basic/guidances/supportingmaterials/references,_9ToeIB83Edqsvps02rpOOg.html&quot;
    guid=&quot;_9ToeIB83Edqsvps02rpOOg&quot;&gt;[KRO03]&lt;/a&gt;: &lt;/p&gt;
&lt;ul&gt;
    
  &lt;li&gt; Product release is stable and mature enough to be deployed in the user 
    community.&lt;/li&gt;
    &lt;li style=&quot;LIST-STYLE-TYPE: none&quot;&gt;
        &lt;ul&gt;
            
      &lt;li&gt; The beta product is ready to be handed over to&amp;nbsp;the users.&lt;/li&gt;
      &lt;li&gt; All functionality has been developed and all alpha testing (if any) 
        has been completed.&lt;/li&gt;
      &lt;li&gt; In addition to the software, a user manual has been developed, and 
        there is a description of the current release. &lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
  &lt;li style=&quot;LIST-STYLE-TYPE: none&quot;&gt; &lt;/li&gt;
  &lt;li&gt; Actual resource expenditures compared to planned expenditures are acceptable.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; Note:&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In case the project fails to reach this milestone, an iteration can be added 
  to Construction, thus postponing Transition. &lt;/p&gt;</mainDescription>
  </org.eclipse.epf.uma:BreakdownElementDescription>
  <org.eclipse.epf.uma:BreakdownElementDescription xmi:id="-Gt2aCyZVy4q1BvcJRM2E-A" name="product_release,_X3F_cMA-EdqSgKaj2SZBmg" guid="-Gt2aCyZVy4q1BvcJRM2E-A">
    <mainDescription>&lt;p&gt; The Product Release Milestone is the last major project milestone. During 
  iteration &lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../openup_basic/tasks/assess_results,_0l53cMlgEdmt3adZL5Dmdw.html&quot; guid=&quot;_0l53cMlgEdmt3adZL5Dmdw&quot;&gt;assessment&lt;/a&gt;, 
  you decide if the objectives were met, and&amp;nbsp;then close the project.&amp;nbsp;These 
  are the evaluation criteria to keep in mind &lt;a class=&quot;elementlinkwithusertext&quot; href=&quot;./../../openup_basic/guidances/supportingmaterials/references,_9ToeIB83Edqsvps02rpOOg.html&quot; guid=&quot;_9ToeIB83Edqsvps02rpOOg&quot;&gt;[KRO03]&lt;/a&gt;: 
&lt;/p&gt;
&lt;ul&gt;
    
  &lt;li&gt; Users satisfaction and product acceptance&lt;/li&gt;
    
  &lt;li&gt; Stakeholder concurrence on acceptable resource expenditures compared to 
    planned expenditures&lt;/li&gt;
    
  &lt;li&gt; Product is in production; therefore, a new development cycle for enhancements 
    or maintenance may start&lt;/li&gt;
&lt;/ul&gt;</mainDescription>
  </org.eclipse.epf.uma:BreakdownElementDescription>
</xmi:XMI>
