<4D6963726F736F667420576F7264202D20C8EDBCFEB9A4B3CCB5BCC2DB20D2EBB8E52E646F63>



Similar documents
18 UML UP 2.2 UP Software Engineering Process S E P w h o w h a t when h o w 2-2 S E P 2-2 Unified Software Development Process U S D P U M L S E P UP

Wy159.mps

Microsoft PowerPoint - DFD.PPT

識 度 立 樓 不 立 不 參

2015年第五届“华为杯”全国大学生智能设计竞赛通知

Microsoft Word - 檳榔A計畫

2015年第五届“华为杯”全国大学生智能设计竞赛通知

一 专 业 名 称 专 业 名 称 : 会 计 二 入 学 要 求 与 基 本 学 制 入 学 要 求 : 初 中 毕 业 生 基 本 学 制 : 三 年 ; 其 中 前 二 年 为 在 校 学 习 时 间, 最 后 一 年 为 企 业 实 习 时 间 层 次 : 中 职 三 培 养 目 标 本 专

國立台灣師範大學

從影片欣賞到華語教學的課程設計研究

<4D F736F F D203031B2C431A9A1B2C438A6B8A977B4C1A46AB77CB2C43233B4C1ABCAADB12E646F63>

做党和人民满意的好老师

黄 永 润 带 队 参 加 市 场 营 销 与 物 流 管 理 培 训 班... 6 黄 永 润 出 席 茶 业 集 团 春 茶 生 产 经 营 分 析 会... 6 大 明 山 茶 文 化 生 态 家 园 项 目 签 约 仪 式 在 邕 举 行... 7 广 西 职 业 技 术 学 院 开 展 庆

中山市**局2005年部门预算基本情况说明


<4D F736F F D203234A8E2A9A4B142ABC3AABAB7C5B1A1ADB1BB50AA6BA8EEADB1>

机动车驾驶证申领和使用规定(公安部令第91号)

Microsoft Word 薪酬管理制度.doc

0660

<4D F736F F D203033C8ABC8D5D6C6B1BEA1A2D7A8BFC6C9FAD1A7B7D6D6C6D1A7BCAEB9DCC0EDB9E6B6A82E646F63>

黄 河 两 岸 耸 立 着 万 丈 高 山 战 士 们 站 在 河 畔 仰 起 头 看, 天 像 一 条 摆 动 的 长 带 子 人 要 站 在 河 两 岸 的 山 尖 上, 说 不 定 云 彩 就 从 耳 边 飞 过, 伸 手 也 能 摸 着 冰 凉 的 青 天 山 峡 中, 浑 黄 的 河 水

Microsoft Word - 雲林縣學校轉型優質計畫.docx

<4D F736F F D20BDADCBD5CAA1B9A9CFFABACFD7F7D7DCC9E7BCF2B1A8B5DA3239C6DA2E646F63>

<4D F736F F D20C3F1D3C3BBFAB3A1BDA8C9E8B9DCC0EDB9E6B6A8B7A2B2BCB8E52E646F63>

慈宗彌勒淨土法門的殊勝

5.1施工企业会计核算办法

論文全.doc

专科疾病诊治(十二)


untitled



Az b.doc

文档2

<4D F736F F D20A2B0A1D0A2B0A1D0A2B0A240A6CBAA4FC554BC4DB7ABA240A7D6AA4FBD6DB2DF2E646F63>

利 润 预 计 为 360, 万 元 ; 假 设 2016 年 归 属 母 公 司 所 有 者 的 净 利 润 较 2015 年 度 预 测 值 的 基 础 上 增 长 15%, 为 414, 万 元 上 述 利 润 值 不 代 表 公 司 对 未 来 利 润 的 盈 利 预

<4D F736F F D B77CC4B3ACF6BFFD2DB0D3B77EC2B2B3F8C2BEBAD82E646F63>

kidney GCT

Microsoft Word - 广州市番禺区2014年新型农村合作医疗管理办法实施细则.doc

<4D F736F F D20C9FABBEED6D0C0B4B5C4BDA1BFB5CAD6B2E1A3A8D6D0A3A92E646F63>

写 花 都 区 新 型 农 村 合 作 医 疗 特 殊 情 况 报 销 申 请 表, 经 村 镇 区 三 级 审 核, 同 意 后 方 可 办 理 报 销 ; 在 医 疗 机 构 住 院 者, 出 院 后 3 个 月 内 仍 未 办 理 报 销, 不 再 予 以 办 理 报 销 2. 住 院 医 疗

Ⅰ Ⅱ Ⅲ Ⅳ

電機工程系認可證照清單 /7/1

党 政 投 资 基 金 落 户 上 城 区 曰 全 年 新 批 外 商 投 资 项 目 30 个 袁 实 际 利 用 外 资 万 美 元 曰 引 进 市 外 内 资 项 目 598 个 袁 实 际 到 位 资 金 亿 元 曰 推 进 区 市 协 作 工 程 袁 出 台 实 施

社 工 系 师 生 继 续 服 务 金 竹 林 儿 童 之 家.7 专 业 技 能 训 练 动 员 大 会..7 顶 岗 实 习 动 员 会 级 本 科 班 专 业 技 能 训 练...9 保 山 学 院 盈 江 青 爱 小 屋 支 教 行 级 政 本 班 德 育

信工学生工作简报 第四期.doc

支撑材料4.4.doc

教学设计方案

2009杭州市小学地方课程

课程整体教学设计指导意见

???h?????????W??????

天天星期三

簡 述 所 有 參 與 教 案 編 寫 人 員 之 學 經 歷 及 負 責 內 容 參 與 教 案 編 寫 人 員 魏 俊 陽 學 歷 經 歷 負 責 內 容 國 立 臺 灣 師 範 新 北 市 閩 南 語 教 案 編 寫 大 學 課 程 與 教 輔 導 團 教 學 者 學 研 究 所 博 士 新

任 务 单 一 ~2: 文 具 书 本 摆 整 齐, 争 得 自 理 星 争 星 要 求 : 文 具 用 品 摆 放 好, 书 本 叠 叠 放 整 齐 探 秘 任 务 一 ~2: 文 具 书 本 摆 整 齐, 争 得 自 理 星 任 务 1: 跟 小 辅 导 员 一 起 参 观 高 年 级 的 教

ソフトウェア説明書 CA Introscope 9 (9.5)

考 試 日 期 :2016/04/24 教 室 名 稱 :602 電 腦 教 室 考 試 時 間 :09: 二 技 企 管 一 胡 宗 兒 中 文 輸 入 四 技 企 四 甲 林 姿 瑄 中 文 輸 入 二 技 企 管 一

Microsoft Word - PKUCS计算机教育 doc

Untitiled

中艺华海修改1.7.indd

北 京 蓝 皮 书 公 共 服 务 相 比 而 言, 养 老 医 疗 失 业 等 保 险 都 早 已 经 由 国 务 院 颁 布 了 相 应 的 立 法 条 例, 在 全 国 范 围 内 形 成 了 统 一 的 制 度 党 的 十 八 届 四 中 全 会, 首 次 以 依 法 治 国 为 主 题,

2006年中央、国家机关公务员录用考试


untitled

IT认证培训(一).doc

資訊系統開發模式

<4D F736F F D B8BDBCFE332D3120C8EDBCFEB9A4B3CCCBB6CABFC5E0D1F8B7BDB0B8>

untitled

国 家 图 书 馆 年 鉴 0 重 点 文 化 工 程 一 中 华 古 籍 保 护 计 划 0 年, 国 家 图 书 馆 ( 国 家 古 籍 保 护 中 心 ) 根 据 文 化 部 要 求, 围 绕 习 近 平 总 书 记 关 于 弘 扬 中 华 优 秀 传 统 文 化 系 列 讲 话 精 神, 对


表3:

银川一职服装设计与工艺专业教学计划

间 的 相 互 交 流 和 学 习 二 组 织 领 导 本 次 竞 赛 由 湖 南 省 教 育 厅 主 办, 湖 南 省 高 教 学 会 计 算 机 教 育 专 业 委 员 会 协 办, 长 沙 学 院 和 中 仁 教 育 承 办 为 保 证 竞 赛 规 范 有 序 的 进 行, 成 立 湖 南 省

IT认证培训(五).doc


《80后职场新鲜人生存手册》

( 二 ) 拓 展 岗 位 ( 群 ) 1. 餐 厅 服 务 岗 位 群 在 大 中 型 餐 饮 企 业 星 级 饭 店 主 要 从 事 餐 饮 服 务 的 有 关 工 作, 如 服 务 员 点 菜 师 茶 艺 师 咖 啡 师 调 酒 师 等 2. 食 品 加 工 岗 位 群 主 要 从 事 餐 饮

Microsoft Word - SPEC

二OO六年第十七期

文档标题

台北縣淡水鎮新興國民小學社區有教室課程教學活動表

CH01.indd

