1. Analysis: identify the problem, gather requirements from the client, define what the program must do
2. Design: plan algorithms, data structures, user interface, system architecture before coding starts
3. Implementation (Coding): write the program in a chosen language following the design
4. Testing: run tests using normal, boundary, and erroneous data; fix bugs
5. Evaluation: assess whether the solution meets requirements; identify improvements
Waterfall Model
Linear & Sequential
The Waterfall model moves through each stage sequentially — you must complete each phase before moving to the next. Used for projects with well-defined, fixed requirements.
Advantage: clear stages, easy to manage, good documentation throughout
Disadvantage: very inflexible — going back to a previous stage is costly; client feedback comes too late
Agile Development
Iterative & Flexible
The Agile model develops software in short cycles (sprints). At the end of each sprint, a working prototype is reviewed with the client. Changes can be made at any point — the design evolves continuously.
Advantage: flexible, client is involved throughout, working software produced early
Disadvantage: harder to predict final cost and timescale; requires constant client availability
Edexcel: be able to compare Waterfall and Agile and justify which is more appropriate
Exam Practice
Have a go at this question
Edexcel-style question
A company is building a safety-critical control system for a nuclear power plant where requirements are fixed. Which development model is more suitable — Waterfall or Agile? Justify your answer.
3 marks
Waterfall [1] is more suitable because the requirements are fixed and well-understood [1]. The linear approach allows thorough documentation and testing at each stage, which is critical for a safety system where errors could be catastrophic [1].