✓ Free · Component 1 · 1.2.3 Software Development
1.2.3a Software Development Methodologies
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:

  1. Requirements gathering / analysis
  2. Design
  3. Implementation (coding)
  4. Testing
  5. Deployment
  6. 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.

Stages:

Requirements → Design → Implementation → Testing → Deployment → Maintenance

Advantages:

  • 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.
  • Requires experienced, self-organising teams.

Examples of Agile frameworks:

  • Scrum: sprints, daily stand-ups, sprint reviews.
  • Extreme Programming (XP): pair programming, test-driven development.
  • Kanban: visual workflow management.

Spiral Model

The Spiral model combines iterative development with risk analysis. Each iteration (spiral) consists of four quadrants:

  1. Determine objectives — identify goals, constraints, alternatives.
  2. Identify and resolve risks — analyse risks, create prototypes.
  3. Develop and test — implement and verify the solution for this cycle.
  4. 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

FactorWaterfallAgileSpiral
ApproachLinear, sequentialIterative, incrementalIterative with risk analysis
FlexibilityRigid — changes are difficultHighly flexible — accommodates changeFlexible — changes addressed each spiral
Client involvementMainly at start and endContinuous throughoutAt each spiral review
When to useWell-defined, stable requirementsEvolving requirements; client collaboration possibleLarge, high-risk, complex projects
DocumentationExtensive at each stageMinimal — working software is priorityDocumented per iteration
TestingLate (after implementation)Continuous throughout sprintsEach iteration
Risk managementLow explicit risk managementManaged through short iterationsFormal 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
Card 1 of 15
Click to reveal
🎉
Complete!
TermDefinition
← 1.2.2b Open Source & Proprietary 1.2.3 Software Development Next: 1.2.3b IDEs →