IBM Rational Unified Process
Encyclopedia
The Rational Unified Process (RUP) is an iterative software development process
framework created by the Rational Software
Corporation, a division of IBM
since 2003. 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. RUP is a specific implementation of the Unified Process
.
and detailed descriptions for many different types of activities. RUP is included in the IBM Rational Method Composer
(RMC) product which allows customization of the process.
Combining the experience base of companies led to the articulation of six best practices for modern software engineering:
These best practices both drove the development of Rational's products, and were used by Rational's field teams to help customers improve the quality and predictability of their software development efforts. To make this knowledge more accessible, Philippe Kruchten
, a Rational techrep, was tasked with the assembly of an explicit process framework for modern software engineering. This effort employed the HTML
-based process delivery mechanism developed by Objectory. The resulting "Rational Unified Process" (RUP) completed a strategic tripod for Rational:
RUP was created in 1996 when Rational acquired the Objectory Process that had been written by Ivar Jacobson.
The original version incorporated mostly content from Jim Rumbaugh's Object Modeling Technology (OMT) approach to modeling, Grady Booch's Booch approach and UML 1.0.
In 1997, Requirements and Test discipline were added to the approach.
In 1998, they added two new disciplines: business modeling, much of which had already been in the Objectory Process and a Configuration and Change Management discipline. They also added more techniques including performance testing, UI Design, data engineering and updated RUP to UML 1.1.
In 1999, they added a Project Management discipline and added techniques for real time software development. They also updated RUP to UML 1.3
From 2000 on, most of the modifications were around adding techniques, adding "tool mentors" with step by step guides to using Rational tools and in automating the customization of RUP in a way that would allow customers to customize their version, but still incorporate improvements in subsequent releases from Rational.
Within each iteration, the tasks are categorized into nine disciplines:
chart.
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:
If the project does not pass this milestone, called the Lifecycle Objective Milestone, it either can be cancelled or repeated after being redesigned to better meet the criteria.
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.
The outcome of the elaboration phase is:
This phase must pass the Lifecycle Architecture Milestone criteria answering the following questions:
If the project cannot pass this milestone, there is still time for it to be cancelled 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.
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.
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
and an open source version Eclipse Process Framework
(EPF) project for more details.
To pass the new RUP certification examination, a person must take IBM's Test 839: Rational Unified Process v7.0. You are given 75 minutes to take the 52 question exam. The passing score is 62%.
, that lists six ideas to follow when designing any software project to minimize faults and increase productivity . These practices are:
Develop iteratively : It is best to know all requirements in advance; however, often this is not the case. Several software development processes exist that deal with providing solution on how to minimize cost in terms of development phases.
Manage requirements : Always keep in mind the requirements set by users.
Use components : Breaking down an advanced project is not only suggested but in fact unavoidable. This promotes ability to test individual components before they are integrated into a larger system. Also, code reuse is a big plus and can be accomplished more easily through the use of object-oriented programming
.
Model visually : Use diagrams to represent all major components, users, and their interaction. "UML", short for Unified Modeling Language
, is one tool that can be used to make this task more feasible.
Verify quality : Always make testing a major part of the project at any point of time. Testing becomes heavier as the project progresses but should be a constant factor in any software product creation.
Control changes : Many projects are created by many teams, sometimes in various locations, different platforms may be used, etc. As a result it is essential to make sure that changes made to a system are synchronized and verified constantly. (See Continuous integration
).
Software development process
A software development process, also known as a software development life cycle , is a structure imposed on the development of a software product. Similar terms include software life cycle and software process. It is often considered a subset of systems development life cycle...
framework created by the Rational Software
Rational Software
Rational Machines was founded by Paul Levy and Mike Devlin in 1981 to provide tools to expand the use of modern software engineering practices, particularly explicit modular architecture and iterative development...
Corporation, a division of IBM
IBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...
since 2003. RUP is not a single concrete prescriptive process, but rather an adaptable process framework
Software framework
In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by user code, thus providing application specific software...
, 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. RUP is a specific implementation of the Unified Process
Unified Process
The Unified Software Development Process or Unified Process is a popular iterative and incremental software development process framework. The best-known and extensively documented refinement of the Unified Process is the Rational Unified Process ....
.
History
The Rational Unified Process (RUP) is a software process product, originally developed by Rational Software, which was acquired by IBM in February 2003. The product includes a hyperlinked knowledge base with sample artifactsArtifact (software development)
An artifact is one of many kinds of tangible by-product produced during the development of software. Some artifacts help describe the function, architecture, and design of software...
and detailed descriptions for many different types of activities. RUP is included in the IBM Rational Method Composer
IBM Rational Method Composer
The IBM Rational Method Composer is a commercial product for authoring, configuring, viewing, and publishing processes.The Rational Unified Process process framework within IBM Rational Method Composer includes:...
(RMC) product which allows customization of the process.
Combining the experience base of companies led to the articulation of six best practices for modern software engineering:
- Develop iteratively, with risk as the primary iteration driver
- Manage requirements
- Employ a component-based architecture
- Model software visually
- Continuously verify quality
- Control changes
These best practices both drove the development of Rational's products, and were used by Rational's field teams to help customers improve the quality and predictability of their software development efforts. To make this knowledge more accessible, Philippe Kruchten
Philippe Kruchten
Philippe Kruchten is a Canadian software engineer, and Professor of Software Engineering at University of British Columbia in Vancouver, Canada, known as Director of Process Development at Rational Software, and developer of the 4+1 view model....
, a Rational techrep, was tasked with the assembly of an explicit process framework for modern software engineering. This effort employed the HTML
HTML
HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....
-based process delivery mechanism developed by Objectory. The resulting "Rational Unified Process" (RUP) completed a strategic tripod for Rational:
- a tailorable process that guided development
- tools that automated the application of that process
- services that accelerated adoption of both the process and the tools.
RUP was created in 1996 when Rational acquired the Objectory Process that had been written by Ivar Jacobson.
The original version incorporated mostly content from Jim Rumbaugh's Object Modeling Technology (OMT) approach to modeling, Grady Booch's Booch approach and UML 1.0.
In 1997, Requirements and Test discipline were added to the approach.
In 1998, they added two new disciplines: business modeling, much of which had already been in the Objectory Process and a Configuration and Change Management discipline. They also added more techniques including performance testing, UI Design, data engineering and updated RUP to UML 1.1.
In 1999, they added a Project Management discipline and added techniques for real time software development. They also updated RUP to UML 1.3
From 2000 on, most of the modifications were around adding techniques, adding "tool mentors" with step by step guides to using Rational tools and in automating the customization of RUP in a way that would allow customers to customize their version, but still incorporate improvements in subsequent releases from Rational.
RUP building blocks
RUP is based on a set of building blocks, or content elements, describing what is to be produced, the necessary skills required and the step-by-step explanation describing how specific development goals are to be achieved. The main building blocks, or content elements, are the following:- Roles (who) – A Role defines a set of related skills, competencies and responsibilities.
- Work Products (what) – A Work Product represents something resulting from a task, including all the documents and models produced while working through the process.
- Tasks (how) – A Task describes a unit of work assigned to a Role that provides a meaningful result.
Within each iteration, the tasks are categorized into nine disciplines:
- Six "engineering disciplines"
- Business Modeling
- Requirements
- Analysis and Design
- Implementation
- Test
- Deployment
- Three supporting disciplines
- Configuration and Change Management
- Project Management
- Environment
Four Project Life cycle Phases
The RUP has determined a project life cycle consisting of four phases. These phases allow the process to be presented at a high level in a similar way to how a 'waterfall'-styled project might be presented, although in essence the key to the process lies in the iterations of development that lie within all of the phases. Also, each phase has one key objective and milestone at the end that denotes the objective being accomplished. The visualization of RUP phases and disciplines over time is referred to as the RUP humpRUP hump
A RUP ‘hump’ is a plot of effort spent over time during a particular RUP discipline. The RUP hump chart consists of a collection of humps for all RUP disciplines. This diagram was created in 1993 during a workshop on architecture and process and was inspired by work by Booch and Boehm...
chart.
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 cancelled or repeated after being redesigned to better meet the criteria.
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.
The outcome of the elaboration phase is:
- 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 architectureExecutable ArchitectureAn Executable Architecture , in general, is the description of a system architecture in a formal notation together with the tools that allow the automatic or semi-automatic generation of artifacts An Executable Architecture (EA), in general, is the description of a system architecture (including...
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.
- A preliminary user manual (optional)
This phase must pass the Lifecycle Architecture Milestone criteria answering the following questions:
- Is the vision of the product stable?
- Is the architecture stable?
- Does the executable demonstration indicate that major risk elements are addressed and resolved?
- Is the construction phase plan sufficiently detailed and accurate?
- Do all stakeholders agree that the current vision can be achieved using current plan in the context of the current architecture?
- Is the actual vs. planned resource expenditure acceptable?
If the project cannot pass this milestone, there is still time for it to be cancelled 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.
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.
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
The IBM Rational Method Composer product
The IBM Rational Method Composer product is a tool for authoring, configuring, viewing, and publishing processes. See IBM Rational Method ComposerIBM Rational Method Composer
The IBM Rational Method Composer is a commercial product for authoring, configuring, viewing, and publishing processes.The Rational Unified Process process framework within IBM Rational Method Composer includes:...
and an open source version Eclipse Process Framework
Eclipse Process Framework
The Eclipse Process Framework is an open source project that is managed by the Eclipse Foundation. It lies under the top-level Eclipse Technology Project...
(EPF) project for more details.
Certification
In January 2007, the new RUP certification examination for IBM Certified Solution Designer - Rational Unified Process 7.0 was released which replaces the previous version of the course called IBM Rational Certified Specialist - Rational Unified Process. The new examination will not only test knowledge related to the RUP content but also to the process structure elements.To pass the new RUP certification examination, a person must take IBM's Test 839: Rational Unified Process v7.0. You are given 75 minutes to take the 52 question exam. The passing score is 62%.
Six Best Practices
Six Best Practices as described in the Rational Unified Process is a paradigm in software engineeringSoftware engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...
, that lists six ideas to follow when designing any software project to minimize faults and increase productivity . These practices are:
Develop iteratively : It is best to know all requirements in advance; however, often this is not the case. Several software development processes exist that deal with providing solution on how to minimize cost in terms of development phases.
Manage requirements : Always keep in mind the requirements set by users.
Use components : Breaking down an advanced project is not only suggested but in fact unavoidable. This promotes ability to test individual components before they are integrated into a larger system. Also, code reuse is a big plus and can be accomplished more easily through the use of object-oriented programming
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...
.
Model visually : Use diagrams to represent all major components, users, and their interaction. "UML", short for Unified Modeling Language
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...
, is one tool that can be used to make this task more feasible.
Verify quality : Always make testing a major part of the project at any point of time. Testing becomes heavier as the project progresses but should be a constant factor in any software product creation.
Control changes : Many projects are created by many teams, sometimes in various locations, different platforms may be used, etc. As a result it is essential to make sure that changes made to a system are synchronized and verified constantly. (See Continuous integration
Continuous integration
In software engineering, continuous integration implements continuous processes of applying quality control — small pieces of effort, applied frequently...
).
See also
- Macroscope (methodology suite)Macroscope (methodology suite)Macroscope is an integrated set of methods aimed at enterprise IT activities. Macroscope was developed and is maintained by Fujitsu in Canada. It is primarily used as their core body of knowledge to support the consulting services that they provide to their clients and is also licensed as a...
- Agile ModelingAgile ModelingAgile Modeling is a practice-based methodology for modeling and documentation of software-based systems. It is intended to be a collection of values, principles, and practices for Modeling software that can be applied on a software development project in a more flexible manner than traditional...
- Agile Software DevelopmentAgile software developmentAgile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams...
- Integrated Unified Process
- Computer programmingComputer programmingComputer programming is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs. This source code is written in one or more programming languages. The purpose of programming is to create a program that performs specific operations or exhibits a...
- Extreme programmingExtreme ProgrammingExtreme programming is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements...
- Feature Driven DevelopmentFeature Driven DevelopmentFeature-driven development is an iterative and incremental software development process. It is one of a number of Agile methods for developing software and forms part of the Agile Alliance. FDD blends a number of industry-recognized best practices into a cohesive whole. These practices are all...
- Project life cycle
- Quality assuranceQuality controlQuality control, or QC for short, is a process by which entities review the quality of all factors involved in production. This approach places an emphasis on three aspects:...
- Software ArchitectureSoftware architectureThe software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both...
- Software component
- Software development processSoftware development processA software development process, also known as a software development life cycle , is a structure imposed on the development of a software product. Similar terms include software life cycle and software process. It is often considered a subset of systems development life cycle...
- Software engineeringSoftware engineeringSoftware Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...
- Test-driven developmentTest-driven developmentTest-driven development is a software development process that relies on the repetition of a very short development cycle: first the developer writes a failing automated test case that defines a desired improvement or new function, then produces code to pass that test and finally refactors the new...
Further reading
- Ivar JacobsonIvar JacobsonIvar Hjalmar Jacobson is a Swedish computer scientist, known as major contributor to UML, Objectory, RUP and aspect-oriented software development.- Biography :...
, Grady BoochGrady BoochGrady Booch is an American software engineer. Booch is best known for developing the Unified Modeling Language with Ivar Jacobson and James Rumbaugh. Grady is recognized internationally for his innovative work in software architecture, software engineering, and collaborative development environments...
, and James RumbaughJames RumbaughJames E. Rumbaugh is an American computer scientist and object methodologist who is best known for his work in creating the Object Modeling Technique and the Unified Modeling Language .- Biography :...
(1999). The Unified Software Development Process - Per Kroll, Philippe KruchtenPhilippe KruchtenPhilippe Kruchten is a Canadian software engineer, and Professor of Software Engineering at University of British Columbia in Vancouver, Canada, known as Director of Process Development at Rational Software, and developer of the 4+1 view model....
(2003). Rational Unified Process Made Easy, The: A Practitioner's Guide to the RUP - Per Kroll, Bruce Mac Isaac (2006). Agility and Discipline Made Easy: Practices from OpenUP and RUP
- Philippe KruchtenPhilippe KruchtenPhilippe Kruchten is a Canadian software engineer, and Professor of Software Engineering at University of British Columbia in Vancouver, Canada, known as Director of Process Development at Rational Software, and developer of the 4+1 view model....
(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