RUP Overview

What is the Rational Unified Process

RUP Lifecycle

RUP Is Iterative and Risk Driven

RUP consists of a matrix of disciplines and phases. Each discipline is associated with: And of course these roles, worklows and artifcats are different for each phase.

RUP breaks software development into 4 phases: Inception, Elaboration, Construction and Transition. Each phase is broken down into multiple iterations. So, for example, there would not be just one construction effort that takes 10 months during the course of a project. There would be, say 10 one month long construction iterations. Each iteration would produce some working code, some functionality that is visible to the end-user so it can be evaluated and tested. Each phase ends with a milestone review.

However, RUP makes the case that some disciplines, should be emphasized more at the beginning of the project while others are best left for later. The disciplines RUP correspond to different kinds of work that are done during software development. They map reasonably well to the activities defined in the waterfall model. The difference is that with waterfall, one does each kind of activity to completion, before beginning the next one, whereas in an iterative approach like RUP, various kinds of activities go on simultaneously throughout the iterations of the project. With the waterfall approach, requirements analysis would precede design, which would precede implementation. With RUP, requirements analysis, implementation, and design would continue to go on during the construction phase, even though there would be a greater emphasis on development at that point.

It is important to note that unlike Waterfall, RUP is is an iterative model. The goals of iterative development are as follows:

Each iteration in RUP has the following components:
  1. Planning
  2. Requirements
  3. Analysis and Design
  4. Implementation
  5. Configuration and change management
  6. Test
  7. Evaluation

Inception

Elaboration

Construction

Transition

Spirit of the RUP

Attack major risks early and continuously, or they will attack you

Why?

How?

Ensure you deliver value to your customer

Why?

How?

Stay focused on executable software

Why?

How?

Baseline an executabl architecture early on

Why?

How?

Accomodate change early in the project

Why?

How?

Build your system with components

Why?

How?

Work together as one team

Why?

How?

Make quality a way of life, not an afterthought

Why?

How?