Software Engineering - Process Models
1. Waterfall Model
Each phase completed fully before next begins.
Phases: Requirements → Design → Implementation → Testing → Deployment → Maintenance.
Advantages:
- Simple, easy to understand.
- Suitable for stable requirements.
- Clear documentation.
Disadvantages:
- Inflexible, late testing.
- Not good for complex projects.
2. V-Model
Extension of Waterfall, testing at each stage.
Advantages:
- Testing planned early.
- Easy to manage.
Disadvantages:
- Still rigid.
- Costly for iterative changes.
3. Incremental Model
Software built in increments, each release adds features.
Advantages:
- Early partial system.
- Easier to manage risk.
Disadvantages:
- Requires planning for integration.
- Architecture must support increments.
4. Iterative Model
Cyclic development, refine product each iteration.
Advantages:
- Handles changes well.
- Early working version.
Disadvantages:
- Needs good management.
- May consume more resources.
5. Spiral Model
Risk-driven, combines iterative + risk analysis.
Advantages:
- Strong risk management.
- Suitable for large/high-risk systems.
Disadvantages:
- Expensive, complex.
- Needs expertise in risk analysis.
6. Prototyping Model
Build prototype → feedback → refine.
Advantages:
- Clarifies requirements.
- User involvement.
Disadvantages:
- May create false expectations.
- Poor prototype misleads design.
7. RAD (Rapid Application Development)
Quick development with user involvement.
Advantages:
- Fast delivery.
- Encourages user feedback.
Disadvantages:
- Needs skilled team.
- Not for very large projects.
8. RUP (Rational Unified Process)
Iterative, UML-based, phases: Inception → Elaboration → Construction → Transition.
Advantages:
- Risk-handling, structured.
- UML diagrams.
Disadvantages:
- Heavy documentation.
- Complex for small projects.
Comparison of Models
Model Flexibility Risk Handling User Involvement Cost/Time Best For
Waterfall Low Low Low Medium Stable, small projects
V-Model Low Low Low Medium Medium projects, testing focus
Incremental Medium Medium Medium Medium Phased delivery
Iterative High Medium High Medium Changing requirements
Spiral High High Medium High Large, high-risk projects
Prototyping High Medium High Medium Unclear requirements
RAD High Medium High Low/Med Interactive, quick apps
RUP Medium High Medium High Enterprise projects