Cambridge A-Level Computer Science – 12.1 Program Development Life Cycle12.1 Program Development Life Cycle
Learning Objective
Show understanding of the need for different development life cycles depending on the program being developed.
Why Use a Development Life Cycle?
A development life cycle provides a structured approach that helps programmers and teams to:
- Plan and organise work.
- Identify and manage risks early.
- Ensure that requirements are correctly understood and met.
- Facilitate communication among stakeholders.
- Produce maintainable and reliable software.
Common Life Cycle Models
Different projects have different constraints (time, cost, risk, user involvement). Selecting an appropriate model is crucial.
1. Waterfall Model
Linear and sequential – each stage must be completed before the next begins.
- Best for well‑understood problems with stable requirements.
- Low flexibility; changes are costly after a stage is finished.
2. Incremental Model
The system is built as a series of increments, each adding functionality.
- Allows early delivery of a usable product.
- Useful when requirements can be prioritised and delivered in stages.
3. Prototyping Model
A prototype (a working mock‑up) is created to clarify requirements.
- Effective when users are unsure of what they need.
- Helps to uncover hidden requirements early.
4. Spiral Model
Combines iterative development with systematic risk analysis.
- Suitable for large, high‑risk projects.
- Emphasises risk mitigation at each spiral (iteration).
5. Agile (e.g., Scrum, XP)
Iterative, collaborative, and adaptive; delivers small increments in short time‑boxes (sprints).
- Ideal for projects with rapidly changing requirements.
- Encourages continuous stakeholder feedback.
Choosing the Right Model – Decision Factors
- Clarity of requirements: Well‑defined → Waterfall; vague → Prototyping or Agile.
- Project size and complexity: Small → Incremental; large/high‑risk → Spiral.
- Time to market: Need early release → Incremental or Agile.
- Stakeholder involvement: High involvement → Agile; low involvement → Waterfall.
- Risk tolerance: Low risk tolerance → Spiral; moderate → Incremental.
Comparison of Life Cycle Models
| Model | Structure | Flexibility | Risk Management | Typical Use‑Case |
|---|
| Waterfall | Linear, sequential phases | Low | Minimal – risks handled early | Well‑defined, stable requirements (e.g., embedded system firmware) |
| Incremental | Series of functional increments | Medium | Moderate – each increment can address new risks | Projects needing early partial delivery (e.g., web portals) |
| Prototyping | Prototype → refined into final system | High | Focused on requirement‑gathering risk | User‑interface intensive applications |
| Spiral | Iterative cycles with risk analysis | Medium‑High | Explicit – each spiral includes risk assessment | Large, complex, high‑risk systems (e.g., aerospace control software) |
| Agile | Short iterations (sprints), continuous feedback | Very High | Continuous – risks re‑evaluated each sprint | Dynamic environments with evolving requirements (e.g., mobile apps) |
Illustrative Example
Consider two projects:
- Project A – Payroll System for a small company
- Requirements are well understood and unlikely to change.
- Low risk, limited budget.
- Best fit: Waterfall or Incremental.
- Project B – Social networking app with frequent feature updates
- Requirements evolve based on user feedback.
- High competition, need rapid releases.
- Best fit: Agile (Scrum) or Incremental with continuous integration.
Key Take‑aways
- No single life cycle suits every project; the choice depends on project characteristics.
- Understanding the strengths and limitations of each model enables developers to manage risk, cost, and time effectively.
- Hybrid approaches (e.g., Agile‑Waterfall) are common in industry to balance structure with flexibility.
Suggested diagram: Flowchart comparing the stages of Waterfall, Incremental, Prototyping, Spiral, and Agile models.