1、Windows 操作系统最新补丁大全摘要:通过对计算机软件发展的四十多年历史的回顾,详细论述其发展的三个不同阶段:开创阶段、稳定阶段以及发展阶段的过程与特点,让读者了解计算机软件发展的特性与历史,从而更好地掌握计算机软件的开发与应用。关键字:计算机软件、计算机语言、软件开发自软件开发到现在已有四十多年历史了,在整个软件发展历史过程中,已经取得了划时代的成就,为了更好的理解计算机软件是计算机的灵魂并了解她的今天,这里让我们一起来回顾她的昨天。我们将悠久的计算机软件历史分成三个阶段:开创阶段:年到年稳定阶段:年到5 年发展阶段:5 年到现在开创阶段计算机在年出现时,占地百余平方米,用电数千瓦,价值
2、百万美元,而运行速度只有每秒千次,但它却为破译密码和武器弹道运算立了大功。六十年代大型计算机已发展到每秒百万次以上,能够进行快速复杂的计算,随着科研、金融和政府部门的需要而逐步形成了较大的计算机市场。而计算机软件历史真正开始是在美国和欧洲的实验室里,大多数研究结果也产生于实验室。它们多数来自于学术界,其余产生于政府和私人公司。在年到年这个期间,运算速度越来越快、价格越来越便宜的新计算机不断涌现,软件工作人员就需要不断针对不同计算机写出新的软件。这种变化速度令软件人员应接不暇。在此阶段,计算机硬件向着专门用途发展,科学与商业领域需要的是完全不同的机器硬件。商业计算机具有变字长的特性,即有“清字标
3、记”和“置字标记” ,指令集为十进制。而科学计算机使用的是固定字长,当时定 36 位为一个字,而不是采用二进制计算。这种不同用途的机器使用不同字长,这给编程带来难以想象的困难。频繁重写相同的软件触发了另一思想软件移植,工业界中的软件研究人员试图将一台机器上汇编语言自动移植到另一台,但是却失败了。原因是 60%或 80%代码较容易移植,而余下的 40%或 20必须人工移植,又是较复杂的代码,因此非常困难。多年来仍然不能完全解决问题,直到高级语言的产生。最早发布的 FORTRAN 语言在五十年代中期诞生的,五十年代后期出现了第一版 COBOL 语言,而 ALGOL 语言产生于六十年代早期。当时,高
4、级语言不能被编制人员所接受,他们认为真正的编程人员应当使用汇编语言。之后,软件业从计算机工业中独立出来,成为一枝新秀。那时,硬件厂商开放了他们的系统软件(由于没有这种开放,不能进一步推销他们的产品) ,有几个公司开始提供定制软件的服务,然而那时没有专门经销软件的公司。由于软件免费,用户相互赠送,使软件不断重用与推广,并鼓励共享软件的发展。例如,IBM 科学用户组织 SHARE 提供了软件重用的目录清单,包含了三角函数分类和合并计算的多个数学程序,并对进入了 SHARE 目录中的软件产品,能给予此领域的最高荣誉。年代初期,学术上还没有计算学科、计算机科学和信息系统,然而却在实践中产生了以后称为“
5、软件工程”的萌芽。软件工作者开始学习模块编程的方法,并涵盖了基本数据结构有关的子程序,从而使其易访问。现在,人们称为数据提取,并进一步拓宽到面向目标,但是那时的软件人员就已经意识到它的思想与价值。此阶段,曾经出现过软件危机。即软件方面投入的资金和人力无法控制,软件开发完成的时间无法确定,软件的可靠性等等。例如,年月日美国飞往金星的火箭控制系统中的指令,DO 5 I = ,3 误写成 DO 5 I = 1.3,使火箭偏离轨道,被迫炸毁。此阶段是激动人心的年代,随着计算机硬件以令人生畏和惊奇的快节奏发展,计算机软件在计算机业中越来越占据着重要的地位,她开创了自己的事业,从计算机业中独立出来。稳定阶
6、段这期间,出现了 IBM 等计算机大公司,是大型机硬件导向占主导地位的阶段。此时计算机成为专业人员使用的专门设备,普通老百姓用不了,也用不起。年产量不足数万台,市场有限,这样 IBM360 计算机将软件工业带入了稳定发展阶段。IBM360 采用了系列机的思想,开创了 CISC 时代(复杂指令系统计算机) ,目的能使指令系统兼容。新型机或高档机的指令系统在原有机型上只能扩充而不能减少任何一条指令,以达到软件兼容的目的,这样就导致日趋庞大的指令系统使计算机硬件的研制周期变长、运行速度慢、可靠性差、难以调试和维护。为了改进,提出了 RISC(精简指令系统计算机)技术。RISC 技术使指令数量大大减少
7、,再加上一些其他措施(如指令系统面向寄存器,使数据能直接存储) ,从而大大减少指令执行所需要的周期数,极大的提高了计算机的计算速度。同时 IBM360 机为软件领域带来了重要发展。它使科学与商业应用合二为一,且同时使用十进制和二进制两种算法,它不再有讨厌的变字长。随后,又产生了笨重的工作控制语言(JCL) ,使程序员只要把卡片塞进读卡机,然后按“启动”就可以运行程序。JCL 要求用全新的语言编写程序,它能告诉计算机和操作系统按人的需求做相应工作。JCL 太繁琐,这也许因为它包括了科学和商务所需的一切服务功能。然而 JCL 是 360 机上最不受欢迎的程序语言。随着 360 机汇集科学和商务应用
8、在一台计算机上,IBM 也希望将所有的计算机语言合成一种语言。PL/1 就这样诞生了,它不仅包含科学计算FORTARN 和商务计算 COBOL 语言的功能,而且还具有新生语言 ALGOL 的功能。除了 IBM360 带来的软件发展外,在稳定阶段,形成了软件的独立经销。几个敢于冒险的软件商开始销售他们的软件产品。这在当时极其不易,因为硬件厂商为阻碍软件发展,防止软件分离以形成独立行业,故意将软件的价格压得很低,无利润可赚。随着软件领域的稳定发展和新软件产品的问世,它们逐渐成为公司和市场的商品,价值连城。软件维护与更新也成为一项日益重要的工作。从而形成了计算机软件市场经济。稳定阶段中开始出现了计算
9、机学科的学术讨论。第一个计算机科学程序在六十年代晚期奠基,不久以后又编制了第一个管理信息系统程序。当时计算机软件工程还没有从计算机学科中分离出来,直到微型计算机年代才独立成为一门学科。尽管当时没有形成学科,然而软件工程研究一直在进行,重点聚集在计算机语言的问题上。在此阶段,一些计算机科学家大力宣传他们引入的新思想。人工智能就是第一个竭力宣扬的学科,即称之为“有知觉”的机器,可以模仿人类大脑的功能,并期望代替人类大脑去做任何事情。随后又出现了“控制领域”的议题。反控制反垄断的战斗打响了,美国司法部门起诉 IBM 公司,声称它发展太快,且正在垄断计算机行业。当时,许多人将硬件工业比喻为“白雪公主和
10、七个小矮人” ,这里 IBM 是白雪公主,其他计算机硬件小公司是七个小矮人。例如 RGA、GE 和 Xeroe等等公司。这些小公司逐渐萎缩,直到从计算机行业中消失。标准化组织也成为当时反控制反垄断的急先锋。它坚持只有统一计算机标准,各个公司才能参与并达到公平竞争。同时,软件商与硬件商也开始竞争。硬件商努力保持软件的低价,以阻碍软件行业的形成。但是无论怎样阻挡,总有一些软件商脱颖而出,成为胜利的娇娇者。此阶段由于计算机硬件变化节奏缓慢一些,属于较平稳的年代,计算机软件随着平稳发展,并确立软件在市场的重要地位,成为商品并逐渐变得被人们理解和接收。发展阶段此阶段是再一次激动人心年代,计算机已经普及和
11、无处不有,同时软件业在计算机行业成为不可缺少部分并取得了辉煌胜利。这个阶段是软件发展过程中最重要的时期。因为 PC 机和工作站以半年更新一代的令人目不暇接的速度,势不可挡地入侵小型机、中型机甚至大型机领域,从而使计算机无处不在,计算机走出了象牙塔,走进了平常百姓家庭,走进了普通人办公室。在家里、办公室、银行、邮局等生活工作的周围,处处可见计算机的应用业绩,普及流行速度极快,蓬勃向前。过去存在的大量问题被解决了。老的 JCL 问题已经由友好用户、友好程序界面解决。图形用户界面(GUI)普及与流行,业已成为八十年代计算机领域最伟大的功绩。以前的 FORTRAN 和 COBOL 语言都没能解决用户界
12、面的友好问题,而可视化软件编程才改变了这一现状。由于 VLSI 的迅速发展,RISC 的控制器又很简单,这就使 RISC 能集成在一个芯片上。CISC 控制器需占芯片面积 50%以上,而 RISC 的控制器仅占 6 - 10%,这使 RISC 芯片具有极高的性能。到九十年代 RISC 技术被引入了到机内,使同样功能的计算机成本只有 CISC 的一半不到。随着VLSI 进一步发展,已使巨型机上使用的并行处理技术能融入到 RISC 中。一方面采用新材料、新工艺,进一步提高主频,另一方面采用了超级流水线技术、并行流水线技术和超长指令字 VLIM 技术,极大地提高了 RISC芯片的并行处理能力,使 R
13、ISC 进入了具有划时代的时期。软件作用和价值牢固地树立起来了。人工智能、知识工程、专家系统以及神经网络领域的研究得以发展与深化。软件市场在世界范围内比较快的速度增长,在美国犹他州已出现以软件为主的第二高技术产业区。目前软件的发展速度已超过硬件产业,占信息产业的主导地位。美国垄断世界软件市场的格局,一时很难发生变化。微软公司软件巨头比尔.盖茨在五年前已成为美国首富,现在又是世界首富。随着市场分割,过去反控制反垄断的竞争也被分解了。IBM 公司成为大型机之首;Intel 公司是计算机芯片之王,也可以称为计算机硬件之王;Microsoft 公司成为微机软件之冠。但是希望成为大型机软件之王的竞争仍然
14、在继续。软件特性体现为:软件进入结构化生产时期,以结构化分析和设计,结构化评审,结构化程序设计以及结构化测试为特征;从八十年代中期开始,软件生产进入以过程为中心的开发阶段;从 1995 年开始,逐步进入以软件过程,面向对象和构件重用等技术为基础的软件工业化生产时代。此阶段软件业绩为:1)软件重用技术软件重用的目的是使非结构化、非标准化程序变为结构化、标准化,并形成大量能重用的计算机构件和模块。软件重用技术使软件的开发基本上变成了搭积木,把需要的对象和功能模块拼起来即可。它节省了大量的人力与物力,减少了重复开发。这种技术可以应用在数据库管理和信息系统管理上,Microsoft Access 等软
15、件均采用此软件技术,它们集成了大量应用的基本构件和模块便于重用。只有可维护性软件才有可能最大限度地重用,而重用部分越多,维护成本越低,效率就越高。不可维护性到可维护性软件的重构是维护方法学的关键。最大限度地重用现存软件是软件维护方法学的重要思想原则。可重用是可维护性的基本属性和最大特征。就软件重用而言,可有四个层次的重用:(1)开发过程重用主要指开发规范、开发方法及工具、软件标准等的重用,也称为开发支持环境重用。(2)软件构件重用这里软件构件指文档、程序及数据。应该将软件构件可重用性作为主要设计指导思想。(3)用户业务知识重用用户现存系统的业务处理过程、特定专业领域的需求特征等知识的重用。(4
16、)市场知识重用应用领域标准、行业标准、市场规律知识的重用。2)面向对象技术 八十年代中期以来,各个领域的发展和变化越来越快,对应用软件不断提出新的功能要求,这就使以功能为基础的软件体系改动较大,甚至推倒重来。八十年代末发现,使用面向对象技术能极大的提高软件的可维护性。而且它还有很多其他的优点,例如提高软件开发率,提高软件的可靠性和安全性等等。面向对象技术获得了极大欢迎,终于成为九十年代软件界最大的热点。随着发展,面向对象技术形成了 OOP(面向对象编程) 、OOD(面向对象设计) 、OOA(面向对象分析) ,成为完整的软件开发方法学。现实世界中的事物抽象到问题空间就称为对象。在面向对象技术中,
17、对象被定义为“对一组信息和在其上的操作” ,其中的信息就是数据,它反映的是对象的属性状态,操作则是对对象的处理。面向对象系统就是由对象组成的复杂系统,系统中所有对象的状态共同构成系统的状态,对象总是从一个初始状态出发,在对象之间的相互作用过程中不断改变着自身的状态。一个对象请求另一个对象执行某一处理或回答某些信息的要求称为“消息” ,对象与对象之间的相互作用就是通过消息来实现的。面向对象技术的最大优点就是软件的可维护性好。3)集成工具与 CASE 技术今天,已将过去单个的工具集成在一个系统中,用于软件开发,形成了集成工具。例如,我们经常使用的字处理工具,它只有一个工具菜单,但是却包含拼写检查、
18、语法检查、词库和字词计数等功能。我们期待用于软件开发的系统收集了所有必需的工具,它必须支持文本和图像,也含有相关的数据库,能自动移植并进行计算机低层设计等。编程系统不仅含有编译程序,还应该支持编辑、调试与测试,最好能支持程序建立并在建立过程中检测它们的结构。而 CASE 技术,即称谓“支持软件工程方法学的计算机辅助手段” 。它为实现从软件工程诞生起就面临着如何组织人员进行集体作业和如何逐步代替人进行编程的两大任务。而且首先是解决前者确定有次序、有效率、科学的工程作业方法,然后才能一步步用计算机取代各工程阶段的人工编程。软件工程的最终目的就在于软件自动化。CASE 技术有两个突出特点,使开发支持
19、工具与开发方法学统一和结合起来,通过实现分析、设计、程序开发与维护的自动化,提高整个软件开发工程的效率。如果方法驱动器理论得以实现,软件自动化将成为现实。尽管目前真正实现的还仅限于方法指导系统,但 CASE 的迅速发展仍超出了辅助软件工程的范围。综上所述,CASE 的发展有待于软件工程方法的发展。它不仅给传统软件工程方法以新生,也推动着各种软件工程方法的演变、合并和淘汰,为新软件工程方法理论实用化开辟着道路。所以今后的软件工程应是“方法学+CASE 技术” ,两者共同协助开发人员控制和管理软件。当方法驱动器理论变为现实后,CASE 与软件自动化可能会变成同义词。虽然今天的软件自动化尚不完全,但为了区别传统软件工程,我们以更明确的 CASE软件工程概念来表述 CASE 与软件工程方法学的结合。