结构化系统设计方法与结构化系统设计有密切的关系。在系统分析阶段,形成了用DFD等工具描述的系统说明书,设计阶段以DFD为基础,按自顶向下逐步细化的方法,设计系统的模块结构。两者的关系如图6-10所示。
数据流程图有两种典型的结构:变换型(Transform)结构,如图6-10所示;事务型(Transaction)结构,如图6-12所示。可以分别通过变换结构分析和事务分析方法导出标准形式的数据流程图。
图6-10 数据流图的层次与模块结构图
1.使用变换分析法导出模块结构图
变换结构是一种线性结构,它由逻辑输入、主加工和逻辑输出三部分组成,如图6-11所示。变换分析可以分为三步:
图6-11 变换分析导出模块结构
(1)确定变换中心
一般而言,在DFD中多股数据流的汇合处一般是系统的变换中心。若没有明显的汇合处,可先确定逻辑输入和逻辑输出的数据流,作为变换中心。
从物理输入端开始,沿着数据流输入的方向向系统中间移动,直到不能被作为系统输入的数据流为止,则前一个数据流就是系统的逻辑输入。
从系统的物理输出端开始,向系统的中间移动,找出离物理输出端最远的、仍可作为系统输出的部分就是系统的逻辑输出。
逻辑输入和逻辑输出之间的部分是系统的变换中心。
实际的数据流图往往比这个例子复杂,输入、输出数据流都可能有多个,这时,需要对每个输入、输出数据流逐个进行分析,确定相应的逻辑输入、逻辑输出。处于这些逻辑输入、逻辑输出之间的处理框就是主加工。主加工可能包括数据流图中多个处理框。
分析过程中由于对输入、输出的划分不同,可能会得到不同的系统结构,但差异不会太大。
(2)设计模块结构图的顶层和第一层
系统模块结构图的顶层是主控模块,负责对全系统进行控制和协调,通过调用下层模块来实现系统的各种功能。
在与变换中心对应的位置上画出主控模块,作为模块结构图的“顶”,然后遵照“自顶向下,逐步细化”的原则,设计各层的模块。每创建一个模块必须确定该模块的外部特征、模块的功能及与其他模块的界面(调用时传送的信息)并为每个模块设置恰当的名字。
第一层模块按输入、变换中心、输出等分支来处理:为DFD中的每个逻辑输入设计一个输入模块,它的功能是向主控模块提供逻辑输入数据;为DFD中的每个逻辑输出设计一个输出模块,它的功能是将主控模块提供的数据输出;为DFD中的变换部分设计一个变换模块,它的功能是对逻辑输入进行加工处理,变换成逻辑输出。
(3)设计中、下层模块
对输入、变换、输出模块逐个分解,便可得到初始结构图。具体做法是:
根据DFD将系统模块结构图中第一层的各模块自顶向下逐级扩展,形成完整的系统模块结构图。(www.xing528.com)
输入模块的功能是向调用它的模块提供数据,故需要一个数据来源,因此,为每个输入模块设计两个下层模块:输入模块、变换模块。
为每个输出模块设计两个下层模块:变换模块、输出模块。直到到达物理输入端或物理输出端为止。
对变换模块的分解,目前还没有像以上的具体方法,只能通过研究数据流程图中相应加工的组成情况,应用前面介绍的耦合、内聚等概念,得到较好的分解。
变换后的模块结构图如图6-12所示。
图6-12 变换后的模块结构图
2.使用事务分析法导出模块结构图
事务型的数据流程图,如图6-13所示,某个加工将它的输入分解成一串平行的数据流,然后分别执行后面的某些加工。对于这类数据流程图,可以通过事务分析(Transaction Analysis)得到相应的模块结构图。
事务分析也是按“自顶向下,逐步细化”的原则进行。先设计主模块,其功能就是整个系统的功能。下面有一个“分析模块”和一个“调度模块”。前者分析事务的类型,后者根据不同的类型调用相应的下层模块。对于复杂的问题,还需分开设模块。这样图6-13的模块结构图便转换成图6-14所示。事务分析可以分为四步:
图6-13 事务分析导出模块结构图
(1)分析DFD,确定事务中心
事务从一般意义上讲可以是指一个信号、一个时间或一组数据,它们在系统中能引起一组处理动作。在数据处理工作中,一件事务是指一组输入数据,它可能属于若干类型中的一种,对于输入到系统中的每一种事务都需要采用一组特定的处理动作。
(2)设计高层模块
事务型DFD转换成的模块结构图,基本形式如图6-14所示。
图6-14 变换后的模块结构图
(3)设计中、下层模块
自顶向下,逐层细化,对高层模块进行必要分解,形成完整的模块结构图。
(4)对初始模块结构图进行修改和优化
当初始的系统模块结构图完成后,应根据模块结构设计的原则进行检查和改进,特别是应按照“低耦合,高内聚”的标准对结构图进行检查和修改。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。