(NTKOOFFICE

桃園縣中小學98年度教師創意教學獎工作坊

“国家高等职业教育会计专业

附件2

“百企入校——广西青年企业家协会高校

Microsoft Word - chapter1.doc

附件2

任子行网络技术股份有限公司2014年年度报告全文

國立竹北高級中學參加101-2學年度

資訊系統開發模式

一、单项共29题,每小题2分,共58分.

Process Data flow Data store External entity 6-10 Context diagram Level 0 diagram Level 1 diagram Level 2 diagram

重庆信~1

股东大会材料2.PDF

自 己 受 到 了 不 公 正 的 待 遇 袁 他 们 似 乎 觉 得 自 己 大 学 毕 业 袁 当 然 就 应 该 从 事 自 己 喜 欢 的 职 业 袁 要 不 袁 有 什 么 必 要 上 大 学 呢 钥 还 有 的 人 愤 愤 不 平 地 抱 怨 袁 认 为 自 己 之 所 以 找 不 到

附表2:

<4D F736F F F696E74202D BB7BC3D2A4CEBFECB27AA4E8A6A1BBA1A9FA205BACDBAE65BCD2A6A15D>

Microsoft Word SRS - 軟體需求規格.doc

第 二 十 章 灸 法 拔 罐 法 设 计 首 页 课 程 名 称 中 医 传 统 康 复 疗 法 项 目 / 主 题 灸 法 拔 罐 法 课 类 理 论 课 课 序 1 学 时 2 班 级 / 小 组 13 级 体 育 保 健 与 康 复 地 点 819 时 间 11 月 12 日 能 力 ( 技

Transcription:

软 件 工 程 简 明 教 程 原 著 :Pankaj Jalote 译 : 罗 飞, 邵 凌 霜 审 校 : 陈 世 鸿

前 言 软 件 工 程 导 论 应 包 括 大 量 的 软 件 工 程 方 面 的 概 念 原 理 技 术 和 方 法, 内 容 繁 杂, 这 在 很 大 程 度 上 决 定 了 这 门 课 程 成 为 迄 今 为 止 最 难 教 的 课 程 之 一 本 人 认 为 这 是 由 于 在 教 学 时 往 往 太 过 偏 重 于 概 念 和 原 理 等 浅 层 知 识 的 介 绍, 而 忽 略 了 这 些 知 识 的 实 际 运 用 而 造 成 的, 软 件 工 程 的 最 终 目 的 是 要 运 用 这 些 知 识 有 效 地 设 计 和 开 发 出 求 解 问 题 的 好 软 件 本 书 的 目 标 我 认 为, 软 件 工 程 入 门 课 程 的 目 标 应 该 是 : 传 授 给 学 生 一 些 知 识 和 技 能, 使 得 他 们 能 够 运 用 这 些 知 识 和 技 能 成 功 地 实 施 一 个 规 模 为 几 个 人 月 的 商 业 软 件 项 目 的 开 发 现 在 许 多 企 业 都 有 很 多 这 个 方 面 的 项 目 能 够 由 一 个 小 团 队 经 过 几 个 月 的 努 力 而 完 成 的 项 目 我 还 认 为, 在 软 件 工 程 的 知 识 海 洋 中, 如 果 对 各 个 知 识 点 进 行 细 致 认 真 地 筛 选, 能 够 在 一 个 学 期 的 时 间 里, 使 学 生 们 具 有 上 述 本 领, 而 这 正 是 这 本 书 的 目 标 本 书 的 目 标 是 对 学 生 介 绍 有 限 的 符 合 下 列 要 求 的 知 识 和 练 习 : 这 些 有 限 的 知 识 和 技 能 能 够 使 学 生 完 全 胜 任 一 个 较 小 的 商 业 软 件 项 目 的 开 发 ; 提 供 学 生 所 需 的 知 识 背 景, 使 学 生 通 过 课 程 或 自 学 可 从 事 软 件 工 程 领 域 的 高 级 研 究 本 书 的 组 织 在 本 书 中, 有 意 地 删 除 了 软 件 工 程 的 高 级 议 题, 只 是 介 绍 了 一 些 我 认 为 是 基 础 的 或 者 能 够 满 足 上 述 目 标 的 知 识 点 另 外, 软 件 项 目 的 实 施 主 要 需 要 两 个 方 面 的 技 能 工 程 学 和 项 目 管 理, 因 此, 本 书 将 重 点 讨 论 这 两 个 方 面 的 主 要 活 动 以 及 执 行 这 些 活 动 所 需 要 的 知 识 和 技 术 本 书 的 安 排 方 式 很 简 单, 它 的 每 一 章 对 应 项 目 开 发 中 的 一 个 主 要 活 动 工 程 学 方 面 的 主 要 活 动 包 括 需 求 分 析 和 需 求 规 范 体 系 结 构 设 计 模 块 设 计 编 码 和 单 元 测 试 以 及 测 试 ; 项 目 管 理 方 面 的 主 要 活 动 包 括 项 目 计 划 和 项 目 监 控 两 个 方 面, 而 这 两 个 活 动 都 安 排 在 项 目 计 划 这 一 章, 这 是 因 为 项 目 的 监 控 也 需 要 计 划 另 外, 在 这 本 书 中, 还 有 一 章 主 要 用 来 阐 明 软 件 工 程 领 域 存 在 的 问 题, 而 另 一 章 则 讨 论 了 软 件 过 程 中 把 每 个 活 动 联 系 起 来 的 中 心 观 点 本 书 的 每 一 章 都 是 以 对 本 章 的 介 绍 目 标 或 者 读 者 在 本 章 中 应 有 的 收 获 开 始 每 一 章 在 介 绍 项 目 的 开 发 活 动 时, 总 是 首 先 介 绍 有 关 概 念 和 知 识, 然 后 介 绍 该 活 动 的 结 果 或 所 具 备 的 某 些 期 望 质 量 特 性, 以 及 一 些 实 践 方 法 或 执 行 该 活 动 所 需 要 的 技 术, 最 后 通 过 一 些 实 例 说 明 这 一 章 的 有 关 知 识 点, 并 为 读 者 总 结 本 章 学 习 的 主 要 内 容, 每 一 章 的 结 尾 都 提 供 有 一 些 自 测 练 习

预 期 读 者 本 书 是 大 学 本 科 生 或 研 究 生 的 软 件 工 程 入 门 课 程, 所 以, 它 的 预 期 读 者 是 那 些 了 解 编 程 但 是 没 有 正 式 学 习 过 软 件 工 程 的 本 科 生 和 研 究 生 另 外, 本 书 也 可 作 为 具 有 相 似 情 况 的 专 业 人 士 ( 了 解 编 程 但 需 要 软 件 工 程 系 统 知 识 ) 参 考 教 学 支 持 和 辅 助 资 源 尽 管 这 本 书 是 独 立 的, 但 是 一 些 相 关 的 教 学 支 持 和 辅 助 资 源 可 以 通 过 下 列 网 站 得 到 http://www.cse.iitd.ac.in/conciseintrotose 该 网 站 上 的 资 源 包 括 : 每 一 章 的 ppt 格 式 的 powerpoint 演 讲 稿 项 目 开 发 过 程 中 各 阶 段 文 档 的 模 板 一 个 项 目 开 发 文 档 的 示 例 一 些 单 元 测 试 和 审 查 的 实 践 练 习 致 谢 感 谢 我 的 编 辑 Wayne Wheeler, 这 本 精 练 的 导 论 是 他 想 出 来 的, 他 给 我 提 供 了 如 此 好 的 机 会 我 还 要 感 谢 我 的 妻 子 Shikha 以 及 我 的 两 个 女 儿 Sumedha 和 Sunanda, 谢 谢 她 们 一 直 都 忍 耐 我 的 坏 脾 气 和 陪 我 度 过 了 这 段 孤 独 的 时 光 Pankaj Jalote 印 度 新 德 里 2008 年 5 月

目 录 1. 软 件 问 题 1.1 成 本 进 度 和 质 量 1.2 规 模 和 变 更 1.3 小 结 自 测 练 习 2. 软 件 过 程 2.1 过 程 和 项 目 2.2 软 件 过 程 的 组 成 2.3 软 件 开 发 过 程 模 型 2.3.1 瀑 布 模 型 2.3.2 原 型 模 型 2.3.3 迭 代 开 发 模 型 2.3.4 Rational 统 一 过 程 (RUP) 模 型 2.3.5 时 间 盒 (timeboxing) 模 型 2.3.6 极 限 编 程 (XP) 和 敏 感 过 程 模 型 2.3.7 过 程 模 型 在 项 目 中 的 应 用 2.4 项 目 管 理 过 程 2.5 小 结 自 测 练 习 3. 软 件 需 求 分 析 和 软 件 需 求 规 格 (SRS) 3.1 好 SRS 的 意 义 3.2 需 求 过 程 3.3 需 求 规 格 3.3.1 SRS 应 该 具 备 的 特 点 3.3.2 SRS 的 组 成 3.3.3 需 求 文 档 的 结 构 3.4 用 例 驱 动 功 能 规 格 3.4.1 基 础 介 绍 3.4.2 几 个 例 子 3.4.3 扩 展 3.4.4 构 建 用 例 3.5 其 他 分 析 方 法 3.5.1 数 据 流 图 (DFD) 3.5.2 ER 图 3.6 验 证 3.7 小 结 自 测 练 习 4. 软 件 计 划 4.1 工 作 量 估 算 4.1.1 自 顶 向 下 估 算 法 4.1.2 自 底 向 上 估 算 法

4.2 项 目 进 度 和 人 员 配 备 4.3 质 量 计 划 4.4 风 险 管 理 计 划 4.4.1 风 险 管 理 的 概 念 4.4.2 风 险 估 计 4.4.3 风 险 控 制 4.4.4 一 个 实 用 的 风 险 管 理 计 划 方 法 4.5 项 目 监 测 计 划 4.5.1 项 目 的 度 量 4.5.2 项 目 监 测 和 跟 踪 4.6 详 细 日 程 安 排 4.7 小 结 自 测 练 习 5. 软 件 架 构 (SA) 5.1 软 件 架 构 的 角 色 5.2 架 构 视 图 5.3 构 件 和 连 接 件 (C&C) 视 图 5.3.1 构 件 (components) 5.3.2 连 接 件 (connectors) 5.3.3 一 个 例 子 5.4 C&C 视 图 的 架 构 模 式 5.4.1 管 道 过 滤 器 模 式 5.4.2 数 据 共 享 模 式 5.4.3 客 户 - 服 务 器 模 式 5.4.4 其 他 模 式 5.5 架 构 编 档 设 计 5.6 架 构 评 估 5.7 小 结 自 测 练 习 6. 设 计 6.1 有 关 概 念 6.1.1 耦 合 (coupling) 6.1.2 内 聚 (cohesion) 6.1.3 开 闭 原 则 6.2 面 向 功 能 的 设 计 6.2.1 结 构 图 6.2.2 结 构 化 设 计 方 法 6.2.3 一 个 例 子 6.3 面 向 对 象 (OO) 的 设 计 6.3.1 OO 的 概 念 6.3.2 统 一 建 模 语 言 (UML) 6.3.3 设 计 的 方 法 6.3.4 示 例 6.4 详 细 设 计

6.4.1 逻 辑 设 计 / 算 法 设 计 6.4.2 类 的 状 态 模 型 6.5 验 证 6.6 结 构 度 量 6.6.1 面 向 功 能 设 计 的 复 杂 性 度 量 6.6.2 面 向 对 象 设 计 的 复 杂 性 度 量 6.7 小 结 自 测 练 习 7. 编 码 和 单 元 测 试 7.1 编 码 的 原 则 和 指 南 7.1.1 结 构 化 编 程 7.1.2 信 息 隐 藏 7.1.3 一 些 编 程 的 实 践 7.1.4 编 码 标 准 7.2 增 量 编 码 7.2.1 增 量 编 码 方 法 7.2.2 测 试 驱 动 开 发 (TDD) 7.2.3 结 对 (pair) 编 程 7.3 代 码 演 化 管 理 7.3.1 源 代 码 控 制 和 编 译 7.3.2 代 码 重 构 (refactoring) 7.4 单 元 测 试 7.4.1 程 序 单 元 测 试 7.4.2 类 单 元 测 试 7.5 代 码 检 查 7.5.1 计 划 7.5.2 代 码 审 查 7.5.3 小 组 会 议 评 审 7.6 代 码 度 量 7.6.1 规 模 度 量 7.6.2 复 杂 性 度 量 7.7 小 结 自 测 练 习 8. 测 试 8.1 有 关 概 念 8.1.1 错 误 故 障 和 失 效 8.1.2 测 试 用 例 测 试 工 具 和 测 试 配 置 8.1.3 测 试 心 理 8.1.4 测 试 层 次 8.2 测 试 过 程 8.2.1 测 试 计 划 8.2.2 测 试 用 例 的 设 计 8.2.3 测 试 用 例 的 执 行 8.3 黑 盒 测 试

8.3.1 等 价 类 划 分 8.3.2 边 界 值 分 析 8.3.3 配 对 测 试 8.3.4 特 殊 用 例 设 计 8.3.5 基 于 状 态 的 测 试 8.4 白 盒 测 试 8.4.1 基 于 控 制 流 的 标 准 8.4.2 测 试 用 例 生 成 和 支 持 工 具 8.5 测 试 度 量 8.5.1 覆 盖 度 分 析 8.5.2 可 靠 性 8.5.3 缺 陷 恢 复 率 (DRE) 8.6 小 结 自 测 练 习 参 考 文 献 附 录

第 一 章 软 件 问 题 给 出 一 个 需 要 编 写 软 件 系 统 来 解 决 的 问 题, 大 多 数 学 生 认 为 需 要 编 写 约 10,000 行 ( 比 如 C 或 Java) 代 码 来 解 决, 现 在 向 一 个 有 些 编 程 经 验 的 学 生 提 问 : 如 果 让 你 全 职 工 作, 需 要 多 长 时 间 建 立 这 个 系 统? 学 生 的 回 答 一 般 为 1 至 3 个 月 考 虑 到 学 生 的 编 程 技 术 能 力, 最 有 可 能 的 情 况 是, 在 2 个 月 内 他 们 可 编 写 一 个 软 件 并 演 示 给 教 授 看 用 2 个 月 时 间 完 成 软 件, 那 么 学 生 每 个 月 的 代 码 产 出 率 约 为 5000 行 / 每 人 每 月 现 在 让 我 们 看 看 另 一 种 情 况, 当 我 们 作 为 客 户 向 从 事 软 件 开 发 业 务 的 公 司 提 出 同 一 问 题 时 虽 然 行 业 中 没 有 代 码 产 出 率 的 标 准 水 平, 而 且 针 对 解 决 不 同 问 题 的 代 码 产 出 率 也 存 在 很 大 差 异, 但 如 果 对 一 个 代 码 产 出 率 为 1000 行 / 每 人 每 月 的 程 序 员 评 价 他 的 生 产 效 率, 说 他 的 生 产 力 是 相 当 可 观 的 ( 尽 管 在 嵌 入 式 系 统 中, 产 出 率 可 以 低 至 100 行 / 每 人 每 月 ), 这 是 客 观 公 正 的 以 这 样 的 生 产 率, 那 么 软 件 公 司 的 专 业 团 队 将 需 10 个 人 月 的 投 入 才 能 建 立 这 个 软 件 系 统 为 什 么 在 这 两 种 情 况 下 代 码 产 出 率 会 存 在 差 异? 为 什 么 同 一 个 学 生, 当 他 在 学 校 时 他 的 产 出 率 可 达 几 千 行 / 每 人 每 月, 而 当 他 在 公 司 上 班 时 却 仅 仅 只 有 1000 行 / 每 人 每 月? 答 案 当 然 是 两 个 不 同 的 东 西 在 两 种 不 同 的 情 况 下 完 成 首 先, 学 生 建 立 系 统 的 主 要 目 的 是 出 于 演 示, 而 不 期 望 以 后 会 使 用 因 为 不 被 使 用, 所 以 软 件 本 身 没 有 多 大 意 义, 软 件 存 在 的 缺 陷 和 质 量 问 题 也 不 被 人 们 所 关 注 同 样, 其 他 的 质 量 问 题, 如 可 用 性 可 维 护 性 可 移 植 性 等 也 都 可 以 忽 略 另 一 方 面, 工 业 强 度 的 软 件 系 统 则 是 为 了 解 决 客 户 的 特 定 问 题 而 建 立 的, 它 用 于 客 户 处 理 某 些 业 务 若 系 统 出 现 故 障 则 会 产 生 巨 大 损 害, 如 金 融 或 商 业 损 失, 给 用 户 造 成 不 便, 甚 至 财 产 和 生 命 损 失 因 此, 软 件 系 统 应 该 保 证 性 能 健 全, 比 如 可 靠 性, 可 用 性, 便 携 性 等 性 能 这 种 满 足 最 终 用 户 高 品 质 需 要 的 软 件 在 很 大 程 度 上 会 影 响 软 件 的 开 发 方 式 和 成 本, 布 鲁 克 斯 的 经 验 法 则 给 出 建 议 说, 工 业 强 度 的 软 件 可 能 要 花 上 10 倍 学 生 软 件 的 投 入 [16] 软 件 产 业 主 要 关 注 的 是 工 业 强 度 软 件 的 开 发, 软 件 工 程 领 域 的 重 点 也 是 如 何 建 立 这 样 的 系 统 也 就 是 说, 软 件 工 程 的 问 题 域 针 对 的 是 工 业 强 度 软 件 在 本 书 的 余 下 部 分, 当 我 们 使 用 软 件 这 一 术 语 时 都 是 指 工 业 强 度 的 软 件 在 本 章 的 剩 余 部 分, 我 们 将 学 习

- 质 量 成 本 和 进 度 是 ( 工 业 强 度 ) 软 件 项 目 的 主 要 驱 动 力 - 如 何 定 义 项 目 的 成 本 和 生 产 效 率, 如 何 评 定 软 件 的 质 量 - 大 规 模 和 变 化 是 问 题 域 的 重 要 属 性, 及 相 应 的 解 决 办 法 P.Jalote, 软 件 工 程 简 明 教 程, 分 类 号 :10.1007/978-1-84800-302-6 1,ç 施 普 林 格 出 版 社 有 限 公 司 2008 年 伦 敦

1.1 成 本 进 度 和 质 量 除 了 高 品 质 的 要 求 是 工 业 强 度 软 件 与 其 他 软 件 的 区 别, 成 本 和 进 度 也 是 这 类 软 件 的 主 要 驱 动 力 在 工 业 强 度 的 软 件 领 域, 有 三 个 基 本 的 驱 动 力 成 本 进 度 和 质 量 软 件 开 发 必 须 在 综 合 考 虑 费 用 的 合 理 性 时 间 的 合 理 性 质 量 的 良 好 性 这 三 个 前 提 下 开 发 一 个 软 件 项 目 往 往 由 这 三 个 参 数 来 驱 动 和 定 义 工 业 强 度 软 件 费 用 非 常 高, 主 要 是 基 于 这 样 的 事 实 : 软 件 开 发 是 极 度 密 集 型 的 劳 力 为 理 解 成 本 观 念, 我 们 不 妨 先 看 看 行 业 当 前 的 现 实 状 况, 在 行 业 中 交 付 代 码 行 (LOC) 或 千 行 代 码 (KLOC) 是 目 前 最 常 用 的 衡 量 软 件 规 模 的 方 法, 因 为 人 力 费 用 是 软 件 生 产 中 主 要 的 成 本, 故 软 件 开 发 成 本 通 常 以 在 开 发 过 程 中 每 人 每 月 工 作 量 来 计 算, 而 生 产 率 通 常 以 每 人 每 月 所 产 出 的 代 码 行 ( 或 KLOC) 来 衡 量 在 软 件 行 业 中, 生 产 率 幅 度 从 每 人 每 月 数 百 行 至 超 过 千 行 范 围 变 化 这 个 生 产 率 是 对 整 个 开 发 周 期 而 言 的, 而 不 仅 仅 只 是 编 码 任 务 阶 段 软 件 公 司 通 常 向 提 出 软 件 开 发 要 求 的 客 户 报 价 为 $ 3000 - $ 15,000/ 每 人 每 月 的 费 用 若 生 产 率 为 1000 行 代 码 / 每 人 每 月, 这 意 味 着 交 付 的 每 一 行 代 码 要 花 费 3-15 美 元 的 成 本! 甚 至 一 个 小 项 目 也 很 容 易 达 到 五 万 行 代 码 规 模, 按 这 样 的 软 件 生 产 率, 那 么 5 万 行 代 码 的 软 件 项 目 也 将 耗 资 15 万 至 75 万 美 元! 在 许 多 项 目 中 进 度 是 另 一 个 重 要 因 素, 商 业 趋 势 要 求 产 品 尽 可 能 即 时 地 投 入 市 场, 也 就 是 说 从 概 念 到 交 付 产 品 的 周 期 要 缩 短 这 对 于 软 件 而 言, 就 是 需 要 在 指 定 的 时 间 更 快 地 开 发 出 来 不 幸 的 是, 在 软 件 的 历 史 案 例 中 不 乏 项 目 延 迟 的 例 子 显 然, 降 低 成 本 和 缩 短 软 件 开 发 周 期 是 软 件 工 程 中 心 目 标, 每 人 每 月 (KLOC) 生 产 率 可 以 充 分 反 映 对 成 本 和 进 度 的 关 注 如 果 生 产 率 较 高, 显 然 人 月 的 成 本 会 较 低 ( 同 样 的 工 作, 现 在 可 以 用 更 少 的 人 力 来 完 成 ); 同 样, 如 果 生 产 率 较 高, 在 更 短 的 时 间 内 开 发 出 软 件 的 可 能 性 会 提 高, 相 比 低 生 产 率 团 队, 一 个 相 同 规 模 的 高 生 产 率 团 队 可 以 用 更 少 的 时 间 来 完 成 一 项 工 作 ( 当 然 项 目 所 需 的 实 际 时 间 还 取 决 于 劳 力 的 分 配 数 量 ) 因 此, 追 求 更 高 生 产 率 是 软 件 工 程 背 后 的 基 本 驱 动 力, 也 是 使 用 不 同 工 具 和 技 术 的 主 要 原 因 除 了 成 本 和 进 度 外, 另 外 一 个 驱 动 软 件 工 程 的 重 要 因 素 是 质 量 质 量 是 软 件 的 主 要 问 题, 现 今 的 商 业 策 略 通 常 是 围 绕 质 量 问 题 而 制 定 的 不 幸 的 是, 已 经 出 现 了 大 量 的 软 件 不 稳 定 性 方 面 的 案 例, 软 件 通 常 没 有 做 它 应 该 做 的 或 做 了 一 些 不 应 该 做 的 事 情 显 然, 开 发 高 品 质 的 软 件 是 软 件 工 程 的 另 一 个 基 本 目 标 然 而, 成 本 一 般 很 好 理 解, 但 软 件 质 量 这 个 概 念 有 待 进 一 步 阐 述 软 件 产 品 质 量 的 国 际 标 准 [55] 表 明, 软 件 的 质 量 包 括 六 个 主 要 属 性, 如 图 1.1 所 示 这

些 属 性 可 以 定 义 如 下 : 图 1.1 软 件 质 量 属 性 - 功 能 (Functionality) 当 软 件 被 使 用 时 提 供 满 足 需 要 功 能 的 能 力 - 可 靠 性 (Reliability) 提 供 无 故 障 服 务 的 能 力 - 可 用 性 (Usability) 能 被 理 解 学 习 使 用 的 能 力 - 效 率 (Efficiency) 对 使 用 的 资 源 总 量 所 提 供 合 适 性 能 的 能 力 - 可 维 护 性 (Maintainability) 为 了 更 正 错 误 改 善 性 能 或 者 作 出 适 应 性 调 整 而 能 被 修 改 的 能 力 - 可 移 植 性 (Portability) 无 需 实 施 额 外 的 措 施 就 能 适 应 不 同 具 体 环 境 的 能 力 由 于 质 量 具 有 多 方 面 特 性, 不 同 的 项 目 可 能 会 强 调 不 同 属 性, 所 以 全 局 性 的 质 量 指 标 是 不 可 能 存 在 的 然 而, 尽 管 有 许 多 质 量 属 性, 但 可 靠 性 被 普 遍 认 为 是 主 要 的 质 量 标 准 软 件 不 可 靠 是 由 于 软 件 缺 陷 的 存 在, 故 质 量 好 坏 的 衡 量 是 以 每 单 位 规 模 ( 一 般 取 为 千 行 代 码, 或 KLOC) 软 件 存 在 的 缺 陷 数 作 为 主 要 的 标 准 因 而 提 高 质 量 就 是 尽 可 能 地 减 少 单 位 规 模 中 的 缺 陷 数 量 当 前 好 的 软 件 工 程 实 践 已 经 能 够 将 缺 陷 密 度 降 低 到 每 单 位 规 模 的 缺 陷 数 少 于 1 为 确 定 软 件 产 品 质 量, 我 们 需 要 确 定 已 交 付 的 软 件 中 存 在 的 缺 陷 数 量 而 这 个 数 字 显 然 在 交 付 时 是 不 知 道 的, 并 可 能 永 远 不 得 而 知 另 一 种 衡 量 质 量 的 方 法 是 在 交 付 6 个 月 ( 或 1 年 ) 的 时 间 内 记 录 发 现 的 缺 陷 数, 然 后 根 据 这 些 缺 陷 定 义 软 件 的 质 量, 这 意 味 着 已 交 付 的 软 件 的 质 量 在 6 个 月 后 才 能 确 定 而 缺 陷 密 度 也 可 用 过 去 类 似 项 目 的 数 据 来 估 计, 如 果 使 用 了 类 似 的 方 法, 那 么 可 以 预 计 目 前 的 项 目 与 过 去 的 项 目 会 有 类 似 的 缺 陷 密 度 应 该 指 出 的 是, 如 果 使 用 这 种 质 量 定 义 方 法, 那 么 什 么 是 缺 陷 就 必 须 明 确 界 定 缺 陷 可 能 是 一 些 导 致 软 件 崩 溃 的 问 题 或 是 导 致 输 出 结 果 未 能 正 确 对 齐 的 问 题 或 是 拼 错 一 些 单 词 等

问 题 缺 陷 的 确 切 定 义 显 然 依 赖 于 项 目 或 公 司 开 发 项 目 所 使 用 的 标 准 ( 通 常 是 后 者 ) 除 了 可 靠 性, 另 一 个 值 得 关 注 的 质 量 属 性 是 可 维 护 性 一 旦 软 件 交 付 和 使 用 后, 它 就 进 入 维 护 阶 段 软 件 没 有 随 时 间 增 长 而 损 耗 的 物 理 组 件, 那 为 什 么 还 需 要 维 护 呢? 这 是 因 为 软 件 系 统 本 身 存 在 缺 陷 普 遍 认 为, 现 在 的 工 艺 水 平 是 有 限 的, 零 缺 陷 密 度 的 软 件 开 发 是 不 可 能 的 这 些 缺 陷, 一 经 发 现 就 必 须 要 隔 离, 即 所 谓 的 矫 正 性 维 护 维 护 也 需 要 改 变 交 付 的 软 件 以 满 足 用 户 新 的 需 求 和 适 应 环 境, 即 适 应 性 维 护 在 软 件 系 统 的 整 个 生 命 周 期 中, 维 护 成 本 可 能 远 远 超 过 原 来 的 开 发 成 本 对 于 维 护 成 本 与 开 发 成 本 比 例, 不 同 的 人 有 不 同 的 看 法, 主 要 有 三 种, 即 80:20 或 70:30 或 60:40 由 于 维 护 成 本 高, 所 以 软 件 系 统 的 易 于 维 护 自 然 是 人 们 所 追 求 的 1.2 规 模 和 变 化 对 于 我 们 的 问 题 域 ( 工 业 强 度 软 件 ), 尽 管 成 本 进 度 和 质 量 是 主 要 的 驱 动 力, 也 有 一 些 问 题 域 的 其 他 特 征 会 影 响 到 所 采 用 的 解 决 方 案 请 关 注 软 件 的 另 两 个 特 点 规 模 和 变 化 大 多 数 工 业 强 度 的 软 件 系 统 往 往 是 庞 大 而 复 杂 的, 需 要 成 千 上 万 行 的 代 码 一 些 知 名 的 软 件 产 品 的 大 小 列 于 表 1.1 中 表 1.1:KLOC 大 小 的 一 些 知 名 产 品 Size (KLOC) Software Languages 980 gcc Ansic,cpp,yacc 320 Perl Perl,ansic,sh 200 Openssl Ansic,cpp,perl 100 apache Ansic,sh 65 sendmail Ansic 30,000 Red Hat Linux Ansic,cpp 40,000 Windows XP Ansic,cpp 正 如 所 预 料 的 那 样, 与 开 发 小 型 系 统 相 比, 大 型 系 统 需 要 有 不 同 的 方 法 集, 因 为 用 于 开 发 小 型 系 统 所 用 的 方 法 通 常 不 能 扩 展 到 大 型 系 统 中 下 面 举 个 例 子 说 明 这 一 点, 考 虑 计 算 一 个 房 间 内 的 人 数 与 一 个 国 家 的 人 口 普 查 问 题 两 者 本 质 上 是 计 数 问 题, 但 计 算 一 个 房 间 里 人 数 所 使 用 的 方 法 用 到 人 口 普 查 中 就 不 能 正 常 工 作 人 口 普 查 将 不 得 不 使 用 一 组 不 同 的 方 法, 除 了 计 数 外, 人 口 普 查 问 题 需 要 相 当 多 的 管 理, 组 织 和 验 证 同 样, 用 来 开 发 几 百 行 程 序 的 方 案 也 不 能 被 期 望 用 到 一 个 成 千 上 万 行 的 代 码 程 序 开 发 中, 大 型 软 件 开 发 必 须 使 用 一 组 不 同 的 方 法

任 何 软 件 项 目 都 会 涉 及 到 工 程 的 使 用 和 项 目 管 理 在 小 型 项 目 中, 开 发 和 管 理 都 可 以 使 用 非 正 规 方 法 但 是, 对 于 大 型 项 目, 这 二 者 都 要 严 格 得 多, 如 图 1.2 所 示 换 句 话 说, 若 要 成 功 地 执 行 该 系 统 的 工 程 项 目, 必 须 采 用 适 当 的 方 法, 项 目 的 管 理 也 必 须 严 格 以 确 保 成 本, 进 度 和 质 量 处 于 控 制 之 中 大 规 模 是 问 题 域 的 一 个 关 键 特 征, 所 以 解 决 方 案 应 采 用 有 能 力 建 设 大 型 软 件 系 统 的 工 具 和 技 术 变 化 是 问 题 域 的 另 一 个 特 征, 开 发 方 案 必 须 考 虑 变 化 由 于 系 统 的 完 整 需 求 集 合 一 般 不 知 道 ( 往 往 不 能 在 项 目 开 始 时 知 道 ) 或 者 没 有 申 明, 随 着 开 发 进 度 和 时 间 的 推 进 更 多 的 需 求 被 提 出 来, 这 就 需 要 纳 入 到 正 在 开 发 的 软 件 系 统 中 这 种 对 于 不 断 修 改 的 需 求 要 求 开 发 方 案 包 括 变 化, 并 能 高 效 地 适 应 变 化 对 于 一 个 项 目, 变 更 请 求 可 能 会 是 破 坏 性 的, 如 果 处 理 不 当, 将 会 耗 费 多 达 30% 至 40% 的 开 发 成 本 [14] 如 上 所 述, 软 件 有 时 不 得 不 做 改 变, 即 使 它 已 被 安 装 虽 然 在 维 护 过 程 中 出 现 的 变 化 可 以 与 发 生 在 开 发 过 程 中 的 变 化 加 以 区 别, 但 这 些 区 别 是 模 糊 的, 因 为 从 根 本 上 来 说, 这 两 种 情 况 下 的 变 化 是 相 似 的, 现 有 源 代 码 的 改 变 是 因 为 需 求 方 面 的 改 变 或 者 由 于 需 要 删 除 某 些 缺 陷 图 1.2 规 模 问 题 总 体 而 言, 随 着 世 界 变 化 的 加 快, 即 使 正 在 开 发 中 的 软 件 也 必 须 快 速 改 变 因 此, 需 求 变 化 是 问 题 域 的 一 个 特 点 在 当 今 世 界, 不 能 接 受 和 适 应 变 化 的 方 案 是 没 有 多 大 用 处 的, 它 们 只 能 解 决 少 数 拒 绝 变 化 的 问 题

1.3 小 结 - 软 件 工 程 的 问 题 域 是 面 向 工 业 强 度 级 软 件, 这 种 软 件 是 为 了 解 决 某 些 用 户 组 的 问 题, 期 望 高 质 量 - 在 这 个 问 题 域 中, 成 本 进 度 和 质 量 是 基 本 驱 动 力 因 此, 用 于 解 决 这 类 问 题 的 方 法 和 工 具 必 须 确 保 高 生 产 率 和 高 品 质 - 生 产 率 用 来 衡 量 每 单 位 投 入 资 源 的 产 出 量 在 软 件 中, 产 出 可 以 用 交 付 的 代 码 行 数 来 度 量, 人 力 是 主 要 的 资 源, 其 投 入 可 以 用 每 人 花 费 的 时 间 作 定 量 标 准 因 此, 生 产 率 可 以 按 每 人 每 月 交 付 的 代 码 行 数 来 衡 量 - 软 件 质 量 包 括 许 多 属 性, 如 功 能 性 可 靠 性 可 用 性 效 率 可 维 护 性 和 可 移 植 性 等 可 靠 性 往 往 被 视 为 主 要 的 质 量 属 性, 软 件 缺 陷 可 反 映 软 件 不 可 靠, 所 以 每 千 行 代 码 所 含 的 缺 陷 数 可 反 应 出 软 件 的 质 量 - 这 一 领 域 中 的 问 题 常 常 是 非 常 大 的, 且 客 户 需 求 变 化 也 很 快 因 此, 开 发 工 业 强 度 软 件 所 使 用 的 技 术 应 该 是 : 有 能 力 建 立 大 型 软 件 系 统, 并 有 能 力 处 理 变 化 自 测 练 习 1. 学 生 型 软 件 和 工 业 强 度 软 件 的 主 要 差 别 是 什 么? 2. 如 果 开 发 一 个 普 通 程 序 用 于 解 决 问 题 需 要 的 努 力 为 E, 可 以 估 计 为 解 决 这 一 问 题 的 工 业 强 度 软 件 将 需 要 10E 的 努 力 那 么 你 认 为 这 些 额 外 的 努 力 在 哪 些 方 面 被 消 耗 了 呢? 3. 你 会 采 取 什 么 样 的 标 准 来 衡 量 一 个 项 目 的 生 产 率? 你 又 将 如 何 从 这 些 衡 量 标 准 中 确 定 生 产 率? 4. 软 件 质 量 有 哪 些 不 同 的 属 性? 对 于 一 个 会 计 软 件, 最 关 心 的 是 它 能 确 保 计 算 不 出 任 何 错 误, 那 么 它 的 哪 一 个 质 量 属 性 是 我 们 应 该 最 关 注 的? 5. 大 型 项 目 与 小 型 项 目 相 比, 哪 些 是 项 目 管 理 任 务 该 做 的? 你 将 如 何 执 行 这 些 任 务 的 变 化? 6. 假 设 一 个 软 件 系 统 在 操 作 过 程 中 需 要 做 一 些 改 变, 为 什 么 对 系 统 作 改 变 所 需 的 成 本 比 对 源 代 码 做 修 改 所 需 的 成 本 要 多?

第 二 章 软 件 过 程 既 然 我 们 对 软 件 工 程 所 处 理 的 问 题 域 已 经 有 了 一 个 很 好 地 了 解, 接 下 来 将 讨 论 软 件 工 程 本 身 软 件 工 程 被 定 义 为 系 统 化 开 发 操 作 维 护 和 淘 汰 软 件 的 方 法 [52] 我 们 知 道, 除 了 提 供 软 件 之 外, 高 品 质 低 成 本 短 周 期 也 是 软 件 工 程 必 须 实 现 的 目 标 换 句 话 说, 系 统 化 方 法 必 须 帮 助 实 现 高 品 质 和 高 生 产 率 Q&P( 质 量 和 生 产 率 ) 这 两 个 目 标 在 软 件 行 业 中, 影 响 Q&P 的 主 要 有 三 个 因 素, 分 别 为 人 过 程 和 技 术 也 就 是 说, 最 终 的 质 量 交 付 和 生 产 率 取 决 于 软 件 项 目 所 涉 及 的 人 员 的 技 能, 取 决 于 人 员 执 行 任 务 时 所 采 用 的 过 程 模 型 和 所 使 用 的 工 具 由 于 最 终 是 需 要 人 去 开 发 和 交 付 软 件 ( 生 产 率 的 衡 量 也 是 以 劳 力 的 付 出 衡 量 的 ), 而 软 件 过 程 的 主 要 任 务 是 通 过 指 定 具 体 任 务 及 如 何 去 完 成 任 务 以 帮 助 人 们 实 现 高 Q&P 工 具 则 可 以 帮 助 人 们 更 有 效, 更 少 出 错 地 执 行 任 务 因 此, 为 了 符 合 高 Q&P 软 件 的 目 标, 显 然 实 施 过 程 应 该 是 核 心 所 以, 软 件 工 程 的 重 点 主 要 放 在 过 程 上, 过 程 也 就 是 上 面 所 定 义 的 系 统 化 方 法 正 是 由 于 软 件 工 程 重 点 是 强 调 过 程, 从 而 使 它 与 其 他 的 大 多 数 计 算 机 学 科 区 别 开 来 许 多 其 他 的 计 算 机 学 科 是 以 其 他 类 型 的 产 品 ( 如 操 作 系 统 数 据 库 等 ) 为 重 点, 而 软 件 工 程 的 重 点 是 生 产 产 品 的 过 程 由 于 过 程 形 成 了 软 件 工 程 的 核 心, 工 具 和 技 术 为 有 效 地 执 行 过 程 提 供 支 持, 故 本 书 的 重 点 放 在 过 程 在 这 一 章 中, 将 讨 论 : - 过 程 的 作 用 及 项 目 中 所 用 的 过 程 模 型 - 软 件 过 程 的 各 个 组 成 部 分, 以 及 开 发 过 程 和 项 目 管 理 过 程 的 关 键 作 用 - 各 种 开 发 过 程 模 型 瀑 布 模 型, 原 型 模 型, 迭 代 模 型,RUP 模 型, 时 间 盒 模 型 和 XP 模 型 - 项 目 管 理 过 程 的 总 体 结 构 及 其 关 键 阶 段

2.1 过 程 和 项 目 过 程 是 为 一 个 给 定 的 目 的 而 部 署 的 一 组 顺 序 执 行 的 步 骤 [52] 前 面 已 经 提 过, 开 发 ( 工 业 强 度 ) 软 件 的 目 的 是 为 满 足 某 些 用 户 或 客 户 的 需 求, 如 图 2.1 所 示 软 件 项 目 是 此 类 问 题 的 一 个 实 例, 开 发 过 程 被 用 来 实 现 这 一 目 的 图 2.1 基 本 问 题 对 于 一 个 项 目, 开 发 过 程 起 着 关 键 作 用 按 照 过 程 中 的 步 骤 一 步 步 执 行 任 务, 最 后 也 就 实 现 了 交 付 软 件 所 期 望 的 目 的 然 而, 如 前 所 述, 仅 仅 只 是 完 成 所 需 的 软 件 是 不 够 的, 我 们 还 希 望 完 成 的 项 目 是 低 成 本 短 周 期 高 质 量 由 于 这 些 额 外 的 目 标, 过 程 的 作 用 就 更 加 显 著 虽 然 许 多 过 程 模 型 已 能 完 成 图 2.1 所 示 的 软 件 开 发 的 基 本 目 标, 但 为 了 实 现 高 P&Q, 则 需 要 一 些 最 佳 的 过 程 正 是 这 个 目 标, 使 得 设 计 过 程 成 为 一 种 挑 战 我 们 必 须 把 过 程 本 身 与 过 程 的 规 范 或 说 明 区 别 开 来, 过 程 是 一 个 动 态 的 实 体, 它 是 一 组 要 被 执 行 的 操 作 过 程 规 范 则 是 对 一 个 过 程 的 描 述, 即 在 项 目 中 需 要 遵 循 的 过 程 规 范 和 规 则 在 一 个 项 目 中, 过 程 规 范 可 作 为 该 项 目 的 过 程 计 划, 实 际 的 过 程 则 是 项 目 所 要 完 成 的 任 务 注 意, 实 际 的 过 程 可 以 与 过 程 计 划 不 同 然 而, 在 本 书 中, 我 们 将 假 设 过 程 计 划 和 实 际 过 程 是 相 同 的 而 不 加 以 区 分, 并 用 过 程 这 个 词 来 指 代 二 者 过 程 模 型 使 得 一 般 的 过 程 变 得 具 体, 它 是 解 决 某 一 类 项 目 的 最 佳 过 程 也 就 是 说, 在 该 模 型 适 用 的 情 况 下, 使 用 该 模 型 作 为 项 目 的 过 程 可 以 达 到 开 发 出 高 Q&P 软 件 的 目 的 一 个 过 程 模 型 在 本 质 上 是 将 各 种 最 好 的 项 目 实 施 做 法 编 制 成 一 个 处 方, 以 便 开 发 出 成 功 的 项 目 换 言 之, 过 程 是 实 现 高 品 质, 低 成 本, 短 周 期 软 件 这 一 目 标 的 方 法, 而 过 程 模 型 则 提 供 了 一 个 适 合 某 一 类 项 目 的 过 程 框 架 过 程 通 常 是 在 一 个 高 层 次 上 指 定 的 阶 段 序 列, 而 每 个 阶 段 的 步 骤 序 列 构 成 了 该 阶 段 的 过 程, 通 常 被 称 为 过 程 的 子 过 程

2.2 软 件 过 程 的 组 成 按 上 述 定 义, 过 程 是 为 实 现 某 一 目 标 而 被 执 行 的 步 骤 序 列 在 软 件 开 发 时, 由 于 要 实 现 许 多 不 同 的 目 标, 故 多 个 过 程 是 必 要 的 很 多 过 程 并 不 关 心 软 件 工 程, 尽 管 它 们 会 影 响 软 件 的 开 发 这 可 被 视 为 无 软 件 过 程 的 比 如, 业 务 流 程 社 会 过 程 和 培 训 进 程 这 些 过 程 都 会 影 响 到 软 件 开 发 活 动, 但 都 超 越 了 软 件 工 程 的 职 权 范 围 与 软 件 开 发 有 关 的 技 术 和 管 理 问 题 称 为 软 件 过 程 作 为 一 个 软 件 项 目, 它 必 须 设 计 一 个 解 决 方 案 并 妥 善 管 理 该 项 目, 故 软 件 过 程 必 须 具 备 两 个 主 要 成 分 开 发 过 程 和 项 目 管 理 流 程 开 发 过 程 指 定 了 所 有 需 被 执 行 的 工 程 活 动, 而 管 理 流 程 则 指 定 如 何 规 划 和 控 制 这 些 活 动, 以 使 成 本 进 度 质 量 和 其 他 目 标 均 能 实 现 开 发 出 来 的 软 件 能 否 实 现 既 满 足 用 户 需 求, 同 时 确 保 高 生 产 率 和 高 质 量 的 目 标, 有 效 的 开 发 过 程 和 项 目 管 理 流 程 起 着 关 键 作 用 项 目 过 程 中 生 产 出 的 产 品 由 许 多 项 组 成 ( 例 如, 最 终 的 源 代 码 可 能 由 许 多 源 文 件 组 成 ), 随 着 项 目 的 进 展 这 些 项 不 断 演 变 发 展, 创 造 出 多 个 版 本 而 开 发 过 程 一 般 不 处 理 这 些 发 展 和 变 化, 常 用 来 处 理 它 们 的 是 一 个 被 称 为 软 件 配 置 控 制 过 程, 这 个 过 程 主 要 处 理 管 理 方 面 的 变 化 因 此, 尽 管 产 品 会 发 生 变 化, 但 并 没 有 违 反 其 完 整 性 这 三 个 重 要 过 程 的 重 点 服 务 目 标 是 项 目 和 产 品, 也 可 认 为 为 产 品 工 程 过 程, 因 为 它 们 主 要 目 标 是 生 产 所 需 的 产 品 如 果 软 件 过 程 被 看 作 是 一 个 静 态 的 实 体, 那 么 这 三 个 组 成 过 程 就 足 够 了 然 而, 软 件 过 程 本 身 就 是 一 个 动 态 的 实 体, 因 为 它 必 须 改 变 以 适 应 我 们 对 软 件 开 发 的 理 解 和 新 技 术 新 工 具 的 使 用 基 于 这 一 点, 一 个 管 理 软 件 过 程 的 过 程 也 是 必 要 的 过 程 管 理 过 程 的 基 本 目 标 是 改 善 软 件 过 程 因 为 通 过 不 断 改 善,( 软 件 ) 过 程 控 制 生 产 出 高 质 量 低 成 本 软 件 的 能 力 得 以 提 高, 为 此 研 究 目 前 的 软 件 过 程, 频 繁 地 分 析 那 些 采 用 过 程 模 型 而 完 成 的 项 目 从 了 解 当 前 过 程, 分 析 其 特 性, 决 定 如 何 改 进, 到 最 后 的 改 善, 这 一 完 整 过 程 都 是 由 过 程 管 理 来 处 理 的 主 要 过 程 的 组 成 及 其 之 间 的 关 系 如 图 2.2 所 示, 它 们 不 仅 在 所 执 行 的 活 动 类 别 上 有 区 别, 更 典 型 地 是 在 执 行 过 程 中 参 与 活 动 的 人 员 不 同 在 一 个 典 型 的 项 目 中, 开 发 活 动 由 程 序 员 设 计 师 测 试 人 员 等 来 完 成 ; 项 目 管 理 流 程 活 动 由 项 目 管 理 人 员 执 行 ; 配 置 控 制 流 程 则 是 由 一 组 被 普 遍 称 为 配 置 控 制 器 的 人 员 来 完 成 ; 过 程 管 理 活 动 则 是 由 软 件 工 程 过 程 组 (SEPG) 执 行

软 件 过 程 生 产 工 程 过 程 过 程 管 理 过 程 开 发 过 程 工 程 管 理 过 程 软 件 配 置 管 理 过 程 图 2.2 软 件 过 程 在 本 书 中, 将 主 要 集 中 在 与 产 品 工 程 相 关 的 过 程 上, 特 别 是 开 发 过 程 和 项 目 管 理 过 程 本 书 大 部 分 内 容 将 讨 论 开 发 过 程 的 不 同 阶 段 和 子 过 程, 或 执 行 这 些 阶 段 任 务 所 用 的 方 法 学 对 于 书 中 剩 下 的 内 容, 将 使 用 软 件 过 程 这 一 术 语 来 指 代 产 品 工 程 过 程, 除 非 另 有 说 明 2.3 软 件 开 发 过 程 模 型 对 于 软 件 开 发 过 程, 我 们 的 目 标 是 生 产 出 高 品 质 的 软 件 产 品 因 此, 关 注 这 些 活 动 就 直 接 关 系 到 软 件 的 生 产, 例 如, 设 计 编 码 和 测 试 由 于 开 发 过 程 指 定 了 项 目 中 需 要 执 行 的 主 要 开 发 活 动 和 质 量 控 制 活 动, 因 此 它 构 成 了 软 件 过 程 的 核 心, 而 管 理 过 程 的 决 策 往 往 是 以 开 发 过 程 为 基 础 一 个 项 目 的 开 发 过 程 定 义 了 项 目 应 执 行 的 任 务 和 它 们 的 执 行 顺 序 通 过 指 定 必 须 执 行 何 种 类 型 的 活 动 及 以 何 种 顺 序 执 行, 过 程 限 制 了 项 目 的 自 由 度 这 样, 从 源 于 用 户 要 求 到 终 止 于 软 件 满 足 某 些 需 求 的 最 短 ( 或 最 有 效 的 ) 路 径 就 可 以 得 到 该 过 程 驱 动 了 项 目 的 开 发, 并 严 重 影 响 项 目 的 结 果 如 前 所 述, 一 个 过 程 模 型 将 一 般 过 程 具 体 化 如 一 个 项 目 应 该 被 划 分 为 几 个 阶 段, 这 些 阶 段 应 该 以 何 种 顺 序 执 行, 以 及 执 行 阶 段 中 的 有 关 限 制 和 条 件 过 程 模 型 背 后 的 基 本 前 提 是, 哪 种 情 况 下 该 模 型 是 适 用 的, 哪 种 情 况 下 使 用 该 模 型 作 为 项 目 的 过 程 将 导 致 低 成 本 高 品 质 短 周 期, 或 提 供 其 他 好 处 换 句 话 说, 过 程 模 型 为 项 目 寻 找 一 个 合 适 的 过 程 提 供 了 通 用 准 则 由 于 开 发 过 程 的 重 要 性, 目 前 已 提 出 了 各 种 不 同 的 模 型 在 本 节 中, 我 们 将 讨 论 几 个 主 要 模 型 2.3.1 瀑 布 模 型 最 简 单 的 过 程 模 型 是 瀑 布 模 型, 它 以 线 性 的 顺 序 组 织 各 个 阶 段 活 动 该 模 型 最 初 是 由

Royce [74] 提 出 的, 但 基 于 各 活 动 的 性 质 及 活 动 之 间 的 控 制 流, 该 模 型 已 发 展 演 化 出 许 多 不 同 的 版 本 在 此 模 型 中, 一 个 项 目 由 可 行 性 分 析 开 始, 在 成 功 说 明 一 个 项 目 可 行 后, 需 求 分 析 和 项 目 计 划 才 开 始 需 求 分 析 完 成 后 才 开 始 设 计 工 作, 设 计 完 成 后 开 始 编 码 当 编 码 完 成 后, 就 要 做 代 码 集 成 和 测 试, 测 试 成 功 后 安 装 该 系 统 在 此 之 后, 进 入 正 常 运 行 和 系 统 维 护 阶 段 该 模 型 如 图 2.3 所 示 系 统 可 行 性 验 证 可 行 性 报 告 需 求 分 析 与 项 目 计 划 验 证 需 求 文 档 和 项 目 计 划 系 统 设 计 核 实 系 统 设 计 文 档 详 细 设 计 核 实 细 节 设 计 文 档 编 码 核 实 程 序 测 试 与 集 成 测 试 计 划, 测 试 报 告 和 手 册 安 装 安 装 报 告 运 行 与 维 护 图 2.3 瀑 布 模 型 该 模 型 的 基 本 思 想 是 分 阶 段 关 注, 即 每 阶 段 处 理 一 组 不 同 的 独 立 的 事 件 这 样 做 将 构 建 软 件 这 一 大 而 复 杂 任 务 分 解 成 很 多 小 的 任 务 ( 小 任 务 本 身 还 是 很 复 杂 ), 如 确 定 需 求 设 计 等 分 阶 段 关 注 和 有 选 择 的 重 点 关 注 为 工 程 师 和 处 理 复 杂 问 题 的 管 理 人 员 提 供 了 更 好 的 处 理 方 法 需 求 分 析 阶 段 也 被 说 成 是 分 析 与 计 划 计 划 是 软 件 开 发 中 的 关 键 活 动, 一 个 好 的 计 划 是 基 于 系 统 需 求 的, 它 应 该 在 后 续 阶 段 开 始 前 完 成 然 而, 在 实 践 中, 需 求 细 节 是 没 有 必 要 对 其 做 计 划 的 因 此, 计 划 通 常 与 需 求 分 析 重 叠 进 行, 计 划 工 作 完 成 后, 后 期 阶 段 的 工 作 才 开 始 对 所 有 后 期 阶 段, 计 划 是 一 种 额 外 的 输 入

线 性 顺 序 的 活 动 会 带 来 一 些 重 要 的 结 果 首 先, 必 须 明 确 识 别 一 个 阶 段 的 结 束 和 下 一 个 阶 段 的 开 始, 必 须 在 每 个 阶 段 结 束 时 运 用 某 些 认 证 机 制 这 通 常 由 一 些 验 证 和 验 证 手 段 来 完 成, 从 而 确 保 一 个 阶 段 的 输 出 与 输 入 ( 这 是 上 一 阶 段 的 输 出 ) 一 致, 而 该 阶 段 的 输 出 应 与 系 统 的 整 体 要 求 一 致 认 证 需 要 的 结 果 是, 每 个 阶 段 必 须 有 一 些 明 确 的 输 出 用 于 评 估 和 认 证 也 就 是 说, 当 一 个 阶 段 的 活 动 完 成 后, 应 该 有 该 阶 段 生 产 的 产 品 较 早 阶 段 的 输 出 通 常 被 称 为 工 作 产 品, 而 且 通 常 是 诸 如 需 求 文 档 或 设 计 文 档 之 类 的 文 档 对 于 编 码 阶 段, 输 出 则 是 代 码 虽 然 一 个 项 目 中 产 生 的 文 档 集 是 依 赖 于 过 程 的 实 施 方 式, 但 下 列 文 档 通 常 形 成 一 个 合 理 的 文 档 集, 在 每 个 项 目 中 都 应 该 包 含 该 文 档 集 : - 需 求 文 档 - 项 目 计 划 书 - 设 计 文 档 ( 体 系 结 构, 系 统, 详 细 设 计 ) - 测 试 计 划 和 测 试 报 告 - 最 终 的 代 码 - 软 件 手 册 ( 例 如, 用 户 手 册, 安 装 手 册 等 ) 瀑 布 模 型 的 主 要 优 点 之 一 是 它 的 简 单 性, 概 念 直 截 了 当, 并 将 构 建 软 件 系 统 这 一 大 任 务 划 分 成 一 系 列 简 明 阶 段, 每 个 阶 段 处 理 一 个 单 独 的 逻 辑 事 件 这 也 使 得 合 同 计 划 的 执 行 变 得 容 易, 因 为 每 当 一 个 阶 段 的 工 作 完 成 生 产 出 产 品 后, 客 户 就 该 给 开 发 组 织 相 应 费 用 虽 然 瀑 布 模 型 被 广 泛 使 用, 但 存 在 一 些 大 的 局 限 性 主 要 限 制 包 括 : 1. 它 假 定 在 设 计 开 始 之 前 一 个 系 统 的 需 求 可 固 定 ( 如, 基 线 ) 这 对 将 已 有 的 人 工 系 统 转 变 为 自 动 化 系 统 是 可 能 的, 但 是 对 于 新 系 统 确 定 需 求 是 很 困 难 的, 因 为 甚 至 用 户 也 不 清 楚 系 统 全 部 的 需 求 所 以, 对 这 类 项 目 来 说, 需 求 不 变 是 不 现 实 的 2. 确 定 的 需 求 通 常 需 要 选 择 硬 件 ( 因 为 它 形 成 了 需 求 规 范 的 一 部 分 ) 一 个 大 项 目 可 能 需 要 几 年 才 能 完 成, 如 果 硬 件 在 早 期 选 定, 由 于 硬 件 技 术 更 新 的 速 度, 很 可 能 最 终 的 软 件 将 使 用 一 个 处 于 过 时 边 缘 的 硬 件 技 术, 这 对 昂 贵 的 软 件 系 统 来 说 显 然 是 不 理 想 的 3. 它 遵 循 大 爆 炸 的 方 式 即 最 后 整 个 软 件 是 一 次 交 付 这 存 在 很 大 的 风 险, 因 为 用 户 直 到 最 后 才 能 知 道 他 们 得 到 的 软 件 性 能 及 质 量 等 此 外, 如 果 在 项 目 的 开 发 中 途 就 耗 尽 了 全 部 的 费 用, 那 么 该 项 目 就 不 可 能 被 开 发 出 来 也 就 是 说, 它 具 有 全 有 或 全 无 的 价 值 命 题 4. 鼓 励 需 求 膨 胀 由 于 所 有 的 需 求 必 须 在 开 始 时 就 指 定, 而 且 只 有 被 指 定 的 需 求 才 会 被 实 现, 所 以 这 就 会 使 用 户 和 其 他 权 益 拥 有 者 加 入 那 些 他 们 认 为 可 能 需 要 的 特 征 ( 但 最 终 可 能 不 会 被 使 用 ) 5. 这 是 一 种 文 档 驱 动 过 程, 需 要 在 每 一 个 阶 段 的 结 束 都 提 交 正 式 文 档

尽 管 有 这 些 限 制, 瀑 布 模 型 一 直 是 使 用 最 广 泛 的 过 程 模 型, 它 非 常 适 合 于 那 些 需 求 明 确 的 常 规 类 型 的 项 目 也 就 是 说, 如 果 开 发 组 织 对 问 题 域 相 当 熟 悉, 且 也 很 清 楚 软 件 的 需 求, 那 么 瀑 布 模 型 会 发 挥 良 好 的 效 果, 甚 至 可 能 是 最 有 效 的 过 程 2.3.2 原 型 模 型 以 原 型 模 型 为 基 础 的 开 发 过 程 其 目 的 是 克 服 瀑 布 模 型 的 第 一 限 制, 基 本 思 路 是 不 需 先 固 定 需 求, 设 计 或 编 码 工 作 也 可 以 进 行, 然 后 建 立 一 个 快 速 原 型 模 型 以 帮 助 理 解 需 求 原 型 的 开 发 是 基 于 当 前 已 知 的 需 求, 显 然, 原 型 模 型 的 开 发 经 历 设 计, 编 码 和 测 试 阶 段, 但 每 一 个 阶 段 都 没 有 做 得 很 正 式 或 非 常 彻 底 通 过 该 原 型 可 以 向 用 户 展 示 待 开 发 软 件 的 全 部 或 部 分 功 能 和 性 能, 以 便 客 户 更 好 地 了 解 所 需 系 统 的 需 求, 这 就 导 致 更 为 稳 定 的 需 求, 因 为 变 化 总 不 会 那 么 频 繁 原 型 模 型 对 一 个 复 杂 的 大 系 统 来 说 是 很 有 吸 引 力 的, 因 为 复 杂 的 大 系 统 没 有 手 工 过 程 或 已 有 的 系 统 帮 助 确 定 需 求 在 这 种 情 况 下, 让 客 户 玩 原 型 可 提 供 宝 贵 的 和 无 形 的 投 入, 以 帮 助 确 定 该 系 统 的 需 求 这 也 是 验 证 某 种 技 术 是 否 可 行 的 有 效 方 法, 这 在 新 系 统 中 可 能 是 需 要 的, 因 为 约 束 可 否 被 满 足 或 能 否 开 发 出 实 现 需 求 的 算 法 尚 不 清 楚, 在 这 两 种 情 况 下, 使 用 原 型 模 型 会 使 与 项 目 相 关 的 风 险 减 少, 原 型 模 型 过 程 如 图 2.4 所 示 图 2.4 原 型 模 型 采 用 丢 弃 式 原 型 模 型 的 开 发 过 程 活 动 的 推 进 次 序 如 [40] 所 述, 该 模 型 的 开 发 通 常 开 始 于 初 步 需 求 规 范 文 档 完 成 之 后, 在 这 个 阶 段, 对 系 统 及 其 需 求 会 达 到 一 个 理 性 的 理 解, 哪 些 需 求 是 不 明 确 的 或 者 可 能 会 发 生 变 化 的 也 会 变 得 明 确 原 型 开 发 出 来 之 后, 由 最 终 的 用 户 和 客 户 来 使 用 和 探 索 根 据 他 们 的 经 验, 向 开 发 商 提 供 有 关 原 型 的 反 馈 信 息 : 什 么 是 正 确 的 哪 些 需 要 修 改 缺 少 什 么 什 么 是 不 需 要 的 等 等 在 反 馈 的 基 础 上, 原 型 被 修 改 以 便 纳 入 客 户 提 出 的 容 易 做 的, 然 后 用 户 和 客 户 被 再 次 获 准 使 用 该 系 统 此 过 程 循 环 重 复, 直 到 原 型 开 发 者 和 分 析 师 判 断 认 为, 从 进 一 步 更 改 系 统 和 获 取 反 馈 信 息 所 获 得 的 利 益 超 过 了 更 改 系 统 和 获 取 反 馈 所 花 的 成 本 和 时 间 为 止 在 反 馈 的 基 础 上, 最 初 的 需 求 被 修 改 得 到 最 后 的 需 求 规 范,

该 需 求 规 范 用 于 开 发 生 产 质 量 体 系 对 于 原 型 模 型, 要 达 到 需 求 分 析 可 行 的 目 的, 其 成 本 必 须 保 持 在 较 低 水 平 因 此, 只 有 那 些 包 含 在 原 型 里 的 功 能, 才 会 从 用 户 的 经 验 得 到 有 价 值 的 返 回 异 常 处 理, 恢 复 和 符 合 某 些 标 准 与 格 式 的 一 致 性 等 特 性, 通 常 不 包 括 在 原 型 中 原 型 模 型 中, 随 着 模 型 的 丢 弃, 那 些 已 经 得 到 很 好 理 解 的 需 求 的 实 现 变 得 毫 无 意 义 因 此, 开 发 的 重 点 是 包 括 那 些 没 有 得 到 正 确 理 解 的 功 能 由 于 强 调 的 是 快 速 开 发 而 非 质 量, 故 采 用 快 而 脏 的 开 发 方 法 因 为 原 型 会 被 扔 掉, 只 有 很 少 的 文 档 需 要 在 原 型 中 产 生 例 如, 设 计 文 档, 测 试 计 划, 测 试 用 例 等 在 原 型 开 发 过 程 中 都 不 需 要 另 一 个 重 要 的 成 本 削 减 措 施 是 减 少 测 试, 由 于 在 通 常 的 软 件 开 发 中 测 试 过 程 消 耗 了 开 发 经 费 的 主 要 部 分, 所 以 减 少 测 试 对 于 降 低 成 本 有 相 当 大 的 影 响 通 过 使 用 这 种 削 减 成 本 的 方 法, 可 以 保 持 原 型 开 发 成 本 低 于 总 开 发 成 本 但 是 这 些 额 外 成 本 的 回 报 收 益 是 相 当 高 的 首 先, 开 发 原 型 的 经 验 将 降 低 实 际 的 软 件 开 发 成 本 ; 第 二, 由 于 有 来 自 原 型 的 反 馈, 系 统 需 求 将 更 加 稳 定, 即 需 求 方 面 的 变 化 会 较 少 因 此 由 于 需 求 变 化 所 导 致 的 成 本 将 大 幅 减 少 ; 第 三, 最 终 软 件 的 质 量 很 可 能 很 优 越, 因 为 作 为 经 验 丰 富 的 工 程 师, 他 们 在 开 发 原 型 时 能 创 造 一 个 更 好 的 设 计, 编 写 出 更 好 的 代 码, 做 更 好 的 测 试 ; 最 后, 开 发 出 一 个 原 型 能 缓 解 许 多 由 于 需 求 不 明 确 而 存 在 于 项 目 中 的 风 险 总 的 来 说, 原 型 是 非 常 适 用 于 需 求 很 难 确 定, 同 时 对 规 定 的 需 求 信 心 不 足 的 项 目 这 种 初 起 系 统 需 求 不 能 得 到 很 好 理 解 的 项 目, 使 用 原 型 过 程 模 型 是 最 有 效 的 软 件 开 发 方 法, 这 也 是 减 少 与 项 目 相 关 风 险 的 优 秀 技 术 2.3.3 迭 代 开 发 模 型 迭 代 开 发 模 型 克 服 了 瀑 布 模 型 的 第 三 项 及 第 四 项 限 制, 并 尝 试 结 合 原 型 模 型 与 瀑 布 模 型 这 两 者 的 优 点 其 基 本 思 路 是 : 软 件 以 增 量 式 的 方 式 开 发, 每 一 次 迭 代 向 系 统 增 加 一 些 功 能 性 能, 直 到 系 统 被 完 全 实 现 迭 代 增 强 模 型 [4] 是 这 种 方 法 的 一 个 实 例, 这 种 模 式 的 第 一 步 是 开 发 出 系 统 的 一 个 初 始 子 集 这 个 子 集 包 含 问 题 ( 易 于 理 解 和 落 实, 构 成 一 个 有 用 的 系 统 ) 的 一 些 关 键 方 面 构 建 一 个 项 目 控 制 列 表, 它 包 含 为 达 到 最 终 实 现 而 必 须 执 行 的 所 有 任 务 从 该 项 目 控 制 列 表 可 以 看 出 给 定 的 阶 段 距 最 终 完 成 项 目 还 有 多 少 的 工 作 量 需 要 做 每 一 个 步 骤 包 括 从 列 表 中 删 除 下 一 个 任 务, 为 选 定 的 任 务 设 计 实 现 方 案, 编 码 和 测 试, 分 析 执 行 此 步 骤 后 得 到 的 部 分 系 统, 并 更 新 结 果 列 表 这 三 个 阶 段 是 所 谓 的 设 计 阶 段, 实 施 阶 段, 分 析 阶 段 这 个 过 程 是 迭 代 进 行 的, 直 到 该 项 目 控 制 列 表 为 空, 此 时 系 统 将 最 终 可 用 迭 代 增 强 模 型 如 图 2.5 所 示

图 2.5 迭 代 增 强 模 型 该 项 目 控 制 列 表 指 导 迭 代 步 骤 和 跟 踪 记 录 所 有 必 须 完 成 的 任 务 在 分 析 的 基 础 上, 列 表 中 的 任 务 可 以 包 括 有 缺 陷 部 分 的 重 新 设 计 或 整 个 系 统 的 重 新 设 计, 但 是 系 统 的 重 新 设 计 一 般 只 出 现 在 最 初 的 步 骤 在 以 后 的 步 骤 中, 设 计 会 稳 定 下 来, 重 新 设 计 的 机 会 也 会 很 少 列 表 中 加 入 的 每 个 条 目 是 一 个 应 该 在 迭 代 加 强 过 程 中 执 行 的 任 务, 且 应 该 足 够 简 单 以 被 完 全 理 解 以 这 种 方 式 选 择 任 务 能 将 错 误 的 发 生 率 及 重 新 设 计 的 可 能 性 降 到 最 小, 每 一 个 步 骤 的 设 计 和 实 施 阶 段 都 可 以 采 用 自 顶 向 下 的 方 式 或 使 用 一 些 其 他 技 术 尽 管 采 用 迭 代 开 发 方 式 会 带 来 好 处, 特 别 是 在 允 许 需 求 变 更 的 时 候, 因 为 不 存 在 全 有 或 全 无 的 风 险 等, 但 是 也 会 发 生 与 迭 代 式 开 发 相 关 的 一 些 费 用 例 如, 由 于 将 来 迭 代 的 需 求 不 明 确, 一 个 系 统 的 设 计 可 能 不 会 太 健 壮 又 如, 有 时 为 了 适 应 将 来 迭 代 的 需 求, 不 得 不 对 已 存 在 的 系 统 做 一 些 更 改, 导 致 额 外 返 工 或 丢 弃 原 先 所 做 的 工 作 总 体 而 言, 它 可 能 无 法 提 供 最 好 的 技 术 解 决 方 案, 但 在 许 多 项 目 中 收 益 可 能 会 超 过 所 花 费 的 成 本 迭 代 模 式 的 另 一 种 常 用 的 方 法 是 以 标 准 的 瀑 布 模 型 或 原 型 模 型 方 法 来 做 需 求 与 结 构 设 计, 而 采 用 迭 代 方 式 交 付 软 件 也 就 是 说, 构 建 系 统 采 用 迭 代 方 式 做 ( 这 是 最 耗 时 耗 力 的 任 务 ) 虽 然 大 多 数 的 需 求 已 在 前 期 指 定, 也 可 以 把 这 种 方 法 看 成 是 一 次 迭 代 交 付 需 求 和 架 构 计 划, 然 后 在 每 个 增 量 阶 段 进 一 步 迭 代 交 付 软 件 在 每 个 迭 代 交 付 的 开 始 决 定 哪 些 需 求 将 在 此 阶 段 实 施, 然 后 加 强 设 计, 编 写 代 码 来 实 现 需 求, 一 次 迭 代 过 程 要 完 成 一 个 提 供 给 最 终 用 户 某 些 价 值 的 系 统 为 一 个 迭 代 过 程 选 择 需 求 主 要 是 以 需 求 提 供 给 最 终 用 户 的 价 值 以 及 它 们 支 持 其 他 需 求 的 关 键 程 度 为 基 础, 方 法 如 图 2.6 所 示

图 2.6 迭 代 交 付 方 法 这 种 方 法 的 优 点 是, 由 于 大 多 需 求 在 前 期 已 知, 故 这 个 系 统 的 总 体 架 构 图 是 可 得 到 的, 且 可 设 计 出 一 个 保 持 相 对 稳 定 的 架 构 有 了 这 个, 开 发 迭 代 过 程 出 现 返 工 的 概 率 将 会 减 小 与 此 同 时, 以 迭 代 方 式 交 付 给 最 终 客 户 的 软 件 也 不 会 存 在 全 有 或 全 无 的 风 险 此 外, 交 货 是 以 增 量 的 方 式 逐 步 完 成 的, 每 个 迭 代 阶 段 的 规 划 和 执 行 是 分 别 进 行 的, 一 个 迭 代 过 程 的 反 馈 信 息 可 纳 入 到 下 一 次 迭 代, 也 可 以 被 包 含 未 被 涉 及 的 新 需 求 因 此, 这 种 迭 代 开 发 模 式 还 提 供 了 以 上 所 讨 论 的 模 型 优 点 尽 管 用 的 过 程 中 会 出 现 一 些 困 难, 迭 代 方 法 正 变 得 日 益 流 行 之 所 以 日 益 流 行, 原 因 如 下 : 首 先, 现 在 的 用 户 不 想 在 没 有 看 到 回 报 之 前 投 资 太 多, 当 今 企 业 都 认 为 从 所 投 资 的 项 目 中 看 到 持 续 不 断 的 回 报 是 更 可 取 的, 迭 代 模 型 就 保 证 了 这 一 点 每 一 迭 代 阶 段 结 束 后 就 可 以 交 付 一 些 工 作 软 件, 从 而 客 户 承 担 的 风 险 也 被 限 制 了 ; 其 次, 因 为 企 业 正 在 迅 速 改 变, 他 们 也 不 知 道 完 整 的 软 件 要 求, 但 又 必 须 向 软 件 不 断 添 加 新 功 能 以 适 应 企 业 不 断 变 化 的 情 况, 而 迭 代 过 程 刚 好 允 许 这 一 点 ; 另 外, 每 个 迭 代 为 工 作 体 系 提 供 反 馈, 这 样 可 以 为 下 一 阶 段 的 迭 代 在 开 发 稳 定 需 求 方 面 提 供 帮 助 下 面 将 描 述 一 些 其 他 过 程 模 型, 所 有 的 这 些 模 型 都 会 使 用 到 迭 代 的 方 法 2.3.4 Rational 统 一 过 程 (RUP) 模 型 统 一 软 件 过 程 (RUP)[51,63] 是 另 一 种 迭 代 过 程 模 型, 该 模 型 由 Rational 公 司 设 计,

现 在 是 IBM 的 一 部 分 虽 然 这 是 一 个 一 般 过 程 模 型, 它 是 为 面 向 对 象 的 软 件 开 发 而 设 计 的, 使 用 统 一 建 模 语 言 UML(UML 将 在 后 面 的 章 节 进 一 步 讨 论 ) RUP 建 议 将 软 件 开 发 分 割 成 多 个 周 期, 每 个 周 期 交 付 一 个 全 面 的 工 作 体 系 一 般 来 说, 每 个 周 期 作 为 一 个 单 独 的 项 目 来 执 行, 其 目 标 是 提 供 一 些 额 外 的 功 能 到 现 有 的 系 统 ( 由 前 一 周 期 构 建 的 ) 因 此, 对 于 一 个 项 目, 周 期 过 程 形 成 了 整 个 过 程 每 个 周 期 本 身 被 分 成 四 个 连 续 阶 段 : - 开 始 阶 段 - 细 化 阶 段 - 开 发 阶 段 - 发 布 阶 段 每 个 阶 段 都 有 不 同 的 目 的, 每 个 阶 段 完 成 后 产 生 的 明 确 输 出 都 是 项 目 中 定 义 好 的 里 程 碑 初 始 阶 段 的 目 标 是 建 立 项 目 的 目 的 和 范 围, 这 一 阶 段 的 完 成 是 生 命 周 期 目 标 的 里 程 碑 这 一 里 程 碑 应 指 定 最 终 系 统 的 概 貌 和 高 层 次 能 力, 预 期 提 供 的 商 业 利 益, 系 统 的 关 键 用 例 说 明, 该 项 目 的 主 要 风 险, 以 及 与 成 本 和 进 度 相 关 的 项 目 的 基 本 计 划 基 于 这 一 阶 段 的 输 出, 可 能 做 出 继 续 / 停 止 的 决 定 如 果 该 项 目 继 续 进 行, 那 么 这 个 里 程 碑 表 明 权 益 拥 有 者 之 间 有 一 个 共 同 的 意 向, 说 明 他 们 同 意 项 目 及 其 概 貌 效 益 成 本 使 用 等 等 在 细 化 阶 段, 基 于 细 节 需 求 分 析 设 计 该 系 统 的 体 系 结 构 这 个 阶 段 的 完 成 是 生 命 周 期 构 建 的 里 程 碑 这 个 阶 段 结 束 时, 期 望 大 部 分 的 需 求 已 被 确 定 并 细 化, 系 统 的 架 构 也 被 设 计 ( 和 规 定 ) 好, 它 应 该 以 处 理 在 早 期 阶 段 确 定 的 技 术 风 险 方 式 来 设 计 此 外, 一 个 项 目 的 高 层 ( 抽 象 层 ) 计 划 已 被 准 备 好, 并 由 此 用 来 展 示 剩 余 阶 段 和 这 些 阶 段 中 的 迭 代, 以 及 当 前 对 风 险 的 看 法 在 本 阶 段 结 束 时, 与 技 术 选 择 相 关 的 关 键 工 程 决 策, 体 系 结 构 等 工 作 已 完 成, 并 得 到 了 对 该 项 目 的 详 细 了 解 本 阶 段 里 程 碑 的 输 出 允 许 对 提 出 的 解 决 方 案 进 行 技 术 评 估, 以 及 对 项 目 做 出 关 于 成 本 与 效 益 分 析 的 明 智 决 定 在 开 发 阶 段, 建 立 实 现 和 测 试 软 件 这 一 阶 段 带 来 软 件 产 品 的 交 付, 以 及 相 关 的 用 户 手 册 和 其 他 说 明 书, 成 功 地 完 成 这 一 阶 段 工 作 意 味 着 初 始 操 作 能 力 里 程 碑 的 实 现 发 布 阶 段 的 目 的 是 将 软 件 从 开 发 环 境 移 植 到 客 户 的 环 境 中, 这 是 一 项 复 杂 的 任 务, 因 为 它 可 能 需 要 额 外 的 测 试 数 据 转 换 ( 以 便 软 件 能 正 常 工 作 ) 人 员 培 训 等 这 个 阶 段 的 成 功 执 行 导 致 产 品 发 布 这 一 里 程 碑 的 实 现 RUP 中 不 同 阶 段 和 里 程 碑 如 图 2.7 所 示

图 2.7 RUP 模 型 虽 然 这 些 阶 段 是 连 续 的, 每 个 阶 段 本 身 可 能 有 多 次 迭 代, 每 次 迭 代 交 付 给 内 部 或 外 部 客 户 一 些 良 好 定 义 的 输 出, 这 些 输 出 往 往 是 所 在 阶 段 的 里 程 碑 的 最 后 交 付 的 一 部 分 通 常 情 况 下, 将 开 发 阶 段 分 割 成 多 次 迭 代, 每 个 阶 段 的 每 次 迭 代 产 生 一 个 可 用 于 反 馈 评 价 β- 测 试 等 的 工 作 系 统 在 开 发 阶 段 中 迭 代 经 常 发 生, 一 个 阶 段 中 的 一 次 迭 代 应 该 交 付 什 么 也 很 明 确, 迭 代 对 于 其 他 阶 段 也 可 能 有 意 义 例 如, 在 细 化 阶 段, 第 一 次 迭 代 可 能 只 是 指 定 整 体 架 构 和 高 层 次 的 需 求, 而 第 二 次 迭 代 可 能 研 究 解 决 细 节 另 外 一 个 例 子, 可 能 有 多 次 迭 代 发 布 已 开 发 的 软 件, 而 每 次 迭 代 只 是 支 持 已 开 发 软 件 的 某 一 部 分 功 能 或 软 件 的 某 些 特 性 RUP 精 心 挑 选 每 个 阶 段 的 名 称, 以 免 与 项 目 中 要 完 成 的 工 程 任 务 相 混 淆, 因 为 在 RUP 中 工 程 任 务 和 阶 段 是 分 开 的 不 同 的 工 程 活 动 也 可 在 一 个 阶 段 中 执 行, 以 实 现 该 阶 段 的 目 标 RUP 将 活 动 划 分 到 多 个 不 同 的 子 过 程, 子 过 程 称 之 为 核 心 过 程 工 作 流 这 些 子 过 程 对 应 于 需 求 分 析 设 计 实 现 设 计 测 试 项 目 管 理 等, 表 2.1 列 出 了 某 些 子 过 程 RUP 与 其 他 模 型 的 关 键 区 别 在 于 它 将 阶 段 与 任 务 分 离, 并 允 许 一 个 功 能 的 多 个 子 过 程 在 一 个 阶 段 中 完 成 在 瀑 布 模 型 ( 或 瀑 布 的 迭 代 模 型 ) 中, 一 个 阶 段 内 的 一 个 过 程 是 与 一 个 特 定 任 务 ( 由 一 些 诸 如 需 求 设 计 等 之 类 的 过 程 执 行 ) 相 联 系 的 在 RUP 中 这 些 任 务 是 与 阶 段 分 开 的, 例 如 它 允 许 在 开 发 阶 段, 执 行 需 求 过 程 也 就 是 说, 它 允 许 需 求 活 动 的 某 些 部 分 放 到 开 发 阶 段 来 做, 而 在 瀑 布 模 型 中 这 是 不 容 许 的 因 此, 一 个 项 目 如 果 希 望 这 样, 在 细 化 阶 段 为 了 某 些 功 能 可 以 做 详 细 需 求, 在 开 发 过 程 进 行 时 可 以 对 其 他 需 求 做 细 化 ( 也 许 是 第 一 次 迭 代 ) 这 不 仅 可 以 让 项 目 在 规 划 方 面 有 更 大 程 度 的 灵 活 性 ( 当 不 同 的 任 务 应 该 完 成 时 ), 而 且 它 也 抓 住 了 现 实 的 状 况, 即 往 往 不 可 能 在 开 始 时 就 指 定 所 有 的 需 求, 因 此 最 好 在 指 定 一 部 分 需 求 的 情 况 下 先 启 动 项 目, 到 后 期 再 制 定 出 详 细 内 容 虽 然 一 个 子 过 程 可 能 在 许 多 阶 段 都 很 活 跃, 但 子 过 程 所 花 费 的 工 作 量 或 努 力 将 随 阶 段 不 同 而 不 同, 这 可 以 预 期 例 如, 在 细 化 阶 段 可 以 期 望 在 需 求 子 过 程 上 多 花 一 点 的 努 力, 而 在 开 发 阶 段 应 少 一 点, 用 于 发 布 阶 段 的 则 更 应 该 少 ( 如 果 发 布 阶 段 需 要 的 话 ) 同 样, 在 该 模 型 中, 开 发 过 程 在 细 化 阶 段 很 积 极, 这 使 得 项 目 在 细 化 阶 段 构 建 一 个 原 型, 以 帮 助 其 需 求 活 动, 但 是, 大 部 分 的 实 现 工 作 并 没 有 在 开 发 阶 段 实 施 当 然, 不 同 阶 段 子 进 程 所 花 的 努 力 取

决 于 该 项 目, 然 而, 一 般 模 式 如 表 2.1 所 示, 该 表 列 出 了 各 阶 段 各 活 动 所 花 精 力 的 大 小 : 高, 中, 低 等 表 2.1 :RUP 中 不 同 阶 段 的 子 过 程 的 活 动 水 平 开 始 细 化 开 发 发 布 需 求 分 析 与 设 计 实 现 测 试 安 装 工 程 管 理 高 高 低 零 低 高 中 零 零 低 高 低 零 低 高 中 零 零 中 高 中 中 中 中 总 体 而 言,RUP 提 供 了 一 个 灵 活 的 过 程 模 型, 它 遵 循 的 迭 代 做 法 不 仅 在 顶 层 ( 整 个 周 期 ), 而 且 还 鼓 励 迭 代 方 法 用 于 一 个 周 期 过 程 内 的 各 个 阶 段 而 在 各 个 阶 段 中, 它 允 许 按 照 项 目 的 需 要 完 成 不 同 的 任 务 2.3.5 时 间 盒 (timeboxing) 模 型 为 加 快 发 展, 可 以 采 用 各 迭 代 过 程 并 行 进 行 的 方 法 也 就 是 说, 在 当 前 迭 代 发 布 一 个 系 统 之 前 就 启 动 下 一 个 迭 代, 从 而, 当 前 版 本 的 开 发 与 新 版 本 的 开 发 并 行 发 生 在 当 前 迭 代 完 成 之 前 启 动 下 一 个 迭 代 可 以 缩 短 迭 代 的 平 均 交 付 时 间 但 是, 为 了 支 持 并 行 执 行, 每 一 个 迭 代 都 必 须 有 合 理 的 结 构, 开 发 团 队 也 必 须 组 织 有 序 合 理 时 间 盒 模 型 为 这 些 问 题 提 出 了 一 种 解 决 方 案 [59,60] 在 时 间 盒 模 型 中, 开 发 的 基 本 单 位 是 时 间 盒, 它 的 工 期 是 固 定 的 由 于 工 期 是 固 定 的, 在 选 择 需 求 或 时 间 盒 内 完 成 的 功 能 方 面, 关 键 因 素 是 把 什 么 放 进 时 间 盒 内 是 合 理 的 常 规 的 迭 代 方 法 是 先 选 择 功 能, 然 后 才 能 决 定 交 付 时 间, 这 与 并 行 迭 代 形 成 鲜 明 对 比 时 间 盒 模 型 改 变 了 人 们 对 开 发 的 理 解 方 式, 使 得 进 度 变 成 一 个 不 可 忽 略 和 高 度 优 先 的 事 每 个 时 间 盒 被 划 分 成 几 个 阶 段 序 列, 如 同 瀑 布 模 型 一 样, 每 个 阶 段 完 成 迭 代 中 明 确 定 义 好 的 任 务, 并 产 生 一 个 明 确 的 输 出 该 模 型 要 求 每 个 阶 段 持 续 的 时 间 ( 用 来 完 成 此 阶 段 的 任 务 的 时 间 ) 大 约 是 相 同 的 此 外, 还 要 求 每 个 阶 段 都 应 有 一 个 专 门 的 开 发 团 队, 也 就 是 说, 一 个 团 队 仅 执 行 本 阶 段 的 任 务, 其 他 阶 段 的 任 务 则 由 其 他 团 队 各 自 去 执 行, 这 与 其 他 迭 代 模 型 假 定 一 个 项 目 的 所 有 任 务 均 有 同 一 团 队 来 执 行 是 完 全 不 同 的 阶 段 工 期 相 同 与 每 个 阶 段 都 有 专 门 团 队 开 发 的 特 点 使 得 时 间 盒 迭 代 呈 现 出 迭 代 流 水 线 的 状 态 ( 流 水 线 概 念 来 源 于 硬 件 领 域, 不 同 的 指 令 并 行 执 行, 一 旦 当 前 指 令 的 第 一 阶 段 完 成, 立 即 启 动 执 行 下 一 条 指 令 )

为 了 说 明 这 一 模 型 的 使 用, 考 虑 一 个 时 间 盒 由 三 阶 段 组 成 : 需 求 规 格, 实 现, 安 装 需 求 阶 段 由 分 析 师 队 伍 执 行, 本 阶 段 结 束 后, 将 产 生 一 个 需 求 的 优 先 列 表 和 一 个 高 层 次 设 计 实 现 团 队 则 开 发 代 码 以 实 现 需 求, 并 完 成 测 试 工 作 把 被 测 试 过 的 代 码 交 给 安 装 团 队 进 行 安 装 前 测 试, 然 后 安 装 系 统 使 之 投 入 到 生 产 中 使 用 迭 代 的 三 个 阶 段 按 这 种 分 工 使 它 们 在 大 约 相 同 的 时 间 内 完 成 各 自 的 任 务 按 照 时 间 盒 的 三 个 阶 段, 项 目 进 展 如 下 : 当 需 求 团 队 在 时 间 盒 -1 完 成 需 求 后, 需 求 交 给 开 发 团 队 用 来 实 现 软 件 ; 然 后 需 求 团 队 继 续 一 个 新 的 工 作, 开 始 为 时 间 盒 -2 准 备 需 求 ; 当 时 间 盒 -1 的 实 现 工 作 完 成 后 交 给 安 装 团 队 ; 而 后 实 现 团 队 继 续 一 个 新 的 实 现 工 作, 即 根 据 时 间 盒 -2 的 需 求 开 始 编 写 代 码, 同 时 需 求 团 队 则 开 始 时 间 盒 -3 的 需 求 工 作 时 间 盒 模 型 的 执 行 流 水 线 如 图 2.8 所 示 软 件 TB1 需 求 实 现 安 装 TB2 需 求 实 现 安 装 TB3 需 求 实 现 安 装 TB4 需 求 构 建 安 装 图 2.8 时 间 盒 模 型 的 流 水 线 执 行 过 程 在 三 阶 段 流 水 线 的 时 间 盒 中, 最 多 可 以 同 时 进 行 三 个 迭 代 如 果 时 间 盒 的 大 小 为 T 天, 那 么 第 一 个 软 件 的 交 付 将 发 生 在 T 天 后 但 是, 随 后 的 交 付 将 每 T/3 天 发 生 一 次 例 如, 若 时 间 盒 的 工 期 T 为 9 周 ( 每 个 阶 段 的 持 续 时 间 为 3 周 ), 启 动 项 目 后 第 一 次 交 货 发 生 在 9 周 后, 第 二 次 交 货 发 生 在 12 周 后, 第 三 次 在 15 周 后, 以 此 类 推 相 比 线 性 迭 代 过 程, 则 首 次 交 付 将 于 9 周 后 发 生, 第 二 次 在 18 周, 第 三 次 27 周 后, 依 此 类 推 在 时 间 盒 模 型 中 要 求 有 三 个 专 门 团 队 为 项 目 工 作, 分 别 为 : 需 求 团 队, 实 现 团 队 及 安 装 团 队 以 上 讨 论 的 三 阶 段 流 水 线 团 队 活 动 如 图 2.9 所 示 [59]

需 求 团 队 TB1 的 需 求 分 析 TB2 的 需 求 分 析 TB3 的 需 求 分 析 TB4 的 需 求 分 析 实 现 团 队 TB1 的 实 现 TB2 的 实 现 TB3 的 实 现 TB4 的 实 现 安 装 团 队 TB1 的 安 装 TB2 的 安 装 TB3 的 安 装 TB4 的 安 装 图 2.9 不 同 团 队 的 任 务 应 该 明 确 的 是, 每 个 迭 代 的 工 期 并 没 有 缩 短 时 间 盒 模 型 中, 总 的 工 作 量 和 所 花 的 精 力 也 仍 与 线 性 迭 代 相 同 既 然 每 个 迭 代 所 花 的 精 力 和 时 间 没 有 缩 短, 那 么 缩 短 交 付 时 间 是 以 什 么 为 代 价 实 现 的 呢? 该 模 型 是 以 所 需 的 资 源 为 代 价 实 现 的 时 间 盒 模 型 中, 不 同 阶 段 有 不 同 的 专 门 团 队 为 其 工 作, 项 目 中 总 的 团 队 规 模 是 各 阶 段 团 队 的 总 和 线 性 迭 代 与 时 间 盒 迭 代 的 主 要 差 别 是, 前 者 以 单 一 团 队 执 行 所 有 阶 段 的 任 务, 而 后 者 整 个 团 队 仅 执 行 一 个 阶 段 任 务 因 此, 时 间 盒 模 型 为 利 用 额 外 的 人 力 来 缩 短 交 付 时 间 提 供 了 一 种 方 法 众 所 周 知, 以 标 准 方 法 执 行 项 目, 通 过 增 加 人 力 一 般 不 可 能 实 质 性 地 压 缩 项 目 的 周 期 然 而, 通 过 时 间 盒 模 型, 以 此 种 方 式 ( 并 行 执 行 不 同 阶 段 的 任 务 ) 使 用 更 多 的 人 力, 可 以 更 快 地 交 付 软 件 换 句 话 说, 通 过 利 用 额 外 的 人 力 提 供 了 一 种 缩 短 交 付 时 间 的 方 法 时 间 盒 模 型 特 别 适 用 于 在 固 定 的 框 架 内 使 用 稳 定 的 技 术, 短 时 期 开 发 出 拥 有 大 量 功 能 的 项 目 这 些 功 能 应 该 具 备 的 特 点 是 : 在 分 组 时 应 该 具 备 一 定 的 灵 活 性, 把 这 些 功 能 分 组 到 单 个 迭 代 阶 段 中 开 发, 然 后 构 成 一 个 有 意 义 的 系 统 因 为 同 时 展 开 多 个 开 发 过 程, 该 模 型 的 主 要 成 本 消 耗 在 项 目 管 理 的 日 益 复 杂 性 上 此 外, 迭 代 中 出 现 的 异 常 情 况 的 影 响 可 能 是 相 当 混 乱 的, 关 于 该 模 型 的 进 一 步 详 情 及 作 为 在 一 个 实 际 项 目 中 应 用 模 型 的 例 子, 请 参 阅 [59,60] 2.3.6 极 限 编 程 和 敏 感 过 程 模 型 敏 捷 开 发 方 法 始 于 20 世 纪 90 年 代, 针 对 瀑 布 模 型 文 档 化 和 机 械 性 的 过 程, 敏 捷 方 法 是 以 一 些 共 同 的 原 则 为 基 础, 其 中 某 些 原 则 为 [www.extremeprogramming.org]: - 工 作 软 件 是 项 目 进 展 的 关 键 度 量 方 法 - 对 于 一 个 项 目 的 进 展, 软 件 的 开 发 和 交 付 应 该 在 小 增 量 内 快 速 完 成 - 后 期 的 需 求 变 更, 也 应 当 受 理 ( 小 增 量 的 开 展 模 式 可 以 帮 助 适 应 这 种 要 求 ) - 面 对 面 的 沟 通 应 优 先 于 文 档 - 连 续 反 馈 和 客 户 的 参 与 对 开 发 高 质 量 的 软 件 是 很 必 要 的 - 简 单 的 设 计, 随 时 间 演 变 和 提 高 是 一 个 更 好 的 办 法, 而 不 是 一 开 始 就 为 处 理 所 有 可 能 发 生 的 情 况 而 精 心 设 计

- 交 货 日 期 由 有 能 力 的 团 队 ( 而 且 不 是 支 配 ) 决 定 已 提 出 多 种 详 细 的 敏 捷 方 法, 其 中 有 些 现 在 已 被 广 泛 使 用 在 众 多 敏 捷 方 法 之 中, 极 限 编 程 XP(Extreme Programming) 是 最 流 行 的 和 众 所 周 知 的 方 法 之 一 与 其 他 的 敏 捷 方 法 一 样, 它 认 为 变 化 是 不 可 避 免 的, 而 不 是 不 可 取 的, 发 展 过 程 中 应 该 包 括 变 化 为 了 适 应 变 化, 开 发 过 程 应 轻 巧 并 迅 速 地 做 出 反 应 为 此, 以 迭 代 方 式 开 发 软 件, 避 免 依 赖 详 细 的 多 种 文 档, 因 为 文 档 很 难 维 护 相 反, 它 依 赖 于 面 对 面 的 沟 通 简 单 反 馈 快, 以 确 保 所 需 的 变 化 快 速 正 确 地 反 映 在 程 序 中 这 里, 作 为 敏 捷 过 程 的 一 个 代 表, 我 们 简 要 讨 论 XP 开 发 过 程 一 个 极 限 编 程 项 目 开 始 于 用 户 的 小 故 事, 它 是 一 个 关 于 客 户 和 用 户 希 望 系 统 支 持 故 事 情 景 的 简 单 ( 几 句 话 ) 说 明 与 传 统 需 求 规 格 的 主 要 不 同 在 于 细 节, 用 户 故 事 不 包 含 详 细 需 求, 仅 当 故 事 被 执 行 时 才 涉 及 细 节, 因 此, 让 细 节 尽 可 能 晚 地 决 定 每 个 故 事 写 在 一 张 单 独 的 卡 片 上, 这 样 他 们 就 可 以 灵 活 组 合 受 权 的 开 发 团 队 估 算 落 实 一 个 用 户 故 事 需 多 长 时 间, 这 个 估 计 是 粗 略 的, 一 般 规 定 在 几 周 内 使 用 这 些 估 计 和 故 事 可 以 完 成 发 布 计 划, 它 定 义 哪 些 故 事 在 哪 个 系 统 发 布 内 实 现, 以 及 发 布 的 日 期 鼓 励 频 繁 地 小 的 发 布, 对 于 小 系 统 的 发 布 一 般 采 用 迭 代 开 发 模 式 验 收 测 试 也 属 于 故 事 的 实 现, 在 软 件 发 布 前 进 行 测 试 验 收 测 试 过 程 中 发 现 的 错 误 可 以 形 成 下 一 个 迭 代 的 工 作 项 目, 整 个 过 程 如 图 2.10 所 示 图 2.10 XP 全 过 程 迭 代 开 发, 每 次 迭 代 持 续 时 间 最 多 为 几 个 星 期 迭 代 开 始 于 迭 代 计 划, 该 计 划 选 择 了 在 该 阶 段 需 实 现 的 故 事, 高 价 值 高 风 险 的 故 事 会 被 赋 予 较 高 的 优 先 权, 在 前 期 的 迭 代 中 被 实 现 前 一 次 的 迭 代 中 失 败 的 验 收 测 试 也 要 在 本 次 迭 代 中 处 理, 故 事 的 细 节 也 被 包 含 在 迭 代 中 以 便 开 发 之 用 各 个 迭 代 中 用 到 的 开 发 方 法 会 有 一 些 独 特 的 实 例 第 一, 它 设 想 开 发 是 由 一 组 程 序 员 ( 称 为 组 编 程, 我 们 将 在 第 七 章 进 一 步 讨 论 ) 完 成, 而 非 个 别 程 序 员 ; 第 二, 它 表 明 为 实 现 一 个 代 码 单 元, 须 先 编 写 一 个 自 动 测 试 程 序, 代 码 单 元 应 能 通 过 测 试 单 元 的 测 试, 这 种 方 法 也 称 为 测 试 驱 动 开 发 与 常 规 的 代 码 第 一 开 发 方 法 ( 先 编 写 程 序 代 码, 然 后 考 虑 如 何 测 试 ) 形 成 对 比 ( 我 们 将 在 第 七 章 进 一 步 讨 论 测 试 驱 动 开 发 ), 随 着 单 元 代 码 功 能 的 增 加, 测 试 单

元 须 先 增 强, 然 后 增 强 的 代 码 单 元 以 通 过 一 组 新 的 测 试 单 元 ; 第 三, 因 为 它 鼓 励 改 变 和 简 单 的 解 决 方 案, 故 早 期 设 计 的 方 案 可 能 会 在 某 一 时 期 变 得 不 再 适 合 项 目 的 进 一 步 开 发 为 了 解 决 这 个 问 题, 建 议 做 重 构 工 作 以 改 善 设 计, 然 后 用 重 构 的 代 码 进 一 步 开 发 重 构 期 间 所 做 的 工 作 仅 仅 是 对 已 存 在 的 程 序 做 设 计 上 的 改 善, 并 不 添 加 新 的 功 能 ( 重 构 将 在 第 七 章 进 一 步 讨 论 ); 第 四, 它 鼓 励 频 繁 地 整 合 不 同 代 码 单 元 为 了 避 免 在 基 础 代 码 中 太 多 的 改 变 一 起 发 生, 故 一 次 只 允 许 一 个 单 元 释 放 其 改 变, 然 后 整 合 到 通 用 代 码 库 一 个 迭 代 阶 段 内 的 过 程 如 图 2.11 所 示 图 2.11 XP 中 的 一 个 迭 代 过 程 这 是 一 个 非 常 简 化 的 XP 的 描 述 XP 中 还 有 与 下 列 问 题 相 关 的 其 他 许 多 规 则, 如 : 程 序 员 与 客 户 的 权 利 团 队 成 员 之 间 的 交 流 及 隐 喻 的 使 用 对 所 有 厉 害 关 系 方 的 信 任 与 可 见 性 集 体 所 有 制 代 码 ( 团 队 中 的 任 何 人 都 可 以 修 改 代 码 中 的 任 何 地 方 ) 团 队 管 理 建 立 快 速 的 解 决 方 案 以 解 决 技 术 难 点 和 架 构 问 题, 或 是 探 索 一 些 新 方 法 如 何 处 理 错 误 如 何 从 上 一 次 迭 代 过 程 所 获 得 的 进 展 中 估 计 本 次 迭 代 需 要 做 的 事 情 如 何 召 开 协 商 会 议 如 何 开 始 一 天 的 开 发 工 作 等 等 网 站 www.extremeprogramming.org 就 上 述 问 题 提 供 了 一 些 很 好 的 资 源 以 及 其 他 XP 方 面 的 资 料 XP 和 其 他 敏 捷 方 法 适 用 于 需 求 变 化 在 数 量 和 频 率 方 面 都 较 高, 需 求 风 险 也 很 大 的 情 况 因 为 它 依 赖 于 团 队 所 有 成 员 之 间 的 强 大 交 流, 所 以 当 团 队 搭 配 合 适, 规 模 适 度 ( 一 般 最 多 20 个 人 ) 时,XP 会 表 现 出 很 高 的 效 率 此 外, 由 于 它 设 想 用 户 在 开 发 过 程 中 及 交 付 日 期 的 计 划 方 面 能 大 量 参 与, 故 当 用 户 愿 意 参 与 整 个 开 发 过 程 并 成 为 其 中 的 一 名 开 发 成 员 时,XP 可 以 良 好 地 运 作 2.3.7 过 程 模 型 在 项 目 中 的 应 用 我 们 已 经 了 解 了 很 多 不 同 的 过 程 开 发 模 型, 那 么 需 要 模 型 干 什 么 呢? 如 前 所 述, 开 发 ( 工 业 强 度 ) 软 件 的 目 的 不 仅 是 满 足 一 些 用 户 或 客 户 需 求 的 软 件, 还 希 望 以 低 成 本 短 周 期 完 成 项 目, 并 交 付 高 品 质 的 软 件 此 外, 在 一 个 项 目 中 可 能 还 有 其 他 的 限 定 因 素 需 要 项 目 去 满 足 因 此, 在 给 定 项 目 的 限 制 条 件 下, 采 用 一 种 过 程 模 型, 可 以 使 得 交 付 软 件 的 可 能 性 最 大 化, 并 实 现 高 Q&P 所 以, 为 一 个 项 目 选 择 一 个 合 适 的 开 发 过 程 模 型 是 项 目 经 理 不 得 不 做 的 关

键 决 定, 下 面 通 过 几 个 例 子 来 说 明 假 设 一 个 小 的 开 发 团 队 已 被 委 托 任 务, 建 立 一 个 本 地 大 学 的 小 拍 卖 网 站 大 学 的 行 政 部 门 在 一 开 始 愿 意 花 一 些 时 间 帮 助 开 发 系 统 的 需 求, 但 可 以 预 计 他 们 的 这 种 帮 助 能 力 在 后 期 将 受 到 限 制 如 果 该 团 队 被 限 定 在 4 个 月 内 完 成 该 项 目, 而 延 长 期 限 似 乎 是 非 常 不 可 能 的 拍 卖 网 站 中 有 一 些 功 能 是 必 不 可 少 的, 也 有 一 些 功 能 是 可 选 的, 但 没 有 该 功 能 系 统 照 样 能 运 作 得 相 当 好 有 了 这 些 限 制, 显 然, 对 于 这 个 项 目 瀑 布 模 型 是 不 适 合 的, 因 为 系 统 不 可 变 的 是 最 后 期 限, 所 以 若 使 用 瀑 布 模 型 会 存 在 全 有 或 全 无 的 风 险, 这 是 不 能 接 受 的 迭 代 增 强 模 型 也 不 适 合, 因 为 每 次 迭 代 都 是 一 次 完 整 的 瀑 布 模 型 过 程, 在 每 次 迭 代 中 都 需 要 做 需 求 分 析, 且 需 要 用 户 和 客 户 在 后 期 帮 助 做 需 求 分 析 然 而, 这 样 一 种 迭 代 交 付 方 法 似 乎 很 适 合, 即 全 部 的 需 求 在 第 一 次 迭 代 中 完 成, 而 交 付 工 作 在 后 期 的 两 个 ( 或 三 个 ) 迭 代 ( 由 于 时 间 短 ) 中 完 成 依 据 需 求, 项 目 团 队 可 以 决 定 哪 些 功 能 必 须 包 含 在 工 作 系 统 中, 并 把 它 放 到 第 一 次 迭 代 中, 其 他 的 可 选 功 能 可 以 在 第 二 次 迭 代 中 计 划 使 用 这 种 方 法, 在 最 后 期 限 前 完 成 第 一 次 迭 代 的 机 会 增 加 了 也 就 是 说, 采 用 这 种 RUP 模 型, 交 付 一 个 工 作 系 统 的 机 会 增 加 了 因 为 它 允 许 各 个 阶 段 采 用 迭 代 过 程, 故 也 是 一 个 合 适 的 模 型 考 虑 另 一 个 例 子, 即 客 户 处 在 激 烈 的 竞 争 环 境 中, 而 需 求 取 决 于 正 进 行 何 种 竞 争, 此 时 定 期 提 供 功 能 是 非 常 可 取 的 此 外, 为 了 减 少 成 本, 客 户 希 望 尽 可 能 多 地 将 项 目 外 包 给 另 一 个 国 家 的 其 他 工 作 队 对 于 这 个 项 目, 显 然 瀑 布 模 型 是 不 适 合 的, 因 为 要 求 甚 至 在 一 开 始 就 不 清 楚 迭 代 增 强 模 型 也 可 能 无 法 工 作, 因 为 它 可 能 不 能 够 迅 速 地 交 付 软 件 XP 也 将 难 以 应 用, 因 为 它 要 求 整 个 团 队 ( 包 括 客 户 ) 相 互 协 调 工 作 对 于 这 个 项 目, 时 间 盒 模 型 似 乎 最 适 合, 整 个 项 目 可 以 聘 用 三 个 团 队, 分 析 师 团 队 与 客 户 一 同 确 定 需 求, 另 一 团 队 做 开 发 ( 可 以 选 在 一 些 低 成 本 地 区 开 发 ), 第 三 个 团 队 在 安 装 该 网 站 的 地 点 做 安 装 工 作 通 过 适 当 配 备 人 员 队 伍, 四 个 阶 段 ( 分 析, 设 计, 实 现 和 安 装 ) 的 持 续 时 间 可 大 致 相 等, 这 就 可 以 应 用 时 间 盒 模 型 了 考 虑 另 一 个 项 目, 一 所 大 学 需 要 一 个 自 动 注 册 过 程, 它 已 经 拥 有 一 个 包 含 课 程 和 先 决 条 件 的 数 据 库 及 一 个 学 生 记 录 数 据 库 在 这 个 项 目 中, 由 于 已 透 彻 理 解 了 需 求 ( 因 为 注 册 是 每 年 都 必 定 会 发 生 的 事 情 ), 所 以 瀑 布 模 型 似 乎 是 最 合 适 的 2.4 项 目 管 理 过 程 虽 然 开 发 过 程 的 选 择 决 定 了 阶 段 和 要 做 的 任 务, 但 它 不 指 定 以 下 事 情, 如 每 个 阶 段 应 该 持 续 多 长 时 间, 或 每 个 阶 段 应 分 配 多 少 资 源, 或 者 应 如 何 监 测 一 个 阶 段 一 个 项 目 的 质 量 和

生 产 率 也 取 决 于 这 些 决 定 为 了 满 足 成 本 质 量 和 进 度 方 面 的 目 标, 资 源 必 须 妥 善 分 配 给 每 个 项 目 活 动, 还 应 监 督 不 同 活 动 的 进 展 情 况, 并 在 需 要 的 时 候 采 取 纠 正 行 动 所 有 这 些 活 动 都 是 项 目 管 理 过 程 的 一 部 分 因 此, 项 目 管 理 过 程 是 要 确 保 工 程 过 程 在 满 足 现 实 世 界 的 目 标 ( 成 本 进 度 和 质 量 ) 的 条 件 下 结 束 项 目 管 理 过 程 通 过 项 目 管 理 指 定 所 有 需 要 完 成 的 活 动, 以 确 保 成 本 和 质 量 目 标 得 到 满 足 它 的 基 本 任 务 是 : 在 选 择 了 一 个 开 发 过 程 后 确 保 以 最 佳 方 式 实 现 项 目, 也 就 是 说, 基 本 任 务 是 为 特 定 项 目 计 划 各 过 程 的 详 细 实 施 方 略, 然 后 确 保 该 计 划 得 到 正 确 执 行 对 于 一 个 大 项 目, 适 当 的 管 理 过 程 是 成 功 的 关 键 项 目 管 理 过 程 中 的 活 动 可 大 致 分 为 三 个 阶 段 : 计 划 监 测 和 控 制 终 止 和 分 析 项 目 管 理 始 于 计 划, 这 或 许 是 最 关 键 的 项 目 管 理 活 动 这 个 阶 段 的 目 标 是 为 软 件 开 发 制 定 计 划, 按 照 计 划 可 以 成 功 而 有 效 地 实 现 项 目 的 目 的 一 个 软 件 计 划 通 常 是 在 初 始 活 动 开 始 之 前 就 制 定 出 来, 并 随 着 开 发 的 进 展 和 项 目 进 展 的 数 据 变 得 可 用 而 不 断 更 新 在 计 划 期 间, 主 要 的 活 动 是 成 本 估 算 进 度 和 里 程 碑 的 确 定 项 目 人 员 配 备 质 量 控 制 计 划 控 制 和 监 测 计 划 项 目 计 划 无 疑 是 最 重 要 的 管 理 活 动, 它 构 成 了 监 测 和 控 制 的 基 础 将 在 书 中 后 面 以 一 整 章 来 讨 论 项 目 计 划 项 目 监 测 和 管 理 过 程 的 控 制 在 时 间 上 是 最 长 的, 它 涵 盖 了 大 多 数 的 开 发 过 程 包 括 开 发 过 程 进 行 时, 项 目 管 理 必 须 执 行 的 所 有 活 动, 以 确 保 项 目 目 标 的 实 现 及 开 发 过 程 按 照 开 发 计 划 实 施 ( 如 果 需 要 的 话 需 更 新 计 划 ) 由 于 成 本 进 度 和 质 量 是 主 要 驱 动 力, 这 个 阶 段 的 大 多 数 活 动 都 围 绕 着 影 响 这 些 指 标 的 因 素 监 测 对 于 一 个 项 目, 监 测 潜 在 的 风 险 是 这 个 阶 段 的 另 一 个 重 要 活 动, 它 可 能 使 得 项 目 不 能 实 现 目 标 如 果 通 过 监 测 获 得 的 信 息 表 明 目 标 可 能 无 法 满 足, 则 在 这 个 阶 段 需 采 取 必 要 的 行 动 ( 通 过 向 开 发 活 动 施 加 合 适 的 控 制 ) 监 测 一 个 开 发 过 程 需 要 有 关 项 目 的 正 确 信 息, 这 些 信 息 通 常 是 由 管 理 过 程 从 开 发 进 程 中 所 获 得 因 此, 一 个 开 发 过 程 模 型 的 实 施 应 确 保 开 发 过 程 中 的 每 一 步 骤 都 能 产 生 管 理 过 程 在 该 阶 段 所 需 的 信 息, 也 就 是 说, 开 发 过 程 提 供 管 理 过 程 需 要 的 信 息 然 而, 信 息 的 解 释 则 属 于 监 测 和 控 制 部 分 尽 管 监 测 和 控 制 持 续 于 整 个 项 目 工 期, 但 管 理 过 程 中 的 最 后 一 个 阶 段 终 止 性 分 析 却 是 在 当 开 发 过 程 结 束 后 才 执 行 的 执 行 终 止 性 分 析 的 根 本 原 因 是 获 得 有 关 开 发 过 程 的 信 息, 并 从 项 目 中 学 习 以 改 善 过 程, 这 个 阶 段 往 往 也 是 所 谓 事 后 分 析 在 迭 代 开 发 中, 这 种 分 析 可 以 在 每 次 迭 代 完 成 后 就 做, 提 供 反 馈 意 见 以 改 善 下 一 步 迭 代 的 执 行 我 们 不 在 本 书 中 对 此 做 进 一 步 讨 论, 但 读 者 可 以 参 阅 [57], 一 个 事 后 分 析 报 告 的 例 子 管 理 过 程 和 开 发 过 程 之 间 的 时 间 关 系 如 图 2.12 所 示 这 是 一 个 理 想 化 的 关 系, 它 显 示

计 划 是 在 开 发 工 作 开 始 之 前 完 成 的, 开 发 结 束 后 执 行 终 止 性 分 析 如 图 所 示, 在 开 发 过 程 中, 定 量 的 信 息 流 从 开 发 过 程 的 各 个 阶 段 流 向 管 理 过 程 的 监 测 和 控 制 阶 段, 管 理 过 程 分 析 这 些 信 息 以 发 挥 其 对 开 发 过 程 的 控 制 作 用 我 们 在 后 面 的 章 节 中 详 尽 讨 论 了 项 目 计 划 阶 段 这 里 将 不 单 独 讨 论 监 测 计 划, 而 是 将 其 作 为 计 划 活 动 的 一 部 分 一 起 讨 论 图 2.12 开 发 过 程 和 管 理 过 程 的 时 空 关 系 2.5 小 结 - 在 软 件 项 目 中, 质 量 和 生 产 力 目 标 的 实 现 取 决 于 该 项 目 开 发 过 程 中 使 用 的 过 程 基 于 这 个 原 因, 过 程 形 成 了 软 件 工 程 的 核 心 - 过 程 是 一 组 按 照 某 种 顺 序 执 行 的 活 动, 以 使 预 期 的 结 果 得 到 实 现 过 程 模 型 是 一 个 通 用 的 过 程 规 范, 已 被 认 证 为 在 某 些 情 况 下 是 最 适 合 的 - 一 种 软 件 过 程 包 含 许 多 不 同 的 组 成 过 程, 最 重 要 的 是 开 发 过 程 和 项 目 管 理 过 程 - 开 发 过 程 的 重 点 是 如 何 策 划 软 件 现 在 存 在 许 多 不 同 的 过 程 模 型, 每 种 过 程 模 型 适 合 某 些 类 型 的 问 题 - 瀑 布 模 型 是 概 念 上 最 简 单 的 软 件 开 发 模 式, 其 需 求 设 计 编 码 和 测 试 阶 段 是 线 性 开 展 的 它 已 被 广 泛 使 用, 适 合 于 已 被 充 分 理 解 了 的 问 题 - 原 型 模 型 原 型 是 在 构 建 最 终 系 统 前 开 发 的, 用 它 来 进 一 步 理 解 需 求, 从 而 导 致 更 多 的 稳 定 的 需 求, 这 对 于 需 求 不 明 确 的 项 目 是 非 常 有 用 的 - 迭 代 开 发 模 式 是 软 件 以 迭 代 的 方 式 开 发, 每 次 迭 代 都 产 生 一 个 可 工 作 的 软 件 系 统 这 种 模 式 不 要 求 在 一 开 始 就 掌 握 所 有 的 需 求, 它 允 许 早 期 的 迭 代 反 馈 信 息 给 后 面 的 迭 代 过 程, 可 降 低 风 险, 因 为 它 随 项 目 的 进 展 按 期 提 供 有 价 值 的 软 件 - 在 RUP 中, 一 个 项 目 分 四 个 阶 段 执 行 : 开 始 阶 段, 细 化 阶 段, 开 发 阶 段 和 发 布 阶 段, 每 一 阶 段 都 以 定 义 的 里 程 碑 结 束 每 一 阶 段 自 身 也 可 能 按 迭 代 方 式 工 作, 需 求 设 计 编 码 测 试 等 这 些 子 过 程 被 认 为 在 整 个 项 目 期 间 都 是 活 跃 的, 尽 管 它 们 的 活

跃 强 度 依 所 处 的 阶 段 不 同 而 各 不 相 同 RUP 是 一 个 灵 活 的 框 架, 它 允 许 一 个 项 目 按 照 传 统 的 瀑 布 模 型 执 行 ( 如 果 希 望 的 话 ), 或 允 许 按 照 原 型 模 型 执 行 ( 若 愿 意 的 话 ) - 在 时 间 盒 模 型 中, 不 同 的 迭 代 阶 段 都 拥 有 平 等 的 时 间 期 限, 并 分 为 长 度 相 等 的 阶 段 每 一 个 迭 代 阶 段 有 一 个 专 门 的 团 队 然 后 不 同 的 迭 代 以 流 水 线 方 式 并 行 执 行, 针 对 不 同 的 迭 代 每 个 专 门 团 队 只 承 担 一 个 迭 代 的 工 作 由 于 多 个 迭 代 同 时 活 动, 该 模 式 缩 短 了 每 个 迭 代 的 平 均 交 付 时 间, 因 此 它 在 要 求 短 周 期 时 间 的 情 况 下 是 非 常 有 用 的 - 敏 捷 开 发 方 法 是 基 于 以 一 些 关 键 原 则 为 基 础 的, 如 以 小 的 迭 代 阶 段 进 行 软 件 开 发, 以 工 作 系 统 作 为 进 展 的 衡 量, 在 任 何 时 间 都 允 许 发 生 变 化 极 限 编 程 (XP) 方 法 源 于 一 个 用 户 的 简 短 故 事, 细 节 在 迭 代 实 施 时 才 涉 及 在 一 个 迭 代 中, 测 试 驱 动 的 开 发 实 例 完 成 后 程 序 员 组 再 进 行 开 发 工 作, 然 后 频 繁 的 集 成, 设 计 简 单 的 方 案, 当 需 要 的 时 候 可 以 对 简 单 方 案 进 行 重 构 - 项 目 管 理 过 程 的 重 点 是 开 发 计 划 的 制 定 和 开 发 过 程 的 控 制, 它 包 括 三 个 主 要 阶 段 : 计 划, 监 测 和 控 制, 终 止 性 分 析 大 部 分 项 目 管 理 围 绕 项 目 计 划 进 行, 它 是 在 计 划 阶 段 产 生 的 自 测 练 习 1. 一 个 项 目 中, 过 程 模 型 过 程 规 范 过 程 三 者 之 间 有 什 么 联 系? 2. 采 用 迭 代 开 发 模 型 的 项 目, 其 迭 代 过 程 中 的 关 键 产 出 是 什 么? 3. 本 章 所 讨 论 的 开 发 过 程 模 式, 在 如 下 的 项 目 中 你 会 选 用 哪 一 种? a) 一 个 简 单 的 数 据 加 工 项 目 b) 面 向 办 事 处 工 作 人 员 的 数 据 输 入 系 统, 他 们 以 前 从 未 使 用 过 电 脑, 用 户 界 面 和 界 面 友 好 是 非 常 重 要 的 c) 电 子 表 格 系 统, 该 系 统 应 拥 有 一 些 基 本 功 能 和 许 多 使 用 这 些 基 本 功 能 导 出 的 其 他 可 取 功 能 d) 一 个 基 于 网 络 的 面 向 一 种 新 型 业 务 的 系 统, 该 业 务 的 需 求 变 化 快 速, 并 拥 有 一 个 内 部 开 发 团 队 可 用 于 项 目 各 方 面 的 开 发 e) 一 个 在 线 商 店 的 网 站, 它 有 一 串 长 长 的 要 添 加 的 功 能 清 单, 并 希 望 频 繁 地 发 布 具 有 新 功 能 的 新 版 本 4. 一 个 项 目 使 用 时 间 盒 过 程 模 型, 每 次 时 间 盒 分 为 三 阶 段, 但 每 阶 段 时 间 长 度 不 等 假 设 需 求 规 范 阶 段 需 要 一 个 2 人 团 队 2 周 的 时 间, 构 建 阶 段 为 4 人 团 队 3 周 的 时 间, 安 装 阶 段 为 2 人 团 队 1 周 的 时 间, 为 该 项 目 设 计 一 个 过 程 使 得 资 源 利 用 率 最 大 假 设 每 个 资 源

