软件产生的原因