要了解软件工程,首先让我们重新认识一下软件。如今可以说是一个软件定义一切的时代,虽然人工智能发展的如火如荼,但究其本质,核心还是软件。那么,如何给软件下一个定义呢?软件又具有哪些特点?如何对软件进行分类?我们一起来了解一下。
1. 软件的概念
软件的定义:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。
一直以来,人们对软件的认识都存在误区,一种比较典型的误解是:软件就是程序,开发软件就是编程序。从上面的定义可以看出,软件是由程序、数据和文档三部分组成的。
- 程序:计算机可以接受的一系列指令,运行时可以提供所要求的功能和性能。
- 数据:使得程序能够适当地操作信息的数据结构。
- 文档:描述程序的研制过程、方法和使用的图文资料。
当然,对软件的定义还有其他一些具有代表性的说法:
- IEEE定义(1983年):计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必需的数据。
2. 软件分类
我们可以从不同的角度对软件进行分类,最直接的就是按照软件实现的功能来对其分类。包括:
- 系统软件:用于管理和控制计算机硬件资源,并提供用户界面和其他系统服务。
- 应用软件:包括办公软件、图形设计软件、音视频播放软件、游戏软件、网络通信软件、实用工具软件等,用于满足用户实际需求的各种软件。
- 支撑软件:介于系统软件和应用软件之间,用于为应用软件的开发和运行提供支撑。包括开发工具软件、数据库管理软件等。
除了按照功能分类以外,下图还给出了一些其他的软件分类方式。