软件是一种逻辑实体,而不是具体的物理实体,它具有抽象性。软件的生产与硬件不同。大多数软件是定制的。在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题。软件的开发和运行常常受到计算机系统的限制对计算机系统有着不同程度的依赖性。软件开发至今尚未完全摆脱手工艺的开发方式。软件是复杂的。软件成本相当昂贵。相当多的软件工作涉及到社会因素。