资源描述
软 件 体 系 结 构(Software Architecture)讲 义 13: 统 一 软 件 开 发 过 程 ( RUP) 一、引言 为屏蔽计算机硬件的异构性,发展了操作系统.NET/COMWeb ServicesJ2EE/EJB操 作 系 统 UNIX WindowsLinux C/C+语 言Java语 言支 撑 软 件 中 间 件为屏蔽操作系统和编程语言的异构性,发展了支撑软件和中间件为了屏蔽中间件之间的异构性,出现了Web技术。Fortran语 言为了祢补应用软件与现实计算环境之间的距离应 用 系 统 网 络 层 综 观 软 件 技 术 的 发 展 应 用 系 统 概 念 不 同 , 逻 辑 不 同 。解 决 问 题 的 思 维 逻 辑不 同 。 -“距 离 ”语 言网 络 异 构VB、 VC -程 序 设 计 环 境中 间 件 技 术 与 产 品面 向 领 域 的 软件 体 系 结 构 应 用 框 架领 域 软 件 生 产 线系 统 建 模 运 行 平 台开 发 平 台软 件 工 程 学 科 所 要 解 决 的 问 题 软 件 开 发 的 本 质 可 概 括 为 : 第 一 点 : 问 题 空 间 的 概 念 与 解 空 间 的 模 型 化 概 念 之 间 的 映 射 例 如 : 对 象 = F( 张 山 ) ( 模 型 化 概 念 ) ( 问 题 空 间 的 概 念 ) 其 中 , 对 应 的 过 程 : 需 求 分 析 使 用 的 技 术 : 面 向 对 象 使 用 的 原 理 : 数 据 抽 象 目 的 : 作 为 计 算 的 客 体 。 第 二 点 : 问 题 空 间 的 处 理 逻 辑 与 解 空 间 处 理 逻 辑 之 间 的 映 射 例 如 1: 加 工 1( 及 相 关 的 数 据 流 ) =F( 计 算 学 生 成 绩 ) 其 中 : 使 用 的 方 法 : 结 构 化 方 法 ; 对 应 的 过 程 : 需 求 分 析 使 用 的 原 理 : 过 程 抽 象 加 工 1计 算 学 生 平 均 成 绩科 目 +年 级 /班学 生 成 绩 文 件 学 生 平 均 成 绩规 约 后 的 处 理 逻 辑 例 如 2: 交 互 图 1=H( 计 算 学 生 成 绩 ) 其 中 : 对 应 的 过 程 : 需 求 分 析 使 用 的 方 法 : 面 向 对 象 使 用 的 原 理 : 行 为 结 构 抽 象 ( 简 称 行 为 抽 象 ) 作 用 : 作 为 计 算 规 则: 教 务 员 : 教 员递 交 A科 学 生 成 绩 表A科 学 生 成 绩 表: 教 学 主 任 求 A科 平 均A科 平 均 由 于 以 上 两 个 映 射 是 由 “ 人 ” 完 成 的 , 因 此 就 软 件 开 发 而 言 , 需 要 解 决 两 个 方 面 的 问 题 : 1: 技 术 2: 管 理 进 一 步 说 , 技 术 问 题 主 要 是 指 软 件 开 发 过 程 通 常 需要 遵 循 的 途 径 和 方 向 其 中 , 过 程 方 向 确 定 用 于 创 建 问 题 模 型 和 设 计 解 的 特 定 的 抽 象 层 次 例 如 , 需 求 、 设 计 、 实 现 、 部 署 等 问 题 空 间需 求 -一 个 抽 象 层设 计 -一 个 抽 象 层实 现 -一 个 抽 象 层部 署 -一 个 抽 象 层特 定 的 notation特 定 的 notation特 定 的 notation特 定 的 notation验证 /确认 问 题 空 间需 求 -一 个 抽 象 层设 计 -一 个 抽 象 层实 现 -一 个 抽 象 层部 署 -一 个 抽 象 层特 定 的 notation特 定 的 notation特 定 的 notation特 定 的 notation验证 /确认 它 们体 现了 我们 所说 的一 些软 件设 计原 理 过 程 途 径 实 现 不 同 抽 象 层 次 的 映 射 ? ? ? ? ? 典 型 的 途 径 有 : 结 构 化 方 法 面 向 数 据 结 构 方 法 面 向 对 象 方 法 以 及 维 也 纳 开 发 方 法 ( VDM) 等 注 : 主 要 讲 解 结 构 化 方 法 和 面 向 对 象 方 法 。 RUP的 本 质 及 特 点 (1) 是 一 种 迭 代 的 、 以 架 构 为 中 心 的 、 用 例 驱 动 的 软 件 开 发方 法 (2) 是 一 种 具 有 明 确 定 义 和 结 构 的 软 件 工 程 过 程 , 包 括 规 定了 人 员 的 职 责 、 如 何 完 成 各 项 工 作 以 及 何 时 完 成 各 项 工作 。 还 提 供 了 软 件 开 发 生 命 周 期 的 结 构 , 明 确 定 义 了 主要 里 程 碑 和 决 策 的 关 系 (3) 是 一 个 过 程 产 品 , 提 供 了 可 定 制 的 软 件 工 程 的 过 程 框 架 。可 以 适 用 于 于 不 同 规 模 的 开 发 团 队 和 规 范 程 度 不 同 的 开发 方 法 l RUP的基本原理尽早并且不断化解重大的风险确保满足客户的需求把注意力放到可执行软件上尽早在项目中适应变化在早期确定一个可执行的架构使用构件构造系统建立高效的开发团队 突 出 特 点 是 : Use Case 驱 动 的 、 以 体 系 结 构 为 中 心 的 、 迭 代 、 增 量 的 开 发 . 何 谓 USE CASE 驱 动USE CASE 分 析输 入 设 计 实 现跟 踪输 入跟 踪 输 入跟 踪 输 入输 入 测 试输 入跟 踪 输 入 从 USE CASE模 型 的 视 觉从 分 析 模 型 的 视 觉从 设 计 模 型 的 视 觉从 实 现 模 型 的 视 觉从 部 署 模 型 的 视 觉给 出 体 系 结 构 描 述 何 谓 以 体 系 结 构 为 中 心 阶 段核 心 工 作 流 何 谓 迭 代 、 增 量 的 开 发 u 初 始 阶 段 ( the inception phase) 的 基 本 目 标 是 : -了 解 项 目 的 范 围 -建 立 业 务 模 型 -得 到 涉 众 的 认 可 换 言 之 , 其 目 标 是 : 建 立 该 项 目 的 生 存 周 期 目 标 ( objectives) 精 化 阶 段 ( the elaboration phase) 的 基 本 目 标 是 -建 立 体 系 结 构 基 线 -捕 获 大 多 数 的 需 求 -降 低 主 要 的 技 术 风 险 -减 少 次 要 的 错 误 风 险 , 即 建 立 生 存 周 期 体 系 结 构 ( the life cycle architecture) . 到 该 阶 段 末 , 就 能 够 估 算 成 本 、 进 度 , 并 能 详 细 地规 划 构 造 阶 段 ( the construction phase) 。 w构 造 阶 段 ( the construction phase) 的 基 本 目 标 是 : -开 发 完 整 的 系 统 -确 保 产 品 可 以 开 始 向 客 户 交 付 , 即 具 有 初 始 操 作 能 力 。 x交 付 阶 段 ( the transition phase) 的 基 本 目 标 是 : -确 保 有 一 个 实 在 的 产 品 , 发 布 给 用 户 群 。 期 间 , 培 训 用 户 如 何 使 用 该 软 件 。注 : 这 4个 阶 段 是 演 化 模 型 的 一 个 变 体 。 由 上 可 见 : USDP对 于 如 何 运 用 UML的 概 念 进 行 软 件 开 发 提 供了 详 细 指 导 。 即 : 指 导 开 发 队 伍 安 排 其 开 发 活 动 的 次 序 ; 为 各 开 发 者 和 整 个 开 发 组 指 定 任 务 ; 明 确 地 规 定 需 要 开 发 的 制 品 ; 提 供 对 项 目 中 的 制 品 和 活 动 进 行 监 控 与 度 量 的 准 则 。 1) 需 求 获 取 的 目 标 对 大 系 统 的 开 发 来 说 , 需 求 一 般 包 括 需 求 获 取 和 需 求 分 析 需 求 获 取 的 目 标 是 : 需 求 分 析 的 目 标 是 : 客 观 问 题 ( 系 统 )系 统 需 求 获 取 模 型形 成 -涉 及 : 不 同 概 念 和 不 同 处 理 逻 辑 形 成 -涉 及 : 不 同 概 念 和 不 同 处 理 逻 辑系 统 分 析 模 型描 述 系 统 需 求 获 取 模 型体 系 结 构 描 述 -USE CASE模 型体 系 结 构 描 述 -Analysis模 型 实 现 需 求 获 取 目 标 的 基 本 途 径 实 现 需 求 获 取 的 目 标 , 即 实 现 实 际 问 题 到 软 件 开 发 需求 获 取 层 的 映 射 , 从 软 件 开 发 的 角 度 -实 现 第 一 次 抽 象 。其 中 至 少 涉 及 以 下 3个 问 题 : 如 何 定 义 需 求 获 取 层 , 即 给 出 该 层 的 术 语 ; 如 何 确 定 模 型 表 示 工 具 ; 如 何 映 射 。 实 际 问 题需 求 获 取 层 模 型 表 示工 具 注 : 这 些 概 念 体 现 了 一 些 设 计 原 理 ( 1) 需 求 获 取 层 的 术 语 ( 概 念 ) USE CASE actor 以 及 4个 表 达 关 系 的 概 念 : 关 联 、 包 含 、 扩 展 、 泛 化 。 以 及 USE CASE图 。实 际 问 题 模 型 表 示工 具-USE CASE图体 系 结 构 描 述 -USE CASE模 型 ( 2) 需 求 工 作 流 实 际 问 题?需 求 获 取 模 型-( USE CASE 模 型 )形 成体 系 结 构 描 述 -USE CASE模 型形 成 2.1 需 求 工 作 流 及 所 创 建 的 制 品 一 般 来 说 , 需 求 工 作 流 包 括 以 下 四 步 , 但 它 们 并 非 是 严 格分 离 的 。 要 做 的 工 作 产 生 的 制 品 -列 出 候 选 的 需 求 特 征 ( Feature) 列 表 -理 解 系 统 语 境 领 域 模 型 或 业 务 模 型 -捕 获 功 能 需 求 Use case 模 型 -捕 获 非 功 能 需 求 补 充 需 求 或 针 对 一 些 特 定 需 求 的 use cases u特 征 ( Feature) : 一 个 功 能 项 ( function item ) 以 及 相 关 的 简 要 描 述称 为 特 征 ( feature) 。 作 为 需 求 , 并 被 转 换 为 其 它 制 品 。 应 用 系 统 潜 在 的 抽 象 层例 如 : 按 学 科 计 算 每 一 学 生 的 期 末 考 试 平 均 成 绩 。 统 计 2科 以 上 不 及 格 的 人 数 。 给 出 各 分 段 ( 0-60, 60-85, 85-100) 的 人 数 分 布 情 况 。feature 作 为 需 求 , 被 转 换 为 其 它 制 品 。应 用 系 统 潜 在 的 抽 象 层( 特 征 层 )一 个 抽 象 层( USE CASE 层 ) USE CASE1USE CASE USE CASE2USE CASE3制 品 : USE CASE模 型 规 约规 约形 成Actor 关 联 关 于 特 征 的 几 点 说 明 : -每 一 特 征 有 一 个 简 短 的 名 字 和 简 要 的 说 明 或 定 义 。 -每 一 特 征 还 有 一 组 对 规 划 有 意 义 的 信 息 , 可 以 包 括 : 状 态 ( Status) , 例 如 , 提 交 , 批 准 , 确 认 是 组 成 的 等 。 估 算 的 实 现 成 本 。 ( 所 需 的 资 源 类 型 和 人 /时 ) 。 优 先 级 ( Priority) (e.g.,critical, important, or ancillary)。 实 现 中 相 联 的 风 险 等 级 。 业 务 模 型 或 领 域 模 型领 域 模 型 领 域 模 型 捕 获 了 系 统 语 境 中 的 一 些 重 要 对 象 类 型 。 其 中 领 域对 象 表 示 系 统 工 作 环 境 中 存 在 的 事 物 或 发 生 的 事 件 。 一 般 来 说 , 领 域 类 以 三 种 形 态 出 现 : 业 务 对 象 : 表 示 那 些 被 业 务 所 操 纵 ( manipulate) 的 事 物( thing) , 例 如 定 单 , 帐 目 和 合 同 等 。 实 在 对 象 ( Real-world objects) 和 概 念 : 例 如 飞 机 ,火 箭 等 。 事 件 ( Events) : 例 如 飞 机 到 达 , 飞 机 起 飞 等 。 一 般 来 说 , 领 域 模 型 是 以 类 图 予 以 描 述 的 。 Order date of submission delivery address Item description picture cost Invoice amount date of submission last date of payment Account balance owner1.* payable 1.* buyer 1 seller 1 A class diagram in a domain model, capturing the most important concepts in the context of the system Example: Domain Classes Order, Invoice, Item, and Account 业 务 模 型 业 务 模 型 可 以 分 为 以 下 2个 层 次 : 业 务 use case 模 型 通 过 业 务 use case和 业 务 actors 来 描 述 业 务 过 程 , 他 们 分 别 对 应 业 务 过 程 ( business processes) 和 客 户 ( customers ) 。 一 般 来 说 , 业 务 use case 模 型 是 以 use case 图 予 以 描 述 的 . 业 务 对 象 模 型 业 务 对 象 模 型 是 一 个 业 务 的 内 部 ( interior) 模 型 。 描 述 每 一 个 业 务 use case 是 如 何 通 过 一 组 workers 、 business entities 、 work units予 以 细 化 的 。 其 中 , Business entity 表 示 某 些 事 物 ( something) ,例 如 一 张 发 票 。 它 们 在 一 个 业 务 use case中 被 使 用 之 。 A work unit 是 这 样 实 体 的 一 个 集 合 , 对 最 终 用 户 而 言 , 形 成 了 可 认 知 的 整 体 。 Business entities 和 work unit 用 于 表 达 同 一 类 概 念 , 作 为 领 域 类 , 例 如 定 单 , 栏 目 , 发 票 等 。 每 一 个 业 务 use case的 细 化 可 以 通 过 交 互 图 和 活 动 图 予 以 表 示 。 w 以 use case 捕 获 需 求 Use-Case 模 型 Use-Case 模 型 用 以 表 达 客 户 认 可 的 需 求 -系 统 必 须 满 足 的 条 件 和 能 力 。 Use-Case模 型 作 为 客 户 和 开 发 人 员 之 间 的 一 种 共 识 。 Use-Case 模 型 是 一 个 系 统 的 一 种 模 型 , 包 括 actors、 use cases 以 及 它 们 之 间 的 关 系 。 Use-Case systemUse-Case model Actor Use case* *1 The Use-Case system denotes the top-level package of the modelUse-Case 模 型 以 及 其 内 容 参 与 需 求 工 作 流 的 有 关 人 员 System Analysis responsible for Use-case Specifier responsible for User-interface designer responsible for Architect responsible for use case model Actor Glossary Use case User interface prototype Architecture Description 需 求 捕 获 工 作 流 中 的 活 动 1、 发 现 并 描 述 Actor( 1) 发 现 Actor的 方 法发 现 actor的 这 一 任 务 , 依 赖 于 起 始 点 : - 当 存 在 业 务 模 型 时 可 以 直 接 地 发 现 一 些 候 选 的 actors, 即 : 对 于 业 务 中 的 每 一 个 工 作 人 员 , 可 以 建 议 一 个 候 选 的 actor 对 于 每 一 个 将 要 使 用 该 信 息 系 统 的 业 务 actor ( 即 每 一 个 业 务 客 户 ) , 可 以 建 议 候 选 的 一 个 actor。 - 当 有 或 没 有 领 域 模 型 时 分 析 人 员 就 要 与 客 户 一 起 标 识 actor, 并 将 所 标 识 actor进 行 分 类 , 形 成 一 些 候 选 的 actors。 Note:还 要 标 识 表 示 外 部 系 统 的 actor和 系 统 维 护 和 运 行 所 需 要 的 actor 。 在 确 定 系 统 actors 时 可 用 的 2条 准 则 : 第 一 条 准 则 : 至 少 要 识 别 出 一 个 用 户 , 可 以 扮 演 候 选 的 actor。 该 准 则 将 帮 助 我 们 仅 发 现 那 些 相 关 的 actors, 避 免 actor 仅 是 一 些 想 象 的 “ 事 物 ” 。 第 二 条 准 则 : 系 统 中 不 同 actors 实 例 之 间 , 其 角 色 的 重 叠 应 是 最 少 的 。 如 果 2个 或 多 个 actors有 着 几 乎 相 同 的 角 色 , 那 么 就 应 该 考 虑 : 是 否 将 这 些 角 色 组 合 到 一 个 actor的 角 色 中 , 或 是 否 需 要 发 现 另 外 一 个 “ 一 般 化 ” 的 actor, 使 之 具 有 那些 重 叠 的 、 公 共 的 角 色 , 并 可 以 通 过 “ 泛 化 ” , 形 成 那 些特 定 actor。 ( 2) Actors的 命 名 与 描 述 Actors的 命 名 : 对 actors给 出 恰 当 的 名 字 是 非 常 重 要 的 。 这 样 的 名 字 可 以“ 传 达 ” ( convey) 所 期 望 的 语 义 。Actors的 描 述 : 对 actor的 描 述 , 应 包 含 其 角 色 ( 责 任 ) 以 及 为 了 完 成 其责 任 所 需 要 的 条 件 。 例 如 : the Buyer, Seller,and Accounting System Actors Buyer A Buyer represents a person who is responsible for buying goods or services as described in the business use case Sales: from Order to Delivery. This person may be an individual or someone within a business organization. The Buyer of goods and services need the Billing and Payment System to send order and to pay invoices. Seller A Seller represents a person who sells and delivers goods or services. The Seller uses the system to look for new orders and to send order confirmations, invoices, and payment reminders. Accounting System The Billing and Payment System sends verifications of transactions to the Accounting System. Order Goods or ServicesConfirm OrderInvoice Buyer Pay InvoicePerform Transaction Pay Overdraft FeeSend Reminders extendInitiatorInitiator InitiatorInitiatorInitiatorBuyer SellerAccounting systemUse case in the Billing and Payment System that support the business use case Sales:From Order to Delivery. The role initiator, attached to the associations, indicate which actor starts the use case. 2、 发 现 并 描 述 Use Case (1) 对 use case的 回 顾 A use case specifies a sequence of actions, including alternatives of the sequence , that the system can perform , interacting with actor of the system. actor 使 用 系 统 的 每 一 方 法 ( way ) , 被 表 示 为 一 个 use case Use case 是 系 统 向 它 的 actors 提 供 结 果 ( 值 ) 的 功 能 块 ( chunks ) 。 例 如 , use case 实 例 Withdraw money The use case Withdraw money enables instances of the actor Bank Customer to withdraw money through an ATM 因 此 对 一 个 use case的 描 述 可 以 使 用 正 文 事 件 流 、 状 态 图 、 活 动 图 、 通 讯 图 和 顺 序 图 。 在 一 个 use case中 的 一 条 路 径 , 可 以 看 作 : u 启 动 了 该 use case实 例 , 并 使 之 处 于 一 个 开 始 状 态 ; 该 状 态 由 一 个 外 部 的 actor所 引 发 ( invoke) ; 并 由 一 个 动 作 序 列 的 执 行 , 使 之 转 化 为 另 一 状 态 。 其 中 该 序 列 包 含 内 部 计 算 、 路 径 选 择 和 向 某 一 actor发 送 消 息 。 w 在 一 个 新 的 状 态 中 , 等 待 actor发 送 另 一 外 部 消 息 。 x 该 状 态 由 一 个 新 的 消 息 予 以 引 发 ( invoke) , 以 此 继 续 , 通 过 了 许 多 状 态 , 直 到 该 use case实 例 被 终 止 . 大 部 分 是 一 个 actor实 例 引 发 一 个 use case实 例 , 但 也 可 能由 一 个 事 件 所 引 发 , 例 如 由 系 统 之 外 的 定 时 时 钟 所 引 发 。 Use case有 其 自 己 的 属 性 ,例 如 Withdraw money 这 一 use case 可 以 认 为 它 有 属 性 “ 帐 目 ” ( account) 、 存 款 数 目 ( amount to be withdrawn) 等 , 这 些 值 局 部 于 一 个 use case实 例 Use case实 例 不 能 与 其 它 use case 实 例 发 生 交 互 。 在 use case模 型 中 , 唯 一 的 一 类 交 互 可 以 发 生 在 actor实 例和 use case 实 例 之 间 。 这 是 由 于 我 们 把 use case实 例 看 作 是 原子 的 , 每 一 个 use case的 行 为 可 以 被 其 它 use case所 中 断 , 这就 确 保 了 我 们 可 以 理 解 一 个 特 定 的 use case模 型 。 (2) 发 现 Use Case的 方 法 当 开 始 点 是 一 个 业 务 模 型 时 一 旦 我 们 发 现 了 一 个 工 作 人 员 或 业 务 actor的 所 有 角 色 , 标 识 一 些 暂 时 的 use case最 直 接 的 方 法 是 : 对 每 一 工 作 人 员 和 业 务 actor 的 每 一 角 色 , 对 应 地 创 建一 个 use case。 因 此 , u针 对 每 一 业 务 use case ,为 每 一 工 作 人 员 和 业 务 actor, 设 置 一 个 use case。 细 化 并 调 整 这 些 暂 时 的 use cases. w 决 策 工 作 人 员 和 业 务 actor 的 那 些 任 务 应 该 由 系 统 自 动 地 予 以 实 现 , 作 为 use cases, 并 重 新 组 织 这 些 use case, 更 好 地 适 应 actors的 要 求 ( needs) 。 结 论 : 为 参 与 业 务 use case细 化 ( realization) 的 、 使 用 该 信 息 系 统 的每 一 工 作 人 员 的 每 一 角 色 , 建 议 一 个 use case。 当 开 始 点 没 有 业 务 模 型 时 要 通 过 与 客 户 以 及 用 户 一 起 工 作 来 标 识 use case。 其 中 : 应 一 个 一 个 地 审 阅 actors, 为 每 一 个 actor建 议 一 些 侯 选 的 use case。 例 如 , 可 以 与 他 们 进 行 交 谈 , 研 究 需 要 哪 些 use case。 其 中 , 均 应 根 据 actor的 需 求 来 发 现 use case: - actor通 常 需 要 use cases来 支 持 他 们 的 工 作 : 创 建 、 改 变 、 跟 踪 、 迁 移 业 务 use cases中 使 用 的 业 务 对 象 ,例 如 定 单 和 帐 目 。 -actor 可 能 还 要 通 知 系 统 一 些 外 部 事 件 , 包 括 已 经 发 生 的一 些 事 件 , 例 如 : 发 票 已 经 过 期 。 -还 可 能 存 在 一 些 其 他 的 actors , 他 们 执 行 系 统 的 启 动 、 终 止 和 维 护 。 对 发 现 的 候 选 use cases 的 初 始 处 理 : 根 据 以 上 发 现 的 那 些 侯 选 的 use cases, 为 了 使 系 统 use cases容 易 修 改 、 复 审 、 测 试 和 管 理 , 应 考 虑 它 们 之 间 的 组 成 关 系 。 为 每 一 use cases 选 择 一 个 名 字 ( 一 般 应 以 动 词 开 始 ) , 这个 可 以 引 导 我 们 思 考 其 中 向 actor产 生 值 的 特 定 动 作 序 列 。 用 户和 系 统 的 一 个 交 互 序 列 , 可 以 在 一 个 use case中 予 以 规 约 , 也 可以 在 多 个 use case中 予 以 规 约 。 当 决 定 把 一 个 侯 选 的 use case 最 终 作 为 系 统 的 一 个 use case 时 , 必 须 考 虑 : 它 是 否 是 完 整 的 ( complete) ; 它 是 否 是 另 一 use case的 组 成 部 分 。 use case大 小 的 确 定 确 定 use case的 大 小 , 有 时 是 相 当 困 难 的 . 对 此 , 必 须 了 解 : - use case 应 为 它 的 actors产 生 相 应 的 值 . -特 别 地 , use case 向 一 个 特 定 的 actor交 付 了 可 见 的 结 果 ( 值 ) . 以 上 的 了 解 , 可 以 指 导 我 们 合 适 的 确 定 use case大 小 。 其 中 要 注 意 2个 关 键 词 : 结 果 ( 值 ) ( result of value ) 特 定 的 actor( particular actor ) 结 果 ( 值 ) (result of value) 每 一 个 成 功 执 行 的 use case 应 向 actor 提 供 一 些 值 , 使 actor 达 到 某 一 目 的 。 注 意 : 一 个 use case 实 例 , 例 如 电 话 呼 叫 , 可 能 涉 及 多 个 actor. 在 这 种 情 况 中 , 应 当 应 用 “ 可 见 的 结 果 值 ” 这 一 准 则 ,启 动 actor ( to initiating actor) . “结 果 ( 值 ) result of value ” 这 一 准 则 , 可 以 帮 助 我 们 避免 使 发 现 的 use cases 太 小 。 特 定 的 actor ( particular actor) 通 过 使 标 识 的 use cases 都 有 相 应 的 真 实 用 户 , 这 样 可 以 确保 不 会 太 大 。 针 对 一 些 actors, 我 们 第 一 次 发 现 的 use cases 常 常 需要 予 以 重 新 组 织 , 重 新 评 估 , 使 之 更 加 “ 稳 定 ” 。 例 如 , 一旦 我 们 已 经 有 了 一 个 体 系 结 构 , 那 么 对 于 我 们 捕 获 的 新 的 use cases 就 必 须 进 行 调 整 , 以 便 适 应 已 有 的 体 系 结 构 。 这样 , 就 有 可 能 需 要 相 当 大 的 变 动 。 (3) use case的 简 单 描 述 当 分 析 员 标 识 use case时 , 首 先 , 一 般 要 给 出 该 use case的名 字 。 继 之 , 对 use case给 出 简 单 描 述 : 开 始 , 用 几 句 话 概 括 其 中 的 动 作 ; 而 后 , 对 系 统 与 其 actor交 互 时 要 做 的 事 情 予 以 一 步 一 步 地 描 述 .例 如 : 描 述 Pay Invoice Use Cases u概 括 动 作 The use case Pay Invoice is used by a Buyer to schedule invoice payments. The Pay Invoice use case then effects the payment on the due date. 一 步 一 步 的 描 述 Before this use case can be initiated, the Buyer has already received an invoice (delivered by another use case called Invoice Buyer ) and has also received the goods or services ordered.: 1. The buyer studies the invoice to pay and checks that it is consistent with the original order. 2. The Buyer schedules the invoice for payment by the bank. 3. On the day payment is due, the system checks to see if there is enough money in the Buyers account. If enough money is available, the transaction is made. (4) 确 定 use case的 优 先 级 ( Priority) 目 的 用 于 决 定 哪 些 use case在 早 期 的 迭 代 中 予 以 开 发 ( 即 分 析 、设 计 、 实 现 等 ) , 哪 些 use case在 后 期 的 迭 代 中 予 以 开 发 。 输 入 与 输 出 Architect Use Case model outlined Supplementary Requirements Glossary Architecture Description view of the use case modelPrioritized Use Cases 视 角 与 使 用 视 角 : 从 体 系 结 构 的 视 觉 , 来 审 视 所 建 立 的 use case 模 型 。 并 给 出 在 这 一 视 觉 下 的 体 系 结 构 描 述 。 ( 注 : 其 中 必 须 与 项 目 经 理 一 起 来 工 作 。 ) 使 用 : 由 该 视 角 形 成 的 体 系 结 构 , 可 以 在 规 划 的 一 个 迭 代 中 针 对 要 开 发 什 么 时 予 以 使 用 。 其 中 , 要 注 意 : 在 这 一 规 划 中 , 还 需 要 考 虑 其 它 非 技 术 因 素 , 例 如 系 统 开 发 的 业 务 和 经 济 方 面 的 因 素 。 内 容 : Use Case 模 型 视 觉 下 的 体 系 结 构 描 述 , 刻 画 了 在 体 系 结 构 方 面 具 有 重 要 意 义 的 use cases。 包 含 : -某 些 重 要 、 关 键 功 能 的 use case ; 或 -那 些 必 须 在 软 件 生 存 周 期 早 期 予 以 开 发 的 某 些 重 要 需 求 的 use case。 ( 5) Detail a Use Case 目 的 详 细 地 描 述 事 件 流 , 包 括 use case是 怎 样 开 始 的 , 是 怎 样 结 束的 , 是 怎 样 与 actors 进 行 交 互 的 。 输 入 与 输 出 Use case Specifier Use Case model outlined Supplementary Requirements Glossary Use Case detailedDetail a Use Case The result is a detailed description of a particular use case in text and diagram. 细 化 途 径 涉 及 : 如 何 描 述 一 个 use case中 所 有 可 选 的 路 径 ; 在 一 个 use case的 描 述 中 包 括 的 内 容 ; 如 何 在 必 要 时 形 式 化 地 给 出 use case的 描 述 。 其 中 规 约 人 员 应 当 : -紧 密 地 与 该 use case的 实 际 用 户 一 起 工 作 ; -在 与 用 户 的 交 谈 中 , 通 常 需 要 记 录 他 们 对 该 use case 的 理 解 ; -与 用 户 讨 论 建 议 方 案 , 并 请 他 们 复 审 use case描 述 。 有 效 技 术 : 事 件 流 技 术 关 于 事 件 流 ( Flow of Events) 的 作 用 : 当 所 规 约 的 use case执 行 时 , 事 件 流 规 约 了 系 统 做 什 么 。 即每 一 个 use case的 事 件 流 , 可 以 作 为 use case的 动 作 序 列 的 正 文描 述 。 当 所 规 约 的 use case执 行 时 , 事 件 流 还 规 约 了 系 统 怎 样 与 其actors进 行 交 互 基 本 要 求 : 从 管 理 的 角 度 来 说 , 一 个 事 件 流 的 描 述 应 包 括 一 组动 作 序 列 , 该 组 动 作 序 列 适 于 修 改 、 复 审 、 设 计 、 实 现 和 测 试 ,并 作 为 用 户 手 册 的 一 节 。 以 事 件 流 描 述 Use Case所 采 用 的 结 构 一 个 use case 可 以 被 认 为 有 一 个 开 始 状 态 , 一 些 中 间状 态 , 并 从 一 个 状 态 转 换 为 另 一 状 态 , 如 下 所 示 :其 中 , 红 箭 头 线 表 示 基 本 路 径 , 曲 线 是 其 它 路 径 。 当 被 一 个 事 件 ( 例 如 一 个 消 息 ) 激 发 时 , 每 一 这 样 的 转换 是 该 use-case的 一 个 实 例 所 执 行 的 一 个 动 作 序 列 。 细 化 USE CASE, 即 : u 从 开 始 状 态 到 终 止 状 态 选 择 一 条 完 整 的 基 本 路 径 , 并 在 一节 中 对 该 路 径 予 以 描 述 。 其 中 , 这 一 路 径 的 选 择 应 该 是 用 户 认 为 它 是 一 条 最 通 常 的路 径 , 并 对 相 关 的 actor产 生 最 明 显 的 值 ( the most obvious value ) 。 一 般 来 说 , 这 样 的 一 条 路 径 应 该 包 含 系统 不 大 需 要 的 一 些 例 外 和 异 常 处 理 。 接 之 , 在 另 一 节 中 描 述 其 余 的 可 选 路 径 其 中 , 有 些 可 选 的 路 径 是 很 小 的 , 是 否 可 以 把 它 作 为 基 本路 径 的 组 成 部 分 还 是 在 一 个 独 立 的 一 节 中 作 为 可 选 路 径 予 以描 述 , 这 是 一 个 设 计 决 策 问 题 , 取 决 于 该 描 述 是 否 精 确 , 是否 容 易 阅 读 。 . 注 意 : 不 管 我 们 选 择 了 什 么 描 述 技 术 , 都 必 须 描 述 所 有 的可 选 路 径 , 否 则 就 不 能 说 给 出 了 对 该 use case的 规 约 。 Example: Paths of the Pay Invoice Use Case Precondition: The buyer has received the goods or services ordered and at least one invoice from the system. The buyer now plans to schedule the invoice(s) for payment.Flow of EventsBasic Path 1 The buyer invokes the use case by beginning to browse the invoices received by the system. The system checks that the content of each invoice is consistent with order confirmations received early(as part of the Confirm Order use case) and somehow indicates this to the buyer. The order confirmation describes which items will be delivered, when , where, and at what price. 2 The buyer decides to schedule an invoice for payment by the bank, and the system generates a payment request to transfer money to the sellers account. Note that a buyer may not schedule the same invoice for payment twice.3 later, if there is enough money in the buyers account, a payment transaction is made on the scheduled date. During the transaction, money is transferred from the buyers account to the sellers account, as described by the abstract use case Perform Transaction(which is used by Pay Invoice). The buyer and the seller are notified of the result of the transaction. The bank collect a fee for the transaction, which is withdrawn from the buyers account by the system. 4 The use case instance terminates. Alternative PathIn Step 2, the buyer may instead ask the system to send an invoice rejection back to the seller.In Step 3, if there is not enough money in the account, the use case will cancel the payment and notify the buyer. Post-condition: The use case instance ends when the invoice has been paid or when the invoice payment was canceled and no money was transferred. Use Case 描 述 中 的 基 本 内 容 一 个 use-case 描 述 中 , 必 须 包 括 : 定 义 其 开 始 状 态 , 作 为 一 个 前 置 条 件 ( recondition) . 定 义 第 一 个 要 执 行 的 动 作 , 例 如 Step 1, 即 描 述 该 use case 是 如 何 开 始 的 , 什 么 时 候 开 始 。 定 义 所 要 求 的 次 序 , 即 给 出 其 中 的 动 作 必 须 以 该 次 序 予 以 执 行 。 例 中 , 该 次 序 是 通 过 步 骤 号 予 以 定 义 的 ( (Step 1-4) ) 。 描 述 该 use case 是 如 何 结 束 的 , 什 么 时 候 结 束 ( Step 4 ) 。 定 义 可 能 的 结 束 状 态 , 作 为 后 置 条 件 ( post conditions) . 给 出 在 基 本 路 径 描 述 中 的 可 选 路 径 的 描 述 。 给 出 那 些 基 本 路 径 之 外 的 可 选 路 径 的 描 述 。 定 义 与 actors 的 系 统 交 互 以 及 它 们 之 间 的 交 换 (Step 2 and Step 3), 即 描 述 该 use case 动 作 序 列 , 这 些 动 作 是 如 何 被 相 关 的 actors予 以 激 发 ( invoke) 以 及 它 们 是 如 何 执 行 的 , 以 响 应 actor的 要 求 。 描 述 系 统 中 有 关 对 象 、 值 和 资 源 的 用 法 ( Usage ) (Step 3). 即 描 述 在 一 个 use-case使 用 中 的 动 作 序 列 以 及 对 该 use-case属 性 所 赋 予 的 值 。 如 果 该 系 统 与 其 它 系 统 交 互 , 则 必 须 规 约 这 一 交 互 ,例 如 引 用 一 个 标 准 的 通 讯 协 议 。注 意 : 在 use-case 描 述 中 , 我 们 必 须 显 式 地 描 述 系 统 做 什 么 ( 执 行 的 动 作 ) , 以 及 actor做 什 么 。 应 从 actors 做 什 么 中 分 离 出 系 统 的 责 任 。 否 则 , 对 系 统 规 约 的 使 用 来 说 , 这 样 的 use-case描 述 就 不 够 精 确 。 当 use case 描 述 是 : 可 理 解 的 ; 正 确 的 ( 即 捕 获 了 正 确 的 需 求 ) ; 完 备 的 ( complete, 例 如 , 描 述 了 所 有 可 能 的 路 径 ) ; 一 致 的 . 我 们 才 可 以 说 , 结 束 了 use case的 描 述 。 该 描 述 可 以 在 需 求 捕 获 结 束 的 复 审 会 中 , 由 分 析 员 予 以 评 估, 也 可 以 由 用 户 和 客 户 予 以 评 估 。 但 仅 客 户 和 用 户 才 能 确 认 该use cases是 否 是 正 确 的 。 半 形 式 化 的 Use-Case描 述 前 置 条 件 对 于 一 个 复 杂 的 实 时 系 统 , use case可 能 是 相 当 负 责 的 ,例 如 actors和 use case 之 间 的 交 互 可 能 经 过 相 当 多 的 状 态 和状 态 转 换 , 从 而 几 乎 不 可 能 保 持 正 文 描 述 的 use case 的 一 致性 。 相 关 的 技 术 为 此 , 需 要 使 用 更 结 构 化 的 描 述 技 术 , 这 样 的 技 术 一 般 使用 可 视 化 的 建 模 技 术 , 来 描 述 use cases 。 以 下 技 术 可 以 帮 助系 统 分 析 人 员 更 好 地 理 解 use cases : BrowsingSchedule RejectInvoice ScheduledPay on due dateInvoice Paid Invoice CancelledThe state
展开阅读全文