📁 Paper 2 · 3.8 Software Development
3.8c Evaluation
AQA 8525 · GCSE Computer Science · ~10 min read
Notes
──
Video
──
Worksheet
──
Quiz

🎉 Final lesson of AQA 8525!

This is the last topic in the AQA GCSE Computer Science specification. After this, head to the dashboard for practice papers.

What is Evaluation?

The evaluation stage is the final stage of the Software Development Life Cycle. Having built and tested a system, developers and clients assess how well it meets the original goals. Evaluation answers the question: how good is the solution?

A thorough evaluation considers four key criteria:

🎯

Fitness for Purpose

Does the system do what it was designed to do? Does it meet all functional requirements? Would users and clients consider it suitable for its intended use?

Efficiency

How well does the system use resources — time (speed of execution) and memory (RAM and storage)? An efficient solution minimises resource usage without sacrificing correctness.

🔧

Maintainability

How easy is it to understand, modify, and update the code in future? Is it well-structured, documented, and modular? Poor maintainability leads to technical debt.

🚀

Future Improvements

What features or optimisations could be added in later versions? What limitations were identified? Evaluation drives the next iteration of development.

Fitness for Purpose

A system is fit for purpose if it correctly meets all the requirements gathered during the analysis stage. During evaluation, developers compare the completed system against the original specification:

📋 Example evaluation against requirements

RequirementSpecificationStatusNotes
Login systemUsers can log in with username and passwordMETWorks correctly for all test cases
Response timePages must load in under 2 secondsPARTIALAverage 1.8s but peaks at 4s under load
Report generationExport reports as PDFMETAll report types export successfully
Mobile supportMust work on mobile devicesNOT METLayout breaks on screens under 480px wide

If a requirement is not met, the evaluation must identify this clearly. The client decides whether to accept the system as-is, request rework, or defer the unmet requirement to a future version.

Feedback from end users is a key source of evidence for evaluating fitness for purpose. User testing, surveys, and interviews after delivery can reveal issues not identified during development.

Efficiency

An efficient program achieves correct results while minimising the resources it consumes. Two key dimensions:

DimensionWhat it measuresWhy it matters
Time efficiencyHow fast the algorithm runs — how execution time scales with input sizeSlow programs frustrate users and may be unusable at scale (e.g. a search that takes 10 seconds)
Space efficiencyHow much memory (RAM or storage) the program usesPrograms using excessive memory may crash on limited-resource devices or be undeployable

Evaluation may include performance testing results: measuring how the program performs under expected and peak loads. Inefficiencies discovered at this stage are candidates for future improvements.

Maintainability

Maintainability describes how easily the code can be understood, modified, and extended in the future. Software is maintained throughout its lifetime: bugs are fixed, features added, security patches applied. Code that is difficult to maintain leads to technical debt — accumulated shortcuts that make future changes increasingly costly and risky.

Factors that improve maintainability:

FactorGood practicePoor practice (low maintainability)
NamingcalculateMonthlyInterest()calc1(), x, tmp
CommentsExplaining why — "// Check for leap year before calculating February days"No comments, or comments restating obvious code
Modular structureSmall, single-purpose functions; low coupling between modulesLong monolithic functions that do everything
IndentationConsistent indentation showing code structure clearlyInconsistent or missing indentation
DocumentationExternal documentation explaining how modules work and how to extend themNo documentation; only the original developer understands the code

Trade-offs in Evaluation

In practice, the four evaluation criteria sometimes conflict. Developers must make informed trade-offs:

⚡ Efficiency vs 🔧 Maintainability

Highly optimised code

Can be very fast but uses complex techniques (e.g. bitwise operations, manual memory management) that are hard to understand and modify.

vs
Clear, readable code

Easier to maintain and extend, but may run slightly slower. Often the better choice unless performance is critical.

🎯 Fitness for Purpose vs ⏳ Time to Deliver

All requirements met

A fully specified system with every feature implemented — but it takes longer to build, costing more time and money.

vs
Core requirements met

A working system with the most important features delivered quickly. Less-critical features deferred to future versions.

Future Improvements

No software is perfect. Evaluation identifies what was not fully achieved and what users wish was different. A good evaluation explicitly lists potential future improvements — features to add, performance optimisations, usability enhancements, or security hardening. These become the starting requirements for the next iteration of development, closing the SDLC loop.

Exam tip: Know all four evaluation criteria — fitness for purpose, efficiency, maintainability, future improvements. Be able to evaluate a given program against each criterion. Maintainability questions often ask you to identify what makes code easy or hard to maintain — use named factors (comments, variable names, modular structure, indentation). For fitness for purpose, compare against requirements from the analysis stage.
⚠️ Common Mistakes
  • Saying a program "works" and therefore it's a good evaluation — "works" only addresses fitness for purpose; you must also address efficiency, maintainability, and future improvements.
  • Confusing maintainability with testing — testing finds bugs now; maintainability determines how easy the code is to change in the future.
  • Saying future improvements are "bugs to fix" — future improvements are enhancements beyond the original scope, not defects found in testing.
