Skip to topic
    ← Back to course topics

    Specify the proposed solution — OCR A-Level Computer Science

    Test yourself on Specify the proposed solution with OCR A-Level practice questions.

    Start free

    7 days Premium · Then free forever · No card, no charge

    Specify the proposed solution explained

    This topic focuses on the formal specification of a proposed computational solution within the Programming Project (Component 03/04).

    Read the full explanation

    Learners must define and justify the technical requirements, including hardware and software configurations, and establish measurable success criteria to evaluate the final product.

    What to demonstrate

    1. Specification and justification of solution requirements
    2. Identification and justification of hardware configuration
    3. Identification and justification of software configuration
    Show all 4 objectives
    1. Identification and justification of measurable success criteria

    Specify the proposed solution exam tips

    Topic Overview

    Specifying the proposed solution is a critical stage in the systems development lifecycle, particularly within the OCR A-Level Computer Science specification. After the analysis phase has identified user requirements and the problem domain, the design phase begins with a clear, unambiguous specification of what the new system will do. This specification acts as a contract between the client and the developer, detailing functional and non-functional requirements, system constraints, and acceptance criteria. It ensures that all stakeholders have a shared understanding of the system's purpose and scope before any coding or implementation begins.

    A well-written specification is essential for managing project scope, preventing feature creep, and providing a benchmark for testing and evaluation. In OCR A-Level, students must understand how to produce a structured specification that includes inputs, outputs, processes, data storage, user interfaces, and performance requirements. This document also forms the basis for creating test plans and user documentation. Mastery of this topic enables students to approach larger programming projects methodically, reducing errors and rework.

    Within the wider subject, specifying the proposed solution bridges the gap between abstract problem analysis and concrete implementation. It is a key skill for software engineers and is assessed in both the examined theory paper and the non-exam assessment (NEA). By learning to write precise specifications, students develop analytical thinking, attention to detail, and communication skills that are vital for any computing professional.

    Key Concepts
    • →Functional requirements: Describe what the system must do (e.g., 'The system shall allow users to log in with a username and password').
    • →Non-functional requirements: Describe how the system should behave (e.g., performance, security, usability, reliability).
    • →Acceptance criteria: Specific, measurable conditions that must be met for the system to be accepted by the client.
    • →System constraints: Limitations such as hardware, software, budget, time, or legal/ethical considerations.
    • →User interface design: Specification of input methods, output formats, navigation, and accessibility features.
    Marking Points
    • Specification and justification of solution requirements
    • Identification and justification of hardware configuration
    • Identification and justification of software configuration
    • Identification and justification of measurable success criteria
    Examiner Tips
    • 💡Ensure success criteria are SMART (Specific, Measurable, Achievable, Relevant, Time-bound) to facilitate later evaluation
    • 💡Explicitly justify every requirement identified; do not just list them
    • 💡Ensure the hardware and software choices are directly relevant to the specific problem being solved
    • 💡Use the command words in the assessment criteria to gauge the required depth of coverage
    • 💡Use precise, measurable language in requirements. Avoid vague terms like 'fast' or 'user-friendly'; instead specify 'response time < 2 seconds' or 'interface must comply with WCAG 2.1 AA standards'.
    • 💡Link the specification to the test plan. Each requirement should have a corresponding test case in your test plan. This shows examiners you understand the full development cycle.
    • 💡In the NEA, your specification should be detailed enough that someone else could implement the system from it. Include data dictionaries, interface sketches, and algorithm outlines where appropriate.
    Common Mistakes
    • Failing to justify the chosen hardware or software requirements
    • Defining success criteria that are not measurable or quantifiable
    • Providing vague requirements that lack technical specificity
    • Neglecting to link the proposed solution requirements back to the analysis of the problem
    • Misconception: The specification is only needed for large projects. Correction: Even small projects benefit from a clear specification to avoid ambiguity and ensure the solution meets user needs.
    • Misconception: Functional requirements are the same as user stories. Correction: User stories are a tool for capturing requirements in agile methods, but a specification is a formal document that includes detailed, testable requirements.
    • Misconception: Non-functional requirements are optional. Correction: They are often critical for system success (e.g., response time, security) and must be specified and tested.
    Frequently Asked Questions
    What is the difference between a functional and non-functional requirement?
    Functional requirements describe specific behaviours or functions of the system, such as 'the system must calculate the total cost including VAT'. Non-functional requirements describe how the system performs those functions, such as 'the calculation must complete within 0.5 seconds' or 'the system must be available 99.9% of the time'. Both are essential for a complete specification.
    How do I write a good specification for my A-Level Computer Science NEA?
    Start by listing all the features your system must have (functional requirements) and the quality attributes (non-functional). Use clear, numbered statements like 'R1: The system shall allow users to add items to a shopping cart'. Include acceptance criteria for each requirement, such as 'The cart must update within 1 second of adding an item'. Also specify constraints like the programming language, hardware, and any legal/ethical considerations.
    Why is the specification important in the systems development lifecycle?
    The specification serves as a blueprint for the entire project. It ensures that developers, clients, and testers all have the same understanding of what needs to be built. It helps prevent scope creep (adding features later), provides a basis for testing and validation, and is used to evaluate the final system against the original requirements. Without a good specification, projects often fail due to miscommunication or incomplete requirements.
    What should be included in a system specification document?
    A typical specification includes: an introduction and project scope, functional requirements (what the system does), non-functional requirements (performance, security, usability), system constraints (hardware, software, budget), data requirements (data dictionary, ER diagrams), user interface designs (mockups or descriptions), and acceptance criteria. It may also include a glossary of terms and references to related documents.
    How do I test if my specification is complete?
    Use the 'SMART' criteria: Specific (clear and unambiguous), Measurable (quantifiable), Achievable (realistic), Relevant (to user needs), and Time-bound (with deadlines if applicable). Also, try to write test cases for each requirement. If you can't think of a test, the requirement is probably too vague. Another check is to ask someone else to read it and see if they can implement the system without further clarification.