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