数据流图初学者指南

数据流图为组织理解、完善和实施新流程或系统提供了一种直接、有效的方式。它们是您的流程或系统的可视化表示,因此它们易於理解和修剪。资料流程图为组织提供了一种直接和有效的方法来理解、细化和实现新的过程或系统。 它们是流程或系统的视觉化表示,囙此很容易理解和修改。在我们深入研究资料流程图如何帮助改进任何业务系统或流程之前,让我们先看看它到底是什麽。

资料流程图(DFD)是通过流程或系统的信息流的视觉化表示。DFD帮助您更好地了解流程或系统操作,以发现潜在问题、提高效率并开发更好的流程。它们的范围从简单的概述到复杂的、细粒度的流程或系统显示。

Chapter 8. Data Flow Diagram - Visual Paradigm Community Circle

DFD在20世纪70年代开始流行,并且由於易於理解而保持了广泛的使用。视觉化显示流程或系统的工作方式比文字块更能吸引人们的注意力并更好地解释复杂概念,因此DFD能够帮助几乎所有人掌握系统或流程的逻辑和功能。

DFD有两种类型-

  1. 逻辑图 (Logical DFD) 显示了在系统中移动资讯的理论过程,如数据来自何处、流向何处、如何变化以及最终到达何处。
  2. 物理图 (Physical DFD) 显示了在系统中移动资讯的实际过程,如系统的特定软件、硬体、档案、员工和客户如何影响其信息流。

您可以使用逻辑图或物理图来描述相同的信息流,也可以将它们结合使用,以便在更细粒度的级别上理解流程或系统。但是,在使用DFD了解系统或流程的信息流之前,您需要知道用於描述它的标准符号或符号。

资料流程图符号

资料流程图符号是标准化符号,如矩形、圆形、箭头和短文字标签,用於描述系统或流程的资料流程方向、资料登录、数据输出、资料存储点及其各种子流程。

DFDs中有四种常用的标记法:Yourdon&De Marco、Gene&Sarson、SSADM和Unified。它们都使用相同的标签和相似的形状来表示DFD的四个主要元素—外部实体、流程、资料存储和资料流程。

Data Flow Diagram Comprehensive Guide with Examples | by Warren Lynch |  Medium

外部实体 (External Entity)

外部实体也称为终结器、源、汇或参与者,是向图解系统发送数据或从图解系统接收数据的外部系统或行程。它们要麽是资讯的来源,要麽是资讯的目的地,囙此它们通常被放置在图表的边缘。外部实体符号在不同的模型中是相似的,但Unified除外,它使用棒状图形,而不是矩形、圆形或正方形。

过程 (Process)

过程是一个过程,通过获取传入数据、更改数据并生成输出来操纵数据及其流。一个行程可以通过执行计算和使用逻辑对数据进行排序,或者改变资料流程的方向来实现这一点。流程通常从DFD的左上角开始,在图的右下角结束。

资料存储 (Data Store)

资料存储保存资讯供以後使用,就像等待处理的档案档案一样。资料登录流经一个流程,然後流经一个资料存储,而数据输出流经一个资料存储,然後流经一个流程。

资料流程 (Data Flow)

资料流程是系统资讯通过流程和资料存储从外部实体获取的路径。通过箭头和简洁的标签,DFD可以向您显示资料流程的方向。

在开始绘制资料流程图之前,您需要遵循四个最佳实践来创建有效的DFD。

  1. 每个行程应至少有一个输入和一个输出。
  2. 每个资料存储应该至少有一个数据流入和数据流出。
  3. 系统存储的数据必须经过一个过程。
  4. DFD中的所有行程都必须连结到另一个行程或资料存储。

资料流程图 (DFD) 的级别 (Levels)

DFD的范围可以从简单的概述到复杂的系统或流程的细微性表示,从级别0开始,具有多个级别。最常见和直观的DFD是0级DFD,也称为上下文图。它们是通过系统或流程的信息流的可消化的、高层次的概述,囙此几乎任何人都能理解它。

级别0:上下文关系图
此DFD级别侧重於高级系统进程或功能以及流入或流出它们的资料来源。0级图表旨在简单、直观地概述流程或系统。
第1级:过程分解
虽然1级DFD仍然是对系统或流程的广泛概述,但它们也更为详细——它们将系统的单个流程节点分解为子流程。
第二级:深度潜水
DFD的下一个级别通过将每个级别1流程分解为细粒度的子流程来深入了解细节。
级别3:新增复杂性
3级和更高编号的DFD并不常见。这在很大程度上是由於需要大量的细节,这违背了其易於理解的初衷。

资料流程图 (DFD) 的级别 (Levels)

DFD的范围可以从简单的概述到复杂的系统或流程的细微性表示,从级别0开始,具有多个级别。最常见和直观的DFD是0级DFD,也称为上下文图。它们是通过系统或流程的信息流的可消化的、高层次的概述,囙此几乎任何人都能理解它。

级别0 (Level 0):上下文关系图 (Context Diagram)

此DFD级别侧重於高级系统进程或功能以及流入或流出它们的资料来源。0级图表旨在简单、直观地概述流程或系统。

第1级 (Level 1):过程分解 (Functional Decomposition)

虽然1级DFD仍然是对系统或流程的广泛概述,但它们也更为详细——它们将系统的单个流程节点分解为子流程。

第二级 (Level 2):深度潜水 (Deeper Decomposition)

DFD的下一个级别通过将每个级别1流程分解为细粒度的子流程来深入了解细节。

