三次软件危机的表现及起因

上传人:wt****50 文档编号:34275483 上传时间:2018-02-22 格式:DOC 页数:4 大小:38KB
返回 下载 相关 举报
三次软件危机的表现及起因_第1页
第1页 / 共4页
三次软件危机的表现及起因_第2页
第2页 / 共4页
三次软件危机的表现及起因_第3页
第3页 / 共4页
三次软件危机的表现及起因_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《三次软件危机的表现及起因》由会员分享,可在线阅读,更多相关《三次软件危机的表现及起因(4页珍藏版)》请在金锄头文库上搜索。

1、软件危机:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。第一次软件危机 (60 年代70 年代)20 世 纪 60 年 代 以 前 , 计 算 机 刚 刚 投 入 实 际 使 用 , 这个时期主要的软件开发方式是使用机器语言或者汇编语言在特定的机器上进行软件的设计与编写。此时的软件规模较小,文 档 资 料 通 常 也 不 存 在 , 也不需要使用系统化的软件开发方法,基本上是个人设计编码、个人操作使用的的 私 人 化 的 软 件 生 产 模式。这个时代的程序一个典型特征就是依赖特定的机器,程序员必须根据所使用的计算机的硬件特性编写特定

2、的程序。然而从 60 年代中期开始,大容量、高速度计算机问世,使 计 算 机 的 应 用范 围 迅 速 扩 大 , 软 件 开 发 急 剧 增 长 。 高 级 语 言 开 始 出 现 ; 操 作 系 统 的 发 展 引起 了 计 算 机 应 用 方 式 的 变 化 ; 大 量 数 据 处 理 导 致 第 一 代 数 据 库 管 理 系 统 的 诞生 。 软 件 系 统 的 规 模 越 来 越 大 , 复 杂 程 度 越 来 越 高 , 软 件 可 靠 性 问 题 也 越 来越 突 出 , 程序设计的复杂度也随之增长。原 来 的 个 人 设 计 、 个 人 使 用 的 方 式不 再 能 满 足

3、要 求 , 迫 切 需 要 改 变 软 件 生 产 方 式 , 提 高 软 件 生 产 率 , 软 件 危 机开 始 爆 发 。1968 年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,第一次讨论软件危机问题,并正式提出“软件工程”一词,从此一门新兴的工程学科软件工程学为研究和克服软件危机应运而生,“软件危机”的概念也是在那次会议上由 F. L. Bauer 提出的。当时业界最迫切的需求是需要在不损失性能的前提下获得更好的“抽象性”和“可移植性”。此时,比汇编和机器语言更高级的语言相聚诞生,典型的代表莫过于 C 语言(1972 年)。C 语言让程序员能让程序员编写的代码在没有或只有较少

4、机器相关性的同时又有不输于汇编语言的性能,而且丰富的语言特性也使得编程难度大大降低,成功的解决了“抽象性”和“可移植性”的问题。现 象早 期 出 现 的 软 件 危 机 主 要 表 现 在 : 软 件 开 发 费 用 和 进 度 失 控 。 费 用 超 支 、 进 度 拖 延 的 情 况 屡 屡 发 生 。有 时 为 了 赶 进 度 或 压 成 本 不 得 不 采 取 一 些 权 宜 之 计 , 这 样 又 往 往 严 重 损 害 了软 件 产 品 的 质 量 。 软 件 的 可 靠 性 差 。 尽 管 耗 费 了 大 量 的 人 力 物 力 , 而 系 统 的 正 确 性 却 越来 越 难

5、以 保 证 , 出 错 率 大 大 增 加 , 由 于 软 件 错 误 而 造 成 的 损 失 十 分 惊 人 。 生 产 出 来 的 软 件 难 以 维 护 。 很 多 程 序 缺 乏 相 应 的 文 档 资 料 , 程 序中 的 错 误 难 以 定 位 , 难 以 改 正 , 有 时 改 正 了 已 有 的 错 误 又 引 入 新 的 错 误 。 随着 软 件 的 社 会 拥 有 量 越 来 越 大 , 维 护 占 用 了 大 量 人 力 、 物 力 和 财 力 。 进 入80 年 代 以 来 , 尽 管 软 件 工 程 研 究 与 实 践 取 得 了 可 喜 的 成 就 , 软 件 技

