The Four Phases
The life of a software system can be represented as a series of cycles. A cycle ends with the release of a version of the system to customers.
Within the Unified Process, each cycle contains four phases. A phase is simply the span of time between two major milestones, points at which managers make important decisions about whether to proceed with development and, if so, what's required concerning project scope, budget, and schedule.
Figure 1-1: Phases and Major Milestones
Figure 1-1 shows the phases and major milestones of the Unified Process. In it, you can see that each phase contains one or more iterations. We'll explore the concept of iterations in the section "Iterations and Increments" later in this chapter.
The following subsections describe the key aspects of each of these phases.
Inception
The primary goal of the Inception phase is to establish the case for the viability of the proposed system.
The tasks that a project team performs during Inception include the following:
Defining the scope of the system (that is, what's in and what's out)
Outlining a candidate architecture, which is made up of initial versions of six different models
Identifying critical risks and determining when and how the project will address them
Starting to make the business case that the project is worth doing, based on initial estimates of cost, effort, schedule, and product quality
The concept of candidate architecture is discussed in the section "Architecture-Centric" later in this chapter. The six models are covered in the next major section of this chapter, "The Five Workflows."
The major milestone associated with the Inception phase is called Life-Cycle Objectives. The indications that the project has reached this milestone include the following:
The major stakeholders agree on the scope of the proposed system.
The candidate architecture clearly addresses a set of critical high-level requirements.
The business case for the project is strong enough to justify a green light for continued development.
Chapter 7 describes the details of the Inception phase.
Elaboration
The primary goal of the Elaboration phase is to establish the ability to build the new system given the financial constraints, schedule constraints, and other kinds of constraints that the development project faces.
The tasks that a project team performs during Elaboration include the following:
Capturing a healthy majority of the remaining functional requirements
Expanding the candidate architecture into a full architectural baseline, which is an internal release of the system focused on describing the architecture
Addressing significant risks on an ongoing basis
Finalizing the business case for the project and preparing a project plan that contains sufficient detail to guide the next phase of the project (Construction)
The architectural baseline contains expanded versions of the six models initialized during the Inception phase.
The major milestone associated with the Elaboration phase is called Life-Cycle Architecture. The indications that the project has reached this milestone include the following:
Most of the functional requirements for the new system have been captured in the use case model.
The architectural baseline is a small, skinny system that will serve as a solid foundation for ongoing development.
The business case has received a green light, and the project team has an initial project plan that describes how the Construction phase will proceed.
The use case model is described in the upcoming section "The Five Workflows." Risks are discussed in the section "Iterations and Increments" later in this chapter.
Chapter 8 describes the details of the Elaboration phase.
Construction
The primary goal of the Construction phase is to build a system capable of operating successfully in beta customer environments.
During Construction, the project team performs tasks that involve building the system iteratively and incrementally (see "Iterations and Increments" later in this chapter), making sure that the viability of the system is always evident in executable form.
The major milestone associated with the Construction phase is called Initial Operational Capability. The project has reached this milestone if a set of beta customers has a more or less fully operational system in their hands.
Chapter 9 describes the details of the Construction phase.
Transition
The primary goal of the Transition phase is to roll out the fully functional system to customers.
During Transition, the project team focuses on correcting defects and modifying the system to correct previously unidentified problems.
The major milestone associated with the Transition phase is called Product Release.
Chapter 10 describes the details of the Transition phase.