The candidate must have a thorough understanding of computer systems in order to recognise any hardware limitations that could impact software design