Rational Unified Process


(来源:广东省邮电科学技术研究院 孙剑晖)

软 件 工 程 在 软 件 开 发 中 的 作 用 目 前 已 为 大 多 数 软 件 企 业 所 认 识, 选 择 什 么 样 的 工 具 来 支 持 软 件 的 工 程 化 开 发 是 目 前 迫 切 需 要 解 决 的 问 题。 本 期“ 软 件 时 空” 编 发 的 一 组 文 章 介 绍 了 几 种 支 持 软 件 工 程 不 同 侧 面 的 工 具, 这 些 工 具 既 包 括 国 外 的 成 熟 产 品, 也 有 国 内 企 业 自 主 开 发 的 工 具 软 件, 有 兴 趣 的 读 者 不 妨 仔 细 读 一 读。

编 者 Rational Unified Process( 以 下 简 称RUP) 是 一 套 软 件 工 程 过 程, 同 时 也 是 文 档 化 的 软 件 工 程 产 品, 所 有RUP 的 实 施 细 节 及 方 法 导 引 均 以Web 文 档 的 形 式 集 成 在 一 张 光 盘 上, 由Rational 公 司 开 发、 维 护 并 销 售, 当 前 版 本 是5.0。 另 一 方 面,RUP 又 是 一 套 软 件 工 程 方 法 的 框 架, 各 个 组 织 可 根 据 自 身 的 实 际 情 况, 以 及 项 目 规 模 对RUP 进 行 裁 剪 和 修 改, 以 制 定 出 合 乎 需 要 的 软 件 工 程 过 程。

二 维 的 软 件 开 发 模 型

----传 统 的 软 件 开 发 模 型Waterfall Process 是 一 个 单 维 的 模 型, 开 发 工 作 划 分 为 多 个 连 续 的 阶 段。 在 一 个 时 间 段 内, 只 能 作 某 一 阶 段 的 工 作, 而 在RUP 中, 软 件 开 发 生 命 周 期 根 据 时 间 和RUP 的 核 心 工 作 流 划 分 为 二 维 空 间: 时 间 维 从 组 织 管 理 的 角 度 描 述 整 个 软 件 开 发 生 命 周 期, 是RUP 的 动 态 组 成 部 分, 它 可 进 一 步 描 述 为 周 期(Cycle)、 阶 段(phase)、 迭 代(Iteration)。 核 心 工 作 流 从 技 术 角 度 描 述RUP 的 静 态 组 成 部 分, 它 可 进 一 步 描 述 为 行 为(activities)、 工 作 流(workflow)、 产 品(artifact)、 工 人(worker)。 值 得 注 意 的 是, 几 乎 所 有 的 工 作 流 在 所 有 的 时 间 段 内 均 有 工 作 量, 只 是 大 小 不 同 而 已。 这 与Waterfall Process 有 明 显 的 不 同。

----1 . 静 态 结 构: 方 法 描 述

----软 件 开 发 过 程 描 述 了 什 么 时 候、 什 么 人、 做 什 么 事 以 及 怎 样 实 现 某 一 特 定 的 目 标。RUP 采 用 以 下 四 个 基 本 模 型 元 素, 组 织 和 构 造 系 统 开 发 过 程:

          Workers : the who 
          Activities : the how
          Artifacts : the what
          Workflows ; the when

----Worker 也 就 是 角 色, 它 描 述 某 个 人 或 一 个 小 组 的 行 为 与 职 责。 一 个 开 发 人 员 可 以 同 时 是 几 个Worker, 一 个 Worker 也 可 以 由 多 个 开 发 人 员 共 同 承 担。RUP 预 先 定 义 了 很 多 Workers, 并 对 每 一 个Worker 的 工 作 和 职 责 都 作 了 详 尽 的 说 明。

----Activity 是 一 个 有 明 确 目 的 的 独 立 工 作 单 元。 Artifact 是Activity 生 成、 创 建 或 修 改 的 一 段 信 息。 它 是Activity 的 输 入 同 时 又 是 它 的 输 出 结 果。Artifact 以 多 种 形 式 存 在, 包 括 模 型(Model)、 原 代 码、 可 执 行 文 件 和 文 档 等。

----Model 是 从 某 一 角 度 对 系 统 的 完 全 描 述。 RUP 很 大 一 部 分 工 作 就 是 设 计 和 维 护 一 系 列 模 型, 其 中 包 括Use Case Model、Business Model、 Analysis Model、Design Model 等。 所 有 这 些 模 型 都 以UML 描 述, 因 此 它 们 是 标 准 的 并 为 多 种CASE 工 具 支 持。

