软件特点
软件特点可以归纳如下:
1. 软件是一种逻辑实体。软件是抽象的、无形的,没有物理实体,但可以记录在介质上。软件必须通过测试、分析、思考、判断去了解它的功能、性能及其他特性。软件正确好坏与否,需要等到在机器上运行之后才能知道。这给软件的设计、生产和管理带来诸多困难。
2. 软件是人类智力产品。软件是人们通过智力劳动,依靠知识和技术等手段生产的信息系统产品,是人类有史以来生产的高度复杂、高成本、高风险的工业产品。软件涉及人、社会和组织的行为和需求,涉及几乎所有领域的知识。
3. 软件开发过程复杂。20世纪60年代末70年代初爆发的软件危机,使人们充分清楚地认识了软件开发的复杂性。所有软件开发必须按照软件工程管理的方法进行,严格管理软件项目的进度、质量和成本。有必要使用有效的软件开发环境和工具,以提高软件开发效率。
4. 软件需要长期维护。软件维护与硬件维修维护有着本质的差别,不能简单地通过更换部件来实现。在软件生命期中,需要随时对暴露出来的故障即程序员所说的BUG进行修改。随着社会及技术的变化进步,人的需求、社会的行为规范、组织的需求和业务流程、国家的法律等也会发生变化,这些变化都导致需要对既有软件进行修改维护。
5. 软件成本昂贵。由于软件应用范围广泛和需求复杂等原因,许多软件往往是一个巨型系统,需要投入大量的人力、物力和财力进行开发,导致软件成本昂贵。
6. 软件可以复制。软件一旦开发成功,就不需要再制作,可以无限地复制同一内容的副本。所以软件质量必须在开发阶段得以控制。由于软件功能和性能可以通过修改而改变,因此软件通常有多种版本。
通过以上的介绍,可以对软件的特点有一个更高层面的认识,不会把软件看成是一堆程序。从程序员的观点来看,程序=数据结构+算法,软件=程序+文档,一定意义上来说并没有错。然而,对照上述的内容,可以知道程序员观点只是一个侧面观点。要想全面了解软件,还需要多角度来观察。