Content
- Overview
- Predictive Models- Example: Waterfall with Feedback
- Example: Sashimi Waterfall
- Example: Incremental Waterfall
 
- Adaptive Models- Example: Rapid Prototyping
- Example: Unified Process
 
Overview
- Basis of a software engineering project- Requirements engineering
- Design
- Implementation
- Testing
- Deployment
- Maintenance
 
- Software process model: the way these activities are organized- Waterfall (predictive model): activity starts after the previous one finishes
- Unified Process (adaptive model): activity conducted sequentially in a series of iterations
 
Predictive Models
Assumes requirements & solution clear at the start of project.
- Advantage- Knows exactly when the activity starts/ends
- Customers knows what will be delivered without surprise -> mission-critical and safety-critical products
- No waste of time & effort prototyping & experimenting
- Less refactoring
 
- Disadvantage- If requirements wrong, it is disastrous
- Doesn't work if customer's and developer's visions of product are different, or requirements incomplete
- No product delivered until the end
 
- When will work- Requirements really known
- No significant risk
- Experienced team
- Schedule is long enough to complete
 
Example: Waterfall with Feedback

- Doesn't assume each activity completed perfectly
- Working S/W still appears late
- Risks are not resolved early
- In practice, moving back is hard
Example: Sashimi Waterfall

- Allows overlapping between activities
- Allows some knowledge to be discovered in later activities to be used in earlier activities
Example: Incremental Waterfall

- Allows some degree of adaptation
- Each increment runs predictively
- Each increment long
Adaptive Models
Accepts requirements & solution cannot be known for certain, and changes are extremely likely.
- Advantages- Less detailed up-front planning and commitment
- Can drive iterations by risk -> early risk mitigation
- Better engagement with user
- Can release at any time
- Handles change & complexity better
 
- Disadvantage- Complexity
- Not suitable for small, low-risk project
 
Example: Rapid Prototyping

Example: Unified Process
