1.
Waterfall Model
Description: A linear and sequential approach where each phase (Requirement → Design → Implementation
→ Testing → Deployment → Maintenance) must be completed before moving to the next.
Advantages: Simple, structured, easy to understand, and best for small, well-defined projects.
Disadvantages: Inflexible, late testing, not suitable for complex or changing projects.
When to Use: When requirements are clear, fixed, and technology is stable.
2. Prototyping Model
Description: A working prototype is built early to help users understand requirements, then refined into the
final system.
Advantages: Early feedback, reduces misunderstandings, and improves requirement accuracy.
Disadvantages: Costly rework, may result in poor design if prototype code reused.
When to Use: When requirements are unclear or evolving, especially for UI-heavy applications.
3. Incremental Development Model
Description: Software is built and delivered in small increments; each adds new functionality.
Advantages: Early delivery, flexible, easy testing, user feedback after each increment.
Disadvantages: Requires strong planning, complex integration, repeated testing.
When to Use: When partial requirements known and early delivery needed.
4. Spiral Model
Description: Combines iterative development with risk analysis in repeated cycles (planning, risk analysis,
development, evaluation).
Advantages: Focuses on risk management, flexible, includes customer feedback each iteration.
Disadvantages: Expensive, complex, requires expert management.
When to Use: For large, high-risk projects with unclear requirements.
5. Rapid Application Development (RAD)
Description: Focuses on quick prototyping and iterative delivery with user feedback.
Advantages: Fast development, user involvement, adaptable to change.
Disadvantages: Needs skilled developers, not suited for large or complex systems.
When to Use: When time-to-market is critical, for small to medium-sized systems.
6. Component-Based Model
Description: Builds software using pre-existing, reusable components or modules.
Advantages: Faster development, promotes reusability, reduces cost.
Disadvantages: Integration issues, dependency on third-party components.
When to Use: When reusable components available and modular structure is possible.
7. Agile Software Development
Description: Iterative and incremental method focused on collaboration, flexibility, and rapid delivery using
short sprints.
Advantages: Flexible, quick delivery, customer-focused, adaptive to change.
Disadvantages: Requires skilled team, hard to predict time/cost, not ideal for large systems without
coordination.
When to Use: For projects with frequently changing requirements and active user feedback.
8. Selection of Appropriate Development Process
Factors: Project size, complexity, requirement stability, time constraints, risk, customer involvement, and
team skill.
Example: Waterfall for stable requirements, Agile for dynamic changes, Spiral for high risk, RAD for quick
delivery.