1.3.3 计算机软件
软件是指计算机系统中使用的各种程序及其文档。程序是对计算任务的处理对象和规则的描述,文档是为了便于了解程序所需要的阐述性资料。
1.软件的作用
计算机的工作是由存储在其内部的程序指挥的,这是冯·诺依曼计算机的重要特征。因此程序或软件质量的好坏极大地影响计算机性能的发挥,特别是并行处理技术及RISC计算机的出现更显得软件之重要。软件的具体作用有三方面:
① 软件在计算机系统中起着指挥和管理的作用。计算机系统中有各种各样的软、硬件资源,必须由相应的软件(特别是操作系统)来统一管理和指挥。
② 软件是计算机用户和硬件的接口界面。用户要使用计算机,必须编制程序,那就必须用软件,用户主要通过软件与计算机进行交流。
③ 软件是计算机体系结构设计的主要依据。为了方便用户,使计算机系统具有较高的总体效率,在设计计算机时必须考虑软件和硬件的结合,以及用户对软件的要求。
2.软件的发展过程
软件的发展受计算机硬件发展和应用的推动及制约,其发展过程大致分三个阶段。
从第一台计算机上的第一个程序出现到实用的高级语言出现为第一阶段(1946—1956年)。这时计算机的应用以科学计算为主,计算量较大,但输入/输出量不大。机器“以CPU为中心”,存储器较小,编制程序的工具为机器语言,突出问题是程序设计与编制工作复杂、繁琐、易出错。因此重点考虑程序本身,使它占用内存小,运行时间短,从而提高效率。这时尚未出现软件一词。
从实用的高级程序设计语言出现到软件工程出现以前为第二阶段(1956—1968年)。这时除了科学计算外,出现了大量数据处理问题,计算量不大,但输入/输出量较大。机器结构转向“以存储器为中心”,出现了大容量存储器,输入/输出设备增加。为了充分利用这些资源,出现了操作系统;为了提高程序人员的工作效率,出现了高级语言;为了适应大量的数据处理,出现了数据库及其管理系统。这时人们也开始认识到了文档的重要性,出现了“软件”一词。随着软件复杂性的不断提高,甚至出现了人们难以控制的局面,即所谓软件危机。为了克服危机,人们采取了多种方法,特别是“软件工程”方法的出现。
软件工程出现以后迄今一直为第三阶段(1965年至今)。对于一些复杂的大型软件,采用个体或者合作的方式进行开发不仅效率低、可靠性差,且很难完成,必须采用工程方法才能适用。为此,从20世纪60年代末开始,软件工程得到了迅速的发展,还出现了“计算机辅助软件”、“软件自动化”系统等。目前,人们除了研究改进软件传统技术外,还在着重研究以智能化、自动化、集成化、并行化及自然化为标志的软件工程新技术。
3.软件的分类
按功能分,软件大致可以分为三类:系统软件、支撑软件和应用软件。
(1)系统软件。包括操作系统和各类语言的编译程序。它位于计算机系统中最接近硬件的层,其他软件只有通过系统软件支持才能发挥作用。它与具体应用无关。
① 操作系统。管理整个计算机系统的软、硬件资源,包括对它们进行调度、管理、监视、服务等,以改善人机界面,并提供对应用软件的支持。按功能分,操作系统可以分成多种类型,包括单用户操作系统和批处理操作系统,分时操作系统和实时操作系统,网络操作系统、分布式操作系统和并行操作系统等。
② 编译程序。把由程序人员编写的各类由高级语言书写的程序翻译成能与之等价的、可执行的机器语言代码。
(2)支撑软件。它是支撑其他软件开发与维护的软件。数据库管理系统、各类子程序库及网络软件等均为支撑软件。20世纪70年代中后期发展起来的软件开发环境则是支撑软件的代表,它主要包括环境数据库、各类接口软件和工具组。
(3)应用软件。各类用户为满足各自的需要开发的各种应用程序。如为进行数据处理、科学计算、事务管理、工程设计及过程控制所编写的各类应用程序。
软件是人类开发的各种程序和书写的文档,它是智力产品。随着硬件技术的不断发展和应用要求的日益提高,软件产品越来越复杂、庞大,如何来保证软件的准确性、友善性、高效率及智能化,是软件工作者始终努力的目标。