| RUP (Rational Unified Process) |
|
The Rational Unified Process (RUP) is an iterative software development process created by the Rational Software Corporation, now a division of IBM. The RUP is not a single concrete prescriptive process, but rather an adaptable process framework.
As such, RUP describes how to develop software effectively using proven techniques. While the RUP encompasses a large number of different activities, it is also intended to be tailored, in the sense of selecting the development processes appropriate to a particular software project or development organization. The RUP is recognized as particularly applicable to larger software development teams working on large projects. Rational Software offers a product (known below as the Rational Unified Process Product) that provides tools and technology for customizing and executing the process. Using the RUP, software product lifecycles are broken into individual development cycles. These cycles are further broken into their main components, called phases. In RUP, these phases are termed as:
Phases are composed of iterations. Iterations are timeboxes; iterations have deadlines while phases have objectives. The inception phaseIn this phase the business case which includes business context, success factors (expected revenue, market recognition, etc), and financial forecast is established. 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. After these are completed, the project is checked against the following criteria:
If the project does not pass this milestone, called the Lifecycle Objective Milestone, it can either be cancelled or it can repeat this phase after being redesigned to better meet the criteria. The elaboration phaseThe 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. This phase must pass the Lifecycle Architecture Milestone by meeting the following criteria:
If the project cannot pass this milestone, there is still time for it to be cancelled or redesigned. After leaving this phase, the project transitions into a high-risk operation where changes are much more difficult and detrimental when made. The construction phaseIn this phase the main focus goes to the development of components and other features of the system being developed. This is the phase when the bulk of the coding takes place. This phase produces the first external release of the software. Its conclusion is marked by the Initial Operational Capability (IOC) milestone. The transition phaseIn 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 (PR) milestone is reached and the development cycle ends. MilestonesIn RUP there are four major milestones that correspond to the four phases. If the milestone criteria are not met, the project can be stopped or run in a new iteration to revisit the bottlenecks. Milestones are connected to a Deliverable. This meta-model of a milestone emphasizes the links between phases, iterations and milestone completion. It is very important to reach the milestone. IterationsA typical project using the RUP will go through several iterations. Dividing the project into iterations has advantages, such as risk mitigation, but it also needs more guidance and effort than the traditional sequential approach. The RUP defines a Project Management Discipline that guides the project manager through iteration management. Using iterations, a project will have one overall phase plan, but multiple iteration plans. The example below depicts the difference between the traditional sequential waterfall method and the smaller steps in the iteration model. |







