There are a number of design techniques that we will cover in the Higher Course.
Pseudocode and Refinements - Text based design notation with any sub programs refined (expanded).
Data Flow - Shows the information that must flow In or Out from any sub-programs.
Structure Diagram - Hierarchical structure showing refinements.
For Higher, you rarely need to produce the design yourself, although you may be asked to make refinements.
You must be able to work with modular designs, using structure diagrams and pseudocode (flowcharts are not used at Higher), including data flow and a main algorithm/refinements where relevant.
Modules are smaller chunks of program that do a particular thing. The program has a main algorithm and lots of modules (also called sub-programs). Modules are generally self-contained. Data can be passed into them and back out - this is called the data flow.
Each step in the algorithm is usually broken down into a module.
The top level design should show the major steps of the program solution.
Example
A program is required to:
read the names and IQs of 75 adults from a file
calculate and display the average IQ
find and display the name of person with the highest IQ
Data flow shows the information that will flow in and out of sub-programs.
Refinements: break down each of the main steps into smaller steps (where appropriate).
A wireframe can be used to design the user-interface of a program.
Example
Use a wireframe to design the user-interface of a program which:
asks the user to enter three numbers
adds the numbers together together
displays the total of the three numbers