软 件 开 发 方 法 述 评
60 年 代 中 期 开 始 爆 发 了 众 所 周 知 的 软 件危 机。 为 了 克 服 这 一 危 机, 在 1968、 1969 年 连 续 召 开 的 两 次 著 名 的NATO 会 议 上 提 出 了 软 件 工 程 这 一 术 语, 并 在 以 后 不 断 发 展、 完 善。与 此 同 时, 软 件 研 究 人 员 也 在 不 断 探 索 新 的 软 件 开 发 方 法。 至 今 已形 成 八 类 软 件 开 发 方 法。
一、Parnas 方 法
最 早 的 软 件 开 发 方 法 是 由 D.Parnas 在 1972 年 提 出 的 。 由 于 当 时 软 件 在 可 维 护 性 和 可 靠 性 方 面 存 在 着 严 重 问 题 , 因 此 Parnas 提 出 的 方 法 是 针 对 这 两 个 问 题 的 。 首 先 , Parnas
提 出 了 信 息 隐 蔽 原 则: 在 概 要 设 计 时 列 出 将 来 可 能 发 生 变
化 的 因 素 , 并 在 模 块 划 分 时 将 这 些 因 素 放 到 个 别 模 块 的 内
部 。 这 样 , 在 将 来 由 于 这 些 因 素 变 化 而 需 修 改 软 件 时 , 只
需 修 改 这 些 个 别 的 模 块 , 其 它 模 块 不 受 影 响 。 信 息 隐 蔽 技
术 不 仅 提 高 了 软 件 的 可 维 护 性 , 而 且 也 避 免 了 错 误 的 蔓 延
, 改 善 了 软 件 的 可 靠 性 。 现 在 信 息 隐 蔽 原 则 已 成 为 软 件 工
程 学 中 的 一 条 重 要 原 则 。
Parnas 提 出 的 第 二 条 原 则 是 在 软 件 设 计 时 应 对 可 能 发生 的 种 种 意 外 故 障 采 取 措 施 。 软 件 是 很 脆 弱 的 , 很 可 能 因
为 一 个 微 小 的 错 误 而 引 发 严 重 的 事 故 , 所 以 必 须 加 强 防 范
。 如 在 分 配 使 用 设 备 前 , 应 该 取 设 备 状 态 字 , 检 查 设 备 是
否 正 常 。 此 外 , 模 块 之 间 也 要 加 强 检 查 , 防 止 错 误 蔓 延 。
Parnas 对 软 件 开 发 提 出 了 深 刻 的 见 解 。 遗 憾 的 是 , 他
没 有 给 出 明 确 的 工 作 流 程 。 所 以 这 一 方 法 不 能 独 立 使 用 ,
只 能 作 为 其 它 方 法 的 补 充 。
二 、 SASA方 法
1978 年 , E.Yourdon 和 L.L.Constantine 提 出 了 结 构 化 方法 , 即 SASD 方 法 , 也 可 称 为 面 向 功 能 的 软 件 开 发 方 法 或
面 向 数 据 流 的 软 件 开 发 方 法 。 1979 年Tom DeMarco 对 此 方 法
作 了 进 一 步 的 完 善 。
Yourdon方 法 是 80 年 代 使 用 最 广 泛 的 软 件 开 发 方 法 。它 首 先 用 结 构 化 分 析(SA ) 对 软 件 进 行 需 求 分 析 , 然 后 用
结 构 化 设 计( SD) 方 法 进 行 总 体 设 计 , 最 后 是 结 构 化 编
程( SP) 。 这 一 方 法 不 仅 开 发 步 骤 明 确 , SA 、 SD 、 SP 相
辅 相 成 , 一 气 呵 成 , 而 且 给 出 了 两 类 典 型 的 软 件 结 构( 变
换 型 和 事 务 型 ) , 便 于 参 照 , 使 软 件 开 发 的 成 功 率 大 大 提
高 , 从 而 深 受 软 件 开 发 人 员 的 青 睐 。
三 、 面 向 数 据 结 构 的 软 件 开 发 方 法
Jackson 方 法
1975 年 , M.A.Jackson 提 出 了 一 类 至 今 仍 广 泛 使 用 的软 件 开 发 方 法 。 这 一 方 法 从 目 标 系 统 的 输 入 、 输 出 数 据 结
构 入 手 , 导 出 程 序 框 架 结 构 , 再 补 充 其 它 细 节 , 就 可 得 到
完 整 的 程 序 结 构 图 。 这 一 方 法 对 输 入 、 输 出 数 据 结 构 明 确
的 中 小 型 系 统 特 别 有 效 , 如 商 业 应 用 中 的 文 件 表 格 处 理 。
该 方 法 也 可 与 其 它 方 法 结 合 , 用 于 模 块 的 详 细 设 计 。
Jackson 方 法 有 时 也 称 为 面 向 数 据 结 构 的 软 件 设 计 方 法 。
Warnier 方 法
1974 年 , J.D.Warnier 提 出 的 软 件 开 发 方 法 与 Jackson 方
法 类 似 。 差 别 有 三 点: 一 是 它 们 使 用 的 图 形 工 具 不 同 , 分
别 使 用 Warnier图 和 Jackson 图 ; 另 一 个 差 别 是 使 用 的 伪 码 不
同 ; 最 主 要 的 差 别 是 在 构 造 程 序 框 架 时 , Warnier 方 法 仅 考
虑 输 入 数 据 结 构 , 而 Jackson 方 法 不 仅 考 虑 输 入 数 据 结 构 ,
而 且 还 考 虑 输 出 数 据 结 构 。
四 、 问 题 分 析 法
PAM 问 题 分 析 法 。 PAM(Problem Analysis Method) 是 80 年
代 末 由 日 立 公 司 提 出 的 一 种 软 件 开 发 方 法 。
PAM方 法 希 望 能 兼 顾 Yourdon 方 法 、 Jackson 方 法 和 自 底
向 上 的 软 件 开 发 方 法 的 优 点 , 而 避 免 它 们 的 缺 陷 。 它 的 基
本 思 想 是: 考 虑 到 输 入 、 输 出 数 据 结 构 , 指 导 系 统 的 分 解
, 在 系 统 分 析 指 导 下 逐 步 综 合 。 这 一 方 法 的 具 体 步 骤 是:
从 输 入 、 输 出 数 据 结 构 导 出 基 本 处 理 框 ; 分 析 这 些 处 理 框
之 间 的 先 后 关 系 ; 按 先 后 关 系 逐 步 综 合 处 理 框 , 直 到 画 出
整 个 系 统 的 PAD 图 。 从 上 述 步 骤 中 可 以 看 出 , 这 一 方 法 本
质