IT242 Software Design and Development

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

  1. Requirements Gathering: All requirements are documented upfront.
  2. System Design: Architecture and design are finalized.
  3. Implementation: Coding begins based on the design.
  4. Testing: Verification and validation occur.
  5. Deployment: The software is released.
  6. 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"| A

Key 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

  1. Sprints: Small, time-boxed development cycles.
  2. Daily Stand-ups: Quick team meetings to track progress.
  3. Backlog: Prioritized list of features (user stories).
  4. 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"| A

Key Features

  • Four quadrants per cycle:
    1. Determine objectives
    2. Identify and resolve risks
    3. Develop and test
    4. 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

  1. 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.
  2. 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).
  3. 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.
  4. 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.
  5. 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

  1. Definitions & Differences

    • Expect short-answer questions on definitions (e.g., "What is the Waterfall model?").
    • Comparison questions (e.g., "Differentiate between Agile and Spiral").
  2. 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.").
  3. 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?").
  4. 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

  1. "Explain the Waterfall model with a real-world example from Nepal. What are its limitations?"
  2. "How does the Agile model differ from the Iterative model? Which one would you recommend for a mobile banking app like Khalti?"
  3. "Draw the Spiral model and explain how NEPSE uses it for system upgrades."
  4. "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…