软件危机的产生与解决途径
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软 ① 对软件开发成本高和进度估计不准确。 件 ② 用户对已完成的“软件系统”不满意。 危 ③ 软件产品的质量不可靠。
机 ④ 软件维护困难,维护的人员与费用不断 增加。 的 ⑤ 缺乏完整、正确的文档资料。 产 ⑥ 软件成本在计算机系统中所占比例逐年上升。 生 ⑦ 软件的发展跟不上硬件的发展和用户的要求。
发 过 程
2个数量级,且质量稳步提高。 ❖ 软件生产跟不上计算机应用的要求,开
发成本增加,质量没有保证,已成制约
计算机发展的关键因素。
08.04.2020
5
软件危机
软 件
❖ 软件危机(crisis):是指在计算机软
危 件开发和维护过程中所遇到的一
机 的
系列的严重问题。
产
生
08.04.2020
6
软件危机的具体表现
B.W.Boehm认为,应制定和严格执行6类计划: 项目概要计划、里程碑计划、项目控制计划、产
途 品控制计划、验证计划、运行维护计划。
径
08.04.2020
16
解
软件工程基本原理
决 软
件 危 机
的
2.坚持进行阶段评审
设计的错误占软件错误的63%,编码错 误只占37%。而且在后期纠正错误的代价 非常高。因此,必须严格坚持阶段评审, 及早发现和纠正错误。
发。 08.04.2020
8
软件的生命周期
解
决 软 软件的生命周期(life cycle):
件
是指软件产品或软件系统,从生产、投
危 入使用到被淘汰的全过程。
机
的
把软件生命周期依次划分为若干阶段,
途 每个阶段有相对独立的任务,逐步完成各个
径 阶段的任务后,软件的生命周期向前推进。
08.04.2020
的 ❖ 1983年,B.W.Boehm归纳提出了七条
途 基本原则。
径
08.04.2020
15
解 软件工程基本原理
决1.用分阶段的生命周期计划严格管理
软
有人统计,在不成功的软件项目中有50%左
件 右是由于计划不周造成的。应该把软件生命周期
危 机 的
划分为若干阶段,并制定出相应的切实可行的计 划,严格按照计划对开发和维护进行管理。
9
软件的生命周期
解
决 软
软件计划(planning)阶段
件 危
❖ 问题定义:要解决的问题是什么?
机 ❖ 可行性研究:在时间和资源的约束条
的 途
件下,能否完成指定的任务?包括:技
径 术可行性、经济可行性、法律可行性、
社会可行性。
08.04.2020
10
软件的生命周期
解
决 软件开发(development)阶段
途
径
08.04.2020
17
解 软件工程基本原理
决
软 3.实行严格的产品质量控制
件
在现实中由于外部原因要求对需
危 求等进行修改是难免的。但必须有严
机 格的管理制度和措施。
的
途
径
08.04.2020
18
解 软件工程基本原理
决
软 4.采用现代程序设计技术和软件工程技术
件
如结构化程序分析(Structured Analysis)
件 算法,工程科学用于制定规范、设计范
危 机 的
型、评估成本及确定权衡,管理科学用 于计划、资源、质量、成本等管理。
途
径
08.04.2020
14
软件工程基本原理
解
决 ❖ 1968年在联邦德国召开的国际会议正
软 式提出并使用“软件工程”的概念和术
件 危
语,众多专家提出100多条关于软件
机 程的准则。
软 件
❖ 需求分析
危 ❖ 总体设计
机 ❖ 详细设计
的 途
❖ 编码
径 ❖ 测试
❖ 运行
08.04.2020
11
软件的生命周期
解
决 软
软件维护(maintenance)阶段
件
在不同的阶段对软件修改而付出的
危 代价是不同的!在后期引入一个变动的
机 的
代价比在早期引入要高的多,甚至高达
途 2─3个数量级。
❖ 第一个时期:40—60年代,个体时期
软 件
(程 序时期)
开 ❖ 第二个时期:60—70年代,软件作坊时
发 期(程序+文档)
过 程
❖
第三个时期:70年代以后,软件工程时
期。
08.04.2020
4
软件开发过程的演化
软 ❖ 计算机软件的数量以惊人的速度急剧
件 膨胀。
开 ❖ 计算机硬件的性能/价格比,每10年提高
本章主要内容
❖ 软件开发过程 ❖ 软件危机的产生 ❖ 解决软件危机的途径 ❖ 软件工程
08.04.2020
1
计算机硬件与软件
软 件
❖ 任何计算机系统都包含硬件(hard)和软件
开
(software)两大部分。
发
❖ 硬件只是提供了计算的可能性
过
程
❖ 必须有支持和管理计算机的软件,系统才能
实现计算
08.04.2020
人员不宜过多。人员素质低和人员过多, 都会导致软件的错误率高,且开发效率下
机
降,成本增加。
的
途 7.承认不断改进软件工程的必要性
径
软件工程是一门不断迅速发展的学科,
必须学习和跟踪先进的技术和方法,也要
不断总结经验、改进方法,要不断进行技
08.04.2020
术创新。
20
解决软件危机的传统方法
2
软件的三层含义
软 件 ❖ 个体含义:指计算机中的程序及其文 档。
开 发
❖
整体含义:指在特定计算机系统中所有上述
个体含义下的软件的总称,即计算机系统中硬件
过 除外的所有成分。
程 ❖
学科含义:指在研究、开发、维护以及使用
前述含义下的软件所涉及的理论、方法、技术所
构成的学科。
08.04.2020
3
软件开发过程的演化
径
08.04.2020
12
解
软件工程
决 软
软件工程
件பைடு நூலகம்
是一门指导计算机软件开发和维 护
危 的工程学科,是一类求解软件包的工程。
机 它应用计算机科学、数学及管理科学等原
的 途
理,借鉴传统工程的原则、方法,创建软
径 件以达到提高质量、降低成本的目的。
08.04.2020
13
软件工程
解
决
软
计算机科学、数学用于构造模型与
08.04.2020
7
产生软件危机的原因
软 件 危
机
❖ 客观原因:软件需求大,规模大
❖ 主观原因:软件本身的特点
软件是一种逻辑部件不是物理部件,其进展情 况和质量难以控制。
的 软件的规模非常庞大,多人共同开发,必须有
产 严格和科学的管理。
生 软件开发过分依赖于个人的智力劳动和经验。
在对用户需求没有完整、准确的认识,匆忙开
危
和结构化设计(Structured Design)等。
机 5.结果应能清楚地审查
的
由于软件是一种看不见摸不着的逻辑
途 径
产品,对它的检验和审查很困难。因此, 应提供可视化的检验标准和方法。
08.04.2020
19
解 软件工程基本原理
决
软 6.开发人员应少而精
件 危
软件开发小组的人员应该是素质高,