EuraStudy
Producing good software is not a matter of jumping straight to code but of following a disciplined process from understanding the problem to evaluating the finished solution. This chapter sets out that systematic development lifecycle - analysis, design, implementation, testing and evaluation - and the techniques within it: decomposition and abstraction, algorithm and data design, and a rigorous testing strategy with well-chosen test data. These skills underpin both Paper 1 and the non-exam assessment.
3 sections~11 min reading time3 competenciesLevel Standard 3
basic level
AS-Level expects the outline of the development stages and the idea of testing with suitable data.
higher level
The full A-Level expects a systematic, evidenced approach - decomposition, abstraction, algorithm and data design, and a testing strategy with normal, boundary and erroneous data - as applied throughout the NEA.
Reading depth: In depth
Text size: Standard
The systematic development lifecycle
A client wants a quiz program that is 'good and fair'. Rewrite this as three measurable success criteria suitable for evaluation.
Replace vague words with concrete, checkable statements tied to inputs, processes and outputs.
1: The program shall present exactly 10 questions drawn at random from a bank of at least 50. 2: The program shall award one mark per correct answer and display the total out of 10 at the end. 3: The program shall reject a non-numeric answer with a clear message and re-prompt.
Each can be objectively tested pass/fail during evaluation, unlike 'good and fair'.
Result: Three measurable criteria replace the vague aim, giving definite targets to design towards and to evaluate the finished program against.
Typical mistakes
Active revision
A sports club wants a program to record members and their subscription payments. List the stages of development you would follow, and write two measurable success criteria the finished program could be evaluated against.
Active recall
Recall the key points — then reveal.
Sources: GCE AS and A level subject content for computer science (Department for Education) · AQA A-level Computer Science 7517 specification (AQA)
A hierarchy (structure) chart
Decompose the task 'run a quiz' into a hierarchy of sub-tasks, and explain how abstraction helps.
The whole task 'run a quiz' splits into main sub-tasks: set up the quiz, ask questions, and report the result.
'Ask questions' decomposes into: select a question, display it, read the answer, check the answer, update the score - each small enough to become a subroutine.
When designing 'check the answer' you can treat 'select a question' as a solved black box that returns a question and its correct answer, ignoring how it does so.
Result: A two-level hierarchy of subroutines emerges. Abstraction lets each sub-task be designed against the interfaces of the others without knowing their internals - the key to managing complexity.
Typical mistakes
Active revision
Decompose the problem 'manage a small library's loans' into a hierarchy of at least six sub-tasks arranged under two or three main tasks, and explain how abstraction lets you design the 'record a loan' sub-task without yet designing the others.
Active recall
Recall the key points — then reveal.
Sources: AQA A-level Computer Science 7517 specification (AQA)
Classes of test data
A program accepts an age as a whole number from 18 to 65 inclusive. Design test data covering normal, boundary and erroneous cases.
A typical valid value well inside the range: 30 - should be accepted.
The exact edges: 18 and 65 should be accepted; 17 and 66 (just outside) should be rejected. These catch a wrong < versus <= comparison.
Data of the wrong type or form: 'thirty', an empty entry, and 25.5 (not a whole number) - each should be rejected with a clear message, not crash the program.
Result: A complete test set: normal 30; boundary 18, 65 (accept) and 17, 66 (reject); erroneous 'thirty', empty, 25.5. Covering all three classes, especially the boundaries, is what makes testing rigorous.
Typical mistakes
Active revision
A field must accept a whole number of tickets from 1 to 6 inclusive. Design a full set of test data giving a normal, boundary and erroneous example for each relevant case, stating the expected outcome of each.
Active recall
Recall the key points — then reveal.
Sources: AQA A-level Computer Science 7517 specification (AQA)
References & sources
Department for Education