1.模块结构图概述
(1)模块结构图的功能
模块结构图用于描述系统内各个组成部分的结构、层次、通讯关系,是结构化系统设计阶段最主要的表达和交流工具。图形简明易懂,既便于设计人员表达自己的设想,又便于编写程序的人员了解实现要求,还要便于和管理人员商讨。
(2)模块结构图的组成
模块结构图有四个基本符号,如图6-2所示。
图6-2 模块结构图图例
①模块,用长方形表示。
②调用,用从一个模块指向另一个模块的箭头表示前一个模块调用后一个模块。箭尾若为菱形,表示条件调用;若为弧形,表示循环调用。
③数据,用带空心圆圈的小箭头表示从一个模块传递给另一个模块的数据。
④控制信息,用带实心圆圈的小箭头表示从一个模块传递给另一个模块的控制信息。
模块结构图的一般形式如图6-3所示。图6-3表示A系统由B、C、D三个子功能模块组成,其中B模块又调用了E模块,C模块调用F模块,F模块选择调用I、J模块,D模块顺序调用G、H模块。
图6-3 模块结构图的一般模型
如图6-4给出了一个简单的具体实例。
(3)模块结构图与其他工具的联系与区别
模块结构图以数据流程图为基础,是程序流程图的依据。下面分别比较它们之间的区别。
①模块结构图与数据流程图(DFD)的区别
·DFD反映数据在系统中的流动情况,即从数据流的角度来考虑系统;而模块结构图则是从功能层次关系的角度来考虑系统。
·DFD主要说明系统“做什么”,即描述系统的逻辑模型;而模块结构图则主要说明“如何做”,即描述系统的物理模型。
·DFD描述系统中数据流动的情况,每张DFD对应于模块结构图中的某一层次。
·DFD的绘制过程是从具体到抽象,逐步去掉各种物理的处理方法,只剩下抽象的信息流动情况,以便抽象地描述系统的逻辑功能;而模块结构图则相反,它从一个总的抽象的系统功能出发,逐一具体化,逐步考虑具体的实现方法,并逐步加入具体的实现方法和技术手段,最后设计出物理模型来,即从抽象到具体的过程。
②模块结构图与程序流程图(Flowchart)的区别
模块结构图表达系统的处理功能,描述模块的外部属性(输入和输出、逻辑功能),而且能够表达各个模块之间的通讯关系,指出模块间的数据流向;而程序流程图则是描述模块的内部属性(处理过程、内部数据),说明程序的步骤,不反映系统的结构。
2.模块结构图的主要成分
(1)模块
模块(Module)一词使用很广泛,通常是指用一个名字就可以调用的一段程序语句,可以将它理解为“子程序”。“模块”是与“系统”对应的概念,具有相对性。例如相对于“人力资源管理”系统而言,“工资管理”则是一个模块;而如果相对于ERP系统而言,则“人力资源管理系统”就可以理解为一个模块。
如图6-2所示,模块用长方形表示,模块的名字写在长方形内,通常是一个动宾词组,应恰如其分地表达这一个模块的功能。
模块具有输入输出、逻辑功能、运行程序、内部数据四种属性。
·输入输出:是模块与外部的信息交换。一个模块从它的调用者那里获得输入,把产生的结果再传递给调用者。(www.xing528.com)
·逻辑功能:指它能做什么事,以及是如何把输入转换成输出的。
·运行程序:指完成模块的逻辑功能的命令段。
·内部数据:是仅供模块本身引用的数据。
输入输出、逻辑功能构成一个模块的外部特性。数据和程序代码则是模块的内部特性。模块用在总体设计阶段,主要关心模块的外部特性。其内部属性以后解决。
(2)模块间的调用
在模块结构图中用连接两个模块的箭头表示调用,箭头总是由调用模块指向被调用模块,被调用模块执行后又返回到调用模块。
模块间的调用关系有以下三种:
①直接调用
直接调用是最简单的调用关系,指一个模块无条件地调用另一个模块,如图6-5(a)所示。
图6-5 模块结构图的调用关系
②条件调用
也称为选择调用。如果一个模块是否调用另一个模块取决于调用模块内部的某个条件,则把这种调用称为条件调用,条件用菱形符号表示。其含义是:根据条件满足情况决定调用哪一个模块。如图6-5(b)所示。
③循环调用
也称为重复调用。如果一个模块内部存在一个循环过程,每次循环均需调用一个或几个下属模块,则称这种调用为循环调用,用弧形箭头表示。其含义是:上层模块对下层模块的多次反复调用。如图6-5(c)所示。
(3)模块间的通讯
通讯指伴随着模块调用而发生的模块间的信息交换。模块间的通讯有两种方式:
①数据通讯
表示模块间只传递数据,如 “职工号”、“档案数据”等。
②控制通讯
模块间除传递数据外,还传递标志位,如“文件结束”、“无此职工”等。具体例子如图6-6所示。
图6-6 模块结构图的一般模型
3.模块调用和通讯的规则
为了保证系统的正确与可行,模块之间进行调用和通讯时必须遵循一些准则:
(1)层模块可以有一个或多个直属下层模块。
(2)下层模块有一个上层模块。
(3)同一层模块不能相互调用。
(4)每个模块只能调用其直属的下层模块,不能调用非直属的下层模块。
(5)模块间的通讯只限于直属的上下层模块之间进行,可以是单向或双向,但不能越层进行。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。