Comp Computer Science

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.

LinearRequirementsDesignImplementationTestingDeploymentMaintenancePhasesPros: Simple, well-documentedCons: Inflexible, late changes costlyWaterfallIterative + Risk AnalysisPlanningRisk AnalysisEngineeringEvaluationPhasesPros: Risk-focused, flexibleCons: Complex, costlySpiralIterative + PrototypingRequirementsUser DesignPrototypingTestingImplementationPhasesPros: Fast delivery, user feedback earlyCons: Needs skilled team, high costRAD (Rapid Application Development)Iterative + IncrementalSprint PlanningDevelopmentReviewRetrospectivePhasesPros: Flexible, customer-focusedCons: Requires discipline, documentation lightAgileSelection Criteria: Project Size, Risk, Team Expertise, CustSoftware Process Models
Hierarchical comparison of software process models with phases and pros/cons

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

01234Simple and easy to manage4Inflexible (no changes allowed)2Well-documented4Late testing (bugs found late)2Good for small projects3Customer sees product only at the end1
Waterfall Model: Advantages (positive) vs. Disadvantages (negative) on a 5-point scale (1=worst, 5=best)

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

PlanningRisk AnalysisEngineeringEvaluation
Spiral Model: Cyclic phases with risk analysis at each iteration

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

RequirementsUser DesignPrototypingTestingImplementation
RAD Model: Iterative prototyping loop with implementation

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)

Sprint PlanningDevelopmentDaily StandupSprint ReviewRetrospective
Agile (Scrum) Framework: Sprint cycle with feedback loops

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:

  1. Project Size (Small → Waterfall/RAD; Large → Spiral/Agile).
  2. Risk Tolerance (High risk → Spiral; Low risk → Waterfall).
  3. Customer Involvement (Active feedback → Agile/RAD).
  4. 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)

  1. 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:

    1. Requirements
    2. Design
    3. Implementation
    4. Testing
    5. Deployment
    6. Maintenance
  2. 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)

  1. 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.
  2. Explain the phases of the spiral model with a real-world example. Answer: The spiral model has four phases repeated in cycles:

    1. Planning – Define objectives.
    2. Risk Analysis – Identify risks (e.g., technical, budget).
    3. Engineering – Develop and test a prototype.
    4. 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

  1. Memorize Phases: Know the exact phases of each model (waterfall: 6, spiral: 4, RAD: 5, Agile: sprint cycles).
  2. Advantages/Disadvantages: Be ready to compare models in exams (use the table above).
  3. Scenario-Based Questions: Practice choosing the right model for given scenarios (e.g., "Which model for a government project with fixed requirements?" → Waterfall).
  4. Diagrams: Draw flowcharts of models in exams (e.g., spiral’s cycles).
  5. 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…