AS Level · Topic 12.1
A-Level Computer Science 9618 / Topic 12 / AS

From idea to release.

Real programs are not written in one sitting. Every professional project follows a life cycle: a planned set of stages from finding out what is needed to keeping the finished program working. Learn the five stages and the three life cycles you must compare: waterfall, iterative and rapid application development.

The key idea

A program development life cycle is a structured sequence of stages used to plan, build and look after a program: analysis, design, coding, testing and maintenance. Its purpose is to make development organised and predictable, so that the program meets the user's requirements, on time and within budget. Different projects need different life cycles: the waterfall model completes each stage once, in order; the iterative model repeats the cycle to grow the program in versions; rapid application development (RAD) builds prototypes quickly with constant user feedback.

The waterfall model AnalysisDesignCoding TestingMaintenance each stage is finished and signed off before the next one starts; the output of one stage is the input to the next
Fig. 1: in the waterfall model each stage flows down into the next, like water over a series of steps
Section 01

The five stages.

Whatever life cycle a team follows, the same five kinds of work have to be done. What changes from one life cycle to another is the order, and how often each stage is repeated.

StageWhat happensTypical output
AnalysisInvestigate the problem and the current system (interviews, questionnaires, observation, documents); agree what the new program must do; check it is feasible.Requirements specification
DesignPlan how the program will meet the requirements: decomposition into modules, algorithms, data structures, file and database design, user interface, test plan.Structure charts, pseudocode, flowcharts, state-transition diagrams, interface designs
CodingWrite the program in a high-level language from the design; modules are tested as they are written.Program code, annotated
TestingRun the whole program with the test plan to find and remove errors and to show that it meets the requirements.Completed test plan, corrected program
MaintenanceAfter the program is in use: correct errors that appear, adapt it to changes, improve it.Updated versions
Examiner trap

Name the stage that matches the activity. Writing the test plan belongs to design; running it belongs to testing. Finding out what the user needs is analysis, not design.

Section 02

Waterfall: one pass.

The waterfall model (Fig. 1) is linear and sequential. Each stage is completed and signed off before the next begins, and the documents from one stage are the input to the next. In its strict form you do not go back up the waterfall.

BenefitsDrawbacks
Simple to understand and to manage; each stage has a clear deliverable and deadlineNo working program until late in the project, so problems are found late and are costly to fix
Thorough documentation is produced at every stageDifficult to change the requirements once a stage is complete
Works well when the requirements are fully known, clear and fixed at the startThe client sees the product only at the end, so it may not be what they wanted
Progress is easy to measure against the planUnsuitable for large, complex or long projects whose requirements are likely to change
Examiner trap

"Waterfall is old so it is bad" earns nothing. It is the right choice when requirements are stable and well understood, for example a small program for a fixed specification or safety-critical software that must be fully documented.

Stage 1 · Learn

Check what the sim just showed you

Four quick checks. Each correct answer earns XP and records this skill on your profile.

Quick check+10 XP

In which stage of the program development life cycle is the requirements specification produced?

Quick check+10 XP

Which statement describes the waterfall model?

Quick check+10 XP

What is a key principle of rapid application development?

Quick check+10 XP

Which activity belongs to the maintenance stage?

Section 03

Iterative and RAD.

Both of these life cycles accept that requirements change. They deliver something working early and improve it, but they do it in different ways.

IterativeRapid application development (RAD)
PrinciplesStart with a simple version that meets part of the requirements. Each iteration goes through design, coding and testing again and adds or improves features, until the full system is built.Very little up-front planning. Working prototypes are built quickly, shown to users and refined. Modules are developed in parallel by small teams to strict time limits (time-boxing), reusing existing components and tools.
BenefitsA working version exists early; each small part is easier to test and debug; customer feedback after each iteration; changes in requirements are easier and cheaper to include; risk is spread across iterations.Very short development time; users are involved throughout, so the product closely matches their needs; requirements can change at any time; early, constant feedback; components can be reused.
DrawbacksThe whole system must be understood well enough at the start to split it into increments; needs more management and more resources; repeated cycles can let the project overrun.Needs highly skilled developers and users who are available and committed throughout; only suits systems that can be split into modules; less documentation and less attention to non-functional requirements (such as performance); hard to manage on very large projects.
Worked example Choosing a life cycle
A start-up wants a new booking app for a gym. The owners are not sure exactly what features they want and need something to show investors within six weeks. Which life cycle is most suitable? Justify your choice.
  1. The requirements are unclear and likely to change: this rules out waterfall, which needs fixed requirements at the start.
  2. Time is very short and a working version must be shown early.
  3. The owners can be involved throughout and give feedback on prototypes of the screens.
  4. A booking app splits naturally into modules (accounts, timetable, bookings) that teams can build in parallel.
Answer: RAD: prototypes can be built quickly and refined with constant feedback from the owners, the requirements can change, and modules can be developed in parallel to meet the deadline
Your turn
Suggest a suitable life cycle for the control software of a hospital drug-infusion pump, whose requirements are fixed by regulations. Give one reason.
Stage 2 · Exam

Exam-style questions

Unlocks once the four checks above are done. Worth more XP, written to AS Paper 1 and Paper 2 standard.

Finish the four checks above to unlock the exam questions
Exam style+20 XP

Which is a drawback of the waterfall model?

Exam style+20 XP

Which is a benefit of the iterative model?

Exam style+20 XP

Which is a drawback of RAD?

Exam style+20 XP

A government department needs a tax calculator built to a fixed, fully documented specification. Which life cycle best suits it?

Skill unlocked

Development life cycles, mastered.

This skill is now recorded on your profile. Keep the chain going.

-Rank -Level -Score -Topics
Go deeper · practice
Six original Cambridge-style questions
The purpose of a life cycle, the five stages, and the principles, benefits and drawbacks of waterfall, iterative and RAD.