数据流图概述
数据流图概述
数据流图(Data Flow Diagram,DFD)是系统分析和设计中的重要工具,用于描述系统中数据的流动、处理和存储过程。本文将详细介绍数据流图的设计原则、主要组成部分、描述方式以及创建步骤,帮助读者更好地理解和应用这一工具。
数据流图的设计原则
数据守恒原则:对于任何一个加工来说,其所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者说是通过该加工能产生的数据。
守恒加工原则:对同一个加工来说,输入与输出的名字必须不相同,即使他们的组成成分相同。
输入输出原则:对于每个加工,必须既有输入数据流,又有输出数据流。
实体间数据流原则:外部实体与外部实体之间不存在数据流;外部实体与数据存储之间不存在数据流;数据存储与数据存储之间不存在数据流。
父图与子图平衡原则:子图的输入数据流父图相应加工的输入输出数据流必须一致,此即父图与子图的平衡,父图与子图之间的平衡原则不存在于单张图。
数据流与加工关系:数据流与加工有关,且必须经过加工。
- 父图:只有实体和数据流
- 子图:对父图的细分
数据流图的主要组成部分
数据流(Data Flow):数据流是系统中数据的流动,它可以是输入、输出或存储在系统中的数据。(起点或终点必须有一个是加工)
加工(Process):数据处理过程是对数据进行处理的单元,它可以是一个物理设备或软件模块。(至少有一个输入和输出)
数据存储(Data Store):数据存储是系统中存储数据的单元,它可以是一个文件、数据库或内存中的变量。
外部实体(Element Agent):外部实体是与系统进行信息交流的外部机构或个人,它可以是一个用户、另一个系统或传感器等。
基本加工逻辑描述
对基本加工的说明有三种描述方式:结构化语言、判断表(决策表)、判断树(决策树)。
基本加工逻辑描述的基本原则为:
对数据流图的每一个基本加工,必须有一个基本加工逻辑说明。
基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则。
加工逻辑说明必须描述实现加工的策略而不是实现加工的细节。(考点)
加工逻辑说明中包含的信息应是充足的,完备的,有用的,无冗余的。
创建数据流图的一般步骤
确定外部实体:确定与系统进行信息交流的外部机构或个人,例如用户、另一个系统或传感器等。
确定数据流:根据外部实体和系统的需求,确定需要交互的数据流。
确定数据处理过程:根据系统的功能需求和数据流,确定数据处理过程,例如计算、查询、存储等。
确定数据存储:根据数据处理过程的需求,确定需要存储的数据项和存储方式,例如文件、数据库或内存变量等。
绘制图形:使用数据流图的图形符号,绘制出外部实体、数据流、数据处理过程和数据存储的图形表示。
完善细节:在绘制完初步的数据流图后,根据系统的实际情况和完善需求,完善图中的细节,例如添加注释、标明数据类型和格式等。
异常现象
黑洞:一个加工只有输入数据流而无输出数据流。这通常是因为建模人员忘了输出。
奇迹:一个加工只有输出数据流而无输入数据流。这通常是因为输入流被忘记了。
灰洞:若一个加工的输入数据流无法通过加工产生输出流。灰洞是最常见的错误,也是最使人为难的错误。一旦数据流图交给了程序员,到一个加工的输入数据流必须足以产生输出数据流。
加工 3.1.2 有输入但是没有输出,我们称之为“黑洞”。因为数据输入到过程,然后就消失了。在大多数情况下,建模人员只是忘了输出。
加工 3.1.3 有输出但没有输入。在这种情况下,输入流似乎被忘记了。
加工 3.1.1 中输入不足以产生输出,我们称之为“灰洞”。这有几种可能的原因:一个错误的命名过程;错误命名的输入或输出;不完全的事实。灰洞是最常见的错误,也是最使人为难的错误。一旦数据流图交给了程序员,到一个加工的输入数据流必须足以产生输出数据流。