IBM Rational Unified Process® (RUP®) is a comprehensive process framework that provides industry-tested practices for software and systems delivery and implementation and for effective project management. RUP is not a single concrete prescriptive process, but rather an adaptable process framework, intended to be tailored by the development organizations and software project teams that will select the elements of the process that are appropriate for their needs.
The process can be described in two dimensions, or along two axis:
- The horizontal axis represents time and shows the dynamic aspect of the process as it is enacted, and it is expressed in terms of cycles, phases, iterations, and milestones.
- The vertical axis represents the static aspect of the process: how it is described in terms of activities, artifacts, workers and workflows.
The Iterative Model graph shows how the process is structured along two dimensions.
Phases of Rational Unified Process
The software lifecycle is broken into cycles, each cycle working on a new generation of the product. The Rational Unified Process divides one development cycle in four consecutive phases: Inception phase, Elaboration phase, Construction phase, Transition phase.
Each phase is concluded with a well-defined milestone–a point in time at which certain critical decisions must be made, and therefore key goals must have been achieved. [
1. Inception Phase
The primary objective is to scope the system adequately as a basis for validating initial costing and budgets. In this phase the business case which includes business context, success factors (expected revenue, market recognition, etc.), and financial forecast is established. To complement the business case, a basic use case model, project plan, initial risk assessment and project description (the core project requirements, constraints and key features) are generated. After these are completed, the project is checked against the following 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.
- Establishing a baseline by which to compare actual expenditures versus planned expenditures.
If the project does not pass this milestone, called the Lifecycle Objective Milestone, it either can be canceled or repeated after being redesigned to better meet the criteria.
2. Elaboration Phase
The primary objective is to mitigate the key risk items identified by analysis up to the end of this phase. The elaboration phase is where the project starts to take shape. In this phase the problem domain analysis is made and the architecture of the project gets its basic form.
This phase must pass the Lifecycle Architecture Milestone by meeting the following deliverables:
- A use-case model in which the use-cases and the actors have been identified and most of the use-case descriptions are developed. The use-case model should be 80% complete.
- A description of the software architecture in a software system development process.
- An executable architecture that realizes architecturally significant use cases.
- Business case and risk list which are revised.
- A development plan for the overall project.
- Prototypes that demonstrably mitigate each identified technical risk.
If the project cannot pass this milestone, there is still time for it to be canceled or redesigned. However, after leaving this phase, the project transitions into a high-risk operation where changes are much more difficult and detrimental when made.
The key domain analysis for the elaboration is the system architecture.
3. Construction Phase
The primary objective is to build the software system. In this phase, the main focus is on the development of components and other features of the system. This is the phase when the bulk of the coding takes place. In larger projects, several construction iterations may be developed in an effort to divide the use cases into manageable segments that produce demonstrable prototypes.
This phase produces the first external release of the software. Its conclusion is marked by the Initial Operational Capability Milestone.
4. Transition Phase
The primary objective is to ‘transit’ the system from development into production, making it available to and understood by the end user. The activities of this phase include training the end users and maintainers and beta testing the system to validate it against the end users’ expectations. The product is also checked against the quality level set in the Inception phase.
If all objectives are met, the Product Release Milestone is reached and the development cycle ends.
Disciplines of Rational Unified Process
The nine disciplines that are performed iteratively throughout the four phases are:
|Business Modeling||To understand the business of the organization that is relevant for the system to be developed. Also, if needed, possibility of re-engineering business process is also explored and potential strategies are evaluated.|
|Requirements||The scope of the project is defined. The specification documents are prepared to identify the functional (like usage, business rules, user interface) and non-functional requirements of the project.|
|Analysis and Design||The requirements are analysed and architecture design of the system is made. This includes designing the network, database, components, modules of the system.|
|Implementation||The program source code is developed and unit testing is done.|
|Test||This discipline ensures quality of the system developed. It consists of finding bugs, ensuring that the system works as per the design of the system and meets all requirements mentioned in the specification documents.|
|Deployment||This includes planning and executing delivery of software and supporting documentations ready to be deployed and making the system available to end users.|
|Configuration and Change Management||This includes managing baselines of the project, accepting and managing change requirements, changing and delivering configuration items and managing releases.|
|Project management||This includes assigning tasks, managing risks, tracking progress etc to ensure on time and within budget delivery of the product.|
|Environment||This includes ensuring proper tools are available whenever required.|
Although the names of the first six disciplines may evoke the sequential phases in a traditional waterfall process, we should keep in mind that the phases of an iterative process are different and that these disciplines are revisited again and again throughout the lifecycle. The actual complete discipline of a project interleaves these nine core disciplines , and repeats them with various emphasis and intensity at each iteration.
- The RUP development methodology provides a structured way for companies to envision create software programs. Since it provides a specific plan for each step of the development process, it helps prevent resources from being wasted and reduces unexpected development costs.