Rational Unified Process
by
Amir Ranjbar
[email protected]
Rational Unified Process (RUP)
Introduction
Phases
Core Workflows
Best Practices
Tools
Team-Unifying Approach
The RUP unifies a software team by providing a common
view of the development process and a shared vision of
a common goal
Increased Team Productivity
knowledge base of all processes
view of how to develop software
modeling language Tool
Rational provides many tools Specialist
Architect
Release
Engineer
Project
Management
Analyst Designer / Tester
Developer
Rational Unified Process
time
(RUP)
Phases
Process Workflows Inception Elaboration Construction Transition
Business Modeling
t
conten
Requirements
Analysis & Design
Implementation
Test
Deployment
Supporting Workflows
Configuration & Change Mgmt
Project Management
Environment
Preliminary Iter. Iter. Iter. Iter. Iter. Iter. Iter.
Iteration(s) #1 #2 #n #n+1 #n+2 #m #m+1
Iterations
Rational Unified Process (RUP)
Introduction
Phases
Core Workflows
Best Practices
Tools
Phases in the Process
Major
Milestones
Inception Elaboration Construction Transition
time
The Rational Unified Process has four
phases:
Inception - Define the scope of project
Elaboration - Plan project, specify features,
baseline architecture
Construction - Build the product
Transition - Transition the product into end
user community
Inception phase
Establishing the project's software scope and boundary
conditions, including an operational vision, acceptance
criteria and what is intended to be in the product and what
is not.
Discriminating the critical use cases of the system, the
primary scenarios of operation that will drive the major
design tradeoffs.
Exhibiting, and maybe demonstrating, at least one
candidate architecture against some of the primary
scenarios.
Estimating the overall cost and schedule for the entire
project (and more detailed estimates for the elaboration
phase that will immediately follow).
Estimating potential risks (the sources of unpredictability)
Preparing the supporting environment for the project.
Elaboration phase
Defining, validating and baselining the architecture as rapidly
as practical.
Refining the Vision, based on new information obtained during
the phase, establishing a solid understanding of the most
critical use cases that drive the architectural and planning
decisions.
Creating and baselining detailed iteration plans for the
construction phase.
Refining the development case and putting in place the
development environment, including the process, tools and
automation support required to support the construction
team.
Refining the architecture and selecting components. Potential
components are evaluated and the make/buy/reuse decisions
sufficiently understood to determine the construction phase
cost and schedule with confidence. The selected architectural
components are integrated and assessed against the primary
scenarios.
Construction phase
Resource management, control and
process optimization
Complete component development
and testing against the defined
evaluation criteria
Assessment of product releases
against acceptance criteria for the
vision.
Transition phase
Executing deployment plans.
Finalizing end-user support material.
Testing the deliverable product at the
development site.
Creating a product release.
Getting user feedback.
Fine-tuning the product based on feedback.
Making the product available to end users.
Rational Unified Process (RUP)
Introduction
Phases
Core Workflows
Best Practices
Tools
What is a workflow?
A set of activities that is performed by the
various roles in a project
Describes a meaningful sequence of
activities that produce a useful result (an
artifact)
Shows interaction between roles
Workflow Detail:Prepare
Environment for Project
Workflows - 3 key elements
Three key elements of each workflows:
Artifacts
Roles
Activities
Artifacts
A piece of information that:
Is produced, modified, or used by a
process
Defines an area of responsibility
Is subject to version control.
An artifact can be a model, a model
element, or a document. A document
can enclose other documents.
Roles
Represent a role that an individual
may play on the project
Responsible for producing artifacts
Distinct from actors
Activities
Tasks performed by people
representing particular roles in order
to produce artifacts
Brief summary of process
workflows
Business Modelling
Requirements
Analysis & Design
Implementation
Test
Deployment
Business Modelling
Understand structure & dynamics of
organization in which system is to be deployed
Understand current problems in the target
organization & identify improvement potential
Ensure customers, end users & developers have
common understanding of target organisation
Derive system requirements to support target
organisation
Analysis & Design
Transform requirements into a design
of the system
Evolve a robust architecture for the
system
Adapt design to match the
implementation environment,
designing it for performance
Implementation
Define organization of the code, in terms of
implementation subsystems organized in
layers
Implement classes & objects in terms of
components
Test developed components as units
Integrate results into an executable system
Test
Verify interaction between objects
Verify proper integration of all
components of the software
Verify that all requirements have
been correctly implemented
Identify & ensure defects are
addressed prior to deployment
Deployment
Provide custom installation
Provide shrink wrap product offering
Provide software over internet
Brief summary of supporting
workflows
Configuration & Change
Management
Project Management
Environment
Configuration & Change Management
Supports development methods
Maintains product integrity
Ensures completeness & correctness of configured
product
Provides stable environment within which to
develop product
Restricts changes to artifacts based on project
policies
Provides an audit trail on why, when & by whom
any artifact was changed
Project Management
A framework for managing software-
intensive projects
Practical guidelines for planning,
staffing, executing & monitoring
projects
A framework for managing risk
Environment
Design, implement and manage the projects
required technical environments
Define the technical architectures for the
development, system validation, testing &
staging/release management environments
When possible, standard architectural models for
given types of platforms should be utilized when
defining the production environment
Bringing It All Together...In an iteration,
you walk through
all workflows
Phases
Process Workflows Inception Elaboration Construction Transition
Business Modeling
Requirements
Analysis & Design
Implementation
Test
Deployment
Supporting Workflows
Configuration & Change Mgmt
Project Management
Environment
Preliminary Iter. Iter. Iter. Iter. Iter. Iter. Iter.
Iteration(s) #1 #2 #n #n+1 #n+2 #m #m+1
Iterations
Rational Unified Process (RUP)
Introduction
Phases
Core Workflows
Best Practices
Tools
Rational Unified Process
Describes the effective implementation
of key Best Practices
Manage Requirements
Use
Develop Model Verify
Visually Component
Iteratively Quality
Architectures
Control Changes
1. Manage Your Requirements
Elicit, organize, and document required
functionality and constraints
Track and document tradeoffs and decisions
Business requirements are easily captured and
communicated through use cases
Use cases are important planning instruments
Use-Case Model
realization influenced by verifies
Design Model
Implementation Model Test Model
2. Develop Software Iteratively
An initial design will likely be flawed with
respect to its key requirements
Late-phase discovery of design defects
results in costly over-runs and/or project
cancellation
Requirements
Analysis & Design
Planning
Implementation
Initial
Planning Management
Environment
Deployment
Evaluation
Test
Waterfall Development
Requirements
Analysis
Design
Code & Unit
Testing
Subsystem
Testing
System Testing
T I M E
Waterfall Development: Risk vs.
Time
Requirements
R Analysis
I Design
S
K Code & Unit
Testing
Subsystem
Testing
System
Testing
T I M E
Risk Profile of an Iterative
Development
Waterfall
Inception
Elaboration
Risk
Construction
Transition
Preliminary Architect. Architect. Devel. Devel. Devel. Transition Transition Post-
Iteration Iteration Iteration Iteration Iteration Iteration Iteration Iteration deployment
Time
Iterative Development
Characteristics
Critical risks are resolved before making
large investments
Initial iterations enable early user
feedback
Testing and integration are continuous
Objective milestones provide short-term
focus
Progress is measured by assessing
implementations
Partial implementations can be deployed
3. Employ Component-based
Architecture
Design, implement and test your architecture up-front!
A systematic approach to define a good architecture
Resilient to change by using well-defined
interfaces
By using and reverse engineering components
Derived from top rank use cases
Application-
specific
Business-
specific
Component-based Middleware
Architecture with
layers System-
software
4. Model Software Visually
Aiding understanding of complex
systems
Exploring and comparing design
alternatives at a low cost
Forming a foundation for
implementation
Capturing requirements precisely
Communicating decisions Sub Systems
unambiguously
Visual Modeling Classes
raises the level
of abstraction
Code
5. Verify Software Quality
Create tests for each key scenario to ensure that
all requirements are properly implemented
Unacceptable application performance hurts as
much as unacceptable reliability
Verify software reliability - memory leaks, bottle
necks
Test every iteration - automate test!
Cost
Software problems
are 100 to 1000 times
more costly to find
and repair after
deployment Development Deployment
6. Control Changes to Software
Control, track and monitor changes to enable
iterative development
Establish secure workspaces for each developer
Provide isolation from changes made in other
workspaces
Control all software artifacts - models, code,
docs, etc.
Automate integration and build management
Workspace Parallel
Management Development
CM is more
than just REPORTALERT
check-in and Process Build
check-out Integration Management
Summary: Best Practices of Software
Engineering
The result is software that is
On Time
On Budget
Meets Users Needs
Analyst
Performance
Engineer
Develop Iteratively
Manage
Requirements
Developer
Use Component Tester
Best Architectures Project
Practices Model Visually Manager
Verify Quality
Control Release
Change Engineer
Rational Unified Process (RUP)
Introduction
Phases
Core Workflows
Best Practices
Tools
Tools
The success of process adoption is
significantly improved by the use of
appropriate supporting tools.
Tool Mentors provide detailed
descriptions of how to perform
specific process activities or steps, or
produce a particular artifact or report,
using one or more tools.
Tools
Rational Unified Process
RUP Builder
Rational Process Workbench
Rational Administrator
Rational Suite AnalystStudio
Rational ClearCase
Rational ClearQuest
Rational ProjectConsole
Rational PurifyPlus
Rational QualityArchitect
Tools
Rational RequisitePro
Rational Robot
Rational Rose
Rational Rose RealTime
Rational SoDA
Rational TestManager
Rational Test RealTime
Rational TestFactory
Rational XDE Developer - Java Platform Edition
Rational XDE Developer - .NET Edition