软件工程的发展历史_第1页
软件工程的发展历史_第2页
软件工程的发展历史_第3页
软件工程的发展历史_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1. 世界上第一个计算机程序员第一个写软件的人是Ada(Augusta Ada Lovelace ) , 在 1860 年代她尝试为Babbage(Charles Babbage )的机械式计算机写软件。尽管他们的努力失败了,但他们的名字永远载入了计算机发展的史册。 她的父亲就是那个狂热的, 不趋炎附势的激进诗人和冒险家拜伦。 她本身也是一个光彩照人的人物数学尖子和某种程度上的赌徒。她最重要的贡献来自于与发明家 Charles Babbage的合作,从而设计出世界上首批大型计算机 Difference Engine 和 Analytical Engine 。她甚至认为如果有正确的指令, Bab

2、bage的机器可以用来作曲,这是一个多么疯狂的想法,因为当时大多数人只把它看成是一个机械化算盘, 而她却有渲染力和感召力来传播她的思想。2. 现代计算机软件的出现20 世纪 50 年代,软件伴随着第一台电子计算机的问世诞生了。以写软件为职业的人也开始出现,他们多是经过训练的数学家和电子工程师。 1960 年代美国大学里开始出现授予计算机专业的学位,教人们写软件。在计算机系统发展的初期, 硬件通常用来执行一个单一的程序, 而这个程序又是为一个特定的目的而编制的。 早期当通用硬件成为平常事情的时候, 软件的通 用性却是很有限的。大多数软件是由使用该软件的个人或机构研制的,软件往往带有强烈的个人色彩

3、。 早期的软件开发也没有什么系统的方法可以遵循, 软件设计是 在某个人的头脑中完成的一个隐藏的过程。而且,除了源代码往往没有软件说明书等文档。3. 软件危机从 60 年代中期到 70 年代中期是计算机系统发展的第二个时期, 在这一时期软件开始作为一种产品被广泛使用, 出现了 “软件作坊” 专职应别人的需求写软件。这一软件开发的方法基本上仍然沿用早期的个体化软件开发方式, 但软件的数量急剧膨胀, 软件需求日趋复杂, 维护的难度越来越大, 开发成本令人吃惊地高, 而失败的软件开发项目却屡见不鲜。“软件危机”就这样开始了!“软件危机” 使得人们开始对软件及其特性进行更深一步的研究, 人们改变了早期对

4、软件的不正确看法。早期那些被认为是优秀的程序常常很难被别人看懂,通篇充满了程序技巧。 现在人们普遍认为优秀的程序除了功能正确, 性能优良之外,还应该容易看懂、容易使用、容易修改和扩充。1968 年北大西洋公约组织的计算机科学家在联邦德国召开的国际学术会议上第一次提出了“软件危机”(softwarecrisis)这个名词。概括来说,软件危机包含两方面问题: 一、如何开发软件, 以满足不断增长, 日趋复杂的需求; 二、如何维护数量不断膨胀的软件产品。4. 软件工程的提出专业文档供参考,如有帮助请下载。1968 年秋季, NATO(北约)的科技委员会召集了近 50 名一流的编程人员、计算机科学家和工

5、业界巨头,讨论和制定摆脱“软件危机”的对策。在那次会议上第一次提出了软件工程( software engineering )这个概念。软件工程是一门研究如何用系统化、 规范化、数量化等工程原则和方法去进行软件的开发和维护的学科。 软件工程包括两方面内容: 软件开发技术和软件项目 管理。软件开发技术包括软件开发方法学、软件工具和软件工程环境。软件项目管理包括软件度量、项目估算、进度控制、人员组织、配置管理、项目计划等。5. 传统软件工程为迎接软件危机的挑战, 人们进行了不懈的努力。 这些努力大致上是沿着两个方向同时进行的。一是从管理的角度, 希望实现软件开发过程的工程化。这方面最为著名的成果就是

6、提出了大家都很熟悉的“瀑布式”生命周期模型。它是在 60 年代末“软件危机”后出现的第一个生命周期模型。如下所示:分析 设计 编码 测试 维护后来,又有人针对该模型的不足,提出了快速原型法、螺旋模型、喷泉模型等对“瀑布式”生命周期模型进行补充。现在,它们在软件开发的实践中被广泛采用。这方面的努力, 还使人们认识到了文档的标准以及开发者之间、 开发者与用户之间的交流方式的重要性。一些重要文档格式的标准被确定下来,包括变量、符号的命名规则以及原代码的规范式。软件工程发展的第二个方向, 侧重与对软件开发过程中分析、 设计的方法的研究。这方面的重要成果就是在 70 年代风靡一时的结构化开发方法,即 P

7、O(面向过程的开发或结构化方法)以及结构化的分析、设计和相应的测试方法。软件工程的目标是研制开发与生产出具有良好的软件质量和费用合算的产品。费用合算是指软件开发运行的整个开销能满足用户要求的程度, 软件质量是指该 软件能满足明确的和隐含的需求能力有关特征和特性的总和。软件质量可用六个特性来作评价, 即功能性、可靠性、易使用性、效率、维护性、易移植性。6. 现代软件工程软件不是纯物化的东西,其中包含着人的因素,于是就有很多变动的东西,不可能像理想的物质生产过程, 基于物理学等的原理来做。 早期的软件开发仅考虑 人的因素,传统的软件工程强调物性的规律,现代软件工程最根本的就是人跟物的关系,就是人和机器(工具、自动化)在不同层次的不断循环发展的关系。专业文档供参考,如有帮助请下载。面向对象的分析、设计方法( OOA和 OOD)的出现使传统的开发方法发生了翻天覆地的变化。 随之而来的是面向对象建模语言 (以 UML为代表)、软件复用、基于组件的软件开发等新的方法和领域。与之相应的是从企业管理的角度提出的软件过程管理。 即关注于软件生存周期中所实施的一系列活动并通过过程度量、 过程评价和过程改进等涉及对所建立的 软件过程及其实例进行不断优化的活动使得软件过程循环往复、螺旋上升式地发展。其中最著名的软件过程成熟度模型是美国卡内基梅隆大学软件工程研究所 ( SEI)建立的 CMM( Capab

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论