Design
4.Implementation
5.Testing
linear and unforgiving, no emphasis through time.
Software development is...
Incremental- All phases are eventually completed, in order of relevance
Interative- All phases are applied to the current increment.
Interative and Incremental Processes
Strengths:
Multiple opportunities to confirm correctness
Reduce Risk: Develop more critical aspects first, product can be cancelled easily.
Increases User Involvement: We have a working version of the software product early.
Code & Fix
No Design! No specifications!
The easiest approach...
code as you go, works for small programs
Most expensive:short-sighted
Open-Source Model
used on Linus, eclipse....
Three informal stages:
One developer builds initial version.
People download it (if interested)
Developers report defects, add functionality, and port to new environments
Waterfall Model
Features:
Documentation driven
feedback loops
Advantages:
Up-to-Date documentation
Every Phase passes QA (testing)
Disadvantages:
Documentation-Driven
User not involved in process
Rapid Prototyping Model
Waterfall+Initial Prototype
stress on rapid
discarded
Client:
Test prototype early
helps to identify missed and refined info
Spiral Model
Cyclic approach to incrementally developing software while analyzing risk at each interation
uses prototyping
"Review" commits client & developer to next iteration
Allows revisiting earlier interations for better alternatives
problem: Over-reliance on risk identification & analysis.
Agile Methodologies
Family of methodologies aiming at producing software in short interations
allowing flexibility to changes
The "Agile Manifesto"
17 developers + 2-day meeting at a Utah ski resort
wrote the Manifesto for Agile Software Development
New and Emerging process Methodologies
Software Processes 1.Requirements