Introduction to RUP
This Guidance answers fundamental questions on the nature and purpose of the Rational Unified Process.
Main Description

What is the Rational Unified Process, or RUP?

Who should use RUP?

Configuring RUP for your project?

Why should I use RUP?

When should I use RUP?

Where can I learn more about RUP?

Rational Unified Process Process Authoring Tools Community/ Marketplace Configuration Tools Process Delivery Tools The Rational Unified Process Platform

What is the Rational Unified Process, or RUP?

The heart of RUP

At its heart, the Rational Unified Process® (RUP®) is about successful software development. There are three central elements that define RUP:

  • An underlying set of philosophies and principles for successful software development.

These philosophies and principles are the foundation on which the RUP has been developed. To have an overview of RUP philosophy please read the Key Principles and Process Essentials.

  • A framework of reusable method content and process building blocks.

Defined and improved on an ongoing basis by Rational Software, the RUP family of method plug-ins defines a method framework from which you create your own method configurations and tailored processes.

  • The underlying method and process definition language.

Underlying it all is a unified method architecture meta-model. This model provides a language for describing method content and processes. This new language is a unification of different method and process engineering languages such as the SPEM extension to the UML for software process engineering, the languages used for RUP v2003, Unified Process, IBM Global Services Method, as well as IBM Rational Summit Ascendant. 

The Rational Method Composer (RMC) platform

Over many years of development effort, the RUP has evolved into a rich process engineering platform platform called Rational Method Composer (RMC).  RMC enables teams to define, configure, tailor and practice a consistent process. The key elements of the platform are:

  • Method Delivery Tools

RUP is delivered to practitioners as an interactive Web site using industry-standard browser technology. The tools used to deliver RUP include:

  • The RUP Web site you are currently browsing

A RUP Web site is a Rational Method Composer published process presentation configured for your project and tailored to your specific needs. The Web site is created using dynamically generated HTML pages, which RMC enables you to publish in the form of multiple RUP Web sites, each representing a configured and tailored process definition.

  • A set of Web Browser navigation tools

The RUP Browser applets enable the RUP Web site to be dynamically accessed through a number of standard web browsers with the help of additional navigation applets.

  • Method Configuration Tool

Rational Method Composer (RMC) supports fine-grained publish-time configuration of method content and processes to meet the varied needs of different projects and end users.  Method Composer allows the optional inclusion of method and process extensions using Method Composer's plug-in technology.  It also allows to configure variants on processes, which are published differently depending on user-specific selections.

  • A Marketplace for process extensions

The RUP section of the developerWorks®: Rational® Web site provides a place for process engineers in the software development community to share their method extensions as consumable Plug-Ins, and provides a rich source of method extensions for the project manager.

  • Method Authoring Tool

The Rational Method Composer (RMC) tool is specifically designed for method content management and process authoring with functions such as form- and breakdown structure-based authoring, content browsing, content search, and import and export of method content. Method Composer also provides mechanisms for rapid process assembly using process patterns and reusable method elements.  It supports the creation of method plug-ins that provide powerful ways of extending and modifying existing content, simplifying method content and process management and maintenance.

Who should use RUP?

If you depend on your ability to develop and deploy software which is critical to the success of your organization, then RUP will help you. The RUP product is developed with two primary groups of users in mind:

  • software development practitioners working as part of a project team, including the stakeholders of those software development projects.
  • process engineering practitioners, specifically software process engineers and managers.

Software development practitioners can find guidance on what is required of them in the roles defined in RUP. A practitioner working on a RUP software engineering project is assigned one or more of the roles defined in RUP, where each role partitions a set of tasks and work products that role is responsible for. Guidance is also given on how those roles collaborate in terms of the activities that are required to enact the configured process (referred to as the Delivery Process).

Process Engineering practitioners can find guidance on defining, configuring, tailoring and implementing engineering processes. The RUP product family provides a number of tools that enable and simplify defining, configuring and tailoring the engineering process.

A number of views are provided with the RUP product that are focused on different groups of software engineering practitioners.

Configuring RUP for your project?

One of the core practices behind RUP is iterative and incremental development. This practice is also good to keep in mind as you start with RUP: don't try to "do" all of RUP at once. Adopt an approach to implementing, learning and using RUP that is itself iterative and incremental. Start by assessing your existing process and selecting one or two key areas you would like to improve. Begin using RUP to improve these areas first and then, in later iterations or development cycles, make incremental improvements in other areas.

Visit the following links to learn more about these topics:

Why should I use RUP?

RUP provides a software development practitioner with a standards-based yet configurable process environment. That process environment:

At its heart, RUP is a collected body of software engineering practices that are continually improved on a regular basis to reflect changes in industry practices.

As a Stakeholder in a software development project, RUP provides you with an understanding of what can be expected from the development effort. It provides a glossary of terminology and an encyclopedia of knowledge to help you communicate your needs effectively with the software development team.

For a software development practitioner, this process environment provides a central, common process definition that all software development team members can share, helping to ensure clear and unambiguous communication between team members. This helps you to play the part expected of you in the project team by making it clear what your responsibilities are. As a general software engineering reference, RUP provides a wealth of guidance on software development practices that novice and experienced practitioners alike will find valuable. Even if you are a lone code-warrior, you will find RUP a useful mentor in helping you to build world-class software.

As a manager or team leader, RUP provides you with a process by which you can communicate effectively with your staff and manage the planning and control of their work accordingly.

As a Process Engineer, RUP provides you with a good architectural foundation and wealth of material from which you can construct your process definition, enabling you to configure and extend that foundation as desired. This will save you enormous amounts of time and effort that would otherwise be required to create such a process definition from scratch.

When should I use RUP?

The Rational Unified Process Platform

RUP can be used right from the start of a new software project, and can continue to be used in subsequent development cycles long after the initial project has ended. However, the way in which RUP is used needs to be varied appropriately to suit your needs. There are a few considerations that will determine when and how you will use different parts of RUP:

  • project lifecycle (number of iterations, length of each phase, project length)
  • project business goals, Vision, scope and Risk
  • size of the Software Development Effort

Where can I learn more about RUP?

The following resources can help you to get up to speed and master RUP quickly: