第1章软件开发方法(一)软件概述

上传人:ldj****22 文档编号:48834386 上传时间:2018-07-21 格式:PPT 页数:59 大小:731.50KB
返回 下载 相关 举报
第1章软件开发方法(一)软件概述_第1页
第1页 / 共59页
第1章软件开发方法(一)软件概述_第2页
第2页 / 共59页
第1章软件开发方法(一)软件概述_第3页
第3页 / 共59页
第1章软件开发方法(一)软件概述_第4页
第4页 / 共59页
第1章软件开发方法(一)软件概述_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《第1章软件开发方法(一)软件概述》由会员分享,可在线阅读,更多相关《第1章软件开发方法(一)软件概述(59页珍藏版)》请在金锄头文库上搜索。

1、第1章 软件开发方法 (一)软件概述计算机教学实验中心1下一页上一页停止放映问题的提出什么是软件 ?软件有哪些特征?什么是软件危机?什么是软件生命周期?软件开发技术发展史2下一页上一页停止放映1理解软件的概念及软件的特征 2了解软件生产的历史 3软件危机及项目失败的原因 4了解软件的生命周期概念 5了解软件开发史3下一页上一页停止放映软件(Software)随着信息化、网络化和数字化时代的到来, 社会对“软件”的需求激增。如今,世界 发达国家都把软件列为国家发展的关键技 术领域。 美国国家关键技术委员会将软件列为六大关 键技术之一; 欧洲共同体将“软件和信息处理”列为关键 技术; 我国把信息产

2、业放在优先发展的地位,看作 是中国发展高新技术、赶超世界先进水平 的一次千载难逢的机遇。4下一页上一页停止放映软件的基本概念什么是软件? 计算机系统由计算机硬件和软件构成。 计算机神奇的功能是在软件的“指挥”下创造出来 的。 软件是各种程序和有关资料的总称。 程序是:l为实现特定目标或解决特定问题而用计算 机语言编写的命令序列的集合l是人们求解问题的逻辑思维活动的代码化 描述 程序的最重要的目的是: 便于阅读、交流5下一页上一页停止放映Roger S. Pressman 对软件的认识“计算机软件已经成为一种驱动力。它 是进行商业决策的引擎;它是现代科学 研究和工程问题寻求解答的基础;它也 是鉴

3、别现代产品和服务的关键因素。它 被嵌入在各类系统中:交通、医疗、电 信、军事、工业生产过程、娱乐、办公 、难以穷举。软件在现代社会中确 实是必不可少的。而我们在进入21世纪 ,软件将成为从基础教育到基因工程的 所有领域新进展的驱动器。”6下一页上一页停止放映软件的特征软件是逻辑产品软件产品质量的体现方式不同软件产品的生命周期和失败曲线不同软件产品的成本构成不同大多数软件仍然是定制生产的软件产品的不同属性7下一页上一页停止放映软件是逻辑产品软件产品是:具有产值、价格、质量和功能的特性看不见,是逻辑的、无形的是脑力劳动的结晶8下一页上一页停止放映软件产品质量体现方式不同质量体现方式不同:实用、可靠

4、、可操作性;可维护性强方便用户不会折旧、损坏、老化9下一页上一页停止放映软件产品的成本构成不同12% 需求率4%生产率开发人员1979年美国国防预算的9%用于计算机领域,约$113亿 ($1258亿)。在这$113亿中,$91亿用于软件投资(约占 80%),仅有不到$23亿用于购买硬件设备。10下一页上一页停止放映软、硬件失败曲线不同11下一页上一页停止放映大多数软件产品仍然是定制生产硬件产品的生产技术和工艺已经成熟,可 以做到标准化、系列化成批生产,不论哪 个厂家生产的产品,用户买来都可以集成 、组装和替换使用。尽管软件产品复用是软件界孜孜不倦追求 的目标,在某些局部范围内几家领军软件 企业

5、也建立了一些软件组件复用的技术标 准,例如,OMG的CORBA、Microsoft的COM 和DCOM、SUN的EJB和J2EE,但是目前还做 不到大范围使用软件替代品。大多数软件 仍然是为特定任务或用户定制的。12下一页上一页停止放映软件产品的不同属性为便于软件产品的研制、生产、维护和使 用,软件还必须具有:可维护性(Maintainability)独立性(Dependability)效率性(Efficiency)可用性(Usability)13下一页上一页停止放映软件分类软件按不同方式可以划分为 不同的类型:按功能划分按规模划分14下一页上一页停止放映按功能划分软件分类软件系统软件应用软件

