组 件 对 象 开 发
Web 应 用 的 实 例 分 析

夏 长 虹--童 亮-- 陈 文 博

返回


应 用 实 例 的 分 析 与 开 发

 

---- 我 们 以 学 籍 管 理 系 统 为 背 景, 基 于Windows DNA 的 思 想, 开 发 了 一 套 应 用 系 统。 在 该 系 统 中, 有 关 教 务 学 籍 的 事 务 逻 辑 都 是 由 定 制COM 组 件 来 处 理 的, 动 态Web 页 面 通 过ASP 脚 本 调 用 这 些 组 件。 系 统 在 开 发 速 度 和 软 件 质 量 等 方 面 都 优 于 不 用COM 组 件 而 仅 用ASP 脚 本 的 方 案。 为 说 明 问 题, 我 们 通 过 一 个 定 制 组 件 和ASP 脚 本 的 主 要 代 码 简 单 介 绍 局 部 功 能 的 实 现 过 程。

---- 例 如 在displayscore.asp 页 面 中 接 受、 辨 别 用 户 的 查 询 请 求, 做 出 不 同 的 查 询 处 理。 当 客 户 的 身 份 为 教 师 或 教 务 时, 可 以 查 询 所 有 学 生 的 成 绩; 当 客 户 的 身 份 为 学 生 时, 只 能 查 询 该 生 本 人 的 成 绩。

---- 定 制COM 组 件Score.dll 进 行 查 询 处 理。 首 先 设 计 该 组 件 的 接 口, 为 组 件 设 置 四 个 属 性: Subj( 课 程)、Term ( 课 程 所 属 学 期)、Class( 查 询 的 班 级) 和Stu_No( 查 询 学 生 的 学 号); 定 义 两 个 方 法:RequeryScores 和RequeryAllScores, 分 别 对 教 师、 教 务 部 门 和 学 生 的 请 求 做 出 相 应 的 处 理, 并 将 查 询 结 果 集 返 回 给 用 户。

----《 计 算 机 世 界》 网 站computerworld.com.cn 中 的 产 品 与 技 术 栏 目 给 出 了 实 现 该 组 件Score.dll 的 部 分 关 键 代 码。 从 中 我 们 可 以 看 到 组 件 的 接 口 是 如 何 实 现 的。

----如 果 仅 使 用ASP 脚 本 进 行 业 务 处 理 就 会 使ASP 页 面 代 码 十 分 臃 肿、 晦 涩。 使 用 组 件 方 案 比 单 纯 的ASP 脚 本 执 行 速 度 更 快, 并 且 可 以 将 整 个 查 询 处 理 作 为 一 个 事 务, 保 证 数 据 库 信 息 的 安 全、 完 整。 将 该 组 件 在MTS 中 注 册, 又 可 避 免 多 用 户 访 问 该 主 页 时 可 能 造 成 的 网 络 拥 塞。

---- 实 际 应 用 中, 学 生 和 教 师 的 使 用 权 限 是 不 同 的。 在 学 生 查 询 成 绩 的 页 面 中 可 重 用 该 组 件, 只 是 调 用 其 不 同 的 接 口 而 已。 仅 使 用ASP 脚 本 进 行 业 务 处 理, 则 需 重 新 编 写 与displayscore.asp 类 似 的 同 样 烦 琐 的 代 码。

---- 在 开 发 过 程 中, 不 同 的 开 发 人 员 可 各 尽 所 能, 同 时 进 行 组 件 和ASP 页 面 的 设 计, 缩 短 软 件 开 发 周 期。

辅 助 工 具 的 使 用

 

---- 传 统 的 软 件 工 程 进 行 的 需 求 分 析、 数 据 库 设 计 等 都 是" 纯 手 工" 完 成 的, 缺 乏 严 谨 性 和 规 范 性。 而 在 以 组 件 为 中 心 的 系 统 分 析 和 软 件 开 发 过 程 中, 应 力 求 使 用 有 效 的 计 算 机 辅 助 工 具, 以 适 应 快 速 建 模 和 组 件 方 法 的 需 要, 提 高 分 析 的 质 量 与 精 度。

---- 有 很 多 辅 助 工 具 可 以 利 用。 由 于 以 组 件 为 中 心 的 系 统 分 析 过 程 仍 保 留 着 传 统 软 件 工 程 方 法 的 脉 络 痕 迹, 北 大 青 鸟 的CASE 工 具 对 传 统 的 软 件 工 程 方 法 比 较 有 效, 我 们 采 用 了 这 一 工 具。 在 数 据 库 建 模 方 面, 我 们 选 用 了Sybase 公 司 的S  Designer, 将 数 据 库 概 念 模 型 自 动 转 化 为 物 理 模 型。

----1 . 利 用 青 鸟CASE 工 具 编 写 需 求 分 析 文 档

