Rational unified process
| Company type | Subsidiary |
|---|---|
| Industry | Software development |
| Fate | Acquired by IBM in 2003 |
| Successor | IBM Rational |
| Parent | IBM |
The Rational Unified Process (RUP) represents an iterative software development process framework initially developed by Rational Software, which has been a part of IBM since 2003. RUP serves as a flexible framework that organizations and project teams can customize to suit their specific requirements. It is a concrete realization of the broader Unified Process concept.
History
Rational Software created RUP as a comprehensive software process offering, featuring a hyperlinked knowledge repository filled with example artifacts and detailed explanations of activities. It is integrated within the Rational Method Composer (RMC), a tool designed to facilitate process tailoring.
The original RUP team was led by Philippe Kruchten, a technical representative from Rational. The early iterations of RUP merged Rational’s expertise in object-oriented system development (known as the Rational Approach) with Objectory’s use case methodology, enriched by elements from Jim Rumbaugh’s OMT, Grady Booch’s approach, and the preliminary UML version 0.8.
Kruchten developed a clearly defined process framework delivered through Objectory’s HTML-based platform. This approach established a strategic foundation for Rational consisting of three pillars:
- A customizable process to direct development efforts
- Tools designed to automate the process
- Services aimed at speeding up adoption
Further editions of RUP incorporated insights from companies acquired by Rational.
In 1997, disciplines covering requirements and testing were introduced, drawing from acquisitions such as Requisite, Inc., and SQA Inc. The following year, Rational added business modeling practices (originating from Objectory Process) along with Configuration and Change Management disciplines after acquiring Pure Atria Corporation.
These enhancements gave rise to six core best practices embedded in RUP for contemporary software engineering:
- Iterative development driven by risk assessment
- Requirements management
- Use of component-based architecture
- Visual modeling of software
- Ongoing quality verification
- Change control
These best practices closely aligned with Rational’s suite of products, shaping both internal product development and external consulting efforts aimed at enhancing software quality and reliability.
Additional methodologies such as performance testing, user interface design, and data engineering were incorporated, alongside updates to UML version 1.1.
By 1999, project management and real-time software development disciplines were integrated, reflecting changes introduced in UML 1.3. That year also saw the publication of The Unified Software Development Process, authored by Ivar Jacobson, Grady Booch, and James Rumbaugh, which provided the first complete description of RUP.
Between 2000 and 2003, RUP underwent further refinement with:
- The adoption of agile practices including pair programming and test-first design, facilitating the application of agile methods on larger scale projects.
- A comprehensive revision of the testing discipline tailored for iterative workflows.
- The launch of "tool mentors" offering guided assistance within Rational’s software tools.
- Automated customization features enabling users to adapt RUP while seamlessly incorporating updates from Rational.
In February 2003, IBM completed its acquisition of Rational Software.
In 2006, IBM introduced OpenUP, an open-source subset derived from RUP designed specifically for Agile project delivery. This was made available via the Eclipse platform.
Core components of RUP
The Rational Unified Process is organized around essential components that specify what outputs are created, the necessary expertise, and the methods to accomplish development objectives. These primary elements include:
- Roles (who) – Specifies the skills, competencies, and responsibilities associated with each position.
- Work products (what) – The artifacts produced from activities, such as documentation and models.
- Tasks (how) – Defined units of work assigned to roles that yield significant results.
Within each iteration, tasks are categorized into nine disciplines:
- Six engineering disciplines:
- Business modeling
- Requirements gathering
- Analysis and design
- Implementation
- Testing
- Deployment
- Three supporting disciplines:
Project life-cycle phases in four stages
RUP outlines four distinct phases for the project life cycle, providing a top-level framework that resembles traditional waterfall approaches but highlights iterative progress within each phase. Each stage ends with a milestone representing its primary goal, as depicted in the RUP hump diagram.
Inception phase
This phase aims to define the system scope and validate initial budget and cost estimates. It establishes the business justification—covering context, success criteria (such as revenue and market impact), and financial projections—while delivering a preliminary use case model, project schedule, initial risk evaluation, and essential project requirements.
Evaluation criteria during this phase include:
- Stakeholder consensus on scope alongside cost and schedule projections
- Clarity of requirements through key use cases
- Reliability of estimates, priorities, risks, and development strategy
- Degree of architectural prototyping completed
- A baseline for monitoring actual versus planned costs
If the milestone objectives are not achieved, the project may face termination or require redesign.
Elaboration phase
The elaboration phase focuses on addressing major risks identified earlier. It refines the project by analyzing the problem domain and defining the fundamental architecture.
Deliverables from this phase consist of:
- A use-case model approximately 80% complete, detailing actors and most use case descriptions.
- A documented software architecture.
- An executable architecture that covers critical use cases.
- Updated business case and risk register.
- A comprehensive project development plan.
- Prototypes targeting identified technical risks.
- Optionally, an initial user manual.
To satisfy lifecycle architecture milestone requirements, the following questions must be answered affirmatively:
- Is the product vision stabilized?
- Has the architecture reached stability?
- Does the executable prototype mitigate key risks?
- Is the construction plan thorough and precise?
- Do stakeholders agree that the vision is attainable with the current plan and architecture?
- Is resource usage aligned with projections?
Failure to meet this milestone may lead to project cancellation or redesign. After elaboration, modifications become increasingly challenging and expensive.
A major focus during this phase is detailed domain analysis centered on system architecture.
Construction phase
The main focus during this stage is the actual development of the software system. This phase centers on coding and assembling components. For extensive projects, multiple construction cycles may be employed to break down use cases into smaller, manageable prototypes.
Transition phase
This phase aims to deploy the system into a production environment, ensuring it is accessible and comprehensible for end users. Key tasks include user training, beta testing to confirm that user requirements are met, assessing developer output, and conducting quality assurance aligned with criteria established in the inception phase.
Successfully accomplishing these goals culminates in the product launch and the conclusion of the development process.
The IBM Rational Method Composer product
IBM Rational Method Composer serves as a platform for creating, customizing, reviewing, and distributing process documentation. For more information, refer to IBM Rational Method Composer and its open source alternative Eclipse process framework (EPF).
Certification
In January 2007, IBM introduced an updated certification exam titled IBM Certified Solution Designer - Rational Unified Process 7.0, which superseded the former IBM Rational Certified Specialist - Rational Unified Process. This certification evaluates expertise in both RUP content and its process architecture.
Applicants are required to pass IBM’s Test 839: Rational Unified Process v7.0, consisting of 52 questions to be completed within 75 minutes, with a minimum passing score of 62%.
Six best practices
RUP outlines six essential software engineering practices designed to minimize defects and enhance efficiency:[1]
- Employ iterative development
- Since complete requirements are seldom known initially, iterative cycles help reduce costs throughout project stages.
- Manage requirements effectively
- Continuously prioritize and monitor user needs.
- Leverage components
- Dividing projects into reusable modules facilitates testing and integration by utilizing object-oriented programming principles.
- Use visual modeling
- Apply diagrams like UML (Unified Modeling Language) to depict system elements and their interactions.
- Ensure quality verification
- Embed testing activities throughout the lifecycle, intensifying as development advances.
- Control changes rigorously
- Synchronize modifications across teams and platforms using continuous integration to maintain consistency and validation.
See also
- Agile modeling
- Agile unified process
- Disciplined agile delivery
- Dynamic systems development method
- Computer programming
- Feature-driven development
- Macroscope (methodology suite)
- Project life cycle
- Quality assurance
- Quality control
- Scaled agile framework
- Software architecture
- Software component
- Software development process
- Software engineering
- Software testing
- Test-driven development
- Unified Process for Education
Further reading
- Ivar Jacobson, Grady Booch, and James Rumbaugh (1999). The Unified Software Development Process
- Gary Pollice, Liz Augustine, Chris Lowe, and Jas Madhur (2003). Software Development for Small Teams: A RUP-Centric Approach
- Per Kroll, Philippe Kruchten (2003). Rational Unified Process Made Easy: A Practitioner's Guide to the RUP
- Per Kroll, Bruce Mac Isaac (2006). Agility and Discipline Made Easy: Practices from OpenUP and RUP
- Philippe Kruchten (1998). The Rational Unified Process: An Introduction
- Ahmad Shuja, Jochen Krebs (2007). RUP Reference and Certification Guide
- Walker Royce, Software Project Management, A Unified Framework
- Paul Szymkowiak, Philippe Kruchten (2003). Testing: The RUP Philosophy
External links
- ↑ Stephen Schach (2004). Classical and Object-Oriented Software Engineering. 6/e, WCB McGraw Hill.