Designing software

A software designer must produce design specifications to guide the development team in writing the software.

A design specification contains information about:

  • Input
  • Output
  • Data storage
  • User interfaces
  • Backup and recovery procedures
  • Security procedures

End user involvement

When testing a new app or game, it is important to consider the following:

  • Do the changes work the way they were meant to?
  • Is the system as fast as it should be?
  • Is it easy to navigate?
  • Are the graphics sharp?
  • What type of prototyping is required?


A prototype is a working model of a design that is presented to the users to test and then feedback on what they liked and disliked, what worked and what didn't.

Evolutionary prototyping

A prototype of a design in its entirety is provided to a user group for testing. Once feedback has been provided on this original prototype, suggestions for improvements are implemented by the developer in building another prototype.

This feedback process is repeated as many times as is deemed necessary and the prototype 'evolves' towards the final system.

Throwaway prototyping

Throwaway prototyping is when a small part of the system is developed and then given to the end user to try out.

The user provides feedback which can quickly be incorporated into the development of the main system. The prototype is then discarded or thrown away.

The aim of throwaway prototyping is to make sure that the system requirements are confirmed and are clearly understood.

The throwaway prototype is NOT considered part of the final system. It is simply there to aid understanding and reduce the risk of implementing poorly defined requirements or functionality that the user does not want or need.

A prototyping pipeline in illustrated form