----Wrokflow 描 述 了 一 个 有 意 义 的 连 续 Activititys 序 列, 每 个Workflow 产 生 一 些 有 价 值 的Artifacts, 并 显 示 出 Workers 之 间 的 关 系。RUP 主 要 提 供 两 种 组 织Workflow 的 方 式: 核 心 工 作 流(Core workflows) 和 迭 代 工 作 流(Iteration workflows)。

----核 心 工 作 流 从 逻 辑 上 把 相 关 的Workers 和 Activities 划 分 为 组, 以 描 述RUP 的 逻 辑 组 成 部 件。 它 们 相 当 于 模 板, 并 不 在 开 发 过 程 中 真 正 执 行; 迭 代 工 作 流 是RUP 的 一 个 具 体 实 现 过 程, 它 们 对 核 心 工 作 流 进 行 裁 剪, 是 核 心 工 作 流 的 具 体 实 现。

----RUP 有9 个 核 心 的 工 作 流。 以 下 简 单 描 述 这 些 工 作 流 的 目 的:

----· 商 业 建 模 理 解 待 开 发 系 统 的 组 织 结 构 及 其 商 业 运 作, 确 保 所 有 参 与 人 员 对 待 开 发 系 统 有 共 同 的 认 识;

----· 需 求 分 析 定 义 系 统 功 能 及 用 户 界 面, 使 客 户 了 解 系 统 的 功 能、 开 发 人 员 了 解 系 统 的 需 求, 为 项 目 预 算 及 计 划 提 供 基 础;

----· 分 析 与 设 计 把 需 求 分 析 的 结 果 转 化 为 实 现 规 格;

----· 实 现 定 义 代 码 的 组 织 结 构、 实 现 代 码、 单 元 测 试 和 系 统 集 成;

----· 测 试 校 验 各 子 系 统 的 交 互 与 集 成, 确 保 所 有 的 需 求 被 正 确 实 现 并 在 系 统 发 布 前 发 现 错 误;

----· 发 布 打 包、 分 发、 安 装 软 件, 升 级 旧 系 统; 培 训 用 户 及 销 售 人 员, 并 提 供 技 术 支 持, 制 定 并 实 施beta 测 试;

----· 配 置 管 理 跟 踪 并 维 护 系 统 所 有 Artifacts 的 完 整 性 和 一 致 性;

----· 项 目 管 理 为 计 划、 执 行 和 监 控 软 件 开 发 项 目 提 供 可 行 性 指 导; 为 风 险 管 理 提 供 框 架 和 环 境; 为 组 织 提 供 过 程 管 理 和 工 具 的 支 持。

----2 . 动 态 结 构: 迭 代 式 开 发

----在 时 间 维 上, 为 了 能 够 方 便 地 管 理 软 件 开 发 过 程, 监 控 软 件 开 发 状 态,RUP 把 软 件 开 发 周 期 划 分 为 Cycles, 每 个Cycle 生 成 一 个 产 品 的 新 版 本 并 依 次 由 四 个 连 续 的 阶 段 组 成, 每 个 阶 段 都 应 完 成 确 定 的 任 务:

---- · 起 始 阶 段 定 义 最 终 产 品 视 图、 商 业 模 型 并 确 定 系 统 范 围;

---- ·演 化 阶 段 设 计 并 确 定 系 统 的 体 系 结 构, 制 定 工 作 计 划 及 资 源 要 求;

----· 构 造 阶 段 构 造 产 品 并 继 续 演 进 需 求、 体 系 结 构、 计 划 直 至 产 品 提 交;

----· 提 交 阶 段 把 产 品 提 交 给 用 户 使 用。

----每 个 阶 段 结 束 前 都 有 一 个 里 程 碑(MileStone) 评 估 该 阶 段 的 工 作。 如 果 未 能 通 过 该 里 程 碑 的 评 估, 则 决 策 者 应 该 决 定 是 取 消 该 项 目, 还 是 继 续 进 行 该 阶 段 的 工 作。

----每 一 个 阶 段 都 由 一 个 或 多 个 连 续 的 迭 代(Iteration) 组 成, 每 一 个 迭 代 都 是 一 个 完 整 的 开 发 过 程。 与Core Workflow 不 同,RUP 并 没 有 也 无 法 给 出Iteration Workflows 的 具 体 实 现 步 骤, 它 需 要 项 目 经 理 根 据 当 前 迭 代 所 处 的 阶 段、 以 及 上 次 迭 代 的 结 果, 适 当 地 对Core Workflows 中 的Activities 进 行 剪 裁 以 实 现 一 个 具 体 的 迭 代 工 作 流。

