什么是数据流图 Data Flow Diagram (DFD)
什么是数据流图(DFD)?如何绘制DFD?
一张图片胜过千言万语。数据流图(DFD)是系统内信息流的传统视觉表示。一个整齐而清晰的DFD可以用图形描绘出大量的系统需求。它可以是手动的,自动的或两者的组合。
它显示了信息如何进入和离开系统,什么改变了信息以及信息的存储位置。DFD的目的是显示整个系统的范围和界限。它可能被用作系统分析员和任何参与系统的人之间的交流工具,作为重新设计系统的起点。
它通常以上下文图开始,作为DFD图的0级,这是整个系统的简单表示。为了进一步阐述,我们深入到一级图,将较低级别的功能从系统的主要功能中分解出来。当需要进一步分析时,这可能会继续发展成为二级图。级别3,级别4等等是可能的,但是超出级别3的任何东西都不是很常见。请记住,分解特定函数的细节水平实际上取决于函数的复杂性。
DFD图表符号 (Diagram Notations)
现在我们要简要介绍一下您将在下面教程中看到的一些图表符号。
外部实体
外部实体可以代表人,系统或子系统。这是某些数据来自或去的地方。就业务流程而言,这是我们研究的系统的外部。出于这个原因,人们习惯于在图表的边缘绘制外部实体。
处理 (Process)
一个过程是一个业务活动或功能,其中的数据处理和转换发生。一个进程可以被分解成更细的细节,用于表示数据在进程中的处理方式。
数据存储 (Data Store)
数据存储表示由进程需要和/或产生的持久性数据的存储。这里有一些数据存储的例子:会员表单,数据库表格等
数据流 (Data Flow)
数据流代表信息流,其方向由流量连接器末端显示的箭头表示。
我们将在本教程中做什么?
在本教程中,我们将向您展示如何绘制上下文图,以及一级图。
注意:我们在这里使用的软件是Visual Paradigm。欢迎您下载Visual Paradigm的30天免费 评估版,以便浏览下面的示例。没有注册,电子邮件地址或义务是必需的。
如何绘制 Context Diagram 级DFD?
- 要创建新的DFD,请从工具栏中选择图表>新建。
- 在New Diagram窗口中,选择Data Flow Diagram,然后单击Next。
- 输入上下文作为图表名称,然后单击确定确认。
- 我们现在将绘制第一个过程。从图表工具栏,将过程拖到图上。命名新的进程系统。
- 接下来,我们来创建一个外部实体。请将鼠标指针悬停在System上。按下并拖出右上角的资源目录按钮。
- 释放鼠标按钮并从资源目录中选择双向数据流 - >外部实体。
- 命名新的外部实体Customer。
- 现在我们将模拟系统访问的数据库。使用资源目录从系统创建一个数据存储,其间存在双向数据流。
- 命名新的数据存储库。
- 创建另外两个数据存储,Customer和Transaction,如下所示。我们刚刚完成了上下文图。
如何绘制1级 (Level 1) DFD?
- 我们将不再从头创建另一个图表,而是分解系统进程以形成一个新的DFD。右键单击系统,然后从弹出菜单中选择分解。
- 连接到所选进程(系统)的数据存储和/或外部实体将在1级DFD中被引用。因此,当系统提示您将其添加到新图时,单击是确认。
注意:新的DFD看起来应该与上下文图非常相似。每个元素都应该保持不变,除了系统进程(从这个新的DFD分解)现在消失了,并被一个空白空间(将被阐述)取代。 - 重新命名新的DFD。右键单击其背景,并选择重命名...。在图的名称框中,输入Level 1 DFD,然后按ENTER。
- 如下所示,在中心创建三个流程(流程订单,运送情况,发货收据)。这是系统过程的旧点,我们把它们放在那里来详细说明系统。
用连接线 (Connection Line) 连接数据流
本节中的其余步骤是关于连接图中的模型元素。例如,客户在下订单处理时提供订单信息。
- 将鼠标指针放在Customer上。拖出资源目录图标并释放流程订单上的鼠标按钮。
- 从资源目录中选择数据流。
- 输入订单信息有流量的标题。
- 同时流程订单流程也接收来自数据库的客户信息以处理订单。
使用资源目录创建从客户到流程订单的数据流。
可选:如果您愿意,您可以标记数据流“客户信息”。但是由于这个数据流在视觉上是相当自明的,所以我们在这里省略它。 - 通过结合来自客户(外部实体)的订单信息和来自客户(数据存储)的客户信息,流程订单(过程)然后在数据库中创建交易记录。创建从流程订单到交易的数据流。
绘图提示:
要重新排列连接线,请将鼠标指针放在要为其添加枢轴点的位置。然后你会在鼠标点看到一个气泡。点击并拖动到你需要的地方。
到目前为止,你的图应该看起来像这样。
- 一旦交易被储存,运输过程就会结束。因此,创建一个从流程订单(流程)到货运状态(流程)的数据流。
- Ship Good需要读取交易信息(即Order_为了打包正确的产品交付,从Transaction(数据存储)创建一个数据流到Ship Good(处理)
注意:如果缺少空间,感觉自由移动周围的形状,以腾出空间。 - Ship Good也需要阅读他/她的送货地址的客户信息。从Customer(数据存储)创建一个数据流到Ship Good(流程)。
- 装船好,然后更新库存数据库,以反映出货。创建一个从船舶良好(过程)到库存(数据存储)的数据流。将其命名为更新产品记录。
- 一旦订单到达客户手中,问题回执过程就开始了。其中,基于存储在数据库中的交易记录来准备收据。所以让我们创建一个从Transaction(数据存储)到Issue Receipt(process)的数据流。
- 然后收据发给客户。让我们创建一个从问题收据(流程)到客户(外部实体)的数据流。命名数据流收据。
你刚完成绘制1级图应该看起来像这样。
如何提高DFD的可读性 (Readability)?
上面完成的图表看起来有点僵硬和忙碌。在本节中,我们将对连接器进行一些更改以提高可读性。
- 右键单击图(Level 1 DFD)并选择连接器>曲线。图中的连接器现在是曲线。
- 移动周围的形状,使图看起来不那么拥挤。
更多的DFD例子
下面的列表将引导您查看涵盖不同业务和问题域的各种数据流图示例。
- 客户服务系统
- 食物订购系统
- 证券交易
- 超市应用程序
- 车辆维修站
- 视频租赁商店
查看本教程的用户也查看过
- 如何编写有效的使用案例?
- 数据流图:例子 - 食物订购系统
- 如何使用ERD建模关系数据库设计?
- 在线共享和讨论流程图
- 如何开发现在和将来的业务流程?
什么是数据流图 Data Flow Diagram (DFD)相关推荐
- 数据流图(Data Flow Diagram ,简称DFD)
在信息处理系统中应用数据流图,通过对系统中数据.数据加工的全面分析,准确勾画出系统的框架,系统开发人员问以此为交流平台,共同分析可行性.合理性等,有助于系统缺陷在分析阶段被及时的发现和消除,为系统的设 ...
- 数据可视化 —— 数据流图(Data Flow Diagram)
数据流图(Data Flow Diagram):简称 DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能.数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表 ...
- 软考-数据流图详解(Data Flow Diagram)
一.概念 它是将提供给用户的业务流程图("物理模型")进行功能建模,转化成开发人员能够理解的一系列"逻辑模型"图,即以图形化的方法描绘数据在系统中的流动和处理的 ...
- data flow(数据流图)
软件需求分析的基础:机构化分析方法. 结构化分析方法适用于数据处理类型软件的需求分析.它提供的主要建模工具包括 数据流图.数据字典.机构化英语.判定表.和判定树等. 在这里主要说明DFD图的使用和画法 ...
- 01_关于TensorFlow、什么是数据流图(Data Flow Graph)、TensorFlow的特征、谁可以使用Tensorflow、为啥Google要开源这个神器?
1 关于TensorFlow TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库.节点(Nodes)在图中表示数学操作,图中的线(edges)则表 ...
- 深度学习编译器Data Flow和Control Flow
深度学习编译器Data Flow和Control Flow 本文介绍了一下深度学习框架的Data Flow和Control Flow,基于TensorFlow解释了TensorFlow是如何在静态图中 ...
- Cumulative Flow Diagram for Best Process Stability
The cumulative flow diagram will show you how stable is your flow. It displays any weaknesses and pr ...
- GraphCodeBERT: Pre-Training Code Representation With Data Flow
论文来源:ICLR-2021 论文链接:https://arxiv.org/abs/2009.08366(看时间,应该是2020发在了arxiv上,2021被ICLR录用) ⭐主要贡献: 可以说是在 ...
- Spring Cloud Data Flow 中的 ETL
来源:SpringForAll社区 1 概述 Spring Cloud Data Flow是一个用于构建实时数据管道和批处理过程的云原生工具包. Spring Cloud Data Flow已准备好用 ...
最新文章
- JVM学习笔记(二)------Java代码编译和执行的整个过程
- Linux vim 中文显示乱码解决方法
- 怎样成为php高手,怎么成为php高手?如何自学成为php高手?优秀的PHP开发者是怎样炼成的?-PHP教程-基础篇-php语法基础--创业的风,吹向了年轻之长藤个人博客网站...
- 过滤器解决Struts2重定向漏洞
- Pytorch教程(十六):FashionMNIST数据集DataSet DataLoader
- SpringMVC拦截器之拦截器接口方法演示
- 编写mysql的工具_自己编写的数据库工具类
- 为支持两个语言版本,我基于谷歌翻译API写了一款自动翻译的 webpack 插件
- 数字猜谜游戏python_Python Tkinter教程系列02:数字猜谜游戏
- LoadRunner10自带的WEBTOURS,无法显示Flights页面问题解决办法
- Java高级进阶学习资料!Java虚拟机的垃圾回收机制
- j2ee中如何拦截jsp页面?
- Python-Pandas-Excel/CSV 数据处理大全整理 (二)
- Google Colaboratory:一款用于深度学习的免费GPU使用方法
- 厚度仅2.5毫米,重60克,英伟达斯坦福做出了超轻薄VR眼镜
- Pyside2 Qlabel如何快速添加click鼠标单击事件(新手上路,勿喷!)
- mysql cbrt函数_Hive FUNCTIONS函数
- 淘宝天猫1688通过图片搜索到相关产品API(拍立淘以图搜图API接口调用)
- django重置密码发送html邮件,django 开发忘记密码通过邮箱找回功能示例
- Android studio成功运行自带模拟器问题详解,捎带中文用户名路径有感