Computer ScienceUnit 711 min read
Software Process Models: Types, Phases & Selection
Unit 7 of Computer Science explains how software is developed systematically, covering waterfall, spiral, RAD, and agile models, their phases, advantages, disadvantages, and real-world applications. Learn to compare models and choose the right one for projects.
What is a Software Process Model?
A software process model is a structured framework that guides how software is developed, from planning to maintenance. It defines:
- Activities (what to do)
- Roles (who does it)
- Artifacts (documents, code, tests)
- Controls (how to manage progress)
Think of it like a recipe for building software. Just as a chef follows steps to bake a cake, developers follow a process model to build software.
Why Do We Need Process Models?
Without a model, software development would be chaotic. Models help:
- Manage complexity (large projects need structure).
- Control costs and time (avoid delays and budget overruns).
- Improve quality (systematic testing and reviews).
- Ensure reproducibility (same process can be reused for similar projects).
1. Waterfall Model
The oldest and simplest process model, used for projects where requirements are clear and unchanging.
Phases of Waterfall Model
flowchart LR A["Requirements"] --> B["Design"] B --> C["Implementation"] C --> D["Testing"] D --> E["Deployment"] E --> F["Maintenance"]
Key Points:
- Sequential: Each phase must finish before the next starts.
- Documentation-heavy: Every phase produces detailed documents.
- No going back: Changes in later phases are difficult and costly.
When to Use Waterfall?
✅ Small projects with fixed requirements. ✅ Regulated industries (e.g., government, banking). ✅ When the customer knows exactly what they want.
Advantages & Disadvantages
| Advantages | Disadvantages |
|---|---|
| Simple and easy to manage | Inflexible (no changes allowed) |
| Well-documented | Late testing (bugs found late) |
| Good for small projects | Customer sees product only at the end |
2. Spiral Model
A risk-driven model that combines elements of waterfall and iterative development. It focuses on identifying risks early.
Phases of Spiral Model
Key Points:
- Repeats in cycles (each cycle adds more detail).
- Risk assessment is done at every stage.
- Customer feedback is taken after each cycle.
When to Use Spiral?
✅ High-risk projects (e.g., new technology, safety-critical systems). ✅ When requirements are unclear but can be refined over time. ✅ Large, complex projects (e.g., defense, aerospace).
Advantages & Disadvantages
| Advantages | Disadvantages |
|---|---|
| Risk-focused | Complex and costly |
| Flexible | Requires expert risk analysis |
| Customer involved early | Not suitable for small projects |
3. RAD (Rapid Application Development)
A fast, iterative model that focuses on quick delivery using prototyping.
Phases of RAD
Key Points:
- Uses reusable components (saves time).
- Heavy user involvement (feedback in every cycle).
- Short development cycles (weeks, not months).
When to Use RAD?
✅ Time-sensitive projects (e.g., startups, marketing tools). ✅ When users can provide quick feedback. ✅ Small to medium-sized projects.
Advantages & Disadvantages
| Advantages | Disadvantages |
|---|---|
| Fast delivery | Needs skilled team |
| User-friendly | High initial cost |
| Flexible changes | Not for large, complex systems |
4. Agile Model
The most popular modern model, based on iterative and incremental development. Breaks work into small sprints (2-4 weeks).
Phases of Agile (Scrum Framework)
Key Points:
- Work in small teams (3-9 members).
- Daily stand-up meetings (15-minute updates).
- Continuous feedback (customer and team).
- No rigid documentation (focus on working software).
When to Use Agile?
✅ Dynamic requirements (changing customer needs). ✅ Collaborative teams (developers, testers, customers work together). ✅ Fast-paced projects (e.g., mobile apps, web development).
Advantages & Disadvantages
| Advantages | Disadvantages |
|---|---|
| Flexible to changes | Requires discipline |
| Customer satisfaction high | Documentation can be weak |
| Early and frequent delivery | Not suitable for all industries |
Comparison of Software Process Models
| Model | Type | Best For | Flexibility | Documentation | Risk Handling |
|---|---|---|---|---|---|
| Waterfall | Sequential | Small, fixed-requirement projects | Low | High | Late |
| Spiral | Iterative | High-risk, large projects | Medium | Medium | Early |
| RAD | Iterative | Fast delivery, user feedback | High | Low | Medium |
| Agile | Incremental | Dynamic, collaborative projects | Very High | Low | Continuous |
How to Choose the Right Model?
Selecting the right model depends on:
- Project Size (Small → Waterfall/RAD; Large → Spiral/Agile).
- Risk Tolerance (High risk → Spiral; Low risk → Waterfall).
- Customer Involvement (Active feedback → Agile/RAD).
- Budget & Timeline (Tight deadlines → RAD/Agile; Flexible → Spiral).
Solved Example: Which Model to Use?
Scenario: A company wants to build a mobile banking app with changing requirements and needs fast updates. The team is small but experienced.
Solution:
- Not Waterfall (too rigid for changing needs).
- Not Spiral (overkill for a mobile app; risk analysis may not be needed).
- RAD or Agile?
- RAD if the team can build prototypes quickly and get user feedback fast.
- Agile if the team prefers sprints and continuous delivery.
Best Choice: Agile (Scrum) because: ✔ Fast iterations (2-4 weeks). ✔ Customer feedback in every sprint. ✔ Flexible to changes.
NEB Board-Style Questions
Short Answer (5 marks)
Define the waterfall model. List its phases. Answer: The waterfall model is a linear, sequential software development process where each phase must be completed before the next begins. Phases:
- Requirements
- Design
- Implementation
- Testing
- Deployment
- Maintenance
What is the main advantage of the spiral model over the waterfall model? Answer: The spiral model focuses on risk analysis at every cycle, reducing surprises in later stages, unlike waterfall where risks are discovered late.
Long Answer (10 marks)
Compare and contrast the RAD and Agile models. When would you use each? Answer:
Feature RAD Agile Approach Prototyping + iterative Incremental + sprint-based Team Size Medium (needs skilled team) Small (3-9 members) Customer Role Active in prototyping Continuous feedback in sprints Best For Fast delivery, user feedback Dynamic requirements, collaboration Use RAD when:
- You need quick prototypes and user feedback.
- The project is small to medium-sized.
Use Agile when:
- Requirements change frequently.
- The team works in sprints and values collaboration.
Explain the phases of the spiral model with a real-world example. Answer: The spiral model has four phases repeated in cycles:
- Planning – Define objectives.
- Risk Analysis – Identify risks (e.g., technical, budget).
- Engineering – Develop and test a prototype.
- Evaluation – Review with customer and plan next cycle.
Example: Developing a new operating system (e.g., Windows 11).
- Cycle 1: Plan features, analyze hardware risks.
- Cycle 2: Build a prototype, test stability.
- Cycle 3: Add security features, get feedback from testers.
- Final Cycle: Polish and deploy.
Exam Tip
- Memorize Phases: Know the exact phases of each model (waterfall: 6, spiral: 4, RAD: 5, Agile: sprint cycles).
- Advantages/Disadvantages: Be ready to compare models in exams (use the table above).
- Scenario-Based Questions: Practice choosing the right model for given scenarios (e.g., "Which model for a government project with fixed requirements?" → Waterfall).
- Diagrams: Draw flowcharts of models in exams (e.g., spiral’s cycles).
- Real-World Examples: Relate models to known software (e.g., Agile for Facebook, Waterfall for NASA missions).
Based on the NEB +2 Science syllabus for Computer Science (Comp), unit 7.
Discussion
Loading…