| <?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.5/uma.ecore" |
| xmlns:epf="http://www.eclipse.org/epf" epf:version="1.5.0" xmi:id="-F-eWIBzxEXE1jygbN3nrrQ" |
| name=",_2plxwBOMEduCNqgZdt_OaA" guid="-F-eWIBzxEXE1jygbN3nrrQ" changeDate="2007-07-11T06:20:47.734-0700" |
| version="1.0.0"> |
| <mainDescription><p>
 |
| The purpose of this phase is to mitigate technical and non-technical risks. Technical risks are typically addressed by
 |
| establishing the baseline of an executable architecture of the system and providing a stable basis for the bulk of the
 |
| development effort in the next phase. Non-technical risks are addressed by delivering key capabilities in close
 |
| collaboration with stakeholders, allowing us to answer questions such as:
 |
| </p>
 |
| <ul>
 |
| <li>
 |
| Does stakeholder A concur with the usage paradigm as implemented by the first delivered scenarios?
 |
| </li>
 |
| <li>
 |
| Can we leverage this open source component?
 |
| </li>
 |
| <li>
 |
| Can we acquire this commercial component?
 |
| </li>
 |
| <li>
 |
| Do we have personnel with the appropriate competency?
 |
| </li>
 |
| <li>
 |
| Have we validated that the team can collaborate effectively to deliver working software?
 |
| </li>
 |
| </ul>
 |
| <p>
 |
| There are objectives for the Elaboration phase that help you address risks associated with requirements, architecture,
 |
| costs, and schedule, among others&nbsp;<a class="elementlinkwithusertext"
 |
| href="./../../../openup/guidances/supportingmaterials/references.html#KRO03"
 |
| guid="_9ToeIB83Edqsvps02rpOOg">[KRO03]</a>:&nbsp;&nbsp;
 |
| </p>
 |
| <ol>
 |
| <li>
 |
| <p>
 |
| <strong>Get a more detailed understanding of the requirements.</strong> Having a good understanding of the
 |
| majority of requirements allows you to create a more accurate plan and to get buy-in from stakeholders. Be sure
 |
| to gain an in-depth understanding of the most critical requirements to be validated by the architecture. This
 |
| does not mean that every use case needs to be detailed, but that you have detailed key use cases, and
 |
| understand remaining use cases well enough to size them.
 |
| </p>
 |
| </li>
 |
| <li>
 |
| <p>
 |
| <strong>Design, implement, validate, and establish the baseline for the architecture.</strong> Design,
 |
| implement, and test a skeleton structure of the system by designing, implementing, and testing a small number
 |
| of critical scenarios. Although the functionality is not complete yet, most of the interfaces between the
 |
| building blocks are implemented and tested, and the type of architecture and required architectural mechanisms
 |
| are identified. This result is referred&nbsp;as <strong>an executable architecture</strong>.
 |
| </p>
 |
| </li>
 |
| <li>
 |
| <p>
 |
| <strong>Mitigate essential risks, and produce accurate schedule and cost estimates.</strong> Many technical
 |
| risks are addressed as a result of detailing the requirements and of designing, implementing, and testing the
 |
| architecture. You may also have to address non-technical risks, such as legal and financial issues related to
 |
| usage of open source or commercial components. Refine and detail the high-level project plan.
 |
| </p>
 |
| </li>
 |
| </ol>
 |
| <h4>
 |
| Key considerations
 |
| </h4>
 |
| <p>
 |
| The number of iterations in the Elaboration phase is dependent on, but not limited to, factors such as green-field
 |
| development versus maintenance cycle, unprecedented system versus well-known technology and architecture, and so on.
 |
| </p>
 |
| <p>
 |
| A maintenance project may for example combine Inception and Elaboration into one iteration that may be only a few days
 |
| long, since the objectives of these phases can be rapidly addressed.
 |
| </p>
 |
| <p>
 |
| A new unprecedented system may require several iterations to establish and baseline an executable architecture, and to
 |
| address all non-technical issues. For such a project, you start by designing, implementing, and testing a small number
 |
| of critical scenarios, in order to identify what type of architecture and architectural mechanisms you need. You also
 |
| detail high-risk requirements that have to be addressed early in the project. You test enough to validate that the
 |
| architectural risks are mitigated. In later Elaboration iterations, you fix whatever was not right from the previous
 |
| iteration, and design, implement, and test the remaining architecturally significant scenarios, ensuring that you check
 |
| all major areas of the system (architectural coverage), so potential hidden risks arise as early as possible.<br />
 |
| </p></mainDescription> |
| </org.eclipse.epf.uma:ContentDescription> |