zoukankan      html  css  js  c++  java
  • 图解 数据流图(DFD)变换型与事务型转化为初始软件结构图分析

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

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

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

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

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

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

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

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

    (1) 找出系统的主加工

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

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

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

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

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

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

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

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

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

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

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

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

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

    (3) 设计中、下层模块

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    3.混合结构的分析

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

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

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

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

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


  • 相关阅读:
    HDU5418.Victor and World(状压DP)
    POJ2686 Traveling by Stagecoach(状压DP)
    POJ3254Corn Fields(状压DP)
    HDU5407.CRB and Candies(数论)
    CodeForces 352D. Jeff and Furik
    CodeForces 352C. Jeff and Rounding(贪心)
    LightOj 1282 Leading and Trailing
    Ural 1057. Amount of Degrees(数位DP)
    HDU 2089 不要62 (数位DP)
    HDU5366 The mook jong (DP)
  • 原文地址:https://www.cnblogs.com/lumnm/p/2206873.html
Copyright © 2011-2022 走看看