You are on page 1of 21

Iterative development and

The Unified process

Need for a process ?


Need

an approach for:
Building
Deploying
Maintaining

UP

: example process (in this


course)

The Unified Process


The

Unified Process has emerged as a


popular and iterative software
development process for object oriented
systems.

In

particular, the Rational Unified Process,


as modified at Rational Software, is widely
practiced and adopted by industry.

Why UP?
Think

and Design with Objects


Apply UML
Use Design Patterns
Apply to Agile approaches
Incremental requirements analysis
Writing use cases

Most Important Concept in UP


The

critical idea in the Rational Unified Process is

Iterative, Incremental development.


Iterative

Development is successively enlarging

and refining a system through multiple


iterations, using feedback and adaptation.

The Most Important Concept


Each

iteration will include requirements,

analysis, design, and implementation.


Iterations

are timeboxed.

Incremental

: system grows over time

Example: Building a House


Incremental:

Start with a modest


house, keep adding rooms and
upgrades to it.

Iterative:

On each iteration, the


house is re-designed and built a new.

Iterations
Each iteration involves :
Choosing small subset of requirements.
Quick design, implementation and testing
User quickly see partial system
Rapid , early feedback ( ex: usability tests from
users)
Yes , thats exactly what I asked for .
I try it , what I really want is something slightely different

Modify and Adapt understanding of the


requirements or design , then involve the user again

Iterations

Iterations
Each phase has iterations, each having the
purpose of producing a demonstrable
piece of software. The duration of iteration
may vary from two weeks or less up to six
months.
Iterations

Inception

Iterations

Elaboration

Iterations

Construction

The iterations and the phases

Iterations

Transition

UP phases

Each phase can be further broken down into


iterations

Iterations within phases


Phases

Process Workflows

Inception Elaboration

Construction

Transition

Business Modeling
Requirements
Analysis & Design
Implementation
Test
Deployment

Supporting Workflows
Configuration Mgmt
Management
Environment

Preliminary Iter. Iter. Iter. Iter. Iter.


Iteration(s) #1
#2
#n
#n+1 #n+2

time

Iter. Iter.
#m #m+1

Another approach :Waterfall Model


All or most of the requirements
are defined before
development begins

Requirements

Design

Implementation

Test

Developer receives problem statement (what


should the system).
Developer works in isolation for some
extended time period.

Developer delivers result.

Developer hopes client is satisfied.

Why Not Waterfall?


Requirements are not stable/unchanging.

The market changesconstantly.

The technology changes.

The goals of the stakeholders change.

Benefits to iterative
developement
Less project failure

Early rather than late mitigation high


risks
Early visible progress
Early feedback, user engagement ,
adaptation and refinements of
requirements
Better understanding through iterations

Unified Process best practices


Get

high risk and high value first


Constant user feedback and engagement
Early cohesive core architecture
Test early.
Apply use cases where needed.
Do some visual modeling with UML.
Manage change requests and
configuration

UP phases

Inception :
Approximate vision.
Business case .
Scope. (we model the system not the business)
Vague estimates.
Ask yourself : is the system feasible ? Should we go on or stop?

Elaboration

Refined vision
Iterative implementation of core architecture
High risks issues are mitigated
Most requirements are identified !!
More realistic estimates

UP phases

Construction

Iterative implementation of remaining lower risk and elements


Preparation for deployment

Transition

UP

Beta tests, deployment

disciplines:

Business modeling: domain model artifacts to visualize concepts


in application domain
Requirements: Use case model and supplementary Specification
artifacts to capture functional and non functional requirements.
Design : domain model artifacts to design software objects.

UP phases

Construction

Iterative impelmentation of the low risks,easier par


Preparation for deployement

Transition

Beta Tests
Deployment

Phases

Process Workflows

Inception Elaboration

Construction

Transition

Business Modeling
Requirements
Analysis & Design
Implementation
Test
Deployment

Supporting Workflows
Configuration Mgmt
Management
Environment

Preliminary Iter. Iter. Iter. Iter. Iter.


Iteration(s) #1
#2
#n
#n+1 #n+2

Iter. Iter.
#m #m+1

Iterations within phases

You might also like