今天,软件担任着双重角色。它是一种产品,同时又是开发和运行产品的载体。作为一种产品,它表达了由计算机硬件体现的计算潜能。不管它是驻留在蜂窝电话中,还是操作在主机上,软件就是一个信息转换器——产生、管理、获取、修改、显示或转换信息,这些信息可以很简单,如一个单个的位(bit),或很复杂,如多媒体仿真信息。作为开发运行产品的载体,软件是计算机控制(操作系统)的基础、信息通信(网络)的基础,也是创建和控制其他程序(软件工具和环境)的基础。
许多人相信21世纪最重要的产品是——信息,软件充分体现了这一观点。它处理个人数据(如个人的金融事务),使得这些数据在局部范围中更为有用;它管理商业信息增强了商业竞争力;它提供了通往全球信息网络(如Internet)的途径;它也提供了以各种形式获取信息的手段。
计算机软件的角色在20世纪后半叶发生了很大的变化。硬件性能的极大提高,计算机体系结构的不断变化,内存和硬盘容量的快速增加,以及大量输入输出设备的多种选择,均促进了更为成熟和更为复杂的基于计算机的软件系统的出现。如果一个系统是成功的,那么这种成熟性和复杂性能够产生出奇迹般的结果,但是它们也给建造这些复杂系统的人员带来很多的问题。
