SDLC Models
The Software Development Life Cycle (SDLC) describes the stages a software project goes through from idea to deployment. Different models organise these stages in different ways depending on project needs.
Learning Objectives
- 11.2.1.1 Describe the stages of the SDLC
- 11.2.1.2 Compare cyclical, waterfall, and spiral models
Conceptual Anchor
The House-Building Analogy
Building software is like building a house. You need to: understand what the client wants (analysis), draw blueprints (design), build it (implementation), check for faults (testing), move the client in (deployment), and fix problems over time (maintenance). The SDLC is the blueprint for this entire process.
Rules & Theory
SDLC Stages
| Stage | Purpose | Key Activities |
|---|---|---|
| 1. Analysis | Understand the problem | Gather requirements, interview users, feasibility study |
| 2. Design | Plan the solution | System architecture, UI mockups, data structures, DFDs |
| 3. Implementation | Build the system | Write code, create database, build interfaces |
| 4. Testing | Verify correctness | Unit tests, integration tests, user acceptance testing |
| 5. Deployment | Release to users | Install, train users, migrate data |
| 6. Maintenance | Keep it running | Fix bugs, add features, update for new OS |
SDLC Models Compared
| Feature | Waterfall | Spiral | Iterative (Cyclical) |
|---|---|---|---|
| Flow | Linear, top-down | Loops with risk analysis | Repeated cycles |
| Going back | Cannot go back easily | Each loop revisits stages | Each cycle improves the product |
| Risk handling | Risks found late | Risk analysis each cycle | Risks reduced each iteration |
| Client involvement | Beginning and end only | Each spiral reviewed | Feedback every cycle |
| Best for | Small, well-defined projects | Large, high-risk projects | Projects with changing requirements |
| Disadvantage | Inflexible, no backtracking | Complex, expensive | Scope creep risk |
Visual Models
WATERFALL: SPIRAL: ITERATIVE:
Analysis ┌─ Plan ──┐ ┌─ Cycle 1 ─┐
↓ │ │ │ Analyze │
Design ↓ ↓ │ Design │
↓ Risk ←── Develop │ Build │
Implementation Analysis ↓ │ Test │
↓ │ Evaluate └───┬───────┘
Testing └──────────┘ ↓
↓ (repeats, getting ┌─ Cycle 2 ─┐
Deployment larger each loop) │ Improve │
↓ │ Add features│
Maintenance └───┬───────┘
↓ ...Agile ≈ Modern Iterative
Modern software companies use Agile methodologies (Scrum, Kanban) which are iterative. They work in 2-week "sprints", delivering working software each cycle and adapting to changing requirements.
Common Pitfalls
Waterfall is Outdated/Bad
Waterfall is still used successfully for projects with fixed, well-understood requirements (e.g. building a bridge, military systems). It's only "bad" when requirements change frequently.
Tasks
List the 6 stages of the SDLC in order.
Explain why the waterfall model is unsuitable for a startup building a new social media app.
A hospital needs a patient management system. Which SDLC model would you recommend and why?
Self-Check Quiz
Q1: What are the 6 stages of the SDLC?
Q2: What is the key feature of the spiral model?
Q3: When is the waterfall model most appropriate?