6、术 水 平 有了 长 足 的 进 展 , 但 是 软 件 生 产 水 平 依 然 远 远 落 后 于 硬 件 生 产 水 平 的 发 展 速 度第二次软件危机(80 年代90 年代)这次危机可以归因于软件复杂性的进一步增长。这个时候的大规模软件常常由数百万行代码组成,有数以百计的程序员参与其中,怎样高效、可靠的构造和维护这样规模的软件成为了一个新的难题。著名的人月神话中提及,IBM 公司开发的 OS/360 系统共有 4000 多个模块,约 100 万条指令,投入 5000人年,耗资数亿美元,结果还是延期交付。在交付使用后的系统中仍发现大量(2000 个以上)的错误。现 象软 件 危 机 不

7、仅 没 有 消 失 , 还 有 加 剧 之 势 。 主 要 表 现 在 : 软 件 成 本 在 计 算 机 系 统 总 成 本 中 所 占 的 比 例 居 高 不 下 , 且 逐 年 上 升 。由 于 微 电 子 学 技 术 的 进 步 和 硬 件 生 产 自 动 化 程 度 不 断 提 高 , 硬 件 成 本 逐 年 下降 , 性 能 和 产 量 迅 速 提 高 。 然 而 软 件 开 发 需 要 大 量 人 力 , 软 件 成 本 随 着 软 件规 模 和 数 量 的 剧 增 而 持 续 上 升 。 从 美 、 日 两 国 的 统 计 数 字 表 明 , 1985 年 度软 件 成 本 大

