The purpose of this phase is to establish the baseline of the architecture of the system and provide a stable basis for
the bulk of the development effort in the next phase.
There are objectives for the Elaboration phase that help you address risks associated with requirements, architecture,
costs, and schedule [KRO03]:
-
Get a more detailed understanding of the requirements. Having a good understanding of the
majority of requirements enables you to create a more detailed 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.
-
Design, implement, validate, and establish the baseline for the architecture. Design,
implement, and test a skeleton structure of the system. Although the functionality is not complete yet, most of
the interfaces between the building blocks are implemented and tested. This is referred to an
executable architecture.
-
Mitigate essential risks, and produce accurate schedule and cost estimates. Many technical
risks are addressed as a result of detailing the requirements and of designing, implementing, and testing the
architecture. Refine and detail the high-level project plan.
Key considerations
The number of iterations in the Elaboration phase is dependent on, but not limited to, factors such as green-field
development compared to maintenance cycle, unprecedented system compared to well-known technology and architecture, and
so on.
Typically, on the first iteration, it is better to design, implement, and test a small number of critical scenarios to
identify what type of architecture and architectural mechanisms you need, so you can mitigate the most crucial risks.
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.
During the subsequent iterations, you fix whatever was not right from the previous iteration. You design, implement,
and test the remaining architecturally significant scenarios, ensuring that you check all major areas of the system
(architectural coverage), so that potential risks are identified as early as possible. [KRO03]
|