现代软件工程简史报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

现代软件工程简史报告
姓名:郑富洋
学号:1004196113
提交时间:2020年4月14
无“软件”概念阶段 1946-1955
软件危机阶段1956-1970
软件工程阶段1970-今
面向对象阶段1990-今
软件是由计算机程序和程序设计的概念发展演化而来的,是在程序和程序设计发展到一定规模并且逐步商品化的过程中形成的。

软件开发经历了程序设计阶段、软件设计阶段和软件工程阶段的演变过程。

(一)程序设计阶段(无“软件概念”阶段)
程序设计阶段出现在1946年~1955年。

此阶段的特点是:尚无软件的概念,程序设计主要围绕硬件进行开发,规模很小,工具简单,无明确分工(开发者和用户),程序设计追求节省空间和编程技巧,无文档资料(除程序清单外),主要用于科学计算。

(二)软件设计阶段(软件危机阶段)
软件设计阶段出现在1956年~1970年。

此阶段的特点是:硬件环境相对稳定,出现了“软件作坊”的开发组织形式。

开始广泛使用产品软件(可购买),从而建立了软件的概念。

随着计算机技术的发展和计算机应用的日益普及,软件系统的规模越来越庞大,高级编程语言层出不穷,应用领域不断拓宽,开发者和用户有了明确的分工,社会对软件的需求量剧增。

但软件开发技术没有重大突破,软件产品的质量不高,生产效率低下,从而导致了“软件危机”的产生。

(三)软件工程阶段
自1970年起,软件开发进入了软件工程阶段。

由于“软件危机”的产生,迫使人们不得不研究、改变软件开发的技术手段和管理方法。

从此软件产生进入了软件工程时代。

此阶段的特点是:硬件已向巨型化、微型化、网络化和智能化四个方向发展,数据库技术已成熟并广泛应用,第三代、第四代语言出现;第一代软件技术:结构化程序设计在数值计算领域取得优异成绩;第二代软件技术:软件测试技术、方法、原理用于软件生产过程;第三代软件技术:处理需求定义技术用于软件需求分析和描述。

(四)面向对象阶段
面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流。

面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。

如数据库系统、交互式界面、应
用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。

(一)无“软件”概念阶段
二战前夕,计算机的发展还并不是特别迅速,但正是二战的爆发,在一定程度上促进了计算机技术的发展与进步。

二战德国是主要国家之一,为了侵略别国,实现霸权,德国加大对军事力量的科技投入,这些都在一定程度上增强了德军的作战力量,这就导致同盟国在内的英国,美国等国家纷纷进行计算机方面的科研。

陆,海,空,作战计算技术得到了更加精准地提高,计算机因为加密和反加密而得到了迅速的发展。

在战争的冲突下,各国对于军事方面譬如弹道学,密码破解与分析的需求激增,而计算机恰好可以在一定程度上解决这些问题。

获取情报,精准打击,都与数字计算机和模拟计算机有关,这些都缩短了二战的进程,尤其是美国向日本投掷两枚原子弹,离不开开计算机在美国的迅速发展。

二战后,计算机的发展备受全世界瞩目,美国则首先发明了通用电子计算机,而它则是美国国防部用来进行弹道计算的重要手段。

之后全球范围都掀起了计算机潮流,纷纷涌入其中,创建了更适合人们操作的一系列高级语言,在这些语言的支持下,诞生了精彩纷呈的现代计算机景象。

——软件产生的时代背景无“软件”概念阶段出现在1946-1955年期间。

二战后世界各国进入计算机的研发工作中,当时的计算机需要设定一定的开关,操作人员需要按照图纸手动操作计算机,因为程序是被人们通过开关设置在这个计算机上的,下一次操作时,若想更换程序,还需要再设置一次。

在这一时期,人们的主要集中力放在硬件上,所以没有出现对软件开发专门方法与技术的需求,也就没有出现被普遍使用的软件开发方法与技术。

(二)“软件危机阶段”
冯诺依曼发表关于EDV AC的报告,提出了一种观念:程序也可以像数据一样存放在计算机内。

从此软件与硬件逐渐脱离开,软件不再是硬件的附属。

到了60年代,人们开始逐渐认识到,(1)软件不是硬件,软件与现实世界关系更加密切,对需求的格式化更加困难(2)软件比硬件容易修改的多,并且不需要昂贵的生产线复制产品,我们想修改软件的时候,只需要修改源文件,然后把它重新编译。

(3)
软件没有损耗。

尽管软件拥有这些优点,但是对软件开发成本和进度的估计常常不准确,开发成本超出预算的现象并不罕见,软件的可维护程度非常低,并且通常没有适当的文档资料,软件开发生产率落后于硬件的发展,无法满足人们的需求。

在60年代末,1968年的会议主要分析了软件生产中的问题,提出了“软件危机”的说法,并着重讨论了其解决方法,提出“软件工程”(Software Engineering)概念,即用工程的方法生产软件。

(三)软件工程阶段
在这期间,流行一种说法,即程序=数据结构+算法。

70年代,人们提出结构化的方法,来让早期冗杂的代码拥有更加清晰的结构。

为了解决项目没法控制成本和进度的问题,人们提出瀑布模型。

为了解决60年代软件缺陷太多的问题,70年代人们用数学的方法来证明软件中没有问题,提出形式化的方法。

(四)面向对象阶段
由于传统结构化方法学不能解决软件产品规模越变越大的问题,以及交付后维护并不能满足期望,软件复用程度低,提出了面向对象的思想(object-oriented),具有如下特点:
1:对现实世界中的尸体或者概念对象进行建模
2:对象各负其责
3.对象通过消息进行协同,完成复杂的任务
相比结构化方法,面向对象范型技术直观,自然,简单,支持递增式开发和软件重用,软件结构更科学,更能适应未来变化。

相关文档
最新文档