EUP Phases
Let’s examine the serial aspects of the EUP, which are captured in its phases. (Figure 4 shows the primary activities and milestones of each phase.) Each phase ends with a well-defined milestone. At these points, the stakeholders assess the project, including what has been done and the plans for moving forward. A go/no-go decision is made about whether to proceed with the project. Each phase has a specific set of goals, which are addressed within the iterations of the phase, so that the phase milestone can be met.
Figure 4 Phases of the EUP. [7]
The EUP consists of six phases:
- Inception. During this phase, you achieve stakeholder consensus regarding the objectives for the project and obtain funding. To do this, you develop a high-level requirements model that delimits the scope of the project, and potentially start the development of a user interface (UI) prototype. You start to install the work environment and tailor the process for the team. You also develop a high-level plan for how the project will proceed.
- Elaboration. During this phase, you specify requirements in greater detail and prove the architecture for the system. The requirements are detailed only enough to understand architectural risks and to ensure that there’s an understanding of the scope of each requirement for subsequent planning. To prove the architecture, you implement and test an "end-to-end skeleton" of working code that supports the high-risk use cases for your system.
- Construction. The focus of this phase is developing the system to the point where it’s ready for deployment. Emphasis shifts to prioritizing requirements and completing their specification, analyzing them, designing a solution to satisfy them, and coding and testing the software. If necessary, early releases of the system are deployed (either internally or externally) to obtain user feedback.
- Transition. This phase focuses on delivering the system into production. There will be testing by both system testers and end users, and corresponding rework and fine-tuning. Training of end users, support, and operations staff is done.
- Production. This phase encompasses the period of the system lifecycle at which you operate and support a system until it’s either replaced with a new version or retired and removed completely from use. Change management of reported defects and new requirements is crucial to ensure that changes are assigned to future development cycles. This phase applies to the lifetime of a single release of your software. To develop and deploy a new release of your software, you need to cycle through the four development phases again.
- Retirement. The focus of this phase is the removal of a system from production. Eventually systems become obsolete or are superseded by other systems and must be removed/sunsetted.
EUP phases are divided into one or more iterations. Iterations build on the work done by previous iterations and assemble the final system incrementally. Iterations are indicated along the bottom of Figure 3. When an iteration ends, in particular during the construction phase, a small subset of the system has been completed that could conceivably be deployed to users as a release, even if only as an alpha or beta version.