📜  开发系统的DFD模型

📅  最后修改于: 2021-08-25 18:44:15             🧑  作者: Mango

系统的数据流图(DFD)表示如何以图形方式将输入数据转换为输出数据。级别0也称为上下文级别,它表示系统的最基本和抽象的视图。随后,其他较低的级别可以从中分解。系统的DFD模型包含多个DFD,但是整个DFD模型只有一个数据字典。数据字典包含DFD中使用的数据项的定义。

上下文图:
它在单个进程/气泡中演示了系统的整个数据流。 Bubble标有“名词”,代表整个系统。这只是DFD中使用名词(以系统名称的形式)的气泡。因为上下文图的目的是获取系统而不是功能的上下文,所以它被命名。根据其执行的主要函数,所有其他气泡都有一个动词。

上下文图显示了三个主要内容:用户,流向系统和来自系统的数据。它捕获与系统交互的各种外部实体,以及作为传入和传出箭头的数据与系统之间的数据。上下文图需要分析SRS文档。数据流用箭头顶部的数据名称表示。

构造第1级和其他较低级别的图:
1级DFD包含3到7个表示功能的气泡。有些流程可以细分为子流程,每个流程代表一个气泡。每个Bubble都有一个动词来演示该过程的功能。要创建1级/ 2级或其他级别的DFD,气泡会分解为包含3-7个功能的子部分。如果子进程超过7个,则可以将一些相关信息组合在一起。如果少于3个子过程,则可以进一步分解以创建更多气泡。

分解:
气泡在DFD级别的连续级别上分解为子函数。分解称为爆炸/分解气泡。任何级别的气泡都可以分解为3到7个气泡。但是一旦发现气泡代表简单的指令集,就不应进一步分解气泡。任何级别的气泡太多,会使dfd难以理解。极少的气泡使分解变得多余而微不足道。

编号:
每个过程符号必须使用唯一的参考号来区分。当气泡x分解时,其子代编号为x.1,x.2,依此类推。它可以帮助确定其祖先,后继者以及确切的级别。例如,级别0 DFD编号为0。级别1编号为0.1、0.2、0.3或1、2、3,依此类推。级别2分别标记为1.1、1.2、1.3等。

平衡DFD:
具有数据流入和流出数据的父级dfd应该与下一个子级的数据流匹配。这称为平衡DFD。概念如图所示:

1级DFD

2级DFD分解P2

在级别1 DFD中,数据项D1从气泡2流出,而项目D2流入气泡2。在下一级别,气泡2被分解为三个子过程(2.1、2.2、2.3)。它有数据项D1流出,而D2流入。因此DFD在这里是平衡的。

代表过程的气泡应至少具有一个输入流和一个输出流。当气泡具有输入流而没有任何输出流时,称为“黑洞”。当一个过程有输出流但没有输入流时,则称为“奇迹”。一个处理步骤可能具有大于其输入总和的输出,称为“灰洞”。

构造DFD时应避免的常见错误:

  • DFD应始终代表数据流,并且不应有控制流。
  • 所有外部实体都应在上下文级别代表。
  • 系统的所有功能都必须在dfd中捕获,并且不应忽略任何功能。此外,仅应代表SRS中指定的那些功能。
  • 连接到数据存储的箭头无需使用任何数据名称注释。

数据存储箭头没有注释

  • DFD应该始终在所有级别上保持平衡。子流程中必须存在进出父流程的数据流。

DFD不平衡(子代中不会生成收据)

  • 上下文级别气泡始终以名词形式包含整个系统的名称,在其表示中不能使用动词。而所有其他级别在动词表示中仅具有动词。

以名词为系统名称的上下文级别

  • 级别0不应有任何数据库。级别0仅包含一个气泡和外部实体。

数据存储区的级别0不正确

  • DFD中不应显示混乱。当数据流也可能流入和流出DFD时,请将这些数据项组合为高级项。

DFD杂乱无章

  • 在DFD中具有唯一过程的所有气泡都应连接到另一个过程或数据存储。它不能单独存在,也不能与系统的其余部分连接。