6、操作系统 网络系统 语言编译器 工具软件管理软件 实时软件 科学计算、数据处理 嵌入式软件 人工智能软件 专用领域软件15下一页上一页停止放映系统软件是支持计算机系统正常运行并实现用户操作 的那部分软件。 一般是在计算机系统购买时随机携带的,也 可以根据需要另行安装。 系统软件的主要特征是:与硬件有很强的交互性能对资源共享进行调度管理能解决并发操作处理中存在的协调问题其中的数据结构复杂,外部接口多样化 ,便于用户反复使用16下一页上一页停止放映系统软件例操作系统(Operating System)网络系统(Network System)语言编译系统( Language Compiler)通信软

7、件(Communications Software) 工具软件(Tools Software) 17下一页上一页停止放映应用软件应用软件是为满足用户不同领域、不 同问题的应用需求而提供的那部分软件 。它可以拓宽计算机系统的应用领域,放 大硬件的功能。应用软件具有无限丰富和美好的开发前 景。18下一页上一页停止放映应用软件例 事务处理软件 实时软件 科学计算和数据处理软件 嵌入式软件 人工智能软件 19下一页上一页停止放映按规模划分软件分类类别参加人 员数研制期限产品规模 (语句行数)实 例微型114周0.5k选择排序程序小型116月1k2k数值计算程序中型2512年5k10k汇编程序较大型52

8、023年50k100k数据库系统大型100100045年1M操作系统极大型20005000510年1M10M空中交通管制系统20下一页上一页停止放映软件开发技术发展史应用驱动是推进软件发展进程的主线:从软件发展早期的按个人意愿编写代码,到按 软件工程的理论生产大型应用系统;从手工作坊式的封闭性制作到按标准制式、大 工业生产的开放系统;从注重个人精雕细琢地编写代码的技巧到注重 工程项目的管理和开发团队的协作;从为特定应用定制设计到以复用为目标的组件 式开发;从由少数软件天才的编程艺术到由广大用户直 接参与的应用开发。21下一页上一页停止放映阶段划分半个多世纪以来,软件及软件开发技术在 理论、观念

9、、目标及技术方法等方面都发 生了很大变化。以10年左右为间隔,划分为五个阶段。详 见表1-2。讨论每个时期软件开发技术的特点,包括 软件开发技术处理的对象、用途、目的、 开发方法、开发工具、发展状况、技术突 破、理论成就及目标等。22下一页上一页停止放映第一阶段20世纪 40-50年代早期计算机是由只有硬件的“裸机”组成,计 算机中不装任何软件。由于采用电子管作为 逻辑电路的元器件,系统稳定性很差。那时人们只关心硬件的性能和技术指标,系统 设计与实现是以硬件为中心,软件开发(实 际上是程序设计)处于从属地位。23下一页上一页停止放映软件主要特征处理对象:由“0”和“1”组成的二进制序列 ;用途

10、:主要是科学计算及军事应用(弹道计算);目的:“确定计算机硬件动作的序列”;开发方法:经验主义;开发工具:机器语言;认识:计算机的用途是快速计算。 发展概况:机器语言、汇编语言、FORTRAN语言;技术突破:存储器技术、 “迭代-反复”算法、观念转变 ;理论成就:冯诺依曼理论和图灵测试; 目标:用最少资源来获得最大运算能力。24下一页上一页停止放映阶段软件大事件1945年6月30日,冯诺依曼(John von Neumann)在EDVAC计算机设计报告草 案中介绍了存储程序的概念。1946年6月,冯诺依曼与高德斯坦等人发表了电子计算机装置逻辑结构初 探的论文,成为EDVAC的设计基础。1950

