designing software is for communication between humans and computers.