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:
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.
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?
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:
|