Upload
abinaya
View
230
Download
2
Tags:
Embed Size (px)
Citation preview
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.
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 , that´s 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.
Inception Elaboration Construction Transition
Iterations Iterations IterationsIterations
The iterations and the phases
Iterations
Each phase can be further broken down into iterations
UP phases
ManagementEnvironment
Business Modeling
Implementation
Test
Analysis & Design
Preliminary Iteration(s)
Iter.#1
PhasesProcess Workflows
Iterations within phases
Supporting Workflows
Iter.#2
Iter.#n
Iter.#n+1
Iter.#n+2
Iter.#m
Iter.#m+1
Deployment
Configuration Mgmt
Requirements
Elaboration TransitionInception Construction
time
Another approach :Waterfall Model
Requirements
Design
Implementation
Test
All or most of the requirements are defined before development begins
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 changes—constantly.
The technology changes.
The goals of the stakeholders change.
• 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
• Managed complexity
Benefits to iterative developement
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
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•Beta tests, deployment
UP 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
UP phases
ManagementEnvironment
Business Modeling
Implementation
Test
Analysis & Design
Preliminary Iteration(s)
Iter.#1
PhasesProcess Workflows
Iterations within phases
Supporting Workflows
Iter.#2
Iter.#n
Iter.#n+1
Iter.#n+2
Iter.#m
Iter.#m+1
Deployment
Configuration Mgmt
Requirements
Elaboration TransitionInception Construction