《软件开发技术基础 第1章 软件开发方法.ppt》由会员分享,可在线阅读,更多相关《软件开发技术基础 第1章 软件开发方法.ppt(224页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第1 1章章 软件开发方法软件开发方法(一)软件概述(一)软件概述计算机教学实验中心计算机教学实验中心下一页上一页停止放映问题的提出问题的提出什么是软件什么是软件?软件有哪些特征软件有哪些特征?什么是软件危机?什么是软件危机?什么是软件生命周期?什么是软件生命周期?软件开发技术发展史软件开发技术发展史2 2下一页上一页停止放映1 1理解软件的概念及软件的特征理解软件的概念及软件的特征2 2了解软件生产的历史了解软件生产的历史3 3软件危机及项目失败的原因软件危机及项目失败的原因4 4了解软件的生命周期概念了解软件的生命周期概念5 5了解软件开发史了解软件开发史3 3下一页上一页停止放映软件(
2、软件(SoftwareSoftware)随着信息化、网络化和数字化时代的到来,随着信息化、网络化和数字化时代的到来,社会对社会对“软件软件”的需求激增。如今,世界的需求激增。如今,世界发达国家都把软件列为国家发展的关键技发达国家都把软件列为国家发展的关键技术领域。术领域。美国国家关键技术委员会将软件列为六大关美国国家关键技术委员会将软件列为六大关键技术之一;键技术之一;欧洲共同体将欧洲共同体将“软件和信息处理软件和信息处理”列为关键列为关键技术;技术;我国把信息产业放在优先发展的地位,看作我国把信息产业放在优先发展的地位,看作是中国发展高新技术、赶超世界先进水平是中国发展高新技术、赶超世界先进
3、水平的一次千载难逢的机遇。的一次千载难逢的机遇。4 4下一页上一页停止放映软件的基本概念软件的基本概念什么是软件?什么是软件?计算机系统由计算机硬件和软件构成。计算机系统由计算机硬件和软件构成。计算机神奇的功能是在软件的计算机神奇的功能是在软件的“指挥指挥”下创造出来下创造出来的。的。软件是各种程序和有关资料的总称。软件是各种程序和有关资料的总称。程序程序是:是:l为实现特定目标或解决特定问题而用计算为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合机语言编写的命令序列的集合l是人们求解问题的逻辑思维活动的代码化是人们求解问题的逻辑思维活动的代码化描述描述程序的最重要的目的是:程序
4、的最重要的目的是:便于阅读、交流便于阅读、交流5 5下一页上一页停止放映Roger S.Pressman Roger S.Pressman 对软件的认识对软件的认识“计算机软件已经成为一种驱动力计算机软件已经成为一种驱动力。它。它是进行商业决策的引擎;它是现代科学是进行商业决策的引擎;它是现代科学研究和工程问题寻求解答的基础;它也研究和工程问题寻求解答的基础;它也是鉴别现代产品和服务的关键因素。它是鉴别现代产品和服务的关键因素。它被嵌入在各类系统中:交通、医疗、电被嵌入在各类系统中:交通、医疗、电信、军事、工业生产过程、娱乐、办公、信、军事、工业生产过程、娱乐、办公、难以穷举。软件在现代社会中
5、确实难以穷举。软件在现代社会中确实是必不可少的。而我们在进入是必不可少的。而我们在进入2121世纪,世纪,软件将成为从基础教育到基因工程的所软件将成为从基础教育到基因工程的所有领域新进展的驱动器。有领域新进展的驱动器。”6 6下一页上一页停止放映软件的特征软件的特征软件是逻辑产品软件是逻辑产品软件产品质量的体现方式不同软件产品质量的体现方式不同软件产品的生命周期和失败曲线不同软件产品的生命周期和失败曲线不同软件产品的成本构成不同软件产品的成本构成不同大多数软件仍然是定制生产的大多数软件仍然是定制生产的软件产品的不同属性软件产品的不同属性7 7下一页上一页停止放映软件是逻辑产品软件是逻辑产品软件
6、产品是:软件产品是:具有产值、价格、质量和功具有产值、价格、质量和功能的特性能的特性看不见看不见,是逻辑的、无形的是逻辑的、无形的是脑力劳动的结晶是脑力劳动的结晶8 8下一页上一页停止放映软件产品质量体现方式不同软件产品质量体现方式不同质量体现方式不同:质量体现方式不同:实用、可靠、可操作性;实用、可靠、可操作性;可维护性强可维护性强方便用户方便用户不会折旧、损坏、老化不会折旧、损坏、老化9 9下一页上一页停止放映软件产品的成本构成不同软件产品的成本构成不同 12%需求率需求率4%生产率生产率开发人员开发人员 19791979年美国国防预算的年美国国防预算的9%9%用于计算机领域,约用于计算机
7、领域,约$113$113亿亿($1258($1258亿亿)。在这。在这$113$113亿中,亿中,$91$91亿用于软件投资(约占亿用于软件投资(约占80%80%),仅有不到),仅有不到$23$23亿用于购买硬件设备。亿用于购买硬件设备。10 10下一页上一页停止放映软、硬件失败曲线不同软、硬件失败曲线不同 11 11下一页上一页停止放映大多数软件产品仍然是定制生产大多数软件产品仍然是定制生产 硬硬件件产产品品的的生生产产技技术术和和工工艺艺已已经经成成熟熟,可可以以做做到到标标准准化化、系系列列化化成成批批生生产产,不不论论哪哪个个厂厂家家生生产产的的产产品品,用用户户买买来来都都可可以以集
8、集成成、组装和替换使用。组装和替换使用。尽尽管管软软件件产产品品复复用用是是软软件件界界孜孜孜孜不不倦倦追追求求的的目目标标,在在某某些些局局部部范范围围内内几几家家领领军军软软件件企企业业也也建建立立了了一一些些软软件件组组件件复复用用的的技技术术标标准准,例例如如,OMGOMG的的CORBACORBA、MicrosoftMicrosoft的的COMCOM和和DCOMDCOM、SUNSUN的的EJBEJB和和J2EEJ2EE,但但是是目目前前还还做做不不到到大大范范围围使使用用软软件件替替代代品品。大大多多数数软软件件仍然是为特定任务或用户定制的。仍然是为特定任务或用户定制的。12 12下一
9、页上一页停止放映软件产品的不同属性软件产品的不同属性 为为便便于于软软件件产产品品的的研研制制、生生产产、维维护护和和使使用,软件还必须具有用,软件还必须具有:可维护性(可维护性(MaintainabilityMaintainability)独立性(独立性(DependabilityDependability)效率性(效率性(EfficiencyEfficiency)可用性(可用性(UsabilityUsability)13 13下一页上一页停止放映软件分类软件分类软件按不同方式可以划分为软件按不同方式可以划分为不同的类型:不同的类型:按功能划分按功能划分按规模划分按规模划分14 14下一页上
10、一页停止放映按功能划分软件分类按功能划分软件分类 软件软件系统软件系统软件应用软件应用软件操作系统操作系统网络系统网络系统语言编译器语言编译器工具软件工具软件管理软件管理软件实时软件实时软件科学计算、数据处理科学计算、数据处理嵌入式软件嵌入式软件人工智能软件人工智能软件专用领域软件专用领域软件15 15下一页上一页停止放映系统软件系统软件是支持计算机系统正常运行并实现用户操作是支持计算机系统正常运行并实现用户操作的那部分软件。的那部分软件。一般是在计算机系统购买时随机携带的,也一般是在计算机系统购买时随机携带的,也可以根据需要另行安装。可以根据需要另行安装。系统软件的主要特征是:系统软件的主要
11、特征是:与硬件有很强的交互性与硬件有很强的交互性能对资源共享进行调度管理能对资源共享进行调度管理能解决并发操作处理中存在的协调问题能解决并发操作处理中存在的协调问题其中的数据结构复杂,外部接口多样化,其中的数据结构复杂,外部接口多样化,便于用户反复使用便于用户反复使用16 16下一页上一页停止放映系统软件例系统软件例操作系统(操作系统(Operating SystemOperating System)网络系统(网络系统(Network SystemNetwork System)语言编译系统(语言编译系统(Language CompilerLanguage Compiler)通信软件(通信软件(
12、Communications SoftwareCommunications Software)工具软件(工具软件(Tools SoftwareTools Software)17 17下一页上一页停止放映应用软件应用软件 应用软件是为满足用户不同领域、不应用软件是为满足用户不同领域、不同问题的应用需求而提供的那部分软件。同问题的应用需求而提供的那部分软件。它可以拓宽计算机系统的应用领域,放它可以拓宽计算机系统的应用领域,放大硬件的功能。大硬件的功能。应用软件具有无限丰富和美好的开发前应用软件具有无限丰富和美好的开发前景。景。18 18下一页上一页停止放映应用软件例应用软件例 事务处理软件事务处理
13、软件 实时软件实时软件 科学计算和数据处理软件科学计算和数据处理软件 嵌入式软件嵌入式软件 人工智能软件人工智能软件 19 19下一页上一页停止放映按规模划分软件分类按规模划分软件分类类别参加人员数研制期限产品规模(语句行数)实 例微型114周0.5k选择排序程序小型116月1k2k数值计算程序中型2512年5k10k汇编程序较大型52023年50k100k数据库系统大型100100045年1M操作系统极大型20005000510年1M10M空中交通管制系统2020下一页上一页停止放映软件开发技术发展史软件开发技术发展史 应用驱动是推进软件发展进程的主线应用驱动是推进软件发展进程的主线:从软件
14、发展早期的按个人意愿编写代码,到按从软件发展早期的按个人意愿编写代码,到按软件工程的理论生产大型应用系统;软件工程的理论生产大型应用系统;从手工作坊式的封闭性制作到按标准制式、大从手工作坊式的封闭性制作到按标准制式、大工业生产的开放系统;工业生产的开放系统;从注重个人精雕细琢地编写代码的技巧到注重从注重个人精雕细琢地编写代码的技巧到注重工程项目的管理和开发团队的协作;工程项目的管理和开发团队的协作;从为特定应用定制设计到以复用为目标的组件从为特定应用定制设计到以复用为目标的组件式开发;式开发;从由少数软件天才的编程艺术到由广大用户直从由少数软件天才的编程艺术到由广大用户直接参与的应用开发。接参
15、与的应用开发。21 21下一页上一页停止放映阶段划分阶段划分半个多世纪以来,软件及软件开发技术在半个多世纪以来,软件及软件开发技术在理论、观念、目标及技术方法等方面都发理论、观念、目标及技术方法等方面都发生了很大变化。生了很大变化。以以1010年左右为间隔,划分为五个阶段。详年左右为间隔,划分为五个阶段。详见表见表1-21-2。讨论每个时期软件开发技术的特点,包括讨论每个时期软件开发技术的特点,包括软件开发技术处理的对象、用途、目的、软件开发技术处理的对象、用途、目的、开发方法、开发工具、发展状况、技术突开发方法、开发工具、发展状况、技术突破、理论成就及目标等。破、理论成就及目标等。2222下
16、一页上一页停止放映第一阶段第一阶段2020世纪世纪 40-5040-50年代年代早期计算机是由只有硬件的“裸机”组成,计算机中不装任何软件。由于采用电子管作为逻辑电路的元器件,系统稳定性很差。那时人们只关心硬件的性能和技术指标,系统设计与实现是以硬件为中心,软件开发(实际上是程序设计)处于从属地位。2323下一页上一页停止放映软件主要特征软件主要特征处理对象:由处理对象:由“0”0”和和“1”1”组成的二进制序列组成的二进制序列 ;用途:主要是科学计算及军事应用(弹道计算);用途:主要是科学计算及军事应用(弹道计算);目的:目的:“确定计算机硬件动作的序列确定计算机硬件动作的序列”;开发方法:
17、经验主义;开发方法:经验主义;开发工具:机器语言;开发工具:机器语言;认识:计算机的用途是快速计算。认识:计算机的用途是快速计算。发展概况:机器语言、汇编语言、发展概况:机器语言、汇编语言、FORTRANFORTRAN语言;语言;技术突破:存储器技术、技术突破:存储器技术、“迭代迭代-反复反复”算法、观念转变算法、观念转变 ;理论成就:冯理论成就:冯诺依曼理论和图灵测试;诺依曼理论和图灵测试;目标:用最少资源来获得最大运算能力。目标:用最少资源来获得最大运算能力。2424下一页上一页停止放映阶段软件大事件阶段软件大事件19451945年年6 6月月3030日,冯日,冯诺依曼(诺依曼(John
18、von NeumannJohn von Neumann)在)在EDVACEDVAC计算机设计报告草计算机设计报告草案中介绍了存储程序的概念。案中介绍了存储程序的概念。19461946年年6 6月,冯月,冯诺依曼与高德斯坦等人发表了诺依曼与高德斯坦等人发表了电子计算机装置逻辑结构初电子计算机装置逻辑结构初探探的论文,成为的论文,成为EDVACEDVAC的设计基础。的设计基础。19501950年年1010月,图灵发表月,图灵发表计算机器与智能计算机器与智能(Computing Machinery and Computing Machinery and IntelligenceIntelligenc
19、e)论文,指出如果一台机器对于质问的响应与人类的响应完全无论文,指出如果一台机器对于质问的响应与人类的响应完全无法区别,那么这台机器就具有智能。今天,人们把这一论断称为图灵测试,它法区别,那么这台机器就具有智能。今天,人们把这一论断称为图灵测试,它奠定了人工智能的理论基础。奠定了人工智能的理论基础。19521952年霍普研制成功第一个编译程序年霍普研制成功第一个编译程序A-OA-O。19541954年年IBMIBM资助的一个委员会在资助的一个委员会在John BackusJohn Backus领导下开始研制高级语言,设计用领导下开始研制高级语言,设计用于科学与工程计算的于科学与工程计算的FOR
20、TRANFORTRAN语言。语言。19561956年年IBMIBM推出了推出了IBM704IBM704,其机器性能较以前的计算机有了显著提高。并且在其机器性能较以前的计算机有了显著提高。并且在其上首次运行了符号汇编程序其上首次运行了符号汇编程序SAPSAP,成为程序发展史上最有意义的事。它确立成为程序发展史上最有意义的事。它确立了汇编的基本形式。了汇编的基本形式。19571957年,在年,在IBM704IBM704上运行了第一个高级语言上运行了第一个高级语言FORTRANFORTRAN,至今还在使用。至今还在使用。19581958年,推出多个高级语言。有麻省理工学院(年,推出多个高级语言。有麻
21、省理工学院(MITMIT)的麦卡锡(的麦卡锡(John John McCarthyMcCarthy)为人工智能领域的应用而设计为人工智能领域的应用而设计LISPLISP语言;有第一个用于数控机床的语言;有第一个用于数控机床的编程的专用语言编程的专用语言APTAPT;还有用于商业数据处理的语言还有用于商业数据处理的语言Flow-Flow-MaticMatic。18581858年,年,Alex BernsteinAlex Bernstein等人在等人在IBM704IBM704机开发的第一个成熟的程序机开发的第一个成熟的程序象棋程象棋程序;有序;有Alan NewellAlan Newell等人使用
22、高级语言首次开发的模仿人类思维过程的程序;等人使用高级语言首次开发的模仿人类思维过程的程序;还有空中交通管理系统。还有空中交通管理系统。2525下一页上一页停止放映第二阶段第二阶段2020世纪世纪 6060年代年代由于硬件技术的发展,在电路设计中广泛采用晶体管和集成电路,使计算机的体积大大缩小,系统稳定性提高,价格降低。开始出现以屏幕显示器和键盘输入方式的商用计算机,促进了计算机的产、销量急剧上升。在软件领域,应用领域拓宽,社会对应用软件的需求急剧增加,软件的地位和作用不断提高,从而有力地推动了软件技术和开发方法的改进和发展。2626下一页上一页停止放映软件主要特征软件主要特征处理对象:高级语
23、言编写的程序处理对象:高级语言编写的程序 ;用途:科学计算、商务应用和数据处理;用途:科学计算、商务应用和数据处理;目的:目的:“确定计算机指令的动作序列确定计算机指令的动作序列”;开发方法:功能性程序设计;开发方法:功能性程序设计;开发工具:汇编语言、高级语言;开发工具:汇编语言、高级语言;认识:软件应独立于硬件;必须规范程序内部控制流;认识:软件应独立于硬件;必须规范程序内部控制流;发展概况:高级语言;编译技术;非数值商业应用;软件危机发展概况:高级语言;编译技术;非数值商业应用;软件危机技术突破:高级语言促进计算机应用技术突破:高级语言促进计算机应用 ;功能性程序设计技术;功能性程序设计
24、技术;理论成就:软件工程解决软件危机;结构化程序设计理论;理论成就:软件工程解决软件危机;结构化程序设计理论;目标:扩大程序系统的规模,以适应更复杂的应用。目标:扩大程序系统的规模,以适应更复杂的应用。2727下一页上一页停止放映阶段软件大事件阶段软件大事件19601960年,年,ALGOL60ALGOL60语言是使用递归的第一个面向过程的语言,用与数学语言是使用递归的第一个面向过程的语言,用与数学与科学计算。同年创建通用商用语言与科学计算。同年创建通用商用语言COBOLCOBOL。19611961年诞生了第一个模拟语言年诞生了第一个模拟语言GPSSGPSS。同年同年MITMIT在在 IBM7
25、090IBM7090上开发了第一上开发了第一个实验性分时系统个实验性分时系统CTSSCTSS(Compatible Time Sharing SystemCompatible Time Sharing System)。)。当时当时的的70907090只有只有3232K K内存,监控程序为内存,监控程序为5 5K K,剩下剩下2727K K给用户使用。给用户使用。CTSSCTSS支持支持3232个用户,对个用户,对 IBMIBM后来的操作系统产生了很大的影响。后来的操作系统产生了很大的影响。19621962年,年,在测试技术方面,在测试技术方面,AuerbackAuerback公司提供了最早的基
26、准程序公司提供了最早的基准程序BenchmarkBenchmark用于测试技术。同年,贝尔实验室研制了用语音谱图识别语用于测试技术。同年,贝尔实验室研制了用语音谱图识别语音。和能设计、存储及编辑合成音乐的软件。音。和能设计、存储及编辑合成音乐的软件。19631963年,贝尔实验室发明了能够专门处理字符串的年,贝尔实验室发明了能够专门处理字符串的SNOBOLSNOBOL语言。同年,语言。同年,花费了花费了8080亿美元的美国半自动防空系统(亿美元的美国半自动防空系统(SAGESAGE)研发成功投入使用。研发成功投入使用。19641964年年5 5月月1 1日,美国达特茅斯学院的凯梅尼和汤姆斯发明
27、推出了日,美国达特茅斯学院的凯梅尼和汤姆斯发明推出了BASICBASIC语言。同年,语言。同年,IBMIBM公司开发出报表生产程序公司开发出报表生产程序RPGRPG。后来有人认为后来有人认为RPGRPG是第四代编程语言的先兆。是第四代编程语言的先兆。IBMIBM经过经过7 7年努力,完成了航空订票系统,年努力,完成了航空订票系统,还在当年开发了计算机辅助设计系统。还在当年开发了计算机辅助设计系统。19651965年,开始了服务于大型分时系统的年,开始了服务于大型分时系统的MACMAC工程。后来发展成为工程。后来发展成为MulticsMultics操作系统。操作系统。同年,荷兰计算机科学家迪克斯
28、特拉同年,荷兰计算机科学家迪克斯特拉(DijkstraDijkstra)提出结构化编程技术,适合在软件的详细设计或低层设提出结构化编程技术,适合在软件的详细设计或低层设计及编码实现阶段采用。计及编码实现阶段采用。2828下一页上一页停止放映阶段软件大事件(续)阶段软件大事件(续)19661966年,年,IBMIBM公司的公司的P PH HHowardHoward提出英文字符识别系统,推动了文字识别提出英文字符识别系统,推动了文字识别技术的发展。技术的发展。R RCaseyCasey和和G GNagyNagy对汉字对汉字OCROCR(光学字符识别)进行了研究,光学字符识别)进行了研究,并提出二级
29、匹配的方法。并提出二级匹配的方法。19671967年,挪威计算中心的年,挪威计算中心的O OJ JDahlDahl和和K KNygaardNygaard用用ALGOLALGOL语言开发出语言开发出Simula67Simula67用于模拟应用,这是第一个面向对象语言。同年,美国科学家克用于模拟应用,这是第一个面向对象语言。同年,美国科学家克努斯经典著作努斯经典著作The Art of Computer ProgrammingThe Art of Computer Programming。把算法与数据结构把算法与数据结构作为独立实体从使用它们的程序中分离出来,开创数据结构,算法理论。作为独立实体从
30、使用它们的程序中分离出来,开创数据结构,算法理论。19681968年年1010月北大西洋公约组织(月北大西洋公约组织(NATONATO)的科学委员会在德国加尔密斯的科学委员会在德国加尔密斯(GarmischGarmisch)开会讨论软件可靠性及软件危机的问题,产生了关于开会讨论软件可靠性及软件危机的问题,产生了关于“软件软件工程工程”的加尔密斯报告,首次提出了的加尔密斯报告,首次提出了“软件工程软件工程”的问题。的问题。同年,荷兰同年,荷兰科学家埃德科学家埃德 EdsgarEdsgar W WDijkstraDijkstra在在 ACMACM通信上发表了通信上发表了“GOTOGOTO语句值得考
31、虑语句值得考虑的害处的害处”的论文,引发了一场关于结构化编程的大讨论。国际信息处理联的论文,引发了一场关于结构化编程的大讨论。国际信息处理联合会(合会(FPFP)鼓励使用六位数字的数据格式(鼓励使用六位数字的数据格式(YYMMDDYYMMDD)来表示日期进行信息来表示日期进行信息交换,从而造成交换,从而造成20002000年危机问题。同年年危机问题。同年Ivan EIvan ESuterlandSuterland提出窗口技术。提出窗口技术。19691969年,贝尔实验室的年,贝尔实验室的Dennis MDennis MRitchieRitchie和和K KThompsonThompson用用P
32、DP-7PDP-7汇编指令汇编指令编写了编写了UNIXUNIX的第一版本的第一版本V1V1。UNIXUNIX的发展对计算机界、尤其是对软件界产生的发展对计算机界、尤其是对软件界产生了巨大而深刻的影响。了巨大而深刻的影响。2929下一页上一页停止放映第三阶段第三阶段2020世纪世纪 7070年代年代这个时期计算机硬件的发展具有里程碑的意义,采用诸如大规模集成电路,分布式技术、网络技术、嵌入式等高新技术极大地提高了计算机系统的处理能力,特别是微处理器的诞生,开创了大众化使用计算机的新时代。该阶段软件的特征是:高性能的计算机系统对软件的功能和性能提出了更高的要求。3030下一页上一页停止放映软件主要
33、特征软件主要特征处理对象:小规模系统的程序设计处理对象:小规模系统的程序设计 ;用途:商务应用;网络互联;数据库应用;用途:商务应用;网络互联;数据库应用;目的:目的:“研究数据结构和算法以寻求处理的时研究数据结构和算法以寻求处理的时-空平衡空平衡”;开发方法:研究数据结构和算法;结构开发方法:研究数据结构和算法;结构 化开发方法;化开发方法;开发工具:高级语言;数据库技术;开发工具:高级语言;数据库技术;认识:平衡时认识:平衡时-空平衡复杂度;程序执行的停机;程序可读性;空平衡复杂度;程序执行的停机;程序可读性;发展概况:数据独立(文件、发展概况:数据独立(文件、DBDB););对复杂系统的
34、规格说明;对复杂系统的规格说明;技术突破:数据结构及算法技术突破:数据结构及算法 ;区分了应用软件和系统软件;区分了应用软件和系统软件;理论成就:数据结构及算法理论成就:数据结构及算法 理论;形式方法;软件工程方法;理论;形式方法;软件工程方法;目标:解决软件危机。目标:解决软件危机。31 31下一页上一页停止放映阶段软件大事件阶段软件大事件19701970年,年,Winston RoyceWinston Royce在他的在他的管理大型软件系统的开发管理大型软件系统的开发提出了著名的提出了著名的“瀑布模型瀑布模型”。同年,柯特(同年,柯特(E EF FCoddCodd)提出关系模型为关系数据库
35、技术的提出关系模型为关系数据库技术的发展打下基础。在编程语言方面,出现了用于系统程序设计的发展打下基础。在编程语言方面,出现了用于系统程序设计的 BLISSBLISS语言,用语言,用来编写编译程序和操作系统。来编写编译程序和操作系统。19711971年,瑞士联邦技术学院的伍尔斯教授发明了第一个结构化的编程语言年,瑞士联邦技术学院的伍尔斯教授发明了第一个结构化的编程语言PascalPascal,并用并用1717世纪法国著名科学家世纪法国著名科学家 BlaiseBlaise Pascal Pascal(帕斯卡)的名字命名。帕斯卡)的名字命名。同年,伍尔斯教授还提出同年,伍尔斯教授还提出“自顶向下、
36、逐步细化自顶向下、逐步细化”的结构化程序设计方法。的结构化程序设计方法。Friedrich IFriedrich IBauerBauer提出软件工程的定义:提出软件工程的定义:“确立并使用正确的工程原理和方确立并使用正确的工程原理和方法,以便能够经济地获得可靠而有效的软件。法,以便能够经济地获得可靠而有效的软件。”巴拿斯提出了信息隐藏的原巴拿斯提出了信息隐藏的原理,对软件工程的发展产生巨大影响。理,对软件工程的发展产生巨大影响。19721972年,出现三种有深远影响的编程语言:贝尔实验室的年,出现三种有深远影响的编程语言:贝尔实验室的 Dennis RitchieDennis Ritchie发
37、发明的明的C C语言。它在语言。它在Martin RichardsMartin Richards的的 BCPLBCPL语言和语言和 KenKen Tbompston Tbompston的的B B语言的基语言的基础上进行发展。最初的础上进行发展。最初的C C语言是为编写语言是为编写UNIXUNIX而设计的,并在而设计的,并在PDP-11PDP-11上首先实现。上首先实现。法国马赛大学的法国马赛大学的AlanAlan Colmeratuer Colmeratuer发明发明 PROLOGPROLOG语言,用于人工智能领域,其语言,用于人工智能领域,其在欧洲和日本比较流行。在欧洲和日本比较流行。Xer
38、oxXerox公司公司Palo AltoPalo Alto研究中心研究中心 Alan KayAlan Kay(艾兰艾兰凯)凯)发明的发明的 SmalltalkSmalltalk语言。它是一种面向对象的语言,适合使用鼠标工作的可视语言。它是一种面向对象的语言,适合使用鼠标工作的可视计算机系统计算机系统,它体现了与传统程序设计不同的观念及风格。同年,在计算机科它体现了与传统程序设计不同的观念及风格。同年,在计算机科学的理论方面,计算复杂性理论提出了学的理论方面,计算复杂性理论提出了NPNP问题的思想。提出对某些大规模的计问题的思想。提出对某些大规模的计算问题(如旅行商问题),其计算量是极其巨大的。
39、同年,华裔科学家王安发算问题(如旅行商问题),其计算量是极其巨大的。同年,华裔科学家王安发展了字处理系统。展了字处理系统。3232下一页上一页停止放映阶段软件大事件(续)阶段软件大事件(续)19741974年年G GJ JMyersMyers,W WStevensStevens,L LConstantineConstantine,E EYourdonYourdon等发展了结等发展了结构化设计(构化设计(SDSD)方法,基本思想是通过模块化建立一个结构良好的系统。同方法,基本思想是通过模块化建立一个结构良好的系统。同年,在斯得哥尔摩的象棋比赛中,计算机进行了首次赛事。年,在斯得哥尔摩的象棋比赛中
40、,计算机进行了首次赛事。19751975年,年,M MA AJacksonJackson提出提出JSPJSP方法,它是适合中小型数据处理系统进行模方法,它是适合中小型数据处理系统进行模块结构设计的一种方法。同年,块结构设计的一种方法。同年,Charles HCharles HMooreMoore发明了发明了ForthForth语言,它适合语言,它适合实时控制及工业机器人的编程。这一年还出现了实时控制及工业机器人的编程。这一年还出现了SPSSSPSS语言,用于社会科学的语言,用于社会科学的统计。勃洛克发表著作统计。勃洛克发表著作“人月的秘密人月的秘密”,提出在拖延了的项目中增加人员只提出在拖延了
41、的项目中增加人员只会使项目更为延期的观点。会使项目更为延期的观点。19761976年年B BW WBoehmBoehm又对软件工程给出定义:又对软件工程给出定义:“在软件(包括程序和文档)设在软件(包括程序和文档)设计、实现、测试、运行、维户的各个过程中建立在科学基础上的一套实用计、实现、测试、运行、维户的各个过程中建立在科学基础上的一套实用方法方法”。C CA AHoareHoare则认为软件工程是则认为软件工程是“一种导致电子数字计算机具有强大一种导致电子数字计算机具有强大功能的艺术,这种功能表现为人可以方便地使用计算机功能的艺术,这种功能表现为人可以方便地使用计算机”。19771977年
42、,美国国家计算机和信息处理标准委员会(年,美国国家计算机和信息处理标准委员会(ANSC-X3ANSC-X3)制定信息交换代制定信息交换代码码ASCIIASCII的标准的标准X3.4-1977X3.4-1977。19791979年,在美国国防部新语言的评审中,法国人年,在美国国防部新语言的评审中,法国人JeanJean Ichbiah Ichbiah主持设计的绿主持设计的绿色语言色语言HoneywellBullHoneywellBull最后获胜。同年最后获胜。同年5 5月,以对编程做过重大贡献的爱达月,以对编程做过重大贡献的爱达拉夫拉斯伯爵夫人的名字命名新语言拉夫拉斯伯爵夫人的名字命名新语言Ad
43、aAda。还是在这一年,贝尔实验室的还是在这一年,贝尔实验室的L LR RRabinerRabiner等利用聚类技术开发了不定人的英语识别系统。等利用聚类技术开发了不定人的英语识别系统。3333下一页上一页停止放映第四阶段第四阶段2020世纪世纪 8080年代年代这个时期计算机硬件的发展体现在个人计算机和计算机网络。该阶段软件发展的特征是:个人计算机应用软件异军突起,形成信息产业中新的增长点。伴随微处理器和嵌入式系统的发展,计算机应用开始深入我们的日常工作和生活。旺盛的市场需求和政府企业甚至广大百姓的资金投入,孕育了大量软件企业。市场竞争和市场经济规则促进了软件产品功能更强,质量更高,性能价格
44、比更好。大型机(包括中、小型机)软件向个人计算机上移植,从而为软件提供了更广阔的发展空间和巨大的用户市场。3434下一页上一页停止放映软件主要特征软件主要特征处理对象:大型系统的程序设计处理对象:大型系统的程序设计 ;用途:关系数据库应用;各领域计算机应用;用途:关系数据库应用;各领域计算机应用;目的:大众化普及应用计算机;目的:大众化普及应用计算机;开发方法:构造系统方法;用标记工具描述系统;文档是开发方法:构造系统方法;用标记工具描述系统;文档是 管理系统结构的主要手段;管理系统结构的主要手段;开发工具:高级语言;基于开发工具:高级语言;基于PCPC的开发工具;早期的开发工具;早期CASE
45、CASE工具;工具;认识:软件生命周期;强调开发组协作的重要性;认识:软件生命周期;强调开发组协作的重要性;发展概况:软件工程研究机构;发展概况:软件工程研究机构;CASECASE环境;图形界面系统;环境;图形界面系统;技术突破:技术突破:C/SC/S计算模式计算模式 ;GUIGUI图形用户界面;图形用户界面;理论成就:理论成就:RDBRDB的理论;的理论;软件工作量度量软件工作量度量COCOMOCOCOMO;软件过程软件过程改进模型改进模型CMMCMM;目标:开发更大规模和复杂性软件系统,满足应用的需求。目标:开发更大规模和复杂性软件系统,满足应用的需求。3535下一页上一页停止放映阶段软件
46、大事件阶段软件大事件19801980年年8 8月,经过长期的努力,由美国国防部确定把月,经过长期的努力,由美国国防部确定把ADAADA语言用于过程控制与嵌语言用于过程控制与嵌入式应用。入式应用。19811981年,年,B BW WBoehmBoehm出版了出版了软件工程经济学软件工程经济学,提出构造费用模型,提出构造费用模型(COCOMOCOCOMO)作为软件的价格估计模型。引起了软件度量的发展。同年,作为软件的价格估计模型。引起了软件度量的发展。同年,R RAbbottAbbott总结了面向对象的设计方法学。在这一年,美国总结了面向对象的设计方法学。在这一年,美国 Ashton TateAs
47、hton Tate公司推出公司推出关系数据库关系数据库dBASEdBASE,并迅速赢得世界范围内的巨大市场。并迅速赢得世界范围内的巨大市场。19811981年,年,IBMIBM公司推出个人计算机公司推出个人计算机IBM PCIBM PC,选,选MicrosoftMicrosoft公司的公司的MS-DOSMS-DOS作为其个作为其个人计算机的操作系统,并将其命名为人计算机的操作系统,并将其命名为PC-DOSPC-DOS。从而为从而为Bill GatesBill Gates的的MicrosoftMicrosoft公司的发展开辟一条通往成功的道路。公司的发展开辟一条通往成功的道路。19811981年
48、,中国颁布了年,中国颁布了信息交换用汉字编码字符集信息交换用汉字编码字符集基本集基本集,国家标准代号,国家标准代号GB2312-80GB2312-80。19821982年,年,John WarnockJohn Warnock开发了开发了 PostscriptPostscript的页面描述语言,该语言后来形成的页面描述语言,该语言后来形成著名的著名的 AdobeAdobe系统。同年,系统。同年,Autodesk Autodesk 公司推出了计算机辅助设计系统公司推出了计算机辅助设计系统AutoCADAutoCAD第一版。第一版。19831983年,王永民发明了年,王永民发明了“五笔字型五笔字型”
49、汉字输人法。汉字输人法。AT&TAT&T公司公布了公司公布了UNIX UNIX System VSystem V,伯克利分校公布了伯克利分校公布了4.24.2BSDBSD。同年,同年,AppleApple公司推出鼠标操作的图标公司推出鼠标操作的图标及下拉式菜单的工作方式,开创了图形操作界面的先河。及下拉式菜单的工作方式,开创了图形操作界面的先河。19831983年,贝尔实验室发展了年,贝尔实验室发展了C+C+语言,既在语言,既在C C语言的基础上增加了面向对象程序语言的基础上增加了面向对象程序设计所需要的抽象数据类型设计所需要的抽象数据类型类。类。19841984年,年,Fox Softwar
50、eFox Software公司推出公司推出 PCPC关系数据库系统关系数据库系统FoxBASEFoxBASE。同年,同年,NovellNovell公公司推出局域网络管理系统司推出局域网络管理系统Netware V1.0Netware V1.0。3636下一页上一页停止放映阶段软件大事件(续)阶段软件大事件(续)19841984年年1010月月1515日,国际标准化组织日,国际标准化组织ISOISO制定了开发系统互连参考模型制定了开发系统互连参考模型OSI/RMOSI/RM,即,即ISO7498-1ISO7498-1。它从逻辑上把网络功能分成七层。同年,计算机图形学在它从逻辑上把网络功能分成七层