8、 约 占 总 成 本 的 90 。 软 件 开 发 生 产 率 提 高 的 速 度 远 远 跟 不 上 计 算 机 应 用 迅 速 普 及 深 入 的 需要 , 软 件 产 品 供 不 应 求 的 状 况 使 得 人 类 不 能 充 分 利 用 现 代 计 算 机 硬 件 所 能 提供 的 巨 大 潜 力 。这时候人们典型需求的是更好的“可组合性”(Composability)、“可延展性”(Malleability)以及“可维护性”(Maintainability)。程序的性能已经不是一个大问题了,因为摩尔定律能帮你搞定它(70 年代编写的 C 程序仍然能在现在的计算机上运行,而且它还更快!

9、)。为了解决这次危机,面向对象的编程语言(C+、C#、Java 等)诞生了,更好的软件工程方法(设计模式、重构、测试、需求分析等等)诞生了,而程序员们也越来越不需要知道硬件是怎么工作的了。软件和硬件的界限越来越牢固,Java 编写的代码能在任何 JVM 支持的平台上运行,程序员也非常乐于享受这样的便利。第三次软件危机(2005 年至今)兄弟们,“免费的午餐已经结束了”。摩尔定律在串行机器上宣告失效,多核时代正式来临!这个时候怎样在多核平台上仍然能保持性能的持续增长就成为了这一次软件危机的核心。并行编程给我们带来了许许多多新的技术难题,现阶段想要高效的利用这些多核平台以获得更好的性能,就必须对计

10、算机的硬件有较深入的理解,而广大程序员却更喜欢能有一些更加便利的编程模型(也许是一门新的语言、也许是新的编程模型)来简单高效地进行并行编程。我们正处在这次危机的开端,前路满是荆棘。但是只要有问题,就会有机会。多核时代,你们的机会在哪里呢?原因:软 件 工 程 研 究 结 果 表 明 , 软 件 危 机 的 原 因 主 要 有 两 方 面 :与 软 件 本 身 的 特 点 有 关软 件 不 同 于 硬 件 , 它 是 计 算 机 系 统 中 的 逻 辑 部 件 而 不 是 物 理 部 件 ; 软 件样 品 即 是 产 品 , 试 制 过 程 也 就 是 生 产 过 程 ; 软 件 不 会 因 使

11、 用 时 间 过 长 而“老 化 ”或 “用 坏 ”; 软 件 具 有 可 运 行 的 行 为 特 性 , 在 写 出 程 序 代 码 并 在 计算 机 上 试 运 行 之 前 , 软 件 开 发 过 程 的 进 展 情 况 较 难 衡 量 , 软 件 质 量 也 较 难 评价 , 因 此 管 理 和 控 制 软 件 开 发 过 程 十 分 困 难 ; 软 件 质 量 不 是 根 据 大 量 制 造 的相 同 实 体 的 质 量 来 度 量 , 而 是 与 每 一 个 组 成 部 分 的 不 同 实 体 的 质 量 紧 密 相 关 ,因 此 , 在 运 行 时 所 出 现 的 软 件 错 误

12、几 乎 都 是 在 开 发 时 期 就 存 在 而 一 直 未 被 发现 的 , 改 正 这 类 错 误 通 常 意 味 着 改 正 或 修 改 原 来 的 设 计 , 这 就 在 客 观 上 使 得软 件 维 护 远 比 硬 件 维 护 困 难 ; 软 件 是 一 种 信 息 产 品 , 具 有 可 延 展 性 , 属 于 柔性 生 产 , 与 通 用 性 强 的 硬 件 相 比 , 软 件 更 具 有 多 样 化 的 特 点 , 更 加 接 近 人 们的 应 用 问 题 。 随 着 计 算 机 应 用 领 域 的 扩 大 , 99 的 软 件 应 用 需 求 已 不 再 是 定 义 良 好

13、 的数 值 计 算 问 题 , 而 是 难 以 精 确 描 述 且 富 于 变 化 的 非 数 值 型 应 用 问 题 。 因 此 ,当 人 们 的 应 用 需 求 变 化 发 展 的 时 候 , 往 往 要 求 通 过 改 变 软 件 来 使 计 算 机 系 统满 足 新 的 需 求 , 维 护 用 户 业 务 的 延 续 性 。 来 自 于 软 件 开 发 人 员 的 弱 点其 一 , 软 件 产 品 是 人 的 思 维 结 果 , 因 此 软 件 生 产 水 平 最 终 在 相 当 程 度 上取 决 于 软 件 人 员 的 教 育 、 训 练 和 经 验 的 积 累 ; 其 二 , 对

14、于 大 型 软 件 往 往 需 要 许 多 人 合 作 开 发 , 甚 至 要 求 软 件 开 发 人 员深 入 应 用 领 域 的 问 题 研 究 , 这 样 就 需 要 在 用 户 与 软 件 人 员 之 间 以 及 软 件 开 发人 员 之 间 相 互 通 讯 , 在 此 过 程 中 难 免 发 生 理 解 的 差 异 , 从 而 导 致 后 续 错 误 的设 计 或 实 现 , 而 要 消 除 这 些 误 解 和 错 误 往 往 需 要 付 出 巨 大 的 代 价 ; 其 三 , 由 于 计 算 机 技 术 和 应 用 发 展 迅 速 , 知 识 更 新 周 期 加 快 , 软 件 开

15、 发人 员 经 常 处 在 变 化 之 中 , 不 仅 需 要 适 应 硬 件 更 新 的 变 化 , 而 且 还 要 涉 及 日 益扩 大 的 应 用 领 域 问 题 研 究 ; 软 件 开 发 人 员 所 进 行 的 每 一 项 软 件 开 发 几 乎 都 必须 调 整 自 身 的 知 识 结 构 以 适 应 新 的 问 题 求 解 的 需 要 , 而 这 种 调 整 是 人 所 固 有的 学 习 行 为 , 难 以 用 工 具 来 代 替 。 软 件 生 产 的 这 种 知 识 密 集 和 人 力 密 集 的 特 点 是 造 成 软 件 危 机 的 根 源 所 在 。从 软 件 开 发

16、危 机 的 种 种 表 现 和 软 件 开 发 作 为 逻 辑 产 品 的 特 殊 性 可 以 发 现软 件 开 发 危 机 的 原 因 : ( 1) 用 户 需 求 不 明 确 在 软 件 开 发 过 程 中 , 用 户 需 求 不 明 确 问 题 主 要 体 现 在 四 个 方 面 : 在 软 件 开 发 出 来 之 前 , 用 户 自 己 也 不 清 楚 软 件 开 发 的 具 体 需 求 ; 用 户 对 软 件 开 发 需 求 的 描 述 不 精 确 , 可 能 有 遗 漏 、 有 二 义 性 、 甚 至 有 错误 ; 在 软 件 开 发 过 程 中 , 用 户 还 提 出 修 改 软 件 开 发 功 能 、 界 面 、 支 撑 环 境 等方 面 的 要 求 ; 软 件 开 发 人 员 对 用 户 需 求 的 理 解 与 用 户 本 来 愿 望 有 差 异 。 ( 2) 缺 乏 正 确 的 理 论 指 导 缺 乏 有 力 的 方 法 学 和 工 具

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

当前位置:首页 > 生活休闲 > 社会民生

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