Phases and Iterations
A phase is the span of time between two major milestones of the process in which a well-defined set of objectives are met, artifacts are completed, and decisions are made whether to move into the next phase. As Figure B-1 illustrates, the Rational Unified Process consists of the following four phases:
Figure B-1. The Software Development Life Cycle

1. Inception iteration represents a complete development cycle, from requirements capture in analysis to implementation and testing, that results in an executable release. The release need not include a complete set of features for commercial release. Its purpose is to provide a solid basis for evaluation and testing as well as a uniform baseline for the next development cycle.
Each phase and iteration has some risk mitigation focus and concludes with a well-defined milestone. The milestone review provides a point in time to assess how well key goals have been met and whether the project needs to be restructured in any way to proceed.
Phases
Inception
During the inception phase, you establish the vision for the system and delimit the project's scope. This includes the business case, the high-level requirements, and the initial project plan. The project plan includes success criteria, risk assessment, estimates of the resources needed, and a phase plan showing a schedule of major milestones. During inception, it is common to create an executable prototype that serves as a proof of concept.
This phase usually involves a handful of persons.
At the end of the inception phase, you examine the life cycle objectives of the project and decide whether to proceed with full-scale development.
Elaboration
The goals of the elaboration phase are to analyze the problem domain, establish a sound architectural foundation, refine the project plan, and eliminate the highest risk elements of the project. Architectural decisions must be made with an understanding of the whole system. This implies that you describe most of the system's requirements. To verify the architecture, you implement a system that demonstrates the architectural choices and executes significant use cases.
This phase involves the system architect and the project manager as key players, as well as analysts, developers, testers, and others. Typically, elaboration involves a larger team than inception and requires more time.
At the end of the elaboration phase, you examine the detailed system objectives and scope, the choice of architecture, and the resolution of major risks, and decide whether to proceed with construction.
Construction
During the construction phase, you iteratively and incrementally develop a complete product that is ready to transition to its user community. This implies describing the remaining requirements and acceptance criteria, fleshing out the design, and completing the implementation and test of the software.
This phase involves the system architect, the project manager, and the construction team leaders, as well as the full development and testing staff.
At the end of the construction phase, you decide whether the software, sites, and users are all ready to deploy the first operational version of the system.
Transition
During the transition phase, you deploy the software to the user community. Note that you have had involvement with users throughout the project through demonstrations, workshops, and alpha and beta releases. Once the system has been put into the hands of its end users, issues often arise that require additional development to adjust the system, correct some undetected problems, or finish some features that have been postponed. This phase typically starts with a beta release of the system, which is then replaced with the production system.
Key team members for this phase include the project manager, testers, release specialists, marketers, and sales personnel. Note that the work of preparing for external release, marketing, and sales started much earlier in the project.
At the end of the transition phase, you decide whether the life cycle objectives of the project have been met and determine whether you should start another development cycle. This is also a point at which you wrap up the lessons learned on the project to improve your development process, which will be applied to the next project.
Iterations
Each phase in the Rational Unified Process can be further broken down into iterations. An iteration is a complete development loop resulting in a release (internal or external) of an executable product constituting a subset of the final product under development, which then is grown incrementally from iteration to iteration to become the final system. Each iteration goes through the various disciplines, although with a different emphasis on each discipline depending on the phase. During inception, the focus is on requirements capture. During elaboration, the focus turns toward analysis, design, and architecture implementation. In construction, detailed design, implementation, and testing are the central activities, and transition centers on deployment. Testing is important throughout.
Development Cycles
Going through the four major phases is called a development cycle, and it results in one software generation. The first pass through the four phases is called the initial development cycle. Unless the life of the product stops, an existing product will evolve into its next generation by repeating the same sequence of inception, elaboration, construction, and transition phases. This is the evolution of the system, so the development cycles after the initial development cycles are its evolution cycles.