数据流图(DFD)变换型与事务型转化为初始软件结构图分析

在系统分析阶段,我们采用结构化分析方法得到了由数据流图、数据字典和加工说明等组成的系统的逻辑模型。现在,可根据一些规则从数据流图导出系统初始的模块结构图。

管理信息系统的数据流图通常也可分为两种典型的结构,即变换型结构和事务型结构。变换型结构的数据流图呈一种线性状态,见图6-4-4所示,它所描述的工作可表示为输入、主处理及输出。事务型结构的数据流图则呈束状,见图6-4-5所示,即一束数据流平行流人或流出,可能同时有几个事务要求处理。

图解 数据流图(DFD)变换型与事务型转化为初始软件结构图分析

图6-4-4 变换型结构的数据流图

图解 数据流图(DFD)变换型与事务型转化为初始软件结构图分析

图6-4-5    事务型结构的数据流图

这两种典型的结构分别可通过“变换分析”和“事务分析”技术,导出“变换型”和“事务型”初始的模块结构图。这两种方法的思想是首先设计顶层模块,然后自顶向下,逐步细化,最后得到一个满足数据流图所表示的用户要求的系统的模块结构图,即系统的物理模型。

下面分别讨论通过“变换分析”和“事务分析”技术,导出“变换型”和“事务型”初始结构图的技术。

1.变换型数据流图导出初始结构图的方法

因为变换型结构由输入、主处理和输出三部分组成,所以从变换型结构的数据流图导出变换型模块结构图,可分三步进行。

(1) 找出系统的主加工

为了处理方便,先不考虑数据流图中的一些支流,如出错处理等。

通常在数据流图中多股数据流的汇合处往往是系统的主加工。若没有明显的汇合处,则可先确定哪些数据流是逻辑输入和逻辑输出,从而获得主加工。

从物理输入端一步步向系统中间移动,直至到达这样一个数据流,它再不能被作为系统的输入,则其前一个数据流就是系统的逻辑输入,即离物理输入端最远的,但仍可视为是系统输入的那个数据流就是逻辑输入。

用类似方法,从物理输出端一步步向系统中间移动,则离物理输出端最远的,但仍可视为系统输出的那个数据流就是逻辑输出。

逻辑输入和逻辑输出之间的加工就是我们要找的主加工。如图6-4-6所示。

图解 数据流图(DFD)变换型与事务型转化为初始软件结构图分析

图6-4-6 在数据流图中找系统的主加工

(2) 设计顶层模块和第一层模块

首先在与主加工对应的位置上画出主模块(如图6-4-7所示),主模块的功能就是整个系统要做的工作,主模块又称为主控制模块。主模块是模块结构图的“顶”,现在我们就可按“自顶向下,逐步细化”的思想来画模块结构图顶下的各层了。每一层均需按输入、变换、输出等分支来处理。模块结构图第一层的画法如下:

① 为每一个逻辑输入画一个输入模块,其功能是向主模块提供数据。

② 为每一个逻辑输出画一个输出模块,其功能是把主模块提供的数据输出。

③ 为主处理画一个变换模块,其功能是把逻辑输入变换成逻辑输出。

至此,结构图第一层就完成了。

在作图时应注意主模块与第一层模块之间传送的数据,要与数据流图相对应(如图5-21所示)。

(3) 设计中、下层模块

因为输入模块的功能是向调用它的模块提供数据,所以它自已也需要一个数据来源。此外,输入模块必须向调用模块提供所需的数据,因此它应具有变换功能,能够将输入数据按模块的要求进行变换后,再提交该调用模块。从而,我们为每个输入模块设计两个下层模块,其中一个是输入模块,另一个是变换模块。

同理,也为每个输出模块设计两个下层模块。一个是变换模块,将调用模块所提供的数据变换成输出的形式;另一个是输出模块,将变换后的数据输出。

该过程由顶向下递归进行,直到系统的物理输入端或物理输出端为止(如图6-4-7所示)。每设计出一个新模块,应同时给它起一个能反映模块功能的名字。

运用上述方法,就可获得与数据流图相对应的初始结构图。

图解 数据流图(DFD)变换型与事务型转化为初始软件结构图分析

图6-4-7 由变换型数据流图导出的初始模块结构图

2.从事务型数据流图导出初始结构图的方法

当数据流图呈现“束状”结构时,应采用事务分析的设计方法。就步骤而言,该方法与变换分析方法大部分类似,主要差别在于由数据流图到模块结构的映射方式不同。

进行事务分析时,通常采用以下四步:

(1) 确定以事务为中心的结构,包括找出事务中心和事务来源。以图6-4-8的典型事务型数据流结构为例进行说明。

图解 数据流图(DFD)变换型与事务型转化为初始软件结构图分析

图6-4-8 事务型中心数据流图实例

(2) 按功能划分事务,将具备相同功能的事务分为同一类,建立事务模块。

(3) 为每个事务处理模块建立全部的操作层模块。其建立方法与变换分析方法类似,但事务处理模决可以共享某些操作模块。

(4) 若有必要,则为操作层模块定义相应的细节模块,并尽可能使细节模块被多个操作模块共享。

例如,图6-4-8是一个以事务为中心的数据流图,显然,加工“确定事务类型”是它的事务中心,由该数据流图经事务分析所得到的模块结构图如图6-4-9所示。

图解 数据流图(DFD)变换型与事务型转化为初始软件结构图分析

图6-4-9 事务型模块结构图实例

3.混合结构的分析

在规模较大的实际系统中,其数据流图往往是变换型和事务型的混合结构,如图6-4-10所示。此时可把变换分析和事务分析应用在同一数据流图的不同部分。例如,可以以“变换分析”为主,“事务分析”为辅进行设计。先找出主处理,设计出结构图的上层,然后根据数据流图各部分的结构特点,适当选用“变换分析”或“事务分析”就可得出初始结构图的某个方案。

图解 数据流图(DFD)变换型与事务型转化为初始软件结构图分析

图6-4-10 变换型和事务型混合结构的数据流图

图解 数据流图(DFD)变换型与事务型转化为初始软件结构图分析

图6-4-11 变换分析与事务分析的混合使用

如图6-4-11所示,其中第一层是用变换分析得到的,而模块“使b变成d”及下层模块和模块“变d为g” 及下层模块则是采用事务分析得到的。

从数据流图导出初始的模块结构图的方法就介绍到这里。必须指出的是,由于开发人员的素质、经验和个人理解程度不同,采用上述方法导出的初始模块结构图也不是唯一的。事实上,满足系统说明书要求的任何模块结构图都可以作为初始结构图。