The Rational Unified Process: An Introduction (3rd Edition)

PHASES REVISITED

This section examines in more detail the purpose of each phase and the evaluation criteria used at each major milestone. [8]

[8] The phases were developed in cooperation with Walker Royce, and this section is adapted from Chapter 6 of his book Software Project Management: A Unified Framework . Reading, MA: Addison Wesley Longman, 1998.

THE INCEPTION PHASE

The overriding goal of the inception phase is to achieve concurrence among all stakeholders on the lifecycle objectives for the project. The primary objectives of the inception phase include the following:

The essential activities of the inception phase are as follows :

The outcome of the inception phase is creation of these -artifacts:

For a commercial software product, the business case should include a set of assumptions about the project and the order of magnitude of the return on investment (ROI) if these assumptions are true. For example, the ROI will be a magnitude of five if the project is completed in one year, two if it is completed in two years , and a negative number after that. These assumptions are checked again at the end of the elaboration phase when the scope and plan are defined with more accuracy.

The resource estimate might encompass either the entire project through to delivery or only the resources needed for the elaboration phase. Estimates of the resources required for the entire project should be viewed as very rough, a " guesstimate " at this point. This estimate is updated during each phase and each iteration and becomes more accurate with each iteration.

The inception phase may also produce the following artifacts:

Milestone: Lifecycle Objective

At the end of the inception phase is the first major project milestone: the lifecycle objective milestone. The evaluation criteria for the inception phase are as follows:

If the project fails to pass this milestone, it may be canceled or considerably rethought.

The Elaboration Phase

The purpose of the elaboration phase is to analyze the problem domain, establish a sound architectural foundation, develop the project plan, and eliminate the project's highest-risk elements. To accomplish these objectives, you must have a "mile wide and inch deep" view of the system. Architectural decisions must be made with an understanding of the whole system: its scope, major functionality, and nonfunctional requirements such as performance requirements.

It is easy to argue that the elaboration phase is the most critical of the four phases. At the end of this phase, the hard "engineering" is considered complete, and the project undergoes its most important day of reckoning: the decision of whether to commit to the construction and transition phases.

For most projects, this phase corresponds to the transition from a mobile, nimble , low-risk operation to a high-cost, high-risk operation that has substantial inertia. Although the process must always accommodate changes, the elaboration-phase activities ensure that the architecture, requirements, and plans are stable enough, and the risks are sufficiently mitigated, that you can predictably determine the cost and schedule for the completion of the development. Conceptually, this level of fidelity corresponds to the level necessary for an organization to commit to a fixed-price construction phase.

In the elaboration phase, an executable architecture prototype is built in one or more iterations, depending on the scope, size , risk, and novelty of the project. At minimum, this effort should address the critical use cases identified in the inception phase, which typically expose the project's major technical risks. Although an evolutionary prototype of a production-quality component is always the goal, this does not exclude the development of one or more throw-away prototypes to mitigate a given risk or explore some trade-offs between design and requirements. Nor does it rule out a feasibility study or demonstrations to investors, customers, and end users.

The primary objectives of the elaboration phase include the following:

The essential activities of the elaboration phase are as follows:

The outcomes of the elaboration phase are as follows:

Milestone: Lifecycle Architecture

At the end of the elaboration phase is the second important project milestone: the lifecycle architecture milestone. At this point, you examine the detailed system objectives and scope, the choice of architecture, and the resolution of the major risks.

The main evaluation criteria for the elaboration phase involve the answers to the following questions:

If the project fails to pass this milestone, it may be aborted or considerably rethought.

The Construction Phase

During the construction phase, all remaining components and application features are developed and integrated into the product, and all features are tested thoroughly. The construction phase is, in one sense, a manufacturing process in which emphasis is placed on managing resources and controlling operations to optimize costs, schedules, and quality. In this sense, the management mind-set undergoes a transition from the development of intellectual property during inception and elaboration to the development of deployable products during construction and transition.

Many projects are large enough that parallel construction increments can be spawned. These parallel activities can significantly accelerate the availability of deployable releases; they can also increase the complexity of resource management and workflow synchronization. A robust architecture and an understandable plan are highly correlated. In other words, one of the critical qualities of the architecture is its ease of construction. This is one reason that the balanced development of the architecture and the plan is stressed during the elaboration phase.

Primary construction phase objectives include the following:

The essential activities of the construction phase are as follows:

The outcome of the construction phase is a product ready to put in the hands of its end users. At minimum, it consists of the following:

Milestone: Initial Operational Capability

At the end of the construction phase is the third major project milestone: initial operational capability. At this point, you are to decide whether the software, the sites, and the users are ready to become operational without exposing the project to high risks. This release is often called a beta release.

The evaluation criteria for the construction phase involve answering the following questions:

Transition may have to be postponed by one release if the project fails to reach this milestone.

The Transition Phase

The purpose of the transition phase is to move the software product to the user community. After the product has been given to the end user, issues usually arise that require you to develop new releases, correct some problems, or the finish features that were postponed.

The transition phase is entered when a baseline is mature enough to be deployed in the end-user domain. Typically, this means that some usable subset of the system has been completed to an acceptable level of quality and that user documentation is available so that the transition to the user will provide positive results for all parties. This phase includes the following:

The transition phase concludes when the deployment baseline has achieved the completed vision. For some projects, this lifecycle endpoint may coincide with the starting point of the next cycle, leading to the next generation or version of the product. For other projects, it may coincide with a delivery of the artifacts to a third party responsible for operation, maintenance, and enhancements of the delivered system.

The transition phase focuses on the activities required to place the software into the hands of the users. Typically, this phase comprises several iterations, including beta releases, general availability releases, and bug-fix and enhancement releases. Considerable effort is expended in developing user-oriented documentation, training users, supporting users in the initial use of the product, and reacting to user feedback. At this point in the lifecycle, however, user feedback should be confined primarily to product tuning, configuring, installation, and usability issues.

The primary objectives of the transition phase include the following:

The essential activities of the transition phase are as follows:

In the transition phase, the activities performed during an iteration depend on the goal; for fixing bugs , implementation and testing are usually enough. If new features must be added, the iteration is similar to those of the construction phase.

Depending on the type of product, this phase can range from simple to extremely complex. For example, a new release of an existing desktop product may be simple, whereas replacing a nation's air-traffic control system would be complex.

Milestone: Product Release

At the end of the transition phase is the fourth important project milestone: the product release milestone. At this point, you decide whether the objectives were met and whether you should start another development cycle. In some cases, this milestone may coincide with the end of the inception phase for the next cycle.

The primary evaluation criteria for the transition phase involve the answers to the following questions:

Категории