软件开发方法介绍

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
④通信软件(Communications Software) ⑤ 工具软件(Tools Software)
第17|83页
应用软件
应用软件是为满足用户不同领域、不同问题的应用需求而提供的那部 分软件。 它可以拓宽计算机系统的应用领域,放大硬件的功能。 应用软件具有无限丰富和美好的开发前景。
第18|83页
第8|83页
软件产品质量体现方式不同
质量体现方式不同: • 实用、可靠、可操作性; • 可维护性强 • 方便用户 • 不会折旧、损坏、老化
第9|83页
软件产品的成本构成不同
12% 需 求率
生产率 4%
开发人员
1979年美国国防预算的9%用于计算机领域,约$113亿($ 1258亿)。在这$113亿中,$91亿用于软件投资(第约10|8占3页8 0%),仅有不到$23亿用于购买硬件设备。
阶段软件大事件(续)
• 1966年,IBM公司的P.H.Howard提出英文字符识别系统,推动了文字识别 技术的发展。R.Casey和G.Nagy对汉字OCR(光学字符识别)进行了研究 ,并提出二级匹配的方法。
• 1967年,挪威计算中心的O.J.Dahl和K.Nygaard用ALGOL语言开发出Simu la67用于模拟应用,这是第一个面向对象语言。同年,美国科学家克努斯 经典著作——The Art of Computer Programming。把算法与数据结构作为 独立实体从使用它们的程序中分离出来,开创数据结构,算法理论。
; • 理论成就:软件工程解决软件危机;结构化程序设计理论; • 目标:扩大程序系统的规模,以适应更复杂的应用。
第27|83页
阶段软件大事件
• 1960年,ALGOL60语言是使用递归的第一个面向过程的语言,用与数学 与科学计算。同年创建通用商用语言COBOL。
• 1961年诞生了第一个模拟语言GPSS。同年MIT在 IBM7090上开发了第一 个实验性分时系统CTSS(Compatible Time Sharing System)。当时 的7090只有32K内存,监控程序为5K,剩下27K给用户使用。CTSS支持3 2个用户,对 IBM后来的操作系统产生了很大的影响。
• 与硬件有很强的交互性 • 能对资源共享进行调度管理 • 能解决并发操作处理中存在的协调问题 • 其中的数据结构复杂,外部接口多样化,便于用户反复使用
第16|83页
系统软件例
①操作系统(Operating System) ②网络系统(Network System)
③语言编译系统( Language Compiler)
• 1952年霍普研制成功第一个编译程序A-O。
• 1954年IBM资助的一个委员会在John Backus领导下开始研制高级语言,设计用 于科学与工程计算的FORTRAN语言。
• 1956年IBM推出了IBM704,其机器性能较以前的计算机有了显著提高。并且在 其上首次运行了符号汇编程序SAP,成为程序发展史上最有意义的事。它确立 了汇编的基本形式。
• 1968年10月北大西洋公约组织(NATO)的科学委员会在德国加尔密斯(Gar misch)开会讨论软件可靠性及软件危机的问题,产生了关于“软件工程” 的加尔密斯报告,首次提出了 “软件工程”的问题。 同年,荷兰科学家 埃德 Edsgar W.Dijkstra在 ACM通信上发表了“GOTO语句值得考虑的害处 ”的论文,引发了一场关于结构化编程的大讨论。国际信息处理联合会(F P)鼓励使用六位数字的数据格式(YYMMDD)来表示日期进行信息交换,从 而造成2000年危机问题。同年Ivan E.Suterland提出窗口技术。
• 1957年,在IBM704上运行了第一个高级语言FORTRAN,至今还在使用。
• 1958年,推出多个高级语言。有麻省理工学院(MIT)的麦卡锡(John McCart
hy)为人工智能领域的应用而设计LISP语言;有第一个用于数控机床的编程的
专用语言APT;还有用于商业数据处理的语言Flow-Matic。
应用软件例wenku.baidu.com
① 事务处理软件 ② 实时软件 ③ 科学计算和数据处理软件 ④ 嵌入式软件 ⑤人工智能软件
第19|83页
按规模划分软件分类
类别
微型 小型 中型 较大型 大型 极大型
参加人 员数 1 1 2~5
5~20 100~1000
2000~5000
研制期限 1~4周 1~6月 1~2年 2~3年 4~5年 5~10年
第12|83页
软件产品的不同属性
为便于软件产品的研制、生产、维护和使用,软件还必须具有: 可维护性(Maintainability) 独立性(Dependability) 效率性(Efficiency) 可用性(Usability)
第13|83页
软件分类
软件按不同方式可以划分为 不同的类型:
• 按功能划分 • 按规模划分
第3|83页
软件(Software)
软件” 随着信息化、网络化和数字化时代的到来,社会对“
的需求激
增。如今,世界发达国家都把软件列为国家发展的关键技术领域。
美国国家关键技术委员会将软件列为六大关键技术之一;
欧洲共同体将“软件和信息处理”列为关键技术;
我国把信息产业放在优先发展的地位,看作是中国发展高新技术、赶超世界 先进水平的一次千载难逢的机遇。
• 处理对象:由“0”和“1”组成的二进制序列 ;
• 用途:主要是科学计算及军事应用(弹道计算);
• 目的:“确定计算机硬件动作的序列”;
• 开发方法:经验主义;
• 开发工具:机器语言;
• 认识:计算机的用途是快速计算。
• 发展概况:机器语言、汇编语言、FORTRAN语言;
• 技术突破:存储器技术、 “迭代-反复”算法、观念转变 ;
第25|83页
• 1858年,Alex Bernstein等人在IBM704机开发的第一个成熟的程序——象棋程
序;有Alan Newell等人使用高级语言首次开发的模仿人类思维过程的程序;
还有空中交通管理系统。
第二阶段20世纪 60年代
由于硬件技术的发展,在电路设计中广泛采用晶体管和集成电路,使计算机的体 积大大缩小,系统稳定性提高,价格降低。开始出现以屏幕显示器和键盘输入 方式的商用计算机,促进了计算机的产、销量急剧上升。
探》的论文,成为EDVAC的设计基础。
• 1950年10月,图灵发表《计算机器与智能》(Computing Machinery and Inte lligence)论文,指出如果一台机器对于质问的响应与人类的响应完全无法区 别,那么这台机器就具有智能。今天,人们把这一论断称为图灵测试,它奠定 了人工智能的理论基础。
第21|83页
阶段划分
• 半个多世纪以来,软件及软件开发技术在理论、观念、目标及技术方法等方面都发生 了很大变化。
• 以10年左右为间隔,划分为五个阶段。详见表1-2。 • 讨论每个时期软件开发技术的特点,包括软件开发技术处理的对象、用途、目的、开
发方法、开发工具、发展状况、技术突破、理论成就及目标等。
第4|83页
软件的基本概念
什么是软件?
计算机系统由计算机硬件和软件构成。 计算机神奇的功能是在软件的“指挥”下创造出来
的。 软件是各种程序和有关资料的总称。 程序是:
为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合 是人们求解问题的逻辑思维活动的代码化描述
程序的最重要的目的是: 便于阅读、交流
产品规模 (语句行数)
0.5k 1k~2k 5k~10k
50k~100k 1M
1M~10M
实例 选择排序程序 数值计算程序
汇编程序 数据库系统
操作系统
空中交通管制系统
第20|83页
软件开发技术发展史
应用驱动是推进软件发展进程的主线: • 从软件发展早期的按个人意愿编写代码,到按软件工程的理论生产大型应用系统; • 从手工作坊式的封闭性制作到按标准制式、大工业生产的开放系统; • 从注重个人精雕细琢地编写代码的技巧到注重工程项目的管理和开发团队的协作; • 从为特定应用定制设计到以复用为目标的组件式开发; • 从由少数软件天才的编程艺术到由广大用户直接参与的应用开发。
第1章 软件开发方法 (一)软件概述
计算机教学实验中心
问题的提出
• 什么是软件 ? • 软件有哪些特征? • 什么是软件危机? • 什么是软件生命周期? • 软件开发技术发展史 • ……
第2|83页
1.理解软件的概念及软件的特征 2.了解软件生产的历史 3.软件危机及项目失败的原因 4.了解软件的生命周期概念 5.了解软件开发史
第6|83页
软件的特征
软件是逻辑产品 软件产品质量的体现方式不同 软件产品的生命周期和失败曲线不同 软件产品的成本构成不同 大多数软件仍然是定制生产的 软件产品的不同属性
第7|83页
软件是逻辑产品
软件产品是:
• 具有产值、价格、质量和功 能的特性
• 看不见,是逻辑的、无形的 • 是脑力劳动的结晶
第22|83页
第一阶段20世纪 40-50年代
早期计算机是由只有硬件的“裸机”组成,计算机中不装任何软件。由于采用电 子管作为逻辑电路的元器件,系统稳定性很差。
那时人们只关心硬件的性能和技术指标,系统设计与实现是以硬件为中心,软件 开发(实际上是程序设计)处于从属地位。
第23|83页
软件主要特征
• 1964年5月1日,美国达特茅斯学院的凯梅尼和汤姆斯发明推出了BASIC 语言。同年,IBM公司开发出报表生产程序RPGⅡ。后来有人认为RPGⅡ 是第四代编程语言的先兆。IBM经过7年努力,完成了航空订票系统, 还在当年开发了计算机辅助设计系统。
• 1965年,开始了服务于大型分时系统的MAC工程。后来发展成第为28|M8u3页ltic s操作系统。 同年,荷兰计算机科学家迪克斯特拉(Dijkstra)提出 结构化编程技术,适合在软件的详细设计或低层设计及编码实现阶段
在软件领域,应用领域拓宽,社会对应用软件的需求急剧增加,软件的地位和作 用不断提高,从而有力地推动了软件技术和开发方法的改进和发展。
第26|83页
软件主要特征
• 处理对象:高级语言编写的程序 ; • 用途:科学计算、商务应用和数据处理; • 目的:“确定计算机指令的动作序列”; • 开发方法:功能性程序设计; • 开发工具:汇编语言、高级语言; • 认识:软件应独立于硬件;必须规范程序内部控制流; • 发展概况:高级语言;编译技术;非数值商业应用;软件危机 • 技术突破:高级语言促进计算机应用 ;功能性程序设计技术
第14|83页
按功能划分软件分类
软件
系统软件 应用软件
操作系统 网络系统 语言编译器 工具软件
管理软件
实时软件
科学计算、数据处理
嵌入式软件
人工智能软件
专用领域软件
第15|83页
系统软件
是支持计算机系统正常运行并实现用户操作的那部分软件。 一般是在计算机系统购买时随机携带的,也可以根据需要另行安装。 系统软件的主要特征是:
软、硬件失败曲线不同
第11|83页
大多数软件产品仍然是定制生产
硬件产品的生产技术和工艺已经成熟,可以做到标准化、系列化成批生产, 不论哪个厂家生产的产品,用户买来都可以集成、组装和替换使用。
尽管软件产品复用是软件界孜孜不倦追求的目标,在某些局部范围内几家 领军软件企业也建立了一些软件组件复用的技术标准,例如,OMG的CORB A、Microsoft的COM和DCOM、SUN的EJB和J2EE,但是目前还做不到大范围 使用软件替代品。大多数软件仍然是为特定任务或用户定制的。
• 理论成就:冯·诺依曼理论和图灵测试;
• 目标:用最少资源来获得最大运算能力。
第24|83页
阶段软件大事件
• 1945年6月30日,冯·诺依曼(John von Neumann)在EDVAC计算机设计报告草 案中介绍了存储程序的概念。
• 1946年6月,冯·诺依曼与高德斯坦等人发表了《电子计算机装置逻辑结构初
• 1962年, 在测试技术方面,Auerback公司提供了最早的基准程序Benc hmark用于测试技术。同年,贝尔实验室研制了用语音谱图识别语音。 和能设计、存储及编辑合成音乐的软件。
• 1963年,贝尔实验室发明了能够专门处理字符串的SNOBOL语言。同年 ,花费了80亿美元的美国半自动防空系统(SAGE)研发成功投入使用 。
第5|83页
Roger S. Pressman 对软件的认识
• “计算机软件已经成为一种驱动力。它 是进行商业决策的引擎;它是现代科学 研究和工程问题寻求解答的基础;它也 是鉴别现代产品和服务的关键因素。它 被嵌入在各类系统中:交通、医疗、电 信、军事、工业生产过程、娱乐、办公 、……难以穷举。软件在现代社会中确 实是必不可少的。而我们在进入21世纪 ,软件将成为从基础教育到基因工程的 所有领域新进展的驱动器。”
相关文档
最新文档