可 以 承 担 任 何 任 务 ( 提 示, 探 索 的 事 实 是 : 第 一 和 第 三 阶 段 的 持 续 时 间 的 总 和 等 于 第 二 期 阶 段 的 时 间 ) 5. 项 目 监 测 活 动 可 能 会 对 开 发 过 程 产 生 什 么 样 的 影 响?

第 三 章 软 件 需 求 分 析 和 软 件 需 求 规 格 IEEE 把 软 件 需 求 定 义 为 :(1) 用 户 为 了 解 决 某 一 问 题 或 者 达 到 某 一 目 标 而 需 要 的 功 能 和 条 件 ;(2) 这 些 条 件 和 功 能 要 求 必 须 要 被 系 统 所 满 足, 同 时 要 满 足 相 关 的 合 同 契 约 标 准 规 范, 或 者 其 他 一 些 正 式 强 制 性 文 件 需 要 指 出 的 是, 所 需 处 理 的 软 件 需 求 是 动 态 的, 也 就 是 系 统 的 性 能 是 不 断 发 展 的 正 如 我 们 所 看 到 的, 所 有 的 开 发 模 型 都 要 求 有 明 确 的 需 求 若 使 用 敏 捷 技 术 就 需 要 高 层 需 求 说 明 书, 详 细 需 求 通 过 与 客 户 反 复 交 换 意 见 得 到, 并 且 直 接 反 映 在 软 件 中 另 一 方 面 是 需 求 描 述 要 精 准, 需 求 活 动 的 目 的 就 是 要 得 到 软 件 需 求 规 格 说 明 书 SRS(Software Requirement Specification), 它 描 述 了 软 件 需 要 做 什 么, 而 不 描 述 怎 么 做 这 一 章 中 要 讨 论 : - SRS 在 工 程 中 的 作 用, 以 及 一 个 好 的 SRS 会 带 来 的 价 值 - 在 产 生 所 需 要 的 SRS 的 过 程 中 的 一 些 不 同 的 活 动 - SRS 文 档 要 求 的 特 性, 结 构 以 及 它 的 关 键 部 分 - 用 例 分 析 方 法 和 功 能 需 求 的 指 定 以 及 怎 样 开 发 用 例 - 其 他 一 些 需 求 分 析 的 方 法, 如 数 据 流 图 (data flow diagram) 分 析 法 - 怎 样 验 证 需 求 3.1 好 SRS 的 意 义 多 数 软 件 系 统 起 源 于 某 些 客 户 的 需 要, 软 件 系 统 本 身 由 某 些 开 发 者 生 产, 最 终 完 成 的 系 统 由 用 户 使 用 然 而, 在 一 个 新 的 系 统 中 有 我 们 感 兴 趣 的 三 个 主 要 部 分, 它 们 是 : 客 户 开 发 者 和 用 户, 那 些 客 户 所 要 求 的 以 及 用 户 关 心 的 需 求 必 须 要 与 开 发 者 交 换 意 见 问 题 是 客 户 往 往 不 懂 软 件 和 软 件 的 开 发 过 程, 同 时 开 发 者 也 往 往 不 理 解 客 户 的 问 题 和 应 用 领 域 这 就 造 成 在 项 目 的 开 发 过 程 中, 各 方 交 流 的 空 隙 SRS 最 基 本 的 目 的 就 是 要 填 补 这 个 交 流 空 隙, 开 发 出 一 个 拥 有 共 同 视 图 的 软 件 所 以 一 个 优 秀 的 SRS 的 主 要 优 点 是 : - SRS 使 得 客 户 与 开 发 者 之 间 在 软 件 究 竟 要 做 些 什 么 上 达 成 一 致 客 户 与 开 发 者 会 频 繁 的 把 这 些 一 致 做 成 具 有 法 律 效 力 的 契 约, 所 以 通 过 SRS, 客 户 清 楚 地 描 述 它 期 望 从 开 发 者 那 得 到 什 么, 开 发 者 也 清 楚 地 理 解 构 造 的 该 软 件 将 具 备 什 么 功 能 一 个 相 关 但 重 要 的 优 点 是 : - SRS 对 最 终 产 品 的 验 证 提 供 一 个 参 考

