OCR H446 · A Level Computer Science · ~13 min read
Notes
—
Video
—
Slides
—
Worksheet
—
Quiz
The Software Development Lifecycle (SDLC)
The Software Development Lifecycle (SDLC) is the overall process of planning, creating, testing, and deploying software. Different development methodologies structure this process differently.
Key stages common to most methodologies:
Requirements gathering / analysis
Design
Implementation (coding)
Testing
Deployment
Maintenance
Waterfall Model
The Waterfall model is a sequential, linear approach. Each stage must be completed before the next begins. Once a stage is finished, the team does not return to it.
Simple, easy to understand and manage — clear milestones and deliverables at each stage.
Works well when requirements are well-defined and unlikely to change.
Documentation is produced at each stage.
Easy to estimate timescales and costs upfront.
Disadvantages:
Very difficult to accommodate changes to requirements once development has begun.
Testing occurs late — bugs discovered late are expensive to fix.
Client sees no working software until the very end.
High risk: if requirements were wrong, the entire product is wrong.
Suitable for:
Projects with well-defined, stable, unlikely-to-change requirements (e.g. safety-critical systems, government contracts).
Smaller, less complex projects.
Agile Methodology
Agile is an iterative, incremental approach. Work is divided into short cycles called sprints (typically 1–4 weeks). Each sprint produces a potentially shippable product increment. Requirements can change between sprints.
Key Agile principles (from the Agile Manifesto):
Individuals and interactions over processes and tools.
Working software over comprehensive documentation.
Customer collaboration over contract negotiation.
Responding to change over following a plan.
Advantages:
Flexible — requirements can evolve as the client's understanding develops.
Client is involved throughout, seeing working software frequently.
Testing is continuous — bugs found and fixed earlier.
Higher client satisfaction — product better matches actual needs.
Risks identified early due to frequent deliveries.
Disadvantages:
Difficult to predict total cost and timescale at the start.
Requires constant client involvement — may not suit all clients.
Less emphasis on documentation — future maintainers may struggle.
Scope creep — frequent requirement changes can delay completion.
Identify and resolve risks — analyse risks, create prototypes.
Develop and test — implement and verify the solution for this cycle.
Plan next iteration — review and plan the next spiral.
Advantages:
Risk analysis at every stage reduces the chance of project failure.
Suitable for large, high-risk projects where requirements are not fully known.
Prototyping in each cycle allows early client feedback.
Disadvantages:
Can be expensive and time-consuming due to the overhead of risk analysis at each cycle.
Requires specialist expertise in risk assessment.
Less suitable for small, low-risk projects.
Prototyping
In a prototyping approach, a working model (prototype) of the system is built quickly to gather feedback before building the full system. There are two main types:
Throwaway prototyping: prototype is built to gather requirements/feedback, then discarded. The actual system is built from scratch.
Evolutionary prototyping: the prototype is refined and extended until it becomes the final system.
Advantages:
Reduces misunderstandings — clients can see and interact with something tangible.
Requirements are clarified early, reducing rework.
Disadvantages:
Clients may assume the prototype IS the finished product.
Poor code quality if the prototype evolves into the final product without restructuring.
Rapid Application Development (RAD)
RAD is an approach that emphasises speed of development over rigorous planning. It uses rapid prototyping, constant user feedback, and intensive parallel small-team development.
Works best for systems that can be modularised.
Sacrifices some planning rigour for speed.
Comparison Table
Factor
Waterfall
Agile
Spiral
Approach
Linear, sequential
Iterative, incremental
Iterative with risk analysis
Flexibility
Rigid — changes are difficult
Highly flexible — accommodates change
Flexible — changes addressed each spiral
Client involvement
Mainly at start and end
Continuous throughout
At each spiral review
When to use
Well-defined, stable requirements
Evolving requirements; client collaboration possible
Large, high-risk, complex projects
Documentation
Extensive at each stage
Minimal — working software is priority
Documented per iteration
Testing
Late (after implementation)
Continuous throughout sprints
Each iteration
Risk management
Low explicit risk management
Managed through short iterations
Formal risk analysis each spiral
Exam tip: For scenario-based questions, identify whether requirements are well-defined or likely to change. Well-defined + stable → Waterfall. Evolving requirements + client available → Agile. Large, high-risk, complex → Spiral. Unknown requirements → Prototyping first.
Exam tip: Be able to identify advantages AND disadvantages of each methodology in context. In a question about a specific scenario (e.g. "a small startup building a new app"), always link your reasoning to the scenario — don't just list generic points.
⚠ Common Mistakes
Saying Waterfall has no testing — it does, but testing occurs as a distinct stage after implementation, not continuously.
Saying Agile has no planning — Agile does plan, but planning is done sprint by sprint rather than fully upfront.
Confusing a sprint with the full project — a sprint is one short iteration (1–4 weeks) within an Agile project.
✓ Notes completed!
▶
Video coming soon
Click to advance · Arrow keys also work
Click slide or press arrow keys to navigate
✍
Worksheet — 1.2.3a Software Development Methodologies
8 questions · 20 marks · instantly marked
Q1Describe the Waterfall model of software development and list its stages in the correct order.[3 marks]
✓ Mark scheme
The Waterfall model is a sequential, linear approach where each stage must be completed before the next begins, and stages are not revisited [1]; stages in order: Requirements → Design → Implementation → Testing → Deployment → Maintenance [1 for all six in correct sequence; or 1 for at least four in correct order]; documentation is produced at each stage, providing clear milestones [1].
Q2Explain two disadvantages of the Waterfall model.[4 marks]
✓ Mark scheme
Any two from: it is very difficult to accommodate changes to requirements once development has begun; changes mid-project require re-doing completed stages at high cost [2]; testing occurs only after all implementation is complete, so bugs discovered late are expensive to fix and may require substantial rework [2]; the client sees no working software until the very end, so if requirements were misunderstood the entire product may be wrong [2].
Q3Explain what is meant by 'iterative development' in the context of Agile methodology.[3 marks]
✓ Mark scheme
Iterative development means the software is built in repeated cycles (iterations/sprints) rather than all at once [1]; each sprint (typically 1–4 weeks) produces a working, potentially shippable software increment [1]; at the end of each sprint the team reviews progress and plans the next, allowing requirements to evolve and be incorporated [1].
Q4A startup is building a new social media app. The requirements are not fully known, and the client wants to be closely involved. Which development methodology is most appropriate? Justify your answer.[3 marks]
✓ Mark scheme
Agile is most appropriate [1]; because the requirements are not fully known at the start, Agile's iterative sprint-based approach allows them to evolve through continuous client feedback [1]; the client can review working software at the end of each sprint and provide input, ensuring the final product meets actual needs rather than initial assumptions [1].
Q5Describe the Spiral model and explain what distinguishes it from the Waterfall and Agile models.[4 marks]
✓ Mark scheme
The Spiral model is an iterative approach where each cycle (spiral) includes four quadrants: determine objectives, identify and resolve risks, develop and test, plan next iteration [1]; the key distinguishing feature from other models is the formal risk analysis at each spiral — risks are explicitly identified and mitigated before development proceeds [1]; unlike Waterfall, it is iterative rather than sequential [1]; unlike Agile, it places heavy emphasis on risk management and is suited to large, high-risk, complex projects (e.g. safety-critical aerospace software) [1].
Q6Distinguish between throwaway and evolutionary prototyping.[2 marks]
✓ Mark scheme
Throwaway prototyping: a prototype is built purely to gather requirements and client feedback, and is then discarded; the real system is built from scratch based on what was learned [1]; evolutionary prototyping: the prototype is continuously refined and extended based on feedback until it becomes the final system [1].
Q7Give two advantages of using Agile over Waterfall for a project with frequently changing client requirements.[2 marks]
✓ Mark scheme
Any two: Agile accommodates changing requirements — new features or changes can be incorporated into the next sprint without invalidating the entire project plan [1]; continuous testing throughout sprints means bugs are found and fixed early, reducing the risk of discovering major problems late in development [1]; the client sees working software regularly and can give feedback, reducing the risk of the final product missing requirements [1].
Q8A government agency is commissioning a safety-critical air traffic control system. The requirements are clearly defined and unlikely to change. Which methodology would be most suitable? Give two reasons to justify your choice.[3 marks]
✓ Mark scheme
Waterfall (or Spiral for the risk analysis benefit) [1]; Waterfall is appropriate because the requirements are clearly defined and unlikely to change, eliminating its main disadvantage [1]; it produces extensive documentation at each stage, which is essential for safety-critical systems where formal records of design decisions and testing are required [1]; alternatively, Spiral: formal risk analysis at each cycle is essential for safety-critical software where undetected risks could have life-threatening consequences [1].
Topic Quiz
1 of 15
You scored
out of 15
🎯
Mini Test — 1.2.3a Development Methodologies
10 questions · 10 marks · 10 minutes
5 MCQ + 5 short answer
⏱10:00
10 marks
Section A — Multiple Choice
Q1In the Waterfall model, when does testing typically occur?
Q2A 'sprint' in Agile development refers to:
Q3The key distinguishing feature of the Spiral model compared to Agile and Waterfall is:
Q4Which development methodology is most suitable when requirements are fully known and unlikely to change?
Q5In throwaway prototyping, the prototype is:
Section B — Short Answer
Q6Give one advantage of the Waterfall model.
Mark schemeClear milestones and deliverables at each stage — easy to manage progress and estimate timescales and costs upfront. Works well when requirements are stable. [1 mark]
Q7Why might Agile be preferred over Waterfall for a project where the client is not sure of all requirements at the start?
Mark schemeAgile's iterative sprint-based approach allows requirements to evolve — the client sees working software at the end of each sprint and can provide feedback, meaning changes can be incorporated before too much development has been built on incorrect requirements. [1 mark]
Q8State one disadvantage of Agile for a large government project.
Mark schemeDifficult to predict total cost and timescale at the start / less documentation which may be required for compliance in government projects / requires constant client involvement which large bureaucratic organisations may struggle to provide. [1 mark]
Q9What is the purpose of risk analysis in the Spiral model?
Mark schemeRisk analysis in each spiral identifies potential problems (technical, financial, schedule) before they cause project failure. By addressing risks early in each iteration, costly surprises later in the project are minimised. [1 mark]
Q10Why might 'scope creep' be a problem in Agile projects?
Mark schemeScope creep is when the project's requirements keep expanding as clients request additional features in each sprint. In Agile this is easy for clients to do since requirements are flexible; without strong management this can delay delivery and increase costs beyond what was budgeted. [1 mark]