|
知识路径: > 信息系统开发和运行管理知识 > 系统分析设计基础知识 > 系统总体结构设计、详细设计 > 系统总体设计 > 模块结构设计 >
|
考试要求:了解
相关知识点:3个
|
|
|
|
结构化系统设计方法与结构化系统分析有着密切的联系。系统分析阶段,用结构化分析方法获得用DFD等工具描述的系统说明书。设计阶段则以DFD为基础设计系统的模块结构。本节讨论如何从数据流程图导出初始结构图。
|
|
|
数据流程图有两种典型的结构:变换型(transform)结构和事务型(transaction)结构。对这两种结构,可以分别通过变换分折方法和事务分析方法导出标准形式的结构图。采用这些方法时,都是先设计结构图的顶端主模块,然后自顶向下逐步细化,最后得到满足数据流程图要求的系统结构。
|
|
|
|
变换结构是一种线性结构。它可以明显地分成逻辑输入、主加工和逻辑输出。下图(a)是一个典型的例子。变换分析(Transform Analysis)过程可以分为三步:找出逻辑输入、主加工和逻辑输出;设计顶层模块和第一层模块;设计中、下层模块。下面分别进行讨论。
|
|
|
|
如果设计人员经验丰富,又熟悉系统说明书,则很容易确定系统的主加工。例如,几股数据流的汇合处往往就是系统的主加工。若一时不能确定哪是主加工,可以用下面的方法先确定哪些数据流是逻辑输入,哪些数据流是逻辑输出。
|
|
|
从物理输入端开始,一步步向系统的中间移动,直至这样一个数据流:它已不能再被看作系统的输入,则它的前一个数据流就是系统的逻辑输入。在下图(a)中,从“原始数据”这个数据流开始向中间移动,逐个分析数据流,发现数据流“P3→P4”不能再被理解为系统的输入了。因此,数据流“P2→P3”是逻辑输入。
|
|
|
同理,从物理输出端开始,逆数据流方向往中间移动,可以确定系统的逻辑输出。介于逻辑输入和逻辑输出之间的加工就是主加工。下图(a)中的处理框P3就是主加工。
|
|
|
当然,实际的数据流程图往往比这个例子复杂,输入、输出数据流都可能有多个。这时,需要对每个输入、输出数据流进行分析,确定相应的逻辑输入、逻辑输出。处于这些逻辑输入、逻辑输出之间的处理框就是主加工。主加工可能包括数据流程图中的多个处理框。
|
|
|
|
|
|
|
从上面的分析过程可以看出,逻辑输入、逻辑输出的划分涉及对数据流的理解。各人的理解不同,结果就有差异,但一般出入不会太大。
|
|
|
|
找到主加工之后,遵照“自顶向下,逐步加细”的原则,设计各层的模块。每创建一个模块,必须确定该模块的外部特征:模块的功能、与其他模块的界面(调用时传送的信息)。为每个模块起一个名字,这个名字应当恰如其分地反映出这个模块的功能。
|
|
|
系统的主加工就是系统的顶层模块,其功能就是整个系统的功能。
|
|
|
第一层模块按输入、变换、输出等分支来处理:为每一个逻辑输入设计一个输入模块,其功能是为顶层模块提供相应的数据;为每一个逻辑输出设计一个输出模块,它的功能即是输出顶层模块的输出信息;为主加工设计一个变换模块,它的功能就是将逻辑输入变换成逻辑输出。第一层模块与顶层模块之间传送的数据应该同数据流程图相对应。
|
|
|
上图(a)有一个逻辑输入,一个逻辑输出。所以对应结构图第一层模块共三个,即宽度为3,如上图所示。
|
|
|
|
对输入、变换、输出模块逐个分解,便可得到初始结构图。
|
|
|
输入模块要为系统提供逻辑输入,一般要进行变换,先确定实现最后变换的变换模块。这个变换模块显然又需要某些输入,对每个这样的输入,对应一个新的输入模块。用类似方法依次分解下去,直到最终的物理输入为止。
|
|
|
|
对变换模块的分解,目前还没有与上面类似的方法。此时,需要研究数据流程图中相应加工的组成情况。
|
|
|
|
下图是事务型结构的例子。这种结构中,某个加工将它的输入分离成一串平行的数据流,分别执行后面的某些加工。对于这种类型的数据流程图,可以通过事务分析得到相应的结构图。
|
|
|
|
|
事务分析也是按“自顶向下,逐步细化”的原则进行的。先设计主模块,其功能就是整个系统的功能。下面有一个“分析模块”和“调度模块”。前者分析事务的类型,后者根据不同的类型调用相应的下层模块。这样得到与上图相应的结构图,如下图所示。这里作用范围可能在控制范围之外,从而产生控制耦合。对于不太复杂的系统,可以通过采用逐模块判别事务类型来解决这一问题。对于复杂的问题。还得分开设模块。
|
|
|
|
|
前面讨论了变换分析、事务分析。但实际应用中并非这么典型。这两种分析方法往往交替使用。数据流图的某一个局部可能是变换型,另一个局部可能是事务型,如此等等。这时,一般以变换分析为主,辅以事务分析。各个系统有不同的特点,初始结构图的设计方法也不同。凡是满足系统说明书要求的结构图都可以作为初始结构图。这里称之为初始结构图,是因为数据流图并没有完全反映出用户的要求(如查询要求、控制流),因此,按数据流图导出的结构图还要参照说明、查询分析等文档进行调整。
|
|
|