级别3 (Level 3):复杂性 (Higher Complexity)

3级和更高编号的DFD并不常见。这在很大程度上是由於需要大量的细节,这违背了其易於理解的初衷。

证券交易平台示例

上下文DFD (Context Diagram)

下图显示了为证券交易平台绘制的上下文数据流图。它包含一个表示要建模的系统的过程(形状),在本例中为“证券交易平台”。它还显示将与系统交互的参与者,称为外部实体。在此示例中,CS Assistant、_Customer_和_Broker_是将与系统交互的实体。在流程与外部实体之间,存在数据流(连接器),表明实体与系统之间存在信息交换。

上下文 dfd

上下文 DFD 是数据流模型的入口。它只包含一个进程,不显示任何数据存储。

1 级 DFD

下图为1级DFD,即上下文DFD所示的证券交易平台流程的分解(即分解)。通读该图,然後我们将基於该图介绍一些关键概念。

一级 dfd

证券交易平台数据流图示例包含五个流程、三个外部实体和三个数据存储。尽管没有设计指南来管理数据流图中形状的定位,但我们倾向於将流程放在中间,将数据存储和外部实体放在两侧,以便於理解。

根据图表,我们知道_客户服务助理_向_开户_流程提供客户详细信息。结果是_客户详细信息_存储在_客户_数据存储中,_帐户详细信息_存储在_帐户_数据存储中。尽管我们说过在_客户服务助理_提供详细信息之後会尝试存储客户和帐户详细信息,但数据流图并未暗示这样的事情。是我们的常识引导我们以自然理解的方式解释图表。严格来说,该图只告诉我们_开户_流程接收_客户详细信息_并生成客户和帐户详细信息,没有指定订单。请注意,数据流图没有回答在整个系统中以何种方式和顺序使用信息。如果此信息很重要且值得一提,请考虑使用BPMN 业务流程图UML 活动图等图表对其进行建模

流程_Check Transaction_从_Transaction_数据存储接收_Transaction 详细信息_并将其传递给_Customer_。

一个_客户_能_存入现金_通过提供_存款金额_,结果是_更新的帐户余额_存储在_客户_数据存储。

同样,客户_可以_提取现金。结果是他将收到_取款金额_,_更新後的账户余额_将存储在_账户_数据存储中。

最後,客户_和_经纪人_都可以启动下_订单_流程,这会导致_交易详细信息_存储在_交易_数据存储中。下_订单_流程还将_交易详细信息_传递给_证券交易所中心,这是系统范围之外的实体。在下一节中,我们将介绍一种表示这种实体的方法。

2 级 DFD

就像上下文 DFD 中的流程一样,级别 1 DFD 中的流程也可以分解为更深层次甚至更多的流程细节层次。下图显示了_Place Order_流程的2 级 DFD 。

二级dfd

此 DFD 中的外部实体和数据存储与上层(即上图)所示的实体和数据存储相对应。不同之处在於下_单_流程细分为下_单(在线)_流程和下_单(离线)_流程。

根据此图表,我们知道,_客户_可以进行_下订单(在线)通过提供_订购详细_而_经纪人_可以进行_下订单(电话)通过提供也_令细节; 在任何一种情况下都会导致_交易_详细信息存储在_交易_数据存储中并传递到_证券交易所中心

不要混淆数据流 (Data Flow) 和过程流 (Control process)

当看到从数据存储连接到进程的连接器时,一些设计人员可能会感到不舒服,而没有看到图中以某种方式显示的数据请求步骤。他们中的一些人会尝试通过在进程和数据存储之间添加连接器来表示请求,将其标记为“请求”或“请求某物”,这是错误的。

请记住,数据流图是为表示信息交换而设计的。数据流图中的连接器用於表示数据,而不是用於表示流程、步骤或其他任何内容。当我们将终止於数据存储的数据流标记为“请求”时,这字面意思是我们将请求作为数据传递​​到数据存储中。尽管在实现级别可能是这种情况,因为某些 DBMS 确实支持使用函数,这些函数将一些值作为参数并返回结果,但在数据流图中,我们倾向於将数据存储视为唯一的数据持有者具备任何处理能力。如果要对系统流或流程流建模,请改用 UML 活动图或 BPMN 业务流程图。如果要对数据存储的内部结构进行建模,请使用实体关系图


资源
  1. 证券交易平台.vpp

本教程的读者还阅读了

<<:  使用准确的 Microsoft MB-300 考试转储立即成功

>>:  用 Python 畅玩 Line bot - 16:Flex Message(三)

Day13 demand page 与 copy on write

前言 前面介绍了记忆体分页的管理机制,分页管理让记忆体管理不再以行程为管理的单位,而是以页为单位作为...

EP22 - 持续部署使用 Octopus Deploy 二部曲,安装 Octopus Deploy

昨天我们耗尽洪荒之力, 终於用 terraform 配置好整个基础设施, 今天我们将继续环境操作, ...

创建App-完结

创建App-完结 30天的学习日记就这样慢慢结束啦! 从第一天的专案设计到现成的样子,过程学习、错误...

day20 : redisDB keyDB on K8S (下)

昨天简略介绍了redis cluster的架构以及小小的讲了一下keydb,所以今天会透过redis...

[资料库] 学习笔记 - case when then 和 预存程序 之2

这次的问题是上一篇文的延伸 上一篇是使用者输入参数後,再将指定栏位的值改为1 那这次是输入参数後检查...