----RUP 的 迭 代 开 发 过 程 是 受 控 的, 在 项 目 计 划 中 就 制 定 了 项 目 迭 代 的 个 数、 每 个 迭 代 的 延 续 时 间 以 及 目 标。 在 每 一 个 迭 代 的 起 始 阶 段 都 制 定 了 详 细 的 迭 代 计 划 和 具 体 的Iteration Workflow。 每 次 迭 代 过 程 都 生 成 该 次 迭 代 的Release 作 为 下 次 迭 代 的 基 础。 在 迭 代 结 束 前, 都 应 执 行 测 试 工 作, 并 仔 细 评 估 该 迭 代 过 程, 为 下 一 次 迭 代 做 好 准 备。

Use Case 驱 动

----因 为 缺 乏 贯 穿 整 个 开 发 过 程 的 线 索, 传 统 的 面 向 对 象 开 发 方 法 很 难 阐 述 清 楚 一 个 软 件 系 统 是 如 何 实 现 其 功 能 的。

----Use Cases Model 是 需 求 分 析 工 作 流 的 结 果, 它 从 用 户 的 角 度 描 述 该 系 统 应 该 实 现 的 功 能。 利 用Use Case Model 可 以 有 效 地 界 定 系 统 范 围 及 其 行 为, 并 为 用 户 及 开 发 人 员 认 同。 Use Case Model 主 要 由Use Cases 和Actors 构 成。Use Case 是 系 统 执 行 的 一 系 列 行 为, 并 为Actor 生 成 一 些 有 意 义 的 结 果。Actor 是 所 有 与 本 系 统 有 交 互 的 外 部 系 统, 可 以 是 人、 其 他 软 件 系 统 等。

----Use Case 作 为 分 析 与 设 计 工 作 流 的 输 入, 是 实 现 分 析 与 设 计 模 型 的 基 础。 设 计 模 型 作 为 实 现 工 作 流 的 规 格 说 明 书, 它 自 然 要 实 现Use Case 模 型 所 定 义 的 功 能。 同 样 在 测 试 工 作 流 中,Use Case Model 组 成 测 试 实 例, 用 来 有 效 地 校 验 整 个 系 统 的 正 确 性。

RUP 的 优 点

----迭 代 式 开 发 方 法 是 一 个 不 断 降 低 风 险 的 过 程, 每 一 次 迭 代 过 程 都 选 择 风 险 最 大 的Use Cases 执 行。 因 此 风 险 在 迭 代 过 程 中 不 断 地 被 发 现、 被 消 灭。

----迭 代 式 开 发 方 法 能 够 更 容 易 地 管 理 需 求 的 变 化, 整 个 开 发 过 程 由 一 次 次 的 独 立 迭 代 组 成, 项 目 经 理 能 够 比 较 容 易 地 调 整 迭 代 过 程, 使 最 终 产 品 满 足 变 化 的 需 求。 开 发 人 员 以 及 项 目 相 关 人 员 能 够 及 时 地 从 迭 代 过 程 中 得 到 反 馈 信 息, 并 能 够 及 时 修 改 以 前 工 作 中 的 失 误, 有 效 地 监 控 开 发 过 程, 并 对 迭 代 工 作 流 进 行 校 正, 这 对 一 个 时 间 跨 度 很 长 的 项 目 具 有 重 要 的 意 义。

----以Use Case 驱 动、 体 系 结 构 为 中 心 的 开 发 使 得 开 发 人 员 能 比 较 容 易 地 控 制 整 个 系 统 的 开 发 过 程, 管 理 其 复 杂 性 并 维 护 其 完 整 性。

----体 系 结 构 中 定 义 清 晰、 功 能 明 确 的 组 件 为 基 于 组 件 式 的 开 发 和 大 规 模 的 软 件 复 用 提 供 了 有 力 的 支 持, 也 是 项 目 管 理 中 计 划 与 人 员 安 排 的 依 据。

----Rational 公 司 提 供 了 丰 富 的CASE 工 具 支 持 RUP, 包 括 可 视 化 建 模 工 具Rational Rose、 需 求 管 理 工 具Requisite Pro、 版 本 管 理 工 具Clear Case、 文 档 生 成SoDa、 测 试 工 具SQA 和Perfomence 等。 由 于RUP 采 用 标 准 的UML 描 述 系 统 的 模 型 体 系 结 构, 因 此 可 以 利 用 很 多 第 三 方 厂 家 提 供 的 产 品。