Skip to main content
ScotlandComputer Science

SQA Higher Computing Science Area Software Design and Development: a complete overview of methodologies, analysis, design, data structures, constructs, standard algorithms, testing and evaluation

A deep-dive SQA Higher Computing Science guide to the Software Design and Development area. Covers development methodologies, analysis, design notations, data types and structures, computational constructs, the standard algorithms, and testing and evaluation, with the patterns the exam repeats.

Generated by Claude Opus 4.818 min readHigher

Reviewed by: AI editorial process; not yet individually human-reviewed

Jump to a section
  1. What Software Design and Development actually demands
  2. Development methodologies
  3. Analysis
  4. Design notations
  5. Data types and structures
  6. Computational constructs
  7. Standard algorithms
  8. Testing and evaluation
  9. How Software Design and Development is examined
  10. Check your knowledge

What Software Design and Development actually demands

Software Design and Development (SDD) is the mandatory core of Higher Computing Science: it appears in the compulsory section of the question paper and is the mandatory task in the assignment. It runs from how software projects are organised through to the precise design, coding, testing and evaluation of programs. The examiners reward correct named terms, the ability to read and write pseudocode for the standard algorithms, and clear explanations of design and testing decisions.

This guide walks through the key areas of SDD, then sets out the patterns the SQA repeats. Each key area has a matching dot-point page with practice questions; this overview ties them together.

Development methodologies

The area opens with the software development process: the iterative stages of analysis, design, implementation, testing, documentation and evaluation, with maintenance after release. It is iterative because teams loop back to earlier stages. The traditional waterfall model runs the stages once, in strict order, with fixed requirements; agile methodologies deliver the software in short repeated iterations with changing requirements. Waterfall suits stable projects, agile suits evolving ones.

Analysis

Analysis turns a vague problem into a precise specification: the purpose (what the software is for), the scope (features included and excluded), the boundaries (the limits of the system) and the functional requirements (specific, testable inputs, processes and outputs). The output is the requirements specification the finished software is tested and evaluated against.

Design notations

Design plans both the logic and the interface. A structure diagram breaks the problem top-down into sub-problems; a flowchart shows the flow of control with standard shapes; pseudocode writes the logic in language-independent near-English (the SQA uses a reference language). The user interface is designed with a wireframe, a simple sketch of the screen layout.

Data types and structures

Data types store single values (integer, real, Boolean, character, string). Data structures store collections: a 1-D array holds many values of one type; a record groups related fields of different types; an array of records stores many records and is preferred to parallel arrays because related fields stay together. Strings are joined by concatenation.

Computational constructs

Computational constructs are the building blocks of logic: assignment and arithmetic, selection with the logical operators AND, OR and NOT, fixed and conditional iteration, pre-defined functions, and sub-programs (procedures and functions). Data is passed to sub-programs through parameters, by value (a copy) or by reference (the original), and variables have local or global scope.

Standard algorithms

The standard algorithms are reusable patterns: input validation (a conditional loop), a running total within a loop, traversing a 1-D array, linear search (with a Boolean flag), counting occurrences (a counter incremented on a condition), and finding the minimum or maximum (initialise to the first element, then update). You must be able to design each in pseudocode and adapt it.

Testing and evaluation

Testing uses normal, extreme and exceptional data to find errors and confirm requirements. Errors are syntax (caught by the translator), execution (stop a running program) or logic (run but wrong output). Debugging uses dry runs, trace tables, breakpoints and watchpoints. Evaluation judges the software on fitness for purpose, efficiency, robustness and readability.

How Software Design and Development is examined

A typical SQA profile for SDD:

  • Reading and writing code. Most marks come from pseudocode and program code: writing standard algorithms, tracing given code, finding and fixing errors.
  • Description. Methodologies, analysis terms, design notations, data structures and parameter passing.
  • Explanation. Justifying a methodology, a loop type, a parameter-passing mode, or a testing/evaluation decision for a given scenario.

Check your knowledge

A mix of recall and design questions covering SDD. Attempt them, then check against the solutions.

  1. Name the stage of the development process that produces the requirements specification. (1 mark)
  2. State which loop type repeats an unknown number of times based on a condition. (1 mark)
  3. State the parameter-passing method that lets a sub-program change the caller's variable. (1 mark)
  4. State what a maximum-finding algorithm should be initialised to. (1 mark)
  5. Name the category of test data that should be rejected by the program. (1 mark)
  6. State which error type runs to completion but gives the wrong output. (1 mark)

Sources & how we know this

  • computer-science
  • sqa-higher
  • sqa-computing
  • software-design-and-development
  • higher
  • development-methodologies
  • standard-algorithms
  • testing