数据流图DFD

这里写目录标题

    • 一、数据流图的基本概念
    • 二、数据流图的优点
    • 三、数据流图的创建步骤
    • 四、数据流图的应用
    • 五、数据流图的设计原则

数据流图(Data Flow Diagram,DFD)是一种图形工具,用于描述数据在信息系统中的流动和处理过程。它能够反映系统的功能需求、信息交流以及数据处理过程,是系统分析和设计的重要工具之一。

一、数据流图的基本概念

数据流图是一种以图形方式表示数据处理过程的工具,它描绘了数据在系统中的流动路径和经过的处理过程。在数据流图中,各种不同形状的图形符号代表了不同的意义。例如,箭头表示数据流,矩形表示数据处理过程,圆角矩形表示数据存储,菱形表示决策等。

数据流图的主要组成部分包括以下四个方面:

数据流:数据流是系统中数据的流动,它可以是输入、输出或存储在系统中的数据。
数据处理过程:数据处理过程是对数据进行处理的单元,它可以是一个物理设备或软件模块。
数据存储:数据存储是系统中存储数据的单元,它可以是一个文件、数据库或内存中的变量。
外部实体:外部实体是与系统进行信息交流的外部机构或个人,它可以是一个用户、另一个系统或传感器等。
数据流图DFD_第1张图片

二、数据流图的优点

数据流图具有以下优点:

  • 可视化:数据流图使用图形方式表示系统的数据处理过程,使得系统的结构和流程更加直观和易于理解。
  • 抽象化:数据流图可以抽象地表示系统的功能和数据处理过程,使得设计人员能够关注系统的高层次结构和流程,而不需要过早地关注细节。
  • 简化复杂问题:通过将系统划分为多个较小的处理过程和数据流,数据流图能够将复杂的问题分解为更小的部分,使得分析更加清晰和简单。
  • 捕捉需求:数据流图可以帮助分析人员捕捉系统的功能需求和数据流,使得需求分析更加准确和全面。
  • 指导设计:数据流图可以为系统的设计和实现提供指导,它可以帮助设计人员确定系统的模块、接口和数据结构等。

三、数据流图的创建步骤

创建数据流图的一般步骤如下:

确定外部实体:确定与系统进行信息交流的外部机构或个人,例如用户、另一个系统或传感器等。
确定数据流:根据外部实体和系统的需求,确定需要交互的数据流。
确定数据处理过程:根据系统的功能需求和数据流,确定数据处理过程,例如计算、查询、存储等。
确定数据存储:根据数据处理过程的需求,确定需要存储的数据项和存储方式,例如文件、数据库或内存变量等。
绘制图形:使用数据流图的图形符号,绘制出外部实体、数据流、数据处理过程和数据存储的图形表示。
完善细节:在绘制完初步的数据流图后,根据系统的实际情况和完善需求,完善图中的细节,例如添加注释、标明数据类型和格式等。

举个例子

假设一家工厂的采购部门每天需要一张定货报表。报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号、零件名称、定货数量、目前价格、主要供应商、次要供应商。零件入库或出席称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存临界值时就应该再次定货。

要素 细节
源点/终点(外部实体) 采购员、仓库管理员
数据处理 产生报表、处理事务
数据流 定货报表、零件编号、零件名称、定货数量、目前价格、主要供应商、次要供应商、事务、零件编号、事务类型、数量
数据存储 定货信息(见定货报表)、库存清单、零件编号、库存量、库存量临界值

逐步分解地画出数据流图
第一步,画出最概括的系统模型。因为任何系统实质上都是由若干个数据源点/终点以及一个处理组成。这个处理就代表了系统对数据加工变换的基本功能,画出顶层数据流图。

第二步,画出0层数据流图

第二步,画出1层数据流图

批量更新更新数据

联机方式更新数据

节选自-软件工程导论第六版

四、数据流图的应用

数据流图广泛应用于系统分析和设计阶段,它是进行需求分析、系统设计、系统实现和系统测试的重要工具之一。在数据流图中,可以清晰地看出系统的数据处理流程、信息交流以及各部分之间的关系,有助于分析人员更好地理解系统的结构和功能,从而更好地进行系统设计和实现。

五、数据流图的设计原则

  • 数据守恒原则,对于任何一个加工来说,其所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者说是通过该加工能产生的数据。
  • 守恒加工原则,对同一个加工来说,输入与输出的名字必须不相同,即使他们的组成成分相同。
  • 对于每个加工,必须既有输入数据流,又有输出数据流
  • 外部实体与外部实体之间不存在数据流
  • 外部实体与数据存储之间不存在数据流
  • 数据存储与数据存储之间不存在数据流
  • 父图与子图的平衡原则,子图的输入数据流父图相应加工的输入输出数据流必须一致,此即父图与子图的平衡,父图与子图之间的平衡原则不存在于单张图
  • 数据流与加工有关,且必须经过加工

异常现象
黑洞:一个加工只有输入数据流而无输出数据流。
奇迹:一个加工只有输出数据流而无输入数据流。
灰洞:若一个加工的输入数据流无法通过加工产生输出流
数据流图DFD_第2张图片

  • 加工 3.1.2 有输入但是没有输出,我们称之为“黑洞”。因为数据输入到过程,然后就消失了。在大多数情况下,建模人员只是忘了输出。
  • 加工 3.1.3 有输出但没有输入。在这种情况下,输入流似乎被忘记了。
  • 加工 3.1.1 中输入不足以产生输出,我们称之为“灰洞”。这有几种可能的原因:一个错误的命名过程;错误命名的输入或输出;不完全的事实。灰洞是最常见的错误,也是最使人为难的错误。一旦数据流图交给了程序员,到一个加工的输入数据流必须足以产生输出数据流。

你可能感兴趣的:(系统架构设计师,数据库)