Software Design and DevelopmentUnit 29 min read
Software Process Models: Waterfall, Iterative, Agile, Spiral
Unit 2 of Software Design and Development explains software process models—structured approaches to building software, including the Waterfall, Iterative, Agile, and Spiral models. It covers their definitions, workflows, advantages, disadvantages, and real-world applications, with comparisons and practical examples lik
Key Concepts and Definitions
What is a Software Process Model?
A software process model is a framework that defines how software development activities are organized and executed. It provides a structured approach to:
- Planning
- Designing
- Implementing
- Testing
- Deploying
- Maintaining software.
Process models help teams manage complexity, reduce risks, and improve efficiency by standardizing workflows.
1. Waterfall Model
The Waterfall model is the oldest and most linear software development approach. It follows a sequential, phase-by-phase process where each phase must be completed before moving to the next.
Phases of the Waterfall Model
flowchart TD
A["Requirements"] --> B["Design"]
B --> C["Implementation"]
C --> D["Testing"]
D --> E["Deployment"]
E --> F["Maintenance"]How It Works
- Requirements Gathering: All requirements are documented upfront.
- System Design: Architecture and design are finalized.
- Implementation: Coding begins based on the design.
- Testing: Verification and validation occur.
- Deployment: The software is released.
- Maintenance: Bug fixes and updates are applied.
Advantages
✔ Simple and easy to understand ✔ Well-documented phases ✔ Works well for small, well-defined projects
Disadvantages
✖ No going back (rigid structure) ✖ Late testing (bugs found only after implementation) ✖ Not flexible for changing requirements
Real-World Example: NTC’s Legacy Systems
The Nepal Telecommunications Company (NTC) uses a modified Waterfall model for large infrastructure projects like fiber-optic network deployments because:
- Requirements (e.g., coverage areas) are fixed before construction.
- Testing happens only after physical installation.
- Maintenance is handled post-deployment (e.g., troubleshooting outages).
2. Iterative Model
The Iterative model breaks development into smaller cycles (iterations), where each iteration produces a working version of the software.
How It Works
flowchart LR
A["Plan"] --> B["Design"]
B --> C["Implement"]
C --> D["Test"]
D --> E["Review"]
E -->|"Feedback"| AKey Features
- Repeated cycles (each iteration refines the product).
- Increments (small, usable versions are delivered).
- Flexibility (changes can be incorporated early).
Advantages
✔ Early feedback (users test partial products) ✔ Reduces risk (problems identified early) ✔ More adaptable to changes
Disadvantages
✖ Requires clear initial planning ✖ Can be costly if iterations are poorly managed
Real-World Example: eSewa’s Mobile App Updates
eSewa follows an iterative approach for its mobile payment app:
- First iteration: Basic payment features (e.g., UPI transfers).
- Second iteration: Added QR code payments based on user feedback.
- Third iteration: Introduced bill payments after testing demand.
3. Agile Model
The Agile model is iterative and incremental, with short development cycles (sprints) of 1-4 weeks. It emphasizes collaboration, flexibility, and customer feedback.
Agile Principles (Manifesto)
mindmap
root((Agile Manifesto))
left(Individuals and interactions)
right(Working software)
top(Customer collaboration)
bottom(Responding to change)How It Works
- Sprints: Small, time-boxed development cycles.
- Daily Stand-ups: Quick team meetings to track progress.
- Backlog: Prioritized list of features (user stories).
- Continuous Integration: Code is frequently merged and tested.
Advantages
✔ Fast delivery (working software every few weeks) ✔ High customer satisfaction (feedback-driven) ✔ Adaptable to changes
Disadvantages
✖ Requires disciplined teams ✖ Documentation can be lacking ✖ Not suitable for very small projects
Real-World Example: Pathao’s Ride-Hailing App
Pathao uses Agile (Scrum) to develop its ride-sharing platform:
- Sprint 1: Basic ride booking and driver matching.
- Sprint 2: Added real-time tracking based on user complaints.
- Sprint 3: Introduced cashless payments after testing demand.
4. Spiral Model
The Spiral model combines iterative development with risk analysis. It is risk-driven and follows a cycle of planning, risk assessment, engineering, and evaluation.
How It Works
flowchart LR
A["Planning"] --> B["Risk Analysis"]
B --> C["Engineering"]
C --> D["Evaluation"]
D -->|"Feedback"| AKey Features
- Four quadrants per cycle:
- Determine objectives
- Identify and resolve risks
- Develop and test
- Plan next iteration
Advantages
✔ High risk management ✔ Flexible and adaptable ✔ Works well for large, complex projects
Disadvantages
✖ Complex and costly ✖ Requires expert risk assessment ✖ Not suitable for small projects
Real-World Example: NEPSE’s Trading System Upgrades
The Nepal Stock Exchange (NEPSE) uses a Spiral model for major system upgrades:
- First spiral: Assess risks (e.g., downtime during trading hours).
- Second spiral: Develop a backup system before rolling out changes.
- Third spiral: Test with simulated high-volume trades before full deployment.
Comparison of Software Process Models
| Model | Approach | Flexibility | Best For | Risk Handling | Documentation |
|---|---|---|---|---|---|
| Waterfall | Sequential | Low | Small, fixed-scope projects | Low | High |
| Iterative | Repeated cycles | Medium | Medium-sized projects | Medium | Medium |
| Agile | Short sprints | High | Dynamic, customer-focused | High | Low |
| Spiral | Risk-driven cycles | High | Large, complex systems | Very High | High |
When to Use Which Model?
| Scenario | Recommended Model |
|---|---|
| Fixed requirements, small project | Waterfall |
| Medium project, some changes | Iterative |
| Fast-paced, customer feedback | Agile |
| High-risk, large project | Spiral |
In the Real World
eSewa (Nepal)
- Uses: Iterative model for app updates.
- How: Releases small features (e.g., bill payments) after testing with a subset of users before full rollout.
Pathao (Ride-Hailing App)
- Uses: Agile (Scrum) for rapid development.
- How: Develops new features in 2-week sprints, prioritizing user feedback (e.g., adding cash payments after demand spikes).
NTC’s Fiber-Optic Network
- Uses: Modified Waterfall for infrastructure projects.
- How: Fixed requirements (e.g., coverage areas) are set before construction, with testing only after physical installation.
NEPSE Trading System
- Uses: Spiral model for major upgrades.
- How: Risk assessment (e.g., downtime impact) is done before each iteration to ensure stability during trading hours.
Daraz (E-Commerce Platform)
- Uses: Agile + DevOps for continuous delivery.
- How: Microservices architecture allows independent updates (e.g., new payment gateways) without disrupting the entire system.
Exam Tip
How This Unit is Examined
Definitions & Differences
- Expect short-answer questions on definitions (e.g., "What is the Waterfall model?").
- Comparison questions (e.g., "Differentiate between Agile and Spiral").
Scenario-Based Questions
- Case studies (e.g., "Which model would you use for developing a banking app? Justify.").
- Real-world examples (e.g., "How does Pathao use Agile? Explain with an example.").
Diagrams & Workflows
- Draw and explain process models (e.g., "Draw the Waterfall model phases").
- Identify flaws (e.g., "What are the risks of using Waterfall for a social media app?").
Advantages/Disadvantages
- List pros and cons of each model (e.g., "Why is Agile better than Waterfall for startups?").
How to Score Full Marks
✅ Use real-world examples (e.g., eSewa, Pathao, NTC). ✅ Draw diagrams (e.g., Waterfall phases, Agile sprints). ✅ Compare models in tables (e.g., flexibility, risk handling). ✅ Justify your answers (e.g., "Agile is better for Daraz because...").
Practice Questions for Exam
- "Explain the Waterfall model with a real-world example from Nepal. What are its limitations?"
- "How does the Agile model differ from the Iterative model? Which one would you recommend for a mobile banking app like Khalti?"
- "Draw the Spiral model and explain how NEPSE uses it for system upgrades."
- "Compare the four process models in a table, highlighting their suitability for different project types."
Key Takeaways (Summary)
- Waterfall = Sequential, rigid (good for fixed requirements).
- Iterative = Repeated cycles (good for medium projects).
- Agile = Short sprints, customer feedback (best for dynamic projects).
- Spiral = Risk-driven, complex projects (best for high-risk systems).
- Real-world tie-ins: eSewa (Iterative), Pathao (Agile), NTC (Waterfall), NEPSE (Spiral).
Based on the TU BIM syllabus for Software Design and Development (IT242), unit 2.
Discussion
Loading…