Getting
Started with the Rational Unified Process
The Rational Unified Process product consists of:
- The book "Rational Unified Process - An Introduction". This book
provides an overview of the process.
- An online version of the Rational Unified Process description in HTML, including
templates for reports and documents, tool mentors for Rational tools, white papers, and
programming guidelines.
Training on the Rational Unified Process can be ordered separately.
The Rational Unified Process online makes the contents of the manuals possible to view
with any of the popular web browsers and support frameworks, such as Netscape® Navigator
and Microsoft® Internet Explorer. The Rational Unified Process online has a
lot of hypertext links and interactive images for the user to browse.

You can view the Rational Unified Process
online.
This section gives guidelines on how to learn the process by reading the manuals,
either with hard copy or online. Remember that one of the most effective ways of learning
something is to actually do it. So try to combine your reading with some practical work.
To get started, take the Guided Tour. The
tour is organized according to the following project roles:
- Project manager, the manager of the project.
- Process engineer, the person who configures or tailors the
process to be suitable for the project organization. A person acting as a process engineer
is usually responsible for the methods in the project.
- Developer, which comprises the various workers (use-case designer,
architect, and so on).
To successfully install a software-engineering process in a project (or entire
organization), you must at the minimum consider the following issues:
- Management support. Without appropriate management support, it is hard
to introduce a new process.
- Training project members. Every project member must understand the new
process.
- Configuring the process to suit the project's needs. Configuration must
consider such factors as the problem domain, what kind of application, the company
culture, and supporting tools. See Introduction
to Environment for more information about configuring the process.
- Supporting tools. A software-engineering process requires tools to
support all the activities in a system's lifecycle. You need to select a set of supporting
tools and tailor them to work with each other, as well as within the process.
It is important that management stand behind the introduction of a new process, and
possibly a new tool set. Management must be fully aware of what it takes to introduce a
new process:
- There are always initial costs associated with introducing a new process.
You need to train your staff, and possibly pay for mentoring. You may experience a lower
productivity in your first project, at least if you include necessary training as a part
of the project. It may be wise to exclude training from the initial project to get a
fairer comparison with other projects. Over time you will see a productivity gain;
experience shows that you can expect to see increased quality from the first project.
- Most people like doing things in ways they are familiar with, especially when
under stress. This means that you can expect the staff to fall back on old
procedures, especially when the pressure is extreme. As a manager, you must be prepared
for this. Encourage team members to stick to the process. You may even find yourself
falling back to old procedures when you see a problem. Try to go through at least one full
project if you possibly can and then evaluate what went well, what did not go well, and
what can be improved.
- There are always risks when you introduce a new process, but there are also
great rewards. One way to reduce risks is to provide the appropriate training and
to run a pilot project, which is discussed in more detail in the following paragraphs.
Another way to reduce risk is to have skilled mentors assist you. They should be able to
identify and eliminate some of the issues before they become costly problems. They also
typically increase productivity by helping you to avoid pitfalls.
It is strongly recommended that you introduce the process in a small project. A project
goal should be that people understand the process and can work with it. Another should be
to develop a process configuration (define how the process should be used). It is also
recommended that you train people in an environment that is as realistic as possible.
There are several ways to accomplish these goals, all of which are a mixture of
training, mentoring workshops, and project work:
- Apply the process to a pilot project, in which you work on a fictitious prototype
example. The goal is to learn the process without affecting the actual product.
- Apply the process only to the first iteration of a project. In which case, you would be
working on parts of the product, but there would still be ample time to fix anything that
goes wrong.
- Conduct a process "boot camp." The goal is to let developers work through all
(or most) phases of the development process in the shortest possible time. The system
could either be a fictitious prototype or part of the real system. The advantage of a
"boot camp" is that people are focused on learning. The goal is primarily to get
through all phases and learn as much as possible, thereby gaining enough experience to be
able to configure the process to meet a particular set of needs.
When you plan training, remember to deliver it when it is needed. This
will maximize the motivation and capacity to learn. Deliver design training when people
are about to start working with design, for example.
A software-engineering process requires tools to support all activities in a system's
lifecycle. An iterative development process puts special requirements on the tool set you
use, such as better integration among tools and round-trip engineering between models and
code. You also need tools to automate documentation, and possibly automate tests to make
regression testing easier. The Rational Unified Process can be used with a variety of
tools, either from Rational or other vendors. However, Rational provides many
well-integrated tools that efficiently support the Rational Unified Process.
Below are listed the tools you will require, and some examples of tools Rational has to
meet these needs.
- A modeling tool to develop the different models, such as use-case model
and design model. The tool should have true round-trip engineering so that you can
forward-engineer and reverse-engineer code without overriding the changes you have made in
the models or code since the last generation.
Example: Rational Rose
- A requirements management tool, to capture, organize, prioritize, trace
all requirements.
Example: Rational Requisite Pro
- A documentation tool, to support the project documentation. You need to
be able to extract information from the modeling tool, as well as other sources such as
the code, to create documents that present the models. If you do not have automated
document generation, you will most likely have documentation that diverts from your models
(or no documentation at all). A documentation tool must allow you to make changes manually
in a document, and not override these changes when you regenerate documentation.
Example: Rational SoDA
- Programming tools, to assist the developers; editors, compilers,
debuggers, and so on. These should be integrated with the modeling environment and the
test environment.
Example: Rational Apex/Ada, Rational Apex/C++ (Java ready)
- Tools that support the project manager in planning and steering the
project.
- In a large project, you need to automate the allocation of a task to the individuals on
the project. A task management tool can help project managers know what
tasks to work on, enforce conformance to a certain process, and at the same time automate
tedious tasks related to configuration management. It may also help project managers to
continuously monitor the project's progress.
Example: Rational Summit or ClearGuide
- A configuration management tool, can help you keep track of all
artifacts produced, and their different versions. Both models, and especially code needs
to be configuration-managed. Integration of coding environments, modeling tools, and
configuration management tools is essential.
Example: Rational Apex/CMVC or ClearCase.
- In an iterative development process you test throughout the lifecycle. It is important
that you use test tools to automate testing so that you can easily retest
code (regression testing) to minimize resources and maximize quality. More specialized
tools allow you to perform load testing.
Examples: Rational SQA Suite, Rational TestMate, Rational Visual Test
| |

|