---- 长 久 以 来, 人 们 已 习 惯 于" 纯 手 工" 进 行 需 求 分 析。 开 发 人 员 对 现 有 系 统 和 用 户 要 求 进 行 调 查 后, 需 要 设 计 系 统 的 数 据 流 图(DFD 图), 编 写 小 说 明, 设 计 系 统 的 结 构 图(SC 图)。 但 这 种 分 析 方 法 是 不 严 谨 的, 可 能 会 发 生 加 工、 数 据 流 或 文 件 的 语 法 定 义 错 误, 数 据 流 图 上 下 各 层 不 一 致, 数 据 流 图 分 解 后 的 数 据 不 平 衡, 或 文 件 重 名 及 文 档 不 完 备 等 各 种 问 题, 影 响 对 用 户 需 求 的 分 析 和 理 解, 妨 碍 今 后 的 工 作。 尤 其 是 对 组 件 的 分 析 失 当, 后 果 不 堪 设 想。

---- 青 鸟CASE 提 供 的 即 是 一 套 支 持 软 件 工 程 中 采 用 传 统 结 构 化 方 法 进 行 需 求 分 析、 软 件 设 计 的 工 具。 由 此 生 成 的 每 个 文 件 即 一 个 项 目, 每 个 项 目 均 包 括 数 据 流 图 和 模 块 结 构 图 两 部 分:

---- 在 教 务 系 统 的 实 例 中, 利 用 青 鸟CASE 工 具 生 成 的DFD 图 和SC 图 如 图1 和 图2 所 示。


----2 . 利 用S-Designer 进 行 数 据 库 设 计

---- 当 完 成 系 统 的 详 细 设 计 后, 接 下 来 便 是 数 据 库 设 计。 数 据 库 设 计 在 整 个 软 件 工 程 中 占 有 举 足 轻 重 的 地 位。 数 据 库 设 计 不 合 理, 数 据 得 不 到 合 理、 有 效 的 存 储, 存 在 潜 在 的 不 一 致 性、 不 完 整 性 或 有 大 量 冗 余, 都 会 降 低 系 统 性 能, 甚 至 使 系 统 崩 溃。

---- 手 工 数 据 库 设 计 完 全 依 赖 于 设 计 者 的 技 术 水 平。 设 计 者 首 先 根 据 实 际 需 要 建 立 若 干 个 逻 辑 上 存 在 的 数 据 库 表, 并 使 其 满 足 第 三 范 式。 而 后 根 据 它 们 之 间 的 联 系 建 立 特 定 数 据 库 表 将 其 联 系 起 来。 这 是 一 件 相 当 烦 琐 的 事。 数 据 库 设 计 者 既 要 进 行 数 据 库 的 逻 辑 设 计, 又 要 将 逻 辑 模 型 转 成 物 理 模 型, 而 且 设 计 出 的 数 据 库 不 一 定 能 满 足 第 三 范 式。 合 理 的 库 表 结 构 决 定 了 访 库 组 件 接 口 的 设 计 质 量, 所 以 原 先 数 据 库 设 计 方 式 不 适 用 于 以 组 件 对 象 为 中 心 的 软 件 设 计。

---- 在 教 务 系 统 的 实 例 中,S-Designer 使 数 据 库 设 计 变 得 轻 松、 简 单 起 来。 设 计 者 只 须 根 据 现 实 需 要, 设 计 出 数 据 库 的E-R 图,S-Designer 会 将 逻 辑 模 型 转 化 为 物 理 模 型, 为 数 据 库 表 间 的 联 系 建 立 新 表, 指 明 表 的 主 码 和 外 码, 并 自 动 对 数 据 库 表 进 行 一 致 性、 冗 余 性 和 完 整 性 检 查, 使 数 据 库 表 满 足 第 三 范 式。

---- 例 如, 可 首 先 设 计 出 数 据 库 表 课 程(Courses) 和 学 生(Client) 的 逻 辑 模 型:

---- 接 下 来, 为 表Courses 和Client 间 建 立 联 系。 由S-Designer 自 动 生 成 的 物 理 模 型( 如 图4 所 示), 它 们 为 访 库 组 件 的 接 口 设 计 提 供 了 准 确 的 依 据。

---- 可 以 相 信, 随 着 软 件 工 程 学 的 进 一 步 成 熟, 将 出 现 更 多 的 计 算 机 辅 助 工 具, 帮 助 软 件 开 发 人 员 构 建 出 更 完 善 的 应 用 系 统。 许 多 辅 助 软 件 工 具 可 以 完 成 相 似 的 工 作, 到 底 选 用 何 种 辅 助 工 具 取 决 于 这 些 工 具 的 性 能 以 及 使 用 者 的 习 惯。

---- 以 组 件 对 象 为 中 心 的 动 态Web 方 法 和DNA 思 想 并 不 高 深 莫 测, 开 发 技 术 也 更 加 规 范 化。 应 当 说, 这 套 方 法 更 符 合 客 观 信 息 结 构 的 现 实, 也 更 接 近 于 人 们 的 思 维 方 式, 其 技 术 有 如 行 云 流 水 般 自 然, 很 适 合 在 中 小 型 企 业 环 境 中 推 广 和 普 及。