<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:ContentDescription xmi:version="2.0"
    xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.4/uma.ecore"
    xmlns:epf="http://www.eclipse.org/epf"
    epf:version="1.2.0" xmi:id="-l-ZsqrXu2nmVE1giLpI6iw"
    name=",_qg1IAK__EduMeuOwJ2MpeQ" guid="-l-ZsqrXu2nmVE1giLpI6iw" changeDate="2007-07-09T08:02:31.562-0700"
    version="1.0.0">
  <mainDescription>&lt;p> OpenUP combines elements of agile and unified methods to create a hybrid process &#xD;
  that leverages proven best practices of both process perspectives. OpenUP includes &#xD;
  these common elements of both perspectives: &lt;/p>&#xD;
&lt;ul>&#xD;
    &#xD;
  &lt;li> Time-boxed (time-limited) iterations that deliver incremental stable functionality &#xD;
    to the stakeholders &lt;/li>&#xD;
    &lt;li>&#xD;
        Frequent iteration assessments that adjust the course of product development&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Tight collaboration between stakeholders and team members&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Contextual requirements that reduce ambiguity and improve collaboration (use cases)&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Classic best practices for designing object-oriented systems&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Robust test cases&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p> Unified processes have helped teams of many different sizes and in different &#xD;
  industries become successful in solving their stakeholders' problems. OpenUP &#xD;
  is a lightweight realization of these essential elements of a unified process:&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        Four phases (which contain iterations) that provide different perspectives during the development of the system&#xD;
    &lt;/li>&#xD;
  &lt;li> Early focus on architecture so that a stable framework can be validated &#xD;
    before the bulk of the system is implemented &lt;/li>&#xD;
  &lt;li> Rigorous examination of mitigation of project risks that reduce the likelihood &#xD;
    of unforeseen problems and increase project predictability &lt;/li>&#xD;
  &lt;li> Use cases that characterize functional requirements and drive testing and &#xD;
    development &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p> These agile processes and techniques that have a track record of improving &#xD;
  a team’s success are incorporated into OpenUP: &lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        A Scrum-based and collaborative approach to project management&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        An agile perspective of estimation and planning&#xD;
    &lt;/li>&#xD;
  &lt;li> Self-organizing work assignments &lt;/li>&#xD;
    &lt;li>&#xD;
        An evolutionary approach to architecture and design through different levels of refactoring&#xD;
    &lt;/li>&#xD;
  &lt;li> Test-driven development &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p> Merging these different perspectives creates a process that is lightweight &#xD;
  and robust, with a structure and components that have a proven history of making &#xD;
  development teams successful in providing value to their stakeholders. &lt;/p>&#xD;
&lt;p> The OpenUP process defines roles to clearly specify what skills are necessary &#xD;
  to perform certain tasks. At the same time, the process is intended to be applied &#xD;
  to self-organizing teams. If a team member has the skills necessary to be an &#xD;
  analyst, a tester, and a developer, then it’s appropriate for that individual &#xD;
  to play all three of those roles. Roles are not meant to inhibit team members &#xD;
  from performing any work that needs to be done. &lt;/p>&#xD;
&lt;p> Each of the subprocesses and the collaboration layer also support the &lt;a href=&quot;http://www.agilemanifesto.org&quot; target=&quot;_blank&quot;>Agile &#xD;
  Manifesto&lt;/a>: &lt;/p>&#xD;
&lt;ul>&#xD;
  &lt;li> &lt;b>Collaboration: &lt;/b>Individuals and interactions over process and tools &#xD;
  &lt;/li>&#xD;
  &lt;li>&lt;b>Solutions: &lt;/b>Working software over comprehensive documentation &lt;/li>&#xD;
  &lt;li>&lt;b>Intent: &lt;/b>Customer collaboration over contract negotiation &lt;/li>&#xD;
  &lt;li>&lt;b>Management: &lt;/b>Responding to change over following a plan&lt;/li>&#xD;
&lt;/ul></mainDescription>
</org.eclipse.epf.uma:ContentDescription>