11、年10月,图灵发表计算机器与智能(Computing Machinery and Intelligence)论文,指出如果一台机器对于质问的响应与人类的响应完全无 法区别,那么这台机器就具有智能。今天,人们把这一论断称为图灵测试,它 奠定了人工智能的理论基础。1952年霍普研制成功第一个编译程序A-O。1954年IBM资助的一个委员会在John Backus领导下开始研制高级语言,设计用 于科学与工程计算的FORTRAN语言。1956年IBM推出了IBM704,其机器性能较以前的计算机有了显著提高。并且在 其上首次运行了符号汇编程序SAP,成为程序发展史上最有意义的事。它确立 了汇编的基本形式

12、。1957年,在IBM704上运行了第一个高级语言FORTRAN,至今还在使用。1958年,推出多个高级语言。有麻省理工学院(MIT)的麦卡锡(John McCarthy)为人工智能领域的应用而设计LISP语言;有第一个用于数控机床的 编程的专用语言APT;还有用于商业数据处理的语言Flow-Matic。1858年,Alex Bernstein等人在IBM704机开发的第一个成熟的程序象棋程 序;有Alan Newell等人使用高级语言首次开发的模仿人类思维过程的程序; 还有空中交通管理系统。25下一页上一页停止放映第二阶段20世纪 60年代由于硬件技术的发展,在电路设计中广泛采用 晶体管和集

13、成电路,使计算机的体积大大缩 小,系统稳定性提高,价格降低。开始出现 以屏幕显示器和键盘输入方式的商用计算机 ,促进了计算机的产、销量急剧上升。在软件领域,应用领域拓宽,社会对应用软件 的需求急剧增加,软件的地位和作用不断提 高,从而有力地推动了软件技术和开发方法 的改进和发展。 26下一页上一页停止放映软件主要特征处理对象:高级语言编写的程序 ;用途:科学计算、商务应用和数据处理;目的:“确定计算机指令的动作序列”;开发方法:功能性程序设计;开发工具:汇编语言、高级语言;认识:软件应独立于硬件;必须规范程序内部控制流; 发展概况:高级语言;编译技术;非数值商业应用;软件危机技术突破:高级语言

14、促进计算机应用 ;功能性程序设计技术 ;理论成就:软件工程解决软件危机;结构化程序设计理论; 目标:扩大程序系统的规模,以适应更复杂的应用。27下一页上一页停止放映阶段软件大事件1960年,ALGOL60语言是使用递归的第一个面向过程的语言,用与数学 与科学计算。同年创建通用商用语言COBOL。 1961年诞生了第一个模拟语言GPSS。同年MIT在 IBM7090上开发了第一 个实验性分时系统CTSS(Compatible Time Sharing System)。当时 的7090只有32K内存,监控程序为5K,剩下27K给用户使用。CTSS支持 32个用户,对 IBM后来的操作系统产生了很大

15、的影响。1962年, 在测试技术方面,Auerback公司提供了最早的基准程序 Benchmark用于测试技术。同年,贝尔实验室研制了用语音谱图识别语 音。和能设计、存储及编辑合成音乐的软件。1963年,贝尔实验室发明了能够专门处理字符串的SNOBOL语言。同年 ,花费了80亿美元的美国半自动防空系统(SAGE)研发成功投入使用 。 1964年5月1日,美国达特茅斯学院的凯梅尼和汤姆斯发明推出了BASIC 语言。同年,IBM公司开发出报表生产程序RPG。后来有人认为RPG 是第四代编程语言的先兆。IBM经过7年努力,完成了航空订票系统, 还在当年开发了计算机辅助设计系统。1965年,开始了服务

16、于大型分时系统的MAC工程。后来发展成为 Multics操作系统。 同年,荷兰计算机科学家迪克斯特拉(Dijkstra )提出结构化编程技术,适合在软件的详细设计或低层设计及编码实 现阶段采用。28下一页上一页停止放映阶段软件大事件(续)1966年,IBM公司的PHHoward提出英文字符识别系统,推动了文字识别 技术的发展。RCasey和GNagy对汉字OCR(光学字符识别)进行了研究 ,并提出二级匹配的方法。1967年,挪威计算中心的OJDahl和KNygaard用ALGOL语言开发出 Simula67用于模拟应用,这是第一个面向对象语言。同年,美国科学家克 努斯经典著作The Art of Computer Programming。把算法与数据结构 作为独立实体从使用它们的程序中分离出来,开创数据结构,算法理论。1968年10月

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号