




已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章软件开发方法 一 软件概述 计算机教学实验中心 第2 83页 问题的提出 什么是软件 软件有哪些特征 什么是软件危机 什么是软件生命周期 软件开发技术发展史 第3 83页 1 理解软件的概念及软件的特征2 了解软件生产的历史3 软件危机及项目失败的原因4 了解软件的生命周期概念5 了解软件开发史 第4 83页 软件 Software 随着信息化 网络化和数字化时代的到来 社会对 软件 的需求激增 如今 世界发达国家都把软件列为国家发展的关键技术领域 美国国家关键技术委员会将软件列为六大关键技术之一 欧洲共同体将 软件和信息处理 列为关键技术 我国把信息产业放在优先发展的地位 看作是中国发展高新技术 赶超世界先进水平的一次千载难逢的机遇 第5 83页 软件的基本概念 什么是软件 计算机系统由计算机硬件和软件构成 计算机神奇的功能是在软件的 指挥 下创造出来的 软件是各种程序和有关资料的总称 程序是 为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合是人们求解问题的逻辑思维活动的代码化描述程序的最重要的目的是 便于阅读 交流 第6 83页 RogerS Pressman对软件的认识 计算机软件已经成为一种驱动力 它是进行商业决策的引擎 它是现代科学研究和工程问题寻求解答的基础 它也是鉴别现代产品和服务的关键因素 它被嵌入在各类系统中 交通 医疗 电信 军事 工业生产过程 娱乐 办公 难以穷举 软件在现代社会中确实是必不可少的 而我们在进入21世纪 软件将成为从基础教育到基因工程的所有领域新进展的驱动器 第7 83页 软件的特征 软件是逻辑产品软件产品质量的体现方式不同软件产品的生命周期和失败曲线不同软件产品的成本构成不同大多数软件仍然是定制生产的软件产品的不同属性 第8 83页 软件是逻辑产品 软件产品是 具有产值 价格 质量和功能的特性看不见 是逻辑的 无形的是脑力劳动的结晶 第9 83页 软件产品质量体现方式不同 质量体现方式不同 实用 可靠 可操作性 可维护性强方便用户不会折旧 损坏 老化 第10 83页 软件产品的成本构成不同 12 需求率 4 生产率 开发人员 1979年美国国防预算的9 用于计算机领域 约 113亿 1258亿 在这 113亿中 91亿用于软件投资 约占80 仅有不到 23亿用于购买硬件设备 第11 83页 软 硬件失败曲线不同 第12 83页 大多数软件产品仍然是定制生产 硬件产品的生产技术和工艺已经成熟 可以做到标准化 系列化成批生产 不论哪个厂家生产的产品 用户买来都可以集成 组装和替换使用 尽管软件产品复用是软件界孜孜不倦追求的目标 在某些局部范围内几家领军软件企业也建立了一些软件组件复用的技术标准 例如 OMG的CORBA Microsoft的COM和DCOM SUN的EJB和J2EE 但是目前还做不到大范围使用软件替代品 大多数软件仍然是为特定任务或用户定制的 第13 83页 软件产品的不同属性 为便于软件产品的研制 生产 维护和使用 软件还必须具有 可维护性 Maintainability 独立性 Dependability 效率性 Efficiency 可用性 Usability 第14 83页 软件分类 软件按不同方式可以划分为不同的类型 按功能划分按规模划分 第15 83页 按功能划分软件分类 第16 83页 系统软件 是支持计算机系统正常运行并实现用户操作的那部分软件 一般是在计算机系统购买时随机携带的 也可以根据需要另行安装 系统软件的主要特征是 与硬件有很强的交互性能对资源共享进行调度管理能解决并发操作处理中存在的协调问题其中的数据结构复杂 外部接口多样化 便于用户反复使用 第17 83页 系统软件例 操作系统 OperatingSystem 网络系统 NetworkSystem 语言编译系统 LanguageCompiler 通信软件 CommunicationsSoftware 工具软件 ToolsSoftware 第18 83页 应用软件 应用软件是为满足用户不同领域 不同问题的应用需求而提供的那部分软件 它可以拓宽计算机系统的应用领域 放大硬件的功能 应用软件具有无限丰富和美好的开发前景 第19 83页 应用软件例 事务处理软件 实时软件 科学计算和数据处理软件 嵌入式软件 人工智能软件 第20 83页 按规模划分软件分类 第21 83页 软件开发技术发展史 应用驱动是推进软件发展进程的主线 从软件发展早期的按个人意愿编写代码 到按软件工程的理论生产大型应用系统 从手工作坊式的封闭性制作到按标准制式 大工业生产的开放系统 从注重个人精雕细琢地编写代码的技巧到注重工程项目的管理和开发团队的协作 从为特定应用定制设计到以复用为目标的组件式开发 从由少数软件天才的编程艺术到由广大用户直接参与的应用开发 第22 83页 阶段划分 半个多世纪以来 软件及软件开发技术在理论 观念 目标及技术方法等方面都发生了很大变化 以10年左右为间隔 划分为五个阶段 详见表1 2 讨论每个时期软件开发技术的特点 包括软件开发技术处理的对象 用途 目的 开发方法 开发工具 发展状况 技术突破 理论成就及目标等 第23 83页 第一阶段20世纪40 50年代 早期计算机是由只有硬件的 裸机 组成 计算机中不装任何软件 由于采用电子管作为逻辑电路的元器件 系统稳定性很差 那时人们只关心硬件的性能和技术指标 系统设计与实现是以硬件为中心 软件开发 实际上是程序设计 处于从属地位 第24 83页 软件主要特征 处理对象 由 0 和 1 组成的二进制序列 用途 主要是科学计算及军事应用 弹道计算 目的 确定计算机硬件动作的序列 开发方法 经验主义 开发工具 机器语言 认识 计算机的用途是快速计算 发展概况 机器语言 汇编语言 FORTRAN语言 技术突破 存储器技术 迭代 反复 算法 观念转变 理论成就 冯 诺依曼理论和图灵测试 目标 用最少资源来获得最大运算能力 第25 83页 阶段软件大事件 1945年6月30日 冯 诺依曼 JohnvonNeumann 在EDVAC计算机设计报告草案中介绍了存储程序的概念 1946年6月 冯 诺依曼与高德斯坦等人发表了 电子计算机装置逻辑结构初探 的论文 成为EDVAC的设计基础 1950年10月 图灵发表 计算机器与智能 ComputingMachineryandIntelligence 论文 指出如果一台机器对于质问的响应与人类的响应完全无法区别 那么这台机器就具有智能 今天 人们把这一论断称为图灵测试 它奠定了人工智能的理论基础 1952年霍普研制成功第一个编译程序A O 1954年IBM资助的一个委员会在JohnBackus领导下开始研制高级语言 设计用于科学与工程计算的FORTRAN语言 1956年IBM推出了IBM704 其机器性能较以前的计算机有了显著提高 并且在其上首次运行了符号汇编程序SAP 成为程序发展史上最有意义的事 它确立了汇编的基本形式 1957年 在IBM704上运行了第一个高级语言FORTRAN 至今还在使用 1958年 推出多个高级语言 有麻省理工学院 MIT 的麦卡锡 JohnMcCarthy 为人工智能领域的应用而设计LISP语言 有第一个用于数控机床的编程的专用语言APT 还有用于商业数据处理的语言Flow Matic 1858年 AlexBernstein等人在IBM704机开发的第一个成熟的程序 象棋程序 有AlanNewell等人使用高级语言首次开发的模仿人类思维过程的程序 还有空中交通管理系统 第26 83页 第二阶段20世纪60年代 由于硬件技术的发展 在电路设计中广泛采用晶体管和集成电路 使计算机的体积大大缩小 系统稳定性提高 价格降低 开始出现以屏幕显示器和键盘输入方式的商用计算机 促进了计算机的产 销量急剧上升 在软件领域 应用领域拓宽 社会对应用软件的需求急剧增加 软件的地位和作用不断提高 从而有力地推动了软件技术和开发方法的改进和发展 第27 83页 软件主要特征 处理对象 高级语言编写的程序 用途 科学计算 商务应用和数据处理 目的 确定计算机指令的动作序列 开发方法 功能性程序设计 开发工具 汇编语言 高级语言 认识 软件应独立于硬件 必须规范程序内部控制流 发展概况 高级语言 编译技术 非数值商业应用 软件危机技术突破 高级语言促进计算机应用 功能性程序设计技术 理论成就 软件工程解决软件危机 结构化程序设计理论 目标 扩大程序系统的规模 以适应更复杂的应用 第28 83页 阶段软件大事件 1960年 ALGOL60语言是使用递归的第一个面向过程的语言 用与数学与科学计算 同年创建通用商用语言COBOL 1961年诞生了第一个模拟语言GPSS 同年MIT在IBM7090上开发了第一个实验性分时系统CTSS CompatibleTimeSharingSystem 当时的7090只有32K内存 监控程序为5K 剩下27K给用户使用 CTSS支持32个用户 对IBM后来的操作系统产生了很大的影响 1962年 在测试技术方面 Auerback公司提供了最早的基准程序Benchmark用于测试技术 同年 贝尔实验室研制了用语音谱图识别语音 和能设计 存储及编辑合成音乐的软件 1963年 贝尔实验室发明了能够专门处理字符串的SNOBOL语言 同年 花费了80亿美元的美国半自动防空系统 SAGE 研发成功投入使用 1964年5月1日 美国达特茅斯学院的凯梅尼和汤姆斯发明推出了BASIC语言 同年 IBM公司开发出报表生产程序RPG 后来有人认为RPG 是第四代编程语言的先兆 IBM经过7年努力 完成了航空订票系统 还在当年开发了计算机辅助设计系统 1965年 开始了服务于大型分时系统的MAC工程 后来发展成为Multics操作系统 同年 荷兰计算机科学家迪克斯特拉 Dijkstra 提出结构化编程技术 适合在软件的详细设计或低层设计及编码实现阶段采用 第29 83页 阶段软件大事件 续 1966年 IBM公司的P H Howard提出英文字符识别系统 推动了文字识别技术的发展 R Casey和G Nagy对汉字OCR 光学字符识别 进行了研究 并提出二级匹配的方法 1967年 挪威计算中心的O J Dahl和K Nygaard用ALGOL语言开发出Simula67用于模拟应用 这是第一个面向对象语言 同年 美国科学家克努斯经典著作 TheArtofComputerProgramming 把算法与数据结构作为独立实体从使用它们的程序中分离出来 开创数据结构 算法理论 1968年10月北大西洋公约组织 NATO 的科学委员会在德国加尔密斯 Garmisch 开会讨论软件可靠性及软件危机的问题 产生了关于 软件工程 的加尔密斯报告 首次提出了 软件工程 的问题 同年 荷兰科学家埃德EdsgarW Dijkstra在ACM通信上发表了 GOTO语句值得考虑的害处 的论文 引发了一场关于结构化编程的大讨论 国际信息处理联合会 FP 鼓励使用六位数字的数据格式 YYMMDD 来表示日期进行信息交换 从而造成2000年危机问题 同年IvanE Suterland提出窗口技术 1969年 贝尔实验室的DennisM Ritchie和K Thompson用PDP 7汇编指令编写了UNIX的第一版本V1 UNIX的发展对计算机界 尤其是对软件界产生了巨大而深刻的影响 第30 83页 第三阶段20世纪70年代 这个时期计算机硬件的发展具有里程碑的意义 采用诸如大规模集成电路 分布式技术 网络技术 嵌入式等高新技术极大地提高了计算机系统的处理能力 特别是微处理器的诞生 开创了大众化使用计算机的新时代 该阶段软件的特征是 高性能的计算机系统对软件的功能和性能提出了更高的要求 第31 83页 软件主要特征 处理对象 小规模系统的程序设计 用途 商务应用 网络互联 数据库应用 目的 研究数据结构和算法以寻求处理的时 空平衡 开发方法 研究数据结构和算法 结构化开发方法 开发工具 高级语言 数据库技术 认识 平衡时 空平衡复杂度 程序执行的停机 程序可读性 发展概况 数据独立 文件 DB 对复杂系统的规格说明 技术突破 数据结构及算法 区分了应用软件和系统软件 理论成就 数据结构及算法理论 形式方法 软件工程方法 目标 解决软件危机 第32 83页 阶段软件大事件 1970年 WinstonRoyce在他的 管理大型软件系统的开发 提出了著名的 瀑布模型 同年 柯特 E F Codd 提出关系模型为关系数据库技术的发展打下基础 在编程语言方面 出现了用于系统程序设计的BLISS语言 用来编写编译程序和操作系统 1971年 瑞士联邦技术学院的伍尔斯教授发明了第一个结构化的编程语言Pascal 并用17世纪法国著名科学家BlaisePascal 帕斯卡 的名字命名 同年 伍尔斯教授还提出 自顶向下 逐步细化 的结构化程序设计方法 FriedrichI Bauer提出软件工程的定义 确立并使用正确的工程原理和方法 以便能够经济地获得可靠而有效的软件 巴拿斯提出了信息隐藏的原理 对软件工程的发展产生巨大影响 1972年 出现三种有深远影响的编程语言 贝尔实验室的DennisRitchie发明的C语言 它在MartinRichards的BCPL语言和KenTbompston的B语言的基础上进行发展 最初的C语言是为编写UNIX而设计的 并在PDP 11上首先实现 法国马赛大学的AlanColmeratuer发明PROLOG语言 用于人工智能领域 其在欧洲和日本比较流行 Xerox公司PaloAlto研究中心AlanKay 艾兰 凯 发明的Smalltalk语言 它是一种面向对象的语言 适合使用鼠标工作的可视计算机系统 它体现了与传统程序设计不同的观念及风格 同年 在计算机科学的理论方面 计算复杂性理论提出了NP问题的思想 提出对某些大规模的计算问题 如旅行商问题 其计算量是极其巨大的 同年 华裔科学家王安发展了字处理系统 第33 83页 阶段软件大事件 续 1974年G J Myers W Stevens L Constantine E Yourdon等发展了结构化设计 SD 方法 基本思想是通过模块化建立一个结构良好的系统 同年 在斯得哥尔摩的象棋比赛中 计算机进行了首次赛事 1975年 M A Jackson提出JSP方法 它是适合中小型数据处理系统进行模块结构设计的一种方法 同年 CharlesH Moore发明了Forth语言 它适合实时控制及工业机器人的编程 这一年还出现了SPSS语言 用于社会科学的统计 勃洛克发表著作 人月的秘密 提出在拖延了的项目中增加人员只会使项目更为延期的观点 1976年B W Boehm又对软件工程给出定义 在软件 包括程序和文档 设计 实现 测试 运行 维户的各个过程中 建立在科学基础上的一套实用方法 C A Hoare则认为软件工程是 一种导致电子数字计算机具有强大功能的艺术 这种功能表现为人可以方便地使用计算机 1977年 美国国家计算机和信息处理标准委员会 ANSC X3 制定信息交换代码ASCII的标准X3 4 1977 1979年 在美国国防部新语言的评审中 法国人JeanIchbiah主持设计的绿色语言HoneywellBull最后获胜 同年5月 以对编程做过重大贡献的爱达 拉夫拉斯伯爵夫人的名字命名新语言Ada 还是在这一年 贝尔实验室的L R Rabiner等利用聚类技术开发了不定人的英语识别系统 第34 83页 第四阶段20世纪80年代 这个时期计算机硬件的发展体现在个人计算机和计算机网络 该阶段软件发展的特征是 个人计算机应用软件异军突起 形成信息产业中新的增长点 伴随微处理器和嵌入式系统的发展 计算机应用开始深入我们的日常工作和生活 旺盛的市场需求和政府企业甚至广大百姓的资金投入 孕育了大量软件企业 市场竞争和市场经济规则促进了软件产品功能更强 质量更高 性能价格比更好 大型机 包括中 小型机 软件向个人计算机上移植 从而为软件提供了更广阔的发展空间和巨大的用户市场 第35 83页 软件主要特征 处理对象 大型系统的程序设计 用途 关系数据库应用 各领域计算机应用 目的 大众化普及应用计算机 开发方法 构造系统方法 用标记工具描述系统 文档是管理系统结构的主要手段 开发工具 高级语言 基于PC的开发工具 早期CASE工具 认识 软件生命周期 强调开发组协作的重要性 发展概况 软件工程研究机构 CASE环境 图形界面系统 技术突破 C S计算模式 GUI图形用户界面 理论成就 RDB的理论 软件工作量度量COCOMO 软件过程改进模型CMM 目标 开发更大规模和复杂性软件系统 满足应用的需求 第36 83页 阶段软件大事件 1980年8月 经过长期的努力 由美国国防部确定把ADA语言用于过程控制与嵌入式应用 1981年 B W Boehm出版了 软件工程经济学 提出构造费用模型 COCOMO 作为软件的价格估计模型 引起了软件度量的发展 同年 R Abbott总结了面向对象的设计方法学 在这一年 美国AshtonTate公司推出关系数据库dBASE 并迅速赢得世界范围内的巨大市场 1981年 IBM公司推出个人计算机IBMPC 选Microsoft公司的MS DOS作为其个人计算机的操作系统 并将其命名为PC DOS 从而为BillGates的Microsoft公司的发展开辟一条通往成功的道路 1981年 中国颁布了 信息交换用汉字编码字符集 基本集 国家标准代号GB2312 80 1982年 JohnWarnock开发了Postscript的页面描述语言 该语言后来形成著名的Adobe系统 同年 Autodesk公司推出了计算机辅助设计系统AutoCAD第一版 1983年 王永民发明了 五笔字型 汉字输人法 AT T公司公布了UNIXSystemV 伯克利分校公布了4 2BSD 同年 Apple公司推出鼠标操作的图标及下拉式菜单的工作方式 开创了图形操作界面的先河 1983年 贝尔实验室发展了C 语言 既在C语言的基础上增加了面向对象程序设计所需要的抽象数据类型 类 1984年 FoxSoftware公司推出PC关系数据库系统FoxBASE 同年 Novell公司推出局域网络管理系统NetwareV1 0 第37 83页 阶段软件大事件 续 1984年10月15日 国际标准化组织ISO制定了开发系统互连参考模型OSI RM 即ISO7498 1 它从逻辑上把网络功能分成七层 同年 计算机图形学在Apple公司的Macintoch操作系统上取得极大成功 1985年 Microsoft公司推出Windows窗口界面操作系统 ISO提出软件质量度量模型建议 该模型分高 中 低三层 各层均有多项评价准则 1986年 Oracle公司推出DistributedORACLE分布式关系数据库 同年 出版了世界第一部电子图书 美国科学院百科全书 它的3万个图 900万字的内容就存储在一张5 25英寸的CD ROM光盘上 同年 WallStreetJournal出书把计算机辅助软件工程CASE的概念推广开来 1987年 卡内基梅隆大学的软件工程研究所的WattsHumphrey等发表了 软件过程成熟度框架 后来成为用于预测开发单位是否有能力生产可靠软件的 能力成熟度模型CMM 同年 IBM公司和Microsoft公司合作推出OS 2操作系统 为IBM公司的PS 2个人计算机系统配套 OS 2被称为32位微机的新一代操作系统 1988年 BarryBoehm提出了软件系统开发的 螺旋模型 后来 该模型被认为能有效提高系统开发效率 同年 ACM的一个工作组提出一份报告 计算仍是一门学科 它把计算机学科归纳为九个主题领域 算法与数据结构 体系结构 人工智能与机器人学 数据库与情报检索 人机通信 数值与符号计算 操作系统 编程语言 软件工程与方法学 它还包括了三种不同的处理方法 理论 抽象 设计 构成计算机学科的3 9矩阵 第38 83页 第五阶段20世纪90年代 当计算技术发展到网络计算 标志着计算机网络时代的到来 伴随处理分散的海量数据的应用需求 诞生并促进了分布式技术 并行计算 人工神经网络等技术的发展 反映该阶段的软件特征是 多媒体信息的实时处理技术成为研究的热点 计算机系统内部传统的处理模式 单指令流单数据流SISD和单指令流多数据流SIMD 受到极大挑战 具有并行处理功能的新型处理模式 多指令流多数据流MIMD 倍受关注和厚爱 面向对象的开发方法代表着在新处理环境中提高软件开发效率和质量的方向 信息唾手可得的网络服务软件满足着人们日益增长的应用需求 第39 83页 软件主要特征 处理对象 基于Internet Web的程序设计 用途 网络互联及网络应用 目的 通过支持跨地区 跨部门 跨时间的群组共享信息协同工作来提高群组 集团的整体的生产率 开发方法 基于组件 基于Internet Web的开发方法 开发工具 组件技术 基于Web开发工具 现代CASE工具 认识 非功能性需求的重要性 基于环境的软件过程改造 发展概况 Internet Intranet 基于Web应用 虚拟现实技术 新技术涌现 但缺乏理论指导 技术突破 设计模式 浏览器技术 CORBA COM OLE技术 理论成就 交互模型 作为网格计算的理论基础 目标 正确的时刻 把正确的信息 安全地送给需要的人 第40 83页 阶段软件大事件 1990年 TimBernersLee提出了关于WorldWideWeb的原型 并同时给出了URL HTML和HTTP的概念 同年 国际标准化组织接受UNIX标准POSLX为国际标准ISO9945 1 这一年 Microsoft公司的Windows取得极大成功 1991年IBM与Microsoft分道扬镳 6月13日 中国颁布了 计算机软件保护条例 并于同年10月1日开始实施 1992年l月 Intel公司和Microsoft公司联合发表有关保持环境的APM标准 1993年 伊利诺斯州大学的超级计算机应用研究中心的学生和研究人员开发了第一个基于图形用户界面的Internet浏览器 取名为NCSAMasaic 同年 美国白宫发表了一份报告 阐述了克林顿政府的 NationalInformationInfrastructure 国家信息基础建设 发展计划 人们把NII常称为 InformationSuperHighway 信息高速公路 1994年 Netscape公司首次推出它的浏览器Navigator 由于它卓越的功能和便捷的操作方式 使其在很短的时间内风靡世界 1995年 SUN公司推出了Java及其集成开发环境 Java语言是基于Internet的编程语言 使得应用程序同时在不同平台运行成为可能 同年 Microsoft公司推出Windows95 第41 83页 软件危机 从20世纪60年代开始 软件界经常遭受软件危机的袭扰 以IBM公司的OS 360操作系统为例 它共有4000多个模块 100万行指令 共投入5000人年 耗资5亿美元 但在交付使用的系统中仍找出2000个以上的错误 经研究发现 研制软件系统需要投入大量的人力 物力和资金 但是系统的质量却无法保证 开发软件所需的高成本与软件产品的低质量之间存在尖锐的矛盾 软件开发陷入不可自拔的恶性循环之中 这种现象被称为 软件危机 SoftwareCrisis 第42 83页 软件危机的表现 软件开发进度难以预测 软件开发成本难以控制 用户对软件功能难以满足 软件产品质量无法保证 软件产品难以维护 软件通常缺少适当的文档资料 生产率提高的速度不能满足社会需要 第43 83页 软件开发进度难以预测 拖延工期几个月甚至几年的现象并不罕见 这种现象降低了软件开发组织的信誉 以丹佛新国际机场为例该机场规模是曼哈顿机场的两倍 宽为希思机场的10倍 可以全天侯同时起降三架喷气式客机 投资1 93亿美元建立了一个地下行李传送系统 总长21英里 有4 000台遥控车 可按不同线路在20家不同航空公司柜台 登机门和行李领取处之间发送和传递行李 支持该系统的是5 000个电子眼 400台无线电接受机 56台条形码扫描仪和100台计算机按原定计划要在1993年万圣节前启用 但一直到1994年6月 该系统还无法正常运行 据研究结果统计 只有15 的项目是按计划完成的 第44 83页 软件开发成本难以控制 投资一再追加 令人难于置信 据同样的研究统计结果表明 仅有10 的项目是按费用计划完成的 例如 20世纪80年代初 美国国内税收服务处 IRS 让Sperry公司开发一套联邦税收表格自动处理系统 结果是 系统被证明不适合当前的工作量 花费几乎是预算的两倍 必须立即更换 华盛顿邮报的报道 到1985年 还需要再追加9千万美元来改进Sperry公司最初价值1 03亿美元的设备 另外 因为出现的问题阻碍了IRS按时返还纳税者的税款 IRS还被迫偿还4 02亿美元的利息以及2 23千万美元的工资给加班职员 第45 83页 用户对产品功能难以满足 开发人员和用户之间很难沟通 矛盾很难统一 往往是软件开发人员不能真正了解用户的需求 而用户又不了解计算机求解问题的模式和能力 双方无法用共同熟悉的语言进行交流和描述 在双方互不充分了解的情况下 就仓促上阵设计系统 匆忙着手编写程序 这种 闭门造车 的开发方式必然导致最终的产品不符合用户的实际需要 表1 4显示了开发系统失败所造成的经济损失 第46 83页 软件产品质量无法保证 系统中的错误难以消除 软件是逻辑产品 质量问题很难以统一的标准度量 因而造成质量控制困难 例如 一次美国在肯尼迪角发射一枚阿脱拉斯火箭 预定将用这种火箭运载飞往金星的宇宙飞船 火箭飞离地面几十英里高空开始翻转 地面控制中心被迫下令自爆炸毁 后经检查发现是飞行计划程序中漏掉一个连字符 就是这样一个连字符的疏漏造成这枚价值1850万美元的火箭实验失败 据统计数字表明 在大型系统中 约3 4的系统有问题 表1 5显示了美国对政府开发的9个软件项目调查的结果 可用系统只占不到5 第47 83页 软件产品难以维护 软件产品本质上是开发人员的代码化的逻辑思维活动 他人难以替代 除非是开发者本人 否则很难及时检测 排除系统故障 为使系统适应新的硬件环境 或根据用户的需要在原系统中增加一些新的功能 又有可能增加系统中的错误 第48 83页 软件缺少适当的文档资料 文档资料是软件必不可少的重要组成部分 实际上 软件的文档资料是开发组织和用户的之间权利和义务的合同书 是系统管理者 总体设计者向开发人员下达的任务书 是系统维护人员的技术指导手册 是用户的操作说明书 缺乏必要的文档资料或者文档资料不合格 将给软件开发和维护带来许多严重的困难和问题 第49 83页 软件开发供不应求 软件开发生产率的提高速度 难以满足社会需求的增长率 软件产品 供不应求 的现象致使不能充分利用现代计算机硬件提供的巨大潜力 第50 83页 软件危机产生的原因 产生软件危机有两个方面的原因 与软件本身的特点有关 是内在因素 客观的存在 只能因势利导加以解决 与软件开发和维护的技术方法有关 是外在因素 可以完善 提高 第51 83页 软件特点的因素 内因 软件是逻辑产品 是代码化了的人的思维活动 在总体构思时 别人无法管理和干预 在写出程序 并在机器上运行之前 进展情况难以掌握 开发质量也无法评估 这些都给管理和控制带来不便 软件是特定问题在计算机上的运行描述 实际问题的复杂性决定了一个实用软件系统规模往往十分庞大 大有大的难处 程序规模越大 控制 管理难度也就越大 第52 83页 软件开发维护技术方法的因素 开发人员和用户之间的矛盾 许多软件系统开发失败的主要原因
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 热带气旋最大强度分析模型的评估
- 2025至2030中国阴道保湿剂行业发展趋势分析与未来投资战略咨询研究报告
- 2025至2030中国水电行业项目调研及市场前景预测评估报告
- 2025年智能可穿戴设备技术创新在野生动物保护监测中的应用前景
- 一例肠梗阻患者的个案护理
- 离婚自愿放弃所有财产净身出户全面协议书
- 安全管理承包合同:加油站消防安全责任承包协议
- 离婚协议书打印模板离婚纠纷调解与执行服务
- 创新型科技企业研发团队人员主体变更合作协议
- 2025至2030中国轻石脑油行业项目调研及市场前景预测评估报告
- 精神科身体约束与护理
- 2021控制性详细规划技术规程
- 门窗淋水试验施工方案
- 遥感原理与应用 课件 第7、8章 定量遥感、遥感技术的应用
- 干部履历表模板
- 患者隐私保护培训课件
- 《SolidWorks 2024项目教程》高职全套教学课件
- 儿童肥胖的危害和预防-培训课件
- 2025版宝鸡市房地产评估服务合同范本(含保密条款)2篇
- 《集成电路技术导论》课件
- 医疗机构药品管理法
评论
0/150
提交评论