也 就 是 说,SRS 帮 助 客 户 确 定 一 个 软 件 是 否 满 足 需 求, 没 有 合 适 的 SRS, 客 户 就 没 有 办 法 去 决 定 软 件 是 否 按 照 所 要 求 的 那 样 去 做, 同 时 开 发 者 也 没 有 办 法 向 客 户 表 明 那 些 需 求 已 经 全 都 满 足 就 以 上 所 言 已 有 足 够 的 理 由 使 客 户 与 开 发 者 需 严 肃 处 理 这 个 需 求 说 明, 但 是 对 一 个 优 秀 的 SRS 还 有 更 加 实 际 的 原 因 研 究 表 明 需 求 阶 段 存 在 着 许 多 错 误, 并 且 SRS 中 的 错 误 在 最 后 的 软 件 实 现 中 肯 定 将 是 个 错 误 显 然, 若 我 们 想 要 得 到 一 个 高 质 量 的 最 终 产 品, 而 且 几 乎 没 有 错 误, 那 就 必 须 从 做 高 质 量 的 SRS 开 始 换 句 话 说, 可 以 归 纳 为 : - 高 质 量 的 SRS 是 高 质 量 软 件 的 前 提 高 质 量 的 SRS 可 以 减 少 工 程 费 用, 我 们 知 道 SRS 可 能 存 在 错 误, 同 样 也 知 道 随 着 工 程 的 进 展, 弥 补 一 个 错 误 所 需 的 花 费 是 呈 指 数 增 长 的 所 以, 通 过 提 高 SRS 的 质 量 可 以 为 将 来 节 省 一 大 笔 检 测 开 销 或 者 说, - 高 质 量 的 SRS 可 以 减 少 开 发 费 用 3.2 需 求 过 程 需 求 分 析 过 程 就 是 做 需 求 分 析 时 的 一 系 列 活 动 的 顺 序, 最 终 以 形 成 高 质 量 的 SRS 文 档 为 终 点 典 型 的 需 求 分 析 过 程 包 括 三 个 基 本 任 务 : 问 题 或 需 求 分 析 需 求 说 明 以 及 需 求 验 证 问 题 分 析 通 常 由 一 个 高 层 的 问 题 陈 述 开 始, 在 问 题 分 析 期, 为 问 题 域 和 环 境 建 模, 这 对 理 解 系 统 的 行 为 约 束 以 及 输 入 输 出 等 是 很 有 效 的, 这 项 活 动 的 基 本 目 标 就 是 彻 底 地 弄 懂 所 开 发 的 软 件 究 竟 要 提 供 些 什 么 在 分 析 过 程 中, 分 析 者 往 往 会 与 客 户 和 终 端 用 户 召 开 一 系 列 的 会 议 在 早 期 的 会 议 中, 客 户 和 终 端 用 户 会 向 分 析 者 解 释 他 们 的 工 作 和 工 作 环 境, 还 有 他 们 的 一 些 期 望 在 这 个 过 程 中 都 会 提 供 任 何 有 关 描 述 工 作 和 组 织 的 文 档, 在 这 些 早 期 会 议 中, 分 析 者 主 要 是 作 为 听 众, 掌 握 他 们 所 提 供 的 信 息 一 旦 分 析 者 对 所 要 开 发 的 系 统 了 解 到 一 定 程 度 时, 他 会 在 接 下 来 的 几 次 会 议 上 澄 清 那 些 他 所 不 懂 或 不 清 楚 的 部 分, 也 可 能 会 把 这 些 信 息 文 档 化 或 建 成 模 型, 他 也 有 可 能 进 行 头 脑 风 暴 或 者 想 象 一 下 这 个 系 统 将 要 做 什 么 在 最 后 的 几 次 会 议 上, 分 析 者 会 向 客 户 解 释 对 系 统 要 做 什 么 的 理 解, 同 时 也 会 利 用 这 几 次 会 核 实 他 对 系 统 的 理 解 是 否 和 客 户 的 目 标 一 致 由 问 题 分 析 中 得 来 的 信 息 会 形 成 一 个 最 基 本 的 需 求 说 明 书, 在 这 份 说 明 书 中, 主 要 是 清 楚 地 记 载 需 求 在 这 个 活 动 中 事 实 的 陈 述, 说 明 语 言 和 工 具 等 都 会 确 定 下 来 同 时 把 繁 琐 的