The fundamental purpose of the
Rational Unified Process is to provide a model for effectively implementing commercially proven approaches to development, for use throughout the entire software development life cycle. Taking elements from other iterative software development models, the
Rational Unified Process framework was initially created by the Rational Software Corporation, which was bought out by IBM in 2003.
Rational Unified Process is not a concrete development model, but rather is intended to be adaptive and tailored to the specific needs of your project, team, or organization. The
Rational Unified Process is based on a few fundamental ideas, such as the
phases of development and the
building blocks, which define who, what, when, and how development will take place.
Throughout this article we’ll explore the
Rational Unified Process in detail, examining the
best practices, its fundamental
building blocks, and the core
life cycles that software will iteratively progress through, before we outline a few advantages and potential disadvantages to using the
Rational Unified Process in for your own projects. Let’s take a look!
Rational Unified Process is structured around six fundamental
best practices, which are so-named due to their common use throughout the industry:
- Develop Software Iteratively: Encourages iterative development by locating and working on the high-risk elements within every phase of the software development life cycle.
- Manage Requirements: Describes how to organize and keep track of functionality requirements, documentation, tradeoffs and decisions, and business requirements.
- Use Component-Based Architectures: Emphasizes development that focuses on software components which are reusable through this project and, most importantly, within future projects.
- Visually Model Software: Based on the Unified Modeling Language (
Rational Unified Processprovides the means to visually model software, including the components and their relationships with one another.
- Verify Software Quality: Assists with design, implementation, and evaluation of all manner of tests throughout the software development life cycle.
- Control Changes to Software: Describes how to track and manage all forms of change that will inevitably occur throughout development, in order to produce successful iterations from one build to the next.
All aspects of the
Rational Unified Process are based on a set of
building blocks, which are used to describe what should be produced, who is in charge of producing it, how production will take place, and when production is complete. These four
building blocks are:
- Workers, the ‘Who’: The behavior and responsibilities of an individual, or a group of individuals together as a team, working on any
activityin order to produce
- Activities, the ‘How’: A unit of work that a
workeris to perform.
Activitiesshould have a clear purpose, typically by creating or updating
- Artifacts, the ‘What’: An
artifactrepresents any tangible output that emerges from the process; anything from new code functions to documents to additional life cycle models.
- Workflows, the ‘When’: Represents a diagrammed sequence of
activities, in order to produce observable value and
Workflows are further divided up in the
Rational Unified Process into six core
- Business Modeling Workflow: During this workflow, the business context (
scope) of the project should be outlined.
- Requirements Workflow: Used to define all potential requirements of the project, throughout the software development life cycle.
- Analysis & Design Workflow: Once the
requirements workflowis complete, the
analysis and designphase takes those requirements and transforms them into a design that can be properly implemented.
- Implementation Workflow: This is where the majority of actual coding takes place, implementing and organizing all the code into layers that make up the whole of the system.
- Test Workflow: Testing of all kinds takes place within this workflow.
- Deployment Workflow: Finally, the
deployment workflowconstitutes the entire delivery and release process, ensuring that the software reaches the customer as expected.
There are also three core
supporting workflows defined in the
Rational Unified Process:
- Project Management Workflow: Where all
activitiesdealing with project management take place, from pushing design objectives to managing risk to overcoming delivery constraints.
- Configuration & Change Management Workflow: Used to describe the various
artifactsproduced by the development team, ideally ensuring that there is minimal overlap or wasted efforts performing similar
activitiesthat result in identical or conflicting
- Environment Workflow: Finally, this workflow handles the setup and management of all software development environments throughout the team, including the processes, as well as the tools, that are to be used throughout the software development life cycle.
inception phase, the basic idea and structure of the project is determined. The team will sit down and determine if the project is worth pursuing at all, based on the proposed purpose of the project, the estimated costs (monetary and time), and what resources will be required to complete the project once the green light is given.
The conclusion of the
inception phase is the
Lifecycle Objectives Milestone, which consists of the following evaluation criteria:
- Stakeholder concurrence on scope definition and cost/schedule estimates.
- Requirements understanding as evidenced by the fidelity of the primary use cases.
- Credibility of the cost/schedule estimates, priorities, risks, and development process.
- Depth and breadth of any architectural prototype that was developed.
- Actual expenditures versus planned expenditures.
The purpose of the
elaboration phase is to analyze the requirements and necessary architecture of the system. The success of this phase is particularly critical, as the final milestone of this phase signifies the transition of the project from low-risk to high-risk, since the actual development and coding will take place in the following phase.
Lifecycle Architecture Milestone signifies the end of the
elaboration phase, and is evaluated using these criteria:
- Is the vision of the product stable?
- Is the architecture stable?
- Does the executable demonstration show that the major risk elements have been addressed and credibly resolved?
- Is the plan for the construction phase sufficiently detailed and accurate? Is it backed up with a credible basis of estimates?
- Do all stakeholders agree that the current vision can be achieved if the current plan is executed to develop the complete system, in the context of the current architecture?
- Is the actual resource expenditure versus planned expenditure acceptable?
As the meat and potatoes of the software development life cycle, the
construction phase is when the coding and implementation of all application features will take place. This period is also where integrations with other services or existing software should occur.
The end of the
construction phase is measured by the completion of the
Initial Operational Capability Milestone, which is based on these criteria:
- Is this product release stable and mature enough to be deployed in the user community?
- Are all stakeholders ready for the transition into the user community?
- Are the actual resource expenditures versus planned expenditures still acceptable?
Easier thought of as
transition phase is when the finished product is finally released and delivered to customers. However, the
transition phase is more than just the process of deployment; it must also handle all post-release support, bug fixes, patches, and so forth.
Product Release Milestone signals the end of the
transition phase, and is based on a few simple questions:
- Is the user satisfied?
- Are the actual resources expenditures versus planned expenditures still acceptable?
Rational Unified Process also recommends that each of the four above phases be further broken down into
iterations, a concept taken from
agile and other common iterative development models. Just as with those other models, in the context of the
Rational Unified Process, an
iteration simply represents a full cycle of the aforementioned core phases, until a product is released in some form (internally or externally). From this baseline, the next
iteration can be modified as necessary until, finally, a full and complete product is released to customers.
- Allows for the adaptive capability to deal with changing requirements throughout the development life cycle, whether they be from customers or from within the project itself.
- Emphasizes the need (and proper implementation of) accurate documentation.
- Diffuses potential integration headaches by forcing integration to occur throughout development, specifically within the
construction phasewhere all other coding and development is taking place.
- Heavily relies on proficient and expert team members, since assignment of
workersshould produce tangible, pre-planned results in the form of
- Given the emphasis on integration throughout the development process, this can also be detrimental during testing or other phases, where integrations are conflicting and getting in the way of other, more fundamental activities.
rupis a fairly complicated model. Given the assortment of the components involved, including
workflows, often proper implementation and use of the
Rational Unified Processcan be challenging for many organizations, particularly for smaller teams or projects.