Video coming soon

Key points

  • Evaluation is the final SDLC stage — assessing how well the solution meets its goals
  • Four criteria: fitness for purpose, efficiency, maintainability, future improvements
  • Fitness for purpose: compare completed system against original requirements
  • Efficiency: time (how fast) and space (how much memory)
  • Maintainability: meaningful names, comments, modular code, consistent indentation
  • Trade-offs: efficiency vs maintainability; full scope vs fast delivery
  • Future improvements become the starting point for the next development iteration
Click slide or press arrow keys to navigate
✍️

Worksheet — 3.8c Evaluation

8 questions · 21 marks

Q1Name the four criteria used to evaluate a software solution.[2]
✅ Mark scheme
Mark scheme
Fitness for purpose [1]; efficiency, maintainability, future improvements [1 for all three remaining in any order].
Q2What does it mean for a program to be "fit for purpose"?[2]
✅ Mark scheme
Mark scheme
A program is fit for purpose if it correctly meets the requirements established during the analysis stage [1]; it performs all the functions specified by the client and stakeholders, and would be considered suitable for its intended use by users [1].
Q3Describe two factors that affect the maintainability of code and explain how each one helps.[4]
✅ Mark scheme
Mark scheme
Any two, 1 mark for factor + 1 mark for explanation: Meaningful variable/function names — makes the purpose of each variable and procedure immediately clear to future developers without needing to trace through the code [1+1]; Comments — explain why code does what it does (especially for complex logic), allowing future developers to understand and safely modify it [1+1]; Modular structure — code divided into small, single-purpose functions makes it easier to locate which module to change for a given feature, and reduces the risk that changing one part breaks another [1+1]; Consistent indentation — shows the code structure (loops, if statements, function bodies) visually, making it much faster to read and understand [1+1].
Q4What is meant by "technical debt" in software development?[2]
✅ Mark scheme
Mark scheme
Technical debt is the accumulated cost of poor coding decisions and shortcuts taken during development [1]; it results in code that is difficult to understand, modify, or extend — meaning future changes take increasingly more time and effort, and carry a higher risk of introducing new bugs [1].
Q5Explain the difference between time efficiency and space efficiency in programming.[2]
✅ Mark scheme
Mark scheme
Time efficiency refers to how fast an algorithm or program runs — how quickly it completes its task and how execution speed scales as the amount of data increases [1]; space efficiency refers to how much memory (RAM or storage) the program uses to complete its task — a space-efficient program minimises memory consumption [1].
Q6A programmer has written the following code: def c(x, y): return x * y / 100. Describe two ways this code could be made more maintainable.[2]
✅ Mark scheme
Mark scheme
Any two: Give the function a meaningful name — e.g. calculateDiscountAmount(price, discountPercent) makes the purpose immediately clear [1]; Use meaningful parameter names — replace x and y with price and discountPercent so future developers know what values to pass [1]; Add a comment explaining what the function does, what its parameters represent, and what it returns [1].
Q7Explain why a developer might choose to write readable, well-commented code even if it runs slightly slower than a more optimised but obscure version.[3]
✅ Mark scheme
Mark scheme
Readable code is easier for other developers (or the original developer returning after months away) to understand, modify, and extend without introducing bugs [1]; if the performance difference is negligible and the performance requirements are still met, the time savings in future maintenance far outweigh the marginal improvement from highly optimised but unclear code [1]; complex optimisations are also harder to debug — if a bug appears in obscure optimised code, it takes much longer to identify and fix than a bug in clear, well-structured code [1].
Q8A student completes a school library booking system. The evaluation finds that: book search works correctly; the system sometimes loads slowly (4–6 seconds); the code uses single-letter variable names and has no comments; some requirements (booking reminders) were not implemented. For each criterion (fitness for purpose, efficiency, maintainability, future improvements), write one evaluative statement about this system.[4]
✅ Mark scheme
Mark scheme
Fitness for purpose: the system is partially fit for purpose — the core book search functionality works correctly, but the booking reminders requirement has not been implemented, so the system does not fully meet the original specification [1]; Efficiency: the system is not sufficiently efficient — load times of 4–6 seconds significantly exceed what users would expect and could make the system frustrating to use, suggesting the code or database queries need to be optimised [1]; Maintainability: the system has poor maintainability — using single-letter variable names and having no comments will make it very difficult for future developers to understand and modify the code without risking introducing bugs [1]; Future improvements: a future version should implement the booking reminder functionality and optimise the loading performance, possibly by adding database indexing or caching frequently accessed book data [1].
Check your answers above.
Topic Quiz
Q 1 of 10
You scored
out of 10
Card 1 of 7
Click to flip
🎉
All done!
TermDefinition
🎯

Mini Test — 3.8c Evaluation

Timed exam conditions.

  • 8 questions · 10 minutes
  • 5 MCQ + 3 short answer
← 3.8b Development & Testing
57 of 57 · AQA 8525 · Complete!
🏠 Dashboard →