The RUP lifecycle is an implementation of the spiral model. It has been created by assembling the content elements into semi-ordered sequences. Consequently the RUP lifecycle is available as a work breakdown structure, which could be customized to address the specific needs of a project. The RUP lifecycle organizes the tasks into phases and iterations.
* Inception phase
* Elaboration phase
* Construction phase
* Transition phase
Each phase is concluded with a well-defined milestone–a point in time at which certain critical decisions must be made, and therefore key goals must have been achieved.
Inception Phase: In this phase the business case which includes business context, success factors (expected revenue, market recognition, etc), and financial forecast is established. To accomplish this you must identify all external entities with which the system will interact (actors) and define the nature of this interaction at a high-level. To complement the business case, a basic use case model, project plan, initial risk assessment and project description (the core project requirements, constraints and key features) are generated. The basic question is: do you and the Customer have a shared understanding of the system? The project is then checked against the following criteria:
* Stakeholder concurrence on scope definition and cost/schedule estimates.
* Requirements understanding as evidenced by the fidelity of the primary use cases.
* Credibility of the cost/schedule estimates, priorities, risks, and development process.
* Depth and breadth of any architectural prototype that was developed.
* Establishing a baseline by which to compare actual expenditures versus planned expenditures.
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 highest risk elements of the project. To accomplish these objectives, you must have the “mile wide and inch deep” view of the system. Architectural decisions have to be made with an understanding of the whole system: its scope, major functionality and nonfunctional requirements such as performance requirements. The elaboration phase is where the project starts to take shape. In this phase the problem domain analysis is made and the architecture of the project gets its basic form.
The outcome of the elaboration phase is:
* A use-case model (at least 80% complete) – all use cases and actors have been identified, and most use-case descriptions have been developed.
* Supplementary requirements capturing the non functional requirements and any requirements that are not associated with a specific use case.
* A Software Architecture Description.
* An executable architectural prototype.
* A revised risk list and a revised business case.
* A development plan for the overall project, including the coarse-grained project plan, showing iterations” and evaluation criteria for each iteration.
* An updated development case specifying the process to be used.
* A preliminary user manual (optional).
Construction phase: During the construction phase, all remaining components and application features are developed and integrated into the product, and all features are thoroughly tested. The construction phase is, in one sense, a manufacturing process where emphasis is placed on managing resources and controlling operations to optimize costs, schedules, and quality. In this sense, the management mindset undergoes a transition from the development of intellectual property during inception and elaboration, to the development of deployable products during construction and transition. In this phase, the main focus goes to the development of components and other features of the system being designed. This is the phase when the bulk of the coding takes place. In larger projects, several construction iterations may be developed in an effort to divide the use cases into manageable segments that produce demonstrable prototypes.
The outcome of the construction phase is a product ready to put in hands of its end-users. At a minimum, it consists of:
* The software product integrated on the adequate platforms.
* The user manuals.
* A description of the current release.
Transition phase: The purpose of the transition phase is to transition the software product to the user community. Once the product has been given to the end user, issues usually arise that require you to develop new releases, correct some problems, or finish the features that were postponed. The transition phase is entered when a baseline is mature enough to be deployed in the end-user domain. This typically requires 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 includes:
* “Beta testing” to validate the new system against user expectations
* Parallel operation with a legacy system that it is replacing
* Conversion of operational databases
* Training of users and maintainers
* Roll-out the product to the marketing, distribution, and sales teams
In the transition phase, the product has moved from the development organization to the end user. The activities of this phase include training of the end users and maintainers and beta testing of the system to validate it against the end users’ expectations. The product is also checked against the quality level set in the Inception phase. If it does not meet this level, or the standards of the end users, the entire cycle in this phase begins again.
If all objectives are met, the Product Release Milestone is reached and the development cycle ends.



Recent Comments