1、HIPO与模块结构图的优劣分析姓名:史丞玉学号:10060135班级:10 级 6班HIPO与模块结构图的优劣分析姓名:史丞玉学号:10060135摘要:20 世纪 70 年代以来,出现了多种系统设计方法,其中结构化设计方法是一种基本的方法。在结构化设计方法中,需要运用不同的图形工具来描述系统的功能与内部结构,其中有两种,HIPO 和模块结构图(MSD )它们都是描述系统结构的工具。但是,由于方法不同,所具有的优缺点也就有不同之处。关键词:HIPO,模块结构图,模块,变 换 型 模 块 结 构 , 数 据 型 模 块结 构1HIPO 图1.1 HIPO图的来源与定义HIPO(Hierarchy
2、 Plus Input/Processing/Output)图 是 美 国 IBM 公 司70 年 代 发 展 起 来 的 表 示 软 件 系 统 结 构 的 工 具 。 它 既 可 以 描 述 软 件 总 的 模 块 层次 结 构 -H 图 (层 次 图 ), 又 可 以 描 述 每 个 模 块 输 入 /输 出 数 据 、 处 理 功 能 及模 块 调 用 的 详 细 情 况 -IPO 图 。 HIPO 图 以 模 块 分 解 的 层 次 性 以 及 模 块 内 部输 入 、 处 理 、 输 出 三 大 基 本 部 分 为 基 础 建 立 的 。 1.2 HIPO 图 中 的 H 图用 于
3、 描 述 软 件 的 层 次 结 构 , 矩 形 框 表 示 一 个 模 块 , 矩 形 框 之 间 的 直 线 表示 模 块 之 间 的 调 用 关 系 , 同 结 构 图 一 样 未 指 明 调 用 顺 序 。1.3 HIPO 中 的 IPO 图H 图 只 说 明 了 软 件 系 统 由 那 些 模 块 组 成 及 其 控 制 层 次 结 构 , 并 未 说 明 模块 间 的 信 息 传 递 及 模 块 内 部 的 处 理 。 因 此 对 一 些 重 要 模 块 还 必 须 根 据 数 据 流图 、 数 据 字 典 及 H 图 绘 制 具 体 的 IPO 图 。和 H 图 中 的 每 个
4、方 框 相 对 应 , 应 该 有 一 张 IP0 图 描 绘 这 个 方 框 代 表 的模 块 的 处 理 过 程 。 IP0 图 使 用 的 基 本 符 号 既 少 又 简 单 , 因 此 很 容 易 学 会 使用 这 种 图 形 工 具 。 它 的 基 本 形 式 是 在 左 边 的 框 中 列 出 有 关 的 输 入 数 据 , 在 中间 的 框 内 列 出 主 要 的 处 理 , 在 右 边 的 框 内 列 出 产 生 的 输 出 数 据 。 处 理 框 中 列出 处 理 的 次 序 暗 示 了 执 行 的 顺 序 , 但 是 用 这 些 基 本 符 号 还 不 足 以 精 确 描
5、述 执行 处 理 的 详 细 情 况 。 因 此 , 对 某 些 输 送 低 层 上 的 重 要 工 作 模 块 , 还 必 须 根 据数 据 字 典 和 HIPO 图 , 绘 制 其 详 细 的 IPO 图 , 用 来 描 述 模 块 的 输 入 、 处 理 和输 出 细 节 , 以 及 与 其 他 模 块 间 的 调 用 和 被 调 用 关 系 。1.4 HIPO图分析在 系 统 设 计 中 , 必 须 将 数 据 流 程 图 上 的 各 个 处 理 模 块 进 一 步 分 解 , 确 定系 统 模 块 层 次 结 构 关 系 , 从 而 将 系 统 的 逻 辑 模 型 转 变 为 物 理
6、 模 型 。 进 行 模 块层 次 功 能 分 解 的 一 个 重 要 技 术 就 是 HIPO 图 方 法 。 任 何 功 能 模 块 都 是 由 输入 、 处 理 、 输 出 三 个 基 本 部 分 组 成 , HIPO 图 方 法 的 模 块 层 次 功 能 分 解 正 是以 模 块 的 这 一 特 性 以 及 模 块 分 解 的 层 次 性 为 基 础 , 将 一 个 大 的 功 能 模 块 逐 层分 解 , 得 到 系 统 的 模 块 层 次 结 构 , 然 后 再 进 一 步 把 每 个 模 块 分 解 为 输 入 、 处理 和 输 出 的 具 体 执 行 模 块 。 HIPO 图
7、 由 三 个 基 本 图 表 组 成 , 进 行 模 块 层 次 功能 分 解 遵 循 以 下 步 骤 : ( 1) 总 体 IPO 图 : 它 是 数 据 流 程 图 的 初 步 分 层 细 化 结 果 , 根 据 数 据 流程 图 , 将 最 高 层 处 理 模 块 分 解 为 输 入 、 处 理 、 输 出 三 个 功 能 模 块 。 ( 2) HIPO 图 : 根 据 总 体 IPO 图 , 对 顶 层 模 块 进 行 重 复 逐 层 分 解 , 而 得到 的 关 于 组 成 顶 层 模 块 的 所 有 功 能 模 块 的 层 次 结 构 关 系 图 。( 3) 低 层 主 要 模 块
8、 详 细 的 IPO 图 。2 模 块 结 构 图2.1 模 块 结 构 图 的 来 源 及 定 义模 块 经 过 “自 顶 向 下 ”的 逐 层 分 解 , 把 一 个 复 杂 系 统 分 解 成 几 个 大 模 块( 或 子 系 统 ) , 每 个 大 模 块 又 分 解 为 多 个 更 小 的 模 块 。 这 样 就 得 到 具 有 层 次结 构 的 模 块 结 构 , 称 之 为 模 块 结 构 图 。 模 块 结 构 图 反 映 了 系 统 的 组 成 及 相 互关 系 。 是 结 构 化 系 统 设 计 的 一 种 用 于 描 述 系 统 模 块 结 构 的 重 要 的 图 标 工
9、 具 。模 块 结 构 图 有 两 种 标 准 形 式 , 变 换 型 模 块 结 构 和 事 务 性 模 块 结 构 。 模 块 结 构 图 作 为 一 种 文 档 , 它 必 须 严 格 地 定 义 模 块 的 名 字 、 功 能 和 接 口 , 同时 还 应 当 在 模 块 结 构 图 上 反 映 出 结 构 化 设 计 的 思 想 。 模 块 结 构 图 由 模 块 、 调用 、 数 据 、 控 制 和 转 接 等 五 种 基 本 符 号 组 成图 模 块 结 构 图 的 五 种 基 本 符 号模 块 结 构 图 是 由 SA 阶 段 所 产 生 的 DFD 图 导 出 的 , 它 们
10、 的 区 别 在 于 : 结构 图 表 现 的 是 上 下 级 模 块 之 间 层 次 化 的 调 用 和 控 制 关 系 ; 而 DFD 图 表 现 的是 逻 辑 处 理 功 能 的 顺 序 和 数 据 在 系 统 内 的 流 向 , 而 不 是 表 示 各 级 控 制 关 系 和调 用 关 系 。 DFD 图 着 眼 于 数 据 流 , 反 映 系 统 的 逻 辑 功 能 , 即 系 统 能 够 “做 什么 “; 而 结 构 图 着 眼 于 控 制 层 次 , 反 映 系 统 的 物 理 模 型 , 即 怎 样 逐 步 实 现 系统 的 总 功 能 。从 DFD 图 导 出 结 构 图 的
11、 策 略 有 两 种 , 一 是 以 变 换 为 中 心 的 策 略 , 二 是 以事 务 为 中 心 策 略 。2.2 从数据流图导出初始结构图的方法 在系统分析阶段,我们采用结构化分析方法得到了由数据流图、数据字典和加工说明等组成的系统的逻辑模型。现在,可根据一些规则从数据流图导出系统初始的模块结构图。管理信息系统的数据流图通常也可分为两种典型的结构,即变换型结构和事务型结构。变换型结构的数据流图呈一种线性状态,见图 6-4-4 所示,它所描述的工作可表示为输入、主处理及输出。事务型结构的数据流图则呈束状,见图 6-4-5 所示,即一束数据流平行流人或流出,可能同时有几个事务要求处理。图
12、6-4-4 变换型结构的数据流图图 6-4-5 事务型结构的数据流图这两种典型的结构分别可通过“变换分析”和“事务分析”技术,导出“变换型”和“事务型”初始的模块结构图。这两种方法的思想是首先设计顶层模块,然后自顶向下,逐步细化,最后得到一个满足数据流图所表示的用户要求的系统的模块结构图,即系统的物理模型。下面分别讨论通过“变换分析”和“事务分析”技术,导出“变换型”和“事务型”初始结构图的技术。2.2.1 从变换型数据流图导出初始结构图的方法因为变换型结构由输入、主处理和输出三部分组成,所以从变换型结构的数据流图导出变换型模块结构图,可分三步进行。(1) 找出系统的主加工为了处理方便,先不考
13、虑数据流图中的一些支流,如出错处理等。通常在数据流图中多股数据流的汇合处往往是系统的主加工。若没有明显的汇合处,则可先确定哪些数据流是逻辑输入和逻辑输出,从而获得主加工。从物理输入端一步步向系统中间移动,直至到达这样一个数据流,它再不能被作为系统的输入,则其前一个数据流就是系统的逻辑输入,即离物理输入端最远的,但仍可视为是系统输入的那个数据流就是逻辑输入。用类似方法,从物理输出端一步步向系统中间移动,则离物理输出端最远的,但仍可视为系统输出的那个数据流就是逻辑输出。逻辑输入和逻辑输出之间的加工就是我们要找的主加工。如图 2-2-1-1 所示。图 2-2-1-1 在数据流图中找系统的主加工(2)
14、 设计顶层模块和第一层模块首先在与主加工对应的位置上画出主模块(如图 2-2-1-2 所示),主模块的功能就是整个系统要做的工作,主模块又称为主控制模块。主模块是模块结构图的“顶”,现在我们就可按“自顶向下,逐步细化”的思想来画模块结构图顶下的各层了。每一层均需按输入、变换、输出等分支来处理。模块结构图第一层的画法如下: 为每一个逻辑输入画一个输入模块,其功能是向主模块提供数据。 为每一个逻辑输出画一个输出模块,其功能是把主模块提供的数据输出。 为主处理画一个变换模块,其功能是把逻辑输入变换成逻辑输出。至此,结构图第一层就完成了。在作图时应注意主模块与第一层模块之间传送的数据,要与数据流图相对
15、应。(3) 设计中、下层模块因为输入模块的功能是向调用它的模块提供数据,所以它自已也需要一个数据来源。此外,输入模块必须向调用模块提供所需的数据,因此它应具有变换功能,能够将输入数据按模块的要求进行变换后,再提交该调用模块。从而,我们为每个输入模块设计两个下层模块,其中一个是输入模块,另一个是变换模块。同理,也为每个输出模块设计两个下层模块。一个是变换模块,将调用模块所提供的数据变换成输出的形式;另一个是输出模块,将变换后的数据输出。该过程由顶向下递归进行,直到系统的物理输入端或物理输出端为止(如图6-4-7 所示)。每设计出一个新模块,应同时给它起一个能反映模块功能的名字。运用上述方法,就可
16、获得与数据流图相对应的初始结构图。图 2-2-1-2 由变换型数据流图导出的初始模块结构图2.2.2从事务型数据流图导出初始结构图的方法当数据流图呈现“束状”结构时,应采用事务分析的设计方法。就步骤而言,该方法与变换分析方法大部分类似,主要差别在于由数据流图到模块结构的映射方式不同。进行事务分析时,通常采用以下四步:(1) 确定以事务为中心的结构,包括找出事务中心和事务来源。以图 2-2-2-1 的典型事务型数据流结构为例进行说明。图 2-2-2-1 事务型中心数据流图实例(2) 按功能划分事务,将具备相同功能的事务分为同一类,建立事务模块。(3) 为每个事务处理模块建立全部的操作层模块。其建
17、立方法与变换分析方法类似,但事务处理模决可以共享某些操作模块。(4) 若有必要,则为操作层模块定义相应的细节模块,并尽可能使细节模块被多个操作模块共享。例如,图 2-2-2-1 是一个以事务为中心的数据流图,显然,加工“确定事务类型”是它的事务中心,由该数据流图经事务分析所得到的模块结构图如图2-2-2-2 所示。图 2-2-2-2 事务型模块结构图实例2.2.3 混合结构的分析在规模较大的实际系统中,其数据流图往往是变换型和事务型的混合结构,如图 2-2-3-1 所示。此时可把变换分析和事务分析应用在同一数据流图的不同部分。例如,可以以“变换分析”为主,“事务分析”为辅进行设计。先找出主处理
18、,设计出结构图的上层,然后根据数据流图各部分的结构特点,适当选用“变换分析”或“事务分析”就可得出初始结构图的某个方案。图 2-2-3-1 变换型和事务型混合结构的数据流图图 2-2-3-2 变换分析与事务分析的混合使用 如图 2-2-3-2 所示,其中第一层是用变换分析得到的,而模块“使 b 变成d”及下层模块和模块“变 d 为 g” 及下层模块则是采用事务分析得到的。从数据流图导出初始的模块结构图的方法就介绍到这里。必须指出的是,由于开发人员的素质、经验和个人理解程度不同,采用上述方法导出的初始模块结构图也不是唯一的。事实上,满足系统说明书要求的任何模块结构图都可以作为初始结构图。2.3
19、变 换 型 模 块 结 构变 换 型 模 块 结 构 描 述 的 是 变 换 型 系 统 , 变 换 型 系 统 由 三 部 分 组 成 : 输 入 、数 据 加 工 ( 中 心 变 换 ) 和 输 出 , 它 的 功 能 是 将 输 入 的 数 据 经 过 加 工 后 输 出 ,如 图 2-3 所 示 。变 换 型 系 统 工 作 时 , 首 先 主 模 块 受 到 控 制 , 然 后 控 制 沿 着 结 构 逐 层 达 到底 层 的 输 入 模 块 , 当 底 层 模 块 输 入 数 据 A 后 , A 由 下 至 上 逐 层 传 送 , 逐 步 由“物 理 输 入 ”变 成 “逻 辑 输
20、 入 ”C, 接 着 在 主 控 模 块 控 制 下 , C 经 中 心 变 换模 块 转 换 成 逻 辑 输 出 D, D 再 由 上 至 下 逐 层 传 送 , 逐 步 把 “逻 辑 输 出 ”变 成“物 理 输 出 ”E。 这 里 的 “逻 辑 输 入 ”和 “逻 辑 输 出 ”分 别 为 系 统 主 处 理 的输 入 数 据 流 和 输 出 数 据 流 , 而 “物 理 输 入 ”和 “物 理 输 出 ”是 指 系 统 输 入端 和 系 统 输 出 端 的 数 据 。图 2-3 变换型模块结构2.4 事务型模块结构事 务 型 系 统 由 三 层 组 成 : 事 务 层 、 操 作 层 和 细 节 层 , 它 的 功 能 是 对 接 收的 事 务 , 按 其 类 型 选 择 某 一 类 事 务 处 理 。 如 图 2 4 所 示 。