designing software is for communicating with a computer.