跳转到主要内容
Chinese, Simplified

数据流图(DFD)是表示流程或系统(通常是信息系统)的数据流的一种方式。 DFD还提供有关每个实体的输出和输入以及流程本身的信息数据流图没有控制流,没有决策规则,也没有循环。基于数据的特定操作可以用流程图表示。[1]

有几种用于显示数据流程图的符号。上面介绍的表示法是1979年由Tom DeMarco描述的,作为“结构化分析”的一部分。

对于每个数据流,流程中必须至少存在一个端点(源和/或目标)。流程的精细表示可以在另一个数据流程图中完成,该流程图将流程细分为子流程。

数据流图是结构分析建模工具的一部分。使用UML时,活动图通常会取代数据流图的角色。数据流计划的一种特殊形式是面向站点的数据流计划。

数据流图可以看作是反向Petri网,因为此类网络中的位置与数据存储器的语义相对应。类似地,Petri网和数据流以及数据流图的转换的语义应该被认为是等效的。

Data flow diagram with data storage, data flows, function and interface

 

具有数据存储,数据流,功能和接口的数据流程图

历史


DFD表示法采用图论,该理论最初用于运筹学以对组织中的工作流进行建模。 DFD源于1970年代末在SADT(结构化分析和设计技术)方法中使用的活动图。 DFD推广者包括爱德华·尤登,拉里·康斯坦丁,汤姆·德马可,克里斯·加内和特里什·萨尔森。[2]

数据流图(DFD)迅速成为一种流行的方式来可视化软件系统过程中涉及的主要步骤和数据。尽管DFD在理论上可以应用于业务流程建模,但通常用于显示计算机系统中的数据流。 DFD对记录主要数据流或在数据流方面探索新的高级设计很有用。[3]

DFD组件

Data flow diagram - Yourdon/DeMarco notation
数据流程图-Yourdon / DeMarco表示法

DFD由流程(process),流程(flow),仓库和终止符组成。查看这些DFD组件有几种方法。[4]

流程(Process)

流程(功能,转换)是将输入转换为输出的系统的一部分。进程的符号是圆形,椭圆形,矩形或带有圆角的矩形(根据符号的类型)。这个过程用一个单词,一个简短的句子或一个显然可以表达其实质的短语来命名。[2]

数据流

数据流(流,数据流)显示了信息(有时也很重要)从系统的一部分转移到另一部分。流程的符号是箭头。该流应具有一个名称,该名称确定要移动的信息(或什么材料)。例外是流程,在该流程中,通过链接到这些流程的实体清楚地传输了哪些信息。在不仅仅提供信息的系统中对物质转移进行建模。流应该只传输一种类型的信息(材料)。箭头显示了流向(如果去往/来自实体的信息在逻辑上是依赖的-例如问题和答案,它也可以是双向的)。流程链接流程,仓库和终结者。[2]

仓库

仓库(数据存储,数据存储,文件,数据库)用于存储数据以备后用。商店的符号是两条水平线,另一种查看方式显示在DFD注释中。仓库的名称是一个复数名词(例如订单)-它是从仓库的输入和输出流派生的。仓库不必只是数据文件,例如,带有文件的文件夹,文件柜和光盘。因此,在DFD中查看仓库与实现无关。来自仓库的流通常表示读取存储在仓库中的数据,而进入仓库的流通常表示数据输入或更新(有时还删除数据)。仓库由两条平行的线表示,存储器名称位于它们之间(可以将其建模为UML缓冲节点)。[2]

终结者

终结器是与系统进行通信并位于系统外部的外部实体。例如,它可以是不属于同一组织的各种组织(例如,银行),人群(例如,客户),主管部门(例如,税务局)或部门(例如,人力资源部门)到模型系统。终结器可以是建模系统与之通信的另一个系统。[2]

创建DFD的规则


实体名称应易于理解,无需进一步说明。 DFD是由分析师根据对系统用户的采访而创建的系统。它一方面是由系统开发人员确定的,另一方面是由项目承包商确定的,因此实体名称应适合于模型域或业余用户或专业人员。实体名称应该是通用的(独立的,例如进行活动的特定个人),但应明确指定实体。流程应编号,以便于映射和引用特定流程。编号是随机的,但是有必要在所有DFD级别上保持一致性(请参阅DFD层次结构)。 DFD应该明确,因为一个DFD中的最大进程数建议为6到9,一个DFD中的最小进程数为3。[1] [2]例外是所谓的上下文图,其中唯一的过程表示模型系统以及与系统通信的所有终止符。

DFD一致性


DFD必须与系统的其他模型(ERD,STD,数据字典和过程规范模型)一致。每个进程必须具有其名称,输入和输出。每个流应有其名称(例外请参见流)。每个数据存储都必须具有输入和输出流。输入和输出流不必在一个DFD中显示-但是它们必须存在于描述同一系统的另一个DFD中。一个例外是位于系统外部的仓库(与系统进行通信的外部存储)。[2]

DFD层次结构


为了使DFD更加透明(即进程不太多),可以创建多级DFD。级别较高的DFD的详细程度较低(在级别较低的DFD上汇总的详细程度较高)。上下文DFD在层次结构中最高(请参阅DFD创建规则)。所谓的零电平,其后是DFD 0,从进程编号开始(例如,进程1,进程2)。接下来,所谓的第一级-DFD 1-继续编号。例如。流程1分为DFD的前三个级别,分别为1.1、1.2和1.3。类似地,第二级(DFD 2)中的进程编号为1.1.1、1.1.2、1.1.3和1.1.4。级别数取决于模型系统的大小。 DFD 0进程可能没有相同数量的分解级别。 DFD 0包含最重要的(汇总的)系统功能。最低级别应包括能够为大约一个A4页创建一个流程规范(Process Specification)的流程。如果最小规格应更长,则应为该流程创建一个附加级别,以将其分解为多个流程。为了清楚地了解整个DFD层次结构,可以创建垂直(横截面)图。仓库显示在首次使用的最高级别,也显示在每个较低的级别。[2]

See also

 

原文:https://en.wikipedia.org/wiki/Data-flow_diagram

本文:http://jiagoushi.pro/node/896

讨论:请加入知识星球【首席架构师圈】或者微信圈子【首席架构师圈】

Article
知识星球
 
微信公众号
 
视频号