Revision Notes
Cambridge A Level Computer Science (9618): Software Development – Revision Notes
Revision notes on waterfall, iterative and RAD, structure charts, state-transition diagrams, error types, testing methods and maintenance for Cambridge 9618.
- Subject
- Computer Science
- Level
- AS LEVEL
- Topic
- Topic 12: Software Development
- Author
- Marlbridge Academic Team
- Updated
- Reviewed by
- Harris Khan (what this means)
Aligned to Cambridge A Level Computer Science (9618), 2026. Official specification .
Syllabus page (what it covers and how it is assessed): Cambridge A Level Computer Science.
Syllabus points this page covers
9618 (AS Level)
- 12 Software Development (whole topic)
- 12.1 Program Development Life cycle
- 12.2 Program Design
- 12.3 Program Testing and Maintenance
Found an error? Report a correction.
Need help with this topic? Request a free trial class for A Level Computer Science (9618).
Topic 12 Software Development covers how programs are planned, designed, tested and maintained: the program development life cycle and its waterfall, iterative and RAD models, structure charts and state-transition diagrams, error types, testing methods and test data, and the three types of maintenance. In Cambridge International AS & A Level Computer Science 9618 it is examined in Paper 2, often alongside a pseudocode task you must test or amend.
Related: Software Development study guide · Software Development practice questions · Computer Science course hub
Syllabus coverage
| Section | Candidates should be able to |
|---|---|
| 12.1 | Show understanding of the purpose of a development life cycle, and the need for different life cycles: waterfall, iterative, rapid application development (RAD) |
| 12.1 | Describe the principles, benefits and drawbacks of each life cycle |
| 12.1 | Show understanding of the analysis, design, coding, testing and maintenance stages |
| 12.2 | Use a structure chart to decompose a problem and show the parameters passed between modules; describe its purpose, construct one, and derive pseudocode from it |
| 12.2 | Show understanding of the purpose of state-transition diagrams to document an algorithm |
| 12.3 | Show understanding of ways of exposing and avoiding faults; locate, identify and correct syntax, logic and run-time errors |
| 12.3 | Show understanding of testing methods (dry run, walkthrough, white-box, black-box, integration, alpha, beta, acceptance, stub) and select test data for a method |
| 12.3 | Show understanding of a test strategy and test plan; choose normal, abnormal and extreme/boundary test data |
| 12.3 | Show understanding of perfective, adaptive and corrective maintenance; analyse a program and amend it to enhance functionality |
Stages of the program development life cycle
| Stage | What happens | Typical output |
|---|---|---|
| Analysis | Investigate the problem and the users’ needs; define what the program must do | Requirements specification |
| Design | Plan the solution: modules, algorithms, data structures, interface, test plan | Structure charts, pseudocode, test plan |
| Coding | Write the program in a programming language, testing modules as they are written | Program code |
| Testing | Run the program with planned test data to find and fix errors | Test results, corrected program |
| Maintenance | Correct, adapt and improve the program after it is in use | Updated versions |
Purpose of a life cycle: it gives a structured plan, so each stage is completed and checked, progress can be monitored, and the product meets the requirements.
Waterfall, iterative and RAD compared
| Model | Principle | Benefits | Drawbacks |
|---|---|---|---|
| Waterfall | Each stage is completed and signed off before the next starts; little going back | Simple to manage; clear milestones and documentation; suits fixed, well-understood requirements | Changes are hard and costly late on; the client sees a working program only near the end; errors in analysis are found late |
| Iterative | The program is developed in small parts; each iteration repeats design, coding and testing and adds to a working version | Working versions early; feedback after each iteration; easier to accommodate change; risks found early | Needs more client involvement; total cost and time harder to predict; the system design can suffer if the whole is not planned |
| RAD | Prototypes are built quickly, often from reusable components, and refined with continuous user feedback; time-boxed | Fast delivery; the product closely matches what users want; changes welcomed | Needs users available throughout; less suited to large or safety-critical systems; documentation and code quality may suffer |
Structure charts
A structure chart shows the modules of a program in a hierarchy, how a problem is decomposed, and the parameters passed between modules.
| Notation | Meaning |
|---|---|
| Rectangle | A module (procedure or function) |
| Line from a higher to a lower module | The higher module calls the lower one |
| Arrow with an open circle (data couple) | Data passed as a parameter, in the direction of the arrow |
| Arrow with a filled circle (flag) | A Boolean flag passed between modules |
| Diamond where lines leave a module | Selection: only one of the lower modules is called |
| Curved arrow over the lines | Iteration: the lower modules are called repeatedly |
Deriving pseudocode: each box becomes a PROCEDURE or FUNCTION. A module that passes data down receives parameters; a module that sends a single value back up is usually a FUNCTION; a module sending back several values uses BYREF parameters.
State-transition diagrams
A state-transition diagram documents an algorithm whose behaviour depends on its current state and the input or event received. States are drawn as circles; transitions as arrows labelled with the event (and any output); an arrow with no source marks the start state; a double circle often marks a final or halting state. They are used for systems such as a vending machine, a traffic-light controller or a login with limited attempts.
Error types
| Error | Cause | Found by | Example |
|---|---|---|---|
| Syntax | Code breaks the grammar rules of the language | The translator; the program will not run | ENDIF missing; Total ← with no value |
| Logic | Code runs but gives the wrong result | Testing with known expected results; dry runs | < used instead of <=; wrong formula |
| Run-time | The program crashes or stops while running | Testing; it occurs only when the line executes | Division by zero; array index out of range; reading past the end of a file |
Avoiding faults: good design (modules, structure charts); meaningful identifiers; comments; using library routines that are already tested; declaring variables and constants; validation of input.
Testing methods
| Method | What it means |
|---|---|
| Dry run | Working through the code by hand, usually with a trace table, to check what each variable holds |
| Walkthrough | The programmer takes others through the code or algorithm step by step, so the team can spot errors |
| White-box | Tests chosen with knowledge of the code, so every path (each branch of each IF, each loop) is tested |
| Black-box | Tests based only on the specification: inputs are given and outputs compared with those expected, without looking at the code |
| Stub | A simple dummy module (e.g. outputs “Module called” or returns a fixed value) stands in for one not yet written, so the calling module can be tested |
| Integration | Testing that modules that each work correctly also work together once combined |
| Alpha | Testing by the developers (or in-house testers) before release |
| Beta | Testing by a group of real users outside the company, using a near-final version, who report faults |
| Acceptance | Testing by or for the client, against the requirements, to show the program does what was agreed before it is handed over |
Stub testing is not integration testing (June 2025 examiners).
Test plans and test data
A test strategy sets out the overall approach (which methods, in what order, who tests). A test plan lists each test: what is being tested, the test data, its type, the expected result, and space for the actual result.
For an input that must be a whole number from 1 to 50:
| Type | Meaning | Examples |
|---|---|---|
| Normal | Valid data that should be accepted | 7, 23, 41 |
| Extreme | The largest and smallest acceptable values | 1, 50 |
| Boundary | Values at each side of a limit: the last one accepted and the first one rejected | 50 and 51; 1 and 0 |
| Abnormal | Data that should be rejected | −8, 75, “ten” |
Abnormal data is not extreme data (November 2024). Test data must fit the range in the question (June 2024 to June 2025).
Maintenance
| Type | Purpose | Example |
|---|---|---|
| Corrective | Fix errors found after the program is in use | A discount is calculated wrongly for large orders |
| Adaptive | Change the program because its environment or requirements change | A new tax rate, a new operating system, a new law |
| Perfective | Improve performance or usability, or add features, without fixing an error | Make searches faster; add an export option |
Worked example: a test plan entry and a fix
A function Discount(Total : REAL) RETURNS REAL should return 10% of Total when Total is 100.00 or more, otherwise 0. The code uses IF Total > 100 THEN.
- Test: Total = 100.00, boundary data, expected result 10.00. Actual result: 0.00.
- This is a logic error: the program runs but gives the wrong answer at the boundary.
- Correction:
IF Total >= 100 THEN. Retest with 99.99 (expected 0) and 100.00 (expected 10.00).
Common mistakes and exam traps
- Misclassifying errors: a crash during a run is a run-time error, not a syntax error; a wrong output is a logic error (June 2024, November 2024).
- Calling abnormal data “extreme” (November 2024).
- Calling stub testing integration testing (June 2025).
- Choosing test data outside the range given, or with no expected result.
- Describing waterfall benefits without linking them to the scenario’s requirements.
- Saying perfective maintenance fixes bugs; that is corrective.
Frequently asked questions
What is the difference between white-box and black-box testing? White-box testing uses the code itself to pick tests that cover every path; black-box testing uses only the specification, checking inputs against expected outputs.
When is beta testing used? After alpha testing, when a nearly finished version is given to real users outside the development team, who find faults in real conditions before the full release.
Why use a stub? So a module that calls another can be tested before the called module has been written; the stub returns a fixed value or shows it was called.
Official syllabus
Cambridge International AS & A Level Computer Science 9618, syllabus for 2026 and syllabus for 2027, 2028 and 2029, Topic 12 (12.1 to 12.3). Examiner points are summarised on our 9618 past papers page.
Get free revision emails (optional)
Occasional emails with practice questions, worked explanations and links to free resources for the qualification and subjects you choose. No spam, and you can unsubscribe from any email. The free tools on this site never need an email.
Related resources
-
Study guides
Cambridge A Level Computer Science (9618): Software Development – Study Guide
AS study guide to the program development life cycle, development models, program design tools, test data, test plans and maintenance for Cambridge 9618.
Computer Science · Cambridge · AS Level
Read guide -
Practice questions
Cambridge A Level Computer Science (9618): Software Development – Practice Questions
Questions with answers on life cycle models, structure charts, state-transition diagrams, errors, testing, test data and maintenance for Cambridge 9618.
Computer Science · Cambridge · AS Level
Try questions -
Practice questions
Cambridge A Level Computer Science (9618): System Software – Practice Questions
Original exam-style questions with answers on OS management tasks, utilities, DLLs, compilers versus interpreters, Java bytecode and IDEs for Cambridge AS 9618.
Computer Science · Cambridge · AS Level
Try questions
Related articles
-
teaching
A Level tuition in Dubai: Cambridge or Pearson Edexcel International A Level?
Schools in Dubai and Abu Dhabi teach either Cambridge International AS & A Level or Pearson Edexcel International A Level. How the two are structured, why it matters for tuition, and how online classes from Lahore work.
9 October 2026
-
curriculum guides
Choosing subjects at IGCSE and A Level
How subject choices at 14 and 16 affect university options later, and how to keep pathways open without overloading a timetable.
28 July 2026
Studying this with a teacher
Working through Computer Science AS LEVEL?
This page is free and stays free. If you would rather be taught it, Marlbridge runs Computer Science classes one-to-one and in small groups of up to 15, online in your own time zone. The first trial class is free. WhatsApp replies within an hour (8am–11pm Pakistan time, every day); email the same day.
Cambridge Computer Science teachers at Marlbridge