Rational Unified Process is the ultimate guide for assigning tasks and responsibilities within a development organization and developing a high-quality software that meets the needs and requirements of its users. It was initially created by the Rational Software Corporation which IBM bought out in 2003.
The incredible success of RUP approach has made a wide range of organizations worldwide realize how important a well-defined and well-documented software process is, and stimulated them to start implementing it in their projects.
Although this method is primarily used for big software development projects, many project managers assume that RUP is not the right solution for the projects of limited scope, which don’t require many resources. However, there are many examples of small projects that benefited greatly from incorporating RUP into their organization.
For example, TAP University (Technology as Promised) is an online learning management system. Their aim was to extend the face-to-face training and boost their online offerings to corporate and public customers and students.
Although this was a small project, the implementation of RUP yielded remarkable results. It helped the organization build a necessary framework in terms of organization of their use cases and gave guidance for the company to begin the Construction stage, the third and the most important stage of Rational Unified Process.
What is Rational Unified Process (RUP)?
A processed product - the development team for RUP is working closely with customers, partners, groups organizations to ensure that the process is constantly updated
The RUP leverages team productivity - it allows the team to have a free access to a knowledge base with all the guidelines and tool mentors that help them overcome critical issues. This helps the entire team share the same language when developing a software
The RUP creates and maintain models - instead of producing a large amount of paperwork, this method creates models - semantically rich representations of the software system your team is developing
The RUP is a guide how to use Unified Modelling Language (UML) - UML allows your team to communicate their requirements, architecture, and design of the project.
The RUP is a configurable process - it is a simple and clear process that can fit both small development teams as well as large organizations.
Six fundamental practices of RUP
There are six fundamental best practices that make RUP suitable for a wide range of projects worldwide:
- Develop software iteratively - by tackling high-risk elements on every stage of the projects, it allows you to gain increasing understanding of the problem and make necessary changes until you reach the most reasonable solution
- Manage requirements - describes how to organize and keep track of functionality requirement, documents, tradeoff, decisions and business needs
- Use component-based architecture - it structures the system architecture into components which are reusable not only on the project at hand but in future projects as well
- Visually model software - it shows you how to create a visual model of a software to capture the structure and behavior of architecture and components
- Verify Software Quality - it enables you to evaluate and control the quality of all activities during the software development
- Control changes to software - it gives you the ability to control, track and monitor changes which enable constant and successful development of the software. It also helps you create a secure workspace by isolating it from changes which in turn brings your team together making them work as a unit.
The structure of RUP
This approach describes who is doing what, how and when. RUP can be presented by using four main elements:
Workers - the “Who”
It defines the behavior and responsibilities of all team members who are all focus on one common goal - to produce artifacts. In RUP, the worker is more of a role defining how individuals should carry out their work. A worker should not only perform a certain set of activities but also be the owner of a set of artifacts.
Activities - the “How”
It refers to the unit of work that a worker is to perform. Each activity has a clear purpose and is assigned to the specific worker. Activities mainly include creating or updating some artifacts such as a model, a class, or a plan.
Artifacts - the “What”
The thing or the information that the process produces modifies or uses while working towards the final outcome. Artifacts serve as input that workers use to perform an activity and are also results or output of those activities.
Workflows - the”When”
Workflow represents a sequence of activities that produce an observable value. In UML terms, we can present workflow in a sequence diagram, a collaboration diagram, and activity diagram.
The lifecycle of RUP
Like most methodologies, RUP lifecycle is broken into four main phases (cycles), each phase working on a new generation of the product:
- Inception phase
- Elaboration phase
- Construction phase
- Transition phase
1. Inception phase
Essentially, in this cycle, your team determines the structure and the basic idea of the project. Also, the team will decide if the project is worth pursuing at all based on the estimated costs, the necessary resources and the goal they are trying to achieve with the project.
2. Elaboration phase
The aim of this phase is to analyze the requirements and the architecture of the system, develop the project plan and eliminate the highest risk elements of the project. It’s undoubtedly the most critical of all stages as it signifies the transition from low-risk to high-risk. It’s an also the point when your team has to make a decision whether to start a construction (development and coding) or not.
3. Construction phase
At this stage, your team is finally ready to develop all components and features and integrate them into the product. It’s a manufacturing process where your team focuses on managing resources in order to optimize costs, schedules and the quality.
4. Transition Phase
The transition phase is the moment when the product is finally finished, released and delivered to customers. However, once the product is given to the user, there are a number of issues that can arise. This requires the team to handle all the bug-fixes and correct problems, or to finish some features that were postponed.
At the end of each phase, there is an important Project Milestone - a point in time when your team confirms that certain goals have been achieved. At that moment they have to make some critical decisions, which will have an impact on the following phase.
The benefits of RUP
- It allows you to deal with changing requirements regardless of whether they are coming from the customer or from the project itself.
- It emphasizes the need for accurate documentation.
- It forces integration to happen throughout the software development, more specifically in the construction phase.
The disadvantages of RUP
- It mostly relies on the ability of experts and professionals to assign the activities to individuals who should then produce pre-planned results in the form of artifacts.
- The integration in development process can also have an adverse impact on some more fundamental activities during the stages of testing
- Although RUP has delivered excellent results, especially in software development, it is a rather complex method which makes its implementation challenging, particularly for smaller businesses, teams or projects.