第1章 软件工程介绍
1.1软件角色的演化
现在的软件技术具有产品和产品生产载体的双重作用。作为一个产品,它显示了由计算机硬件体现的计算能力,更广泛地说,显示的是由一个可被本地硬件设备访问的计算机网络体现的计算潜力。无论是在手机还是在大型计算机中,软件都扮演着信息转换的角色:产生、管理、���询、修改、显示或者传递各种不同的信息——简单如几个比特的传递或复杂如多媒体演示。而作为产品生产的载体,软件提供了计算机控制(操作系统)、信息通信(网络)以及应用程序开发和控制(软件工具和环境)的基础平台。
软件传递了我们这个时代*重要的产品——信息。它转换个人数据(例如个人金融交易)以便信息在一定范围内发挥更大的作用;它通过管理商业信息提升竞争力;它为世界范围的信息网络提供通路(比如因特网),并对各类格式的信息提供不同的查询方式。
计算机软件的地位在50多年的时间中发生了很大的变化。硬件性能的极大提高、计算体系结构的巨大变化、内存和存储容量的扩大、还有种类繁多的输入和输出方法都使得计算机系统的结构变得更加复杂,功能更加强大。如果系统开发成功,复杂的结构和功能可以产生惊人的效果,但是同时复杂性也给系统开发人员带来巨大的挑战。
人们对计算机和软件及其对文化的冲击的理解发生了很大的变化,20世纪70、80年代出版的一些畅销书对此提出了历史性的见解。0sborne[0sB79]称之为“新的工业革命”;Toffier[TOF80]称微电子是人类历史上“第三次浪潮”的一部分;Naisbitt[NAl82】更预言了工业社会到“信息社会”的变革。Feigenbaum和HMcCorduck[FEl83]认为信息和知识(由计算机控制)将成为21世纪能源的焦点。Stoll[ST089]认为由网络和软件构建的“电子社区”将是世界范围内知识交换的关键。这些作者的观点都是客观正确的。
20世纪90年代伊始,Toffier[TOF90]描述了一种“权力移交”的现象:计算机和软件带来了“知识的民主化”,随着这种变化,传统的高度集中的权力结构(政府,教育,工业,经济,军事)被分化了。Yourdon[YOU92]曾忧虑美国公司会丧失他们在软件相关产业的竞争优势。
……