讲系统设计系统模块结构设计的详细讲述.ppt

上传人:za****8 文档编号:6255303 上传时间:2020-02-20 格式:PPT 页数:63 大小:841.56KB
返回 下载 相关 举报
讲系统设计系统模块结构设计的详细讲述.ppt_第1页
第1页 / 共63页
讲系统设计系统模块结构设计的详细讲述.ppt_第2页
第2页 / 共63页
讲系统设计系统模块结构设计的详细讲述.ppt_第3页
第3页 / 共63页
点击查看更多>>
资源描述
管理信息系统 主讲 宫小全副教授单位 北方交通大学经管学院信息管理系 第11 13讲管理信息系统的系统设计 系统模块结构设计的详细讲述 系统模块结构设计 如前所述 总体结构设计的主要内容之一是系统模块结构设计 其任务是合理地进行模块的分解和定义 把每个子系统划分成一个个模块 并通过模块结构图把分解的模块按层次结构联系起来 模块与模块分解模块结构图模块结构的标准形式如何画模块结构图模块结构图的改进 高内聚低耦合在改进模块结构图时还应注意的问题 一 模块与模块分解 模块是组成系统的基本单位 它的特点是可以组合 分解和更换 系统中任何一个处理功能都可以看成是一个模块 根据模块功能具体化程度的不同 可以分为逻辑模块和物理模块 在系统逻辑模型中定义的处理功能可视为逻辑模块 物理模块是逻辑模块的具体化 可以是一个计算机程序 子程序或若干条程序语句 也可以是人工过程的某项具体工作 1 概述 一 模块与模块分解 2 模块的四个要素 输入和输出处理功能内部数据程序代码 一 模块与模块分解 3 模块分解系统逻辑模型中数据流图中的模块是逻辑处理模块 模型中没有说明模块的物理构成和实现途径 同时也看不出模块的层次分解关系 为此在系统结构设计中要将数据流图上的各个逻辑处理模块进一步分解 用模块结构图确定系统的层次结构关系 并将系统的逻辑模型转变为物理模型 一 模块与模块分解 3 模块分解 1 划分模块的依据一个合理的子系统或模块划分 应该是子系统或模块内部联系强 子系统或模块间尽可能独立 接口明确 简单 尽量适应用户的组织体系 有适当的共用性 一 模块与模块分解 3 模块分解 2 模块分解的方式按逻辑划分 把相类似的处理逻辑功能放在一个模块里 按时间划分按过程划分按通信划分按职能划分 按职能划分子系统 按逻辑划分模块所形成的系统 二 模块结构图 模块结构图是把分解的一个个模块按层次结构联系起来的图 模块结构图是结构化设计中描述系统结构的图形工具 作为一种文档 它必须严格地定义模块的名字 功能和接口 同时还应当在模块结构图上反映出结构化设计的思想 二 模块结构图 1 模块系统设计中所说的模块为物理模块 通常是指用一个名字就可以调用的一段程序语句 用长方形框表示一个模块 对于现成的模块 则以双纵边矩形框表示 长方形中间标上模块名 模块名通常由一个动词和一个作为宾语的名词组成 模块的名字应当能够表明该模块的功能 模块的表示 二 模块结构图 2 调用在模块结构图中 用联接两个模块的箭头表示调用 箭头总是由调用模块指向被调用模块 但是应该理解成被调用模块执行后又返回到调用模块 如果一个模块是否调用一个从属模块 决定于调用模块内部的判断条件 则该调用称为判断调用 如果一个模块通过其内部的循环功能来循环调用一个或多个从属模块 则该调用称为循环调用 模块调用 二 模块结构图 3 数据当一个模块调用另一个模块时 调用模块可以把数据传送到被调用模块处供处理 而被调用模块又可以将处理的结果数据送回到调用模块 二 模块结构图 4 控制信息为了指导程序下一步的执行 模块间有时还必须传送某些控制信息 例如 数据输入完成后给出的结束标志 文件读到末尾所产生的文件结束标志等 控制信息与数据的主要区别是前者只反映数据的某种状态 不必进行处理 二 模块结构图 5 转接符号当模块结构图在一张图面上画不下 需要转接到另外一张纸上 或为了避免图上线条交叉时 都可使用转接符号 圆圈内加上标号 如图所示 转接符号的使用 三 模块结构图的标准形式 一个系统的模块结构图有两种标准形式 变换型模块结构事务型模块结构 三 模块结构图的标准形式 1 变换型模块结构变换型模块结构描述的是变换型系统 变换型系统由三部分组成 输入数据加工 中心变换 输出变换型模块的功能是将输入的数据经过加工后输出 变换型系统工作的顺序 首先主模块受到控制 然后控制沿着结构逐层达到底层的输入模块 当底层模块输入数据 后 由下至上逐层传送 逐步由 物理输入 变成 逻辑输入 C 在主控模块控制下 逻辑输入 经中心变换模块转换成 逻辑输出 D D再由上至下逐层传送 逐步把 逻辑输出 变成 物理输出 E 这里的 逻辑输入 和 逻辑输出 分别为系统主处理的输入数据流和输出数据流 而 物理输入 和 物理输出 是指系统输入端和系统输出端的数据 三 模块结构图的标准形式 2 事务型模块结构事务型系统由三层组成 事务层操作层细节层事务型模块的功能是对接收的事务 按其类型选择某一类事务处理 事务型系统工作的顺序 主模块将按事务的类型选择调用某一事务处理模块 事务处理模块又调用若干个操作模块 而每个操作模块又调用若干个细节模块 在实际系统中 由于不同的事务可能有共同的操作 而不同操作又可能有共同的细节 因此事务型系统的操作模块和细节模块可以达到一定程度的共享 变换型和事务型模块结构都有较高的模块内聚和较低的块间耦合 因此便于修改和维护 在管理信息系统中 经常将这两种结构结合使用 四 如何画初始的模块结构图 下面介绍通过 变换分析 和 事务分析 技术 导出 变换型 和 事务型 初始结构图的方法 变换分析事务分析混合结构的分析 四 如何画初始的模块结构图 1 数据流图的两种典型结构系统分析阶段 我们采用结构化分析方法得到了由数据流图 数据字典和加工说明等组成的系统的逻辑模型 现在 可根据一些规则从数据流图导出系统初始的模块结构图 管理信息系统的数据流图通常也可分为两种典型的结构 变换型结构和事务型结构 四 如何画初始的模块结构图 1 数据流图的两种典型结构变换型结构 变换型结构的数据流图呈一种线性状态 它所描述的工作可表示为 输入 主处理 输出 四 如何画初始的模块结构图 1 数据流图的两种典型结构事务型结构 事务型结构的数据流图则呈束状形 即一束数据流平行流入或流出 可能同时有几个事务要求处理 四 如何画初始的模块结构图 1 数据流图的两种典型结构上述两种典型的数据流图结构分别可通过 变换分析 和 事务分析 技术 导出 变换型 和 事务型 初始的模块结构图 这两种方法的思想是首先设计顶层模块 然后自顶向下 逐步细化 最后得到一个满足数据流图所表示的用户要求的系统的模块结构图 即系统的物理模型 四 如何画初始的模块结构图 2 变换分析 技术因为变换型结构由输入 主处理和输出三部分组成 所以从变换型结构的数据流图导出变换型模块结构图 可分三步进行 找出系统的主加工设计顶层模块和第一层模块设计中 下层模块 1 找出系统的主加工 为了处理方便 先不考虑数据流图中的一些支流 如出错处理等 通常在数据流图中多股数据流的汇合处理往往是系统的主加工 若没有明显的汇合处 则可先确定哪些数据流是逻辑输入和逻辑输出 从而获得主加工 2 设计顶层模块和第一层模块顶层模块 首先在与主加工对应的位置上画出主模块 主模块的功能就是整个系统要做的工作 主模块又称为主控制模块 主模块是模块结构图的 顶 现在我们就可按 自顶向下 逐步细化 的思想来画模块结构图顶下的各层了 每一层均需按输入 变换 输出等分支来处理 为每一个逻辑输入画一个输入模块 其功能是向主模块提供数据 为每一个逻辑输出画一个输出模块 其功能是把主模块提供的数据输出 为主处理画一个变换模块 其功能是把逻辑输入变换成逻辑输出 至此 结构图第一层就完成了 在作图时应注意主模块与第一层模块之间传送的数据 要与数据流图相对应 2 设计顶层模块和第一层模块第一层模块 3 设计中层模块和下层模块 因为输入模块的功能是向调用它的模块提供数据 所以它自已也需要一个数据来源 此外 输入模块必须向调用模块提供所需的数据 因此它应具有变换功能 能够将输入数据按模块的要求进行变换后 再提交该调用模块 从而 要为每个输入模块设计两个下层模块 其中一个是输入模块 另一个是变换模块 同理 也为每个输出模块设计两个下层模块 一个是变换模块 将调用模块所提供的数据变换成输出的形式 另一个是输出模块 将变换后的数据输出 该过程由顶向下递归进行 直到系统的物理输入端或物理输出端为止 每设计出一个新模块 应同时给它起一个能反映模块功能的名字 四 如何画初始的模块结构图 3 事务分析 技术当数据流图呈现 束状 结构时 应采用事务分析的设计方法 就步骤而言该方法与变换分析方法大部分类似 主要差别在于由数据流图到模块结构的影射方式不同 进行事务分析时 通常采用以下四步 确定以事务为中心的结构 包括找出事务中心和事务来源 如图所示的典型事务型数据流结构为例 是事务中心 则为事务来源 按功能划分事务 将具备相同功能的事务分为同一类 建立事务模块 为每个事务处理模块建立全部的操作层模块 其建立方法与变换分析方法类似 但事务处理模决可以共享某些操作模块 若有必要 则为操作层模块定义相应的细节模块 并尽可能使细节模块被多个操作模块共享 A X 下图是一个以事务为中心的数据流图 显然 加工 确定事务类型 是它的事务中心 由该数据流图经事务分析可得到的模块结构图如图所示 4 混合结构的分析在规模较大的实际系统中 其数据流图往往是变换型和事务型的混合结构 此时可把变换分析和事务分析应用在同一数据流图的不同部分 例如 可以以 变换分析 为主 事务分析 为辅进行设计 先找出主处理 设计出结构图的上层 然后根据数据流图各部分的结构特点 适当选用 变换分析 或 事务分析 就可得出初始结构图的某个方案 其中第一层是用变换分析得到的 而模块 使b变成d 及下层模块和模块 变d为g 及下层模块则是采用事务分析得到的 变换型和事务型混合结构的模块结构图 课堂练习 1 将下面给定的数据流图转换为相应的初始模块结构图 x y 课堂练习 2 将下面给定的数据流图转换为相应的初始模块结构图 五 模块结构图的改进 1 模块耦合和内聚的概念一个模块内部的联系称为块内联系 穿越模块边界的联系称为块间联系 耦合是表示模块之间联系的程度 内聚则用来表示模块内部各成分之间的联系程度 紧密耦合表示模块之间联系非常强 松散耦合表示模块之间联系比较弱 非耦合则表示模块之间无任何联系 是完全独立的 模块设计的标准 高内聚低耦合 五 模块结构图的改进 2 模块的耦合方式数据耦合控制耦合非法耦合 1 数据耦合如果两个模块之间的通信信息是若干数据项 则这种耦合方式称为数据耦合 例如 为了计算实发工资 计算工资 模块必须把工资总额和扣款数传输给 计算实发工资 模块 而 计算实发工资 模块在算出实发工资后又送回到 计算工资 模块 这种耦合对系统的影响比较小 是一种较好的耦合方式 但为了减少接口的复杂性 应尽量防止传输不必要的数据 2 模块的耦合方式 2 控制耦合如果两个模块之间传输的信息是控制信息 则该耦合称为控制耦合 传送的控制信息可分成两类 一类是判定参数 调用模块通过该判定参数控制被调用模块的工作方式 若判定参数出错则导致被调用模块按另一种方式工作 另一种是地址参数 调用模块直接转向被调用模块内部的某一些地址 这时若改动一个模块则必将影响另一模块 因为控制耦合方式的耦合程度较高 应尽量避免采用地址参数的方式 2 模块的耦合方式 3 非法耦合两个模块之间 不经过调用关系 彼此直接使用或修改对方的数据 2 模块的耦合方式 五 模块结构图的改进 3 模块的内聚方式功能内聚顺序内聚通信内聚过程内聚逻辑内聚巧合内聚 1 功能内聚功能内聚表示模块中各成分的联系是功能性的 即一个模块执行一个功能 且完成该功能所必须的全部成分都包含在模块中 例如 计算工资 打印月报表等 由于这类模块的功能明确 模块间的耦合简单 所以便于维护 我们在系统设计时应力求按功能划分模块 3 模块的内聚方式 2 顺序内聚顺序内聚是指模块中各成分有顺序关系 某一成分的输出是另一成分的输入 例如 录入和汇总 模块 统计和打印 模块都是顺序内聚模块 顺序内聚的模块中有可能包含几个功能 因而会给维护带来不便 3 模块的内聚方式 3 通信内聚通信内聚是指模块中各成分引用或产生共同的数据 例如报表打印模块 各成分都从若干共同的数据来源接收数据 然后转换 汇总并打印出各种报表 3 模块的内聚方式 4 过程内聚过程内聚是指一个模块内各组成部分的处理动作各不相同 彼此也没有什么关系 但他们受同一个控制流支配 决定他们的执行次序 过程内聚是由一段公共的处理过程组合成的模块 例如 把处理过程中的所有循环部分 判定部分和顺序执行部分划分到一个模块 则它们都是过程内聚的 过程内聚的内部结构一般是由程序流程图直接演变出来的 显然 采用过程内聚时 模块间的耦合度比较高 3 模块的内聚方式 5 逻辑内聚逻辑内聚是指模块各成分的逻辑功能是相似的 例如 把系统中与 输出 有关的操作抽取出来组成一个模块 包括将数据在屏幕上显示 从打印机上打印 拷贝到磁盘上等 则该模块就是逻辑内聚的 逻辑内聚的内聚程度稍强于巧合内聚 但仍不利于修改和维护 3 模块的内聚方式 6 巧合内聚巧合内聚是指模块各成分之间毫无联系整个模块如同一盘散沙 不易修改或维护 3 模块的内聚方式 五 模块结构图的改进 4 耦合和内聚的关系一般说来 在系统中各模块的内聚越大 则模块间的耦合越小 但这种关系并不是绝对的 耦合小使得模块间尽可能相对独立 从而各模块可以单独开发和维护 内聚大使得模块的可理解性和维护性大大增强 六 在改进模块结构图时还应注意的问题 作用范围与控制范围模块的扇入和扇出数模块分解和模块的大小消除重复的功能补充 完善和修改 六 在改进模块结构图时还应注意的问题 1 作用范围与控制范围一个判定的作用范围是指所有受这个判定影响的模块 按照规定 若模块中只有一小部分加工依赖于某个规定 则该模块仅仅本身属于这个判定的作用范围 若整个模块的执行取决于这个判定 则该模块的调用模块也属于这个判定作用范围 一个模块的控制范围是指模块本身及其所有的下属模块 六 在改进模块结构图时还应注意的问题 分析判定的作用范围和模块的控制范围之间的关系 可以较好地处理系统的模块关系 合理地分解模块 因此 在分解模块时应该满足以下要求 判定的作用范围应该在判定所在模块的控制范围之内 判定所在模块在模块层次结构中的位置不能太高 根据以上两点可知 最理想的模块分解是判定范围由判定所在模块及其直接下层模块组成 a b 作用范围和控制范围的四种关系 c d 作用范围和控制范围的四种关系 六 在改进模块结构图时还应注意的问题 当出现作用范围不在控制范围之内时 可以用以下措施纠正 把判定所在的模块合并至上层模块中 或从低层模块移到高层模块使判定的位置提高 把受判定影响的模块移到模块控制范围之内 练习题 请同学们讨论下图模块设计存在问题并改正 图1 图2 六 在改进模块结构图时还应注意的问题 2 模块的扇入和扇出数模块的扇入数是指有多少个上级模块直接调用该模块 扇出数是指某个模块直接控制或调用的模块树目 如图中模块 的扇入数等于3 如果一个规模很小的底层模块的扇入数为1 则可以把它合并到它的上层模块中去 若它的扇入数较大 就不能向上合并 否则将导致对该模块做多次编码和排错 如图中模块 的扇出数等于3 对扇出数过低 1或2 的模块 也应进行检查 一般 模块的扇出数应在7以内 六 在改进模块结构图时还应注意的问题 3 模块分解和模块的大小模块的大小是模块分解时要考虑的一个重要问题 模块多大最好 有许多不同的观点 模块自顶向下的分解 主要按功能来进行 也就是说一个模块最好一个功能 同时要注意模块间的接口关系以较为简单为宜 从经验上讲 为了提高可读性和方便修改 一个基本模块的程序量在10 100个语句之间 六 在改进模块结构图时还应注意的问题 4 消去重复功能设计过程中若发现几个模块的功能是相似的 则应设法消去其中的重复功能 因为同一功能的程序段多次出现 不仅浪费了编码时间 而且会给调试和维护带来困难 六 在改进模块结构图时还应注意的问题 5 补充 完善和修改在系统分析阶段 加工说明中所反映的用户要求 例如出错处理 过程信息以及种种限制等 不可能完全在数据流图中反映 然而 在系统设计阶段的系统模块结构图中 必须体现出用户的所有要求 因此 由数据流图导出的初始模块结构图必须进行补充 完善 还要根据模块分解的原则进行修改 才能达到用户的要求 ThankYou
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!