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]
|