数据流程图 (DFD) 示例:食品订购系统

什么是数据流图?

数据流图也称为气泡图。它通常用作创建系统概述的初步步骤,而不需要详细介绍,以后可以将其作为自上而下的分解方式进行详细说明。DFD显示将从系统输入和输出的信息类型,数据如何流经系统以及数据将存储在何处。与传统的结构化流程图不同,它不显示有关流程时序的信息,也不显示流程是按顺序还是并行运行的。

数据流图的目的

DFD有助于可视化当前系统或满足新要求所需的系统。软件开发人员更喜欢使用DFD,特别是当他们需要清楚地了解现有系统与系统的新范围或扩展部分之间的界限时。

DFD代表以下内容:

  1. 外部设备发送和接收数据
  2. 更改该数据的进程
  3. 数据流动本身
  4. 数据存储位置
DFD Example - Order Process System

所有数据流图都包括四个主要元素:实体,流程,数据存储和数据流。

外部实体 (Extneral Entity) - 也称为参与者,源或接收器和终结符,外部实体生成和使用在实体和正在图示的系统之间流动的数据。这些数据流是DFD的输入和输出。由于它们位于被分析系统的外部,因此这些实体通常位于图的边界。它们可以代表另一个系统或指示子系统。

流程 (Process) - 更改或转换数据流的活动。由于它们将传入数据转换为传出数据,因此所有进程必须在DFD上具有输入和输出。该符号基于其功能给出一个简单的名称,例如“Ship Order”,而不是在图上标记为“process”。在Gane-Sarson表示法中,使用矩形框,可以用参考编号标记,系统中过程发生的位置以及描述其功能的简短标题。进程通常在数据流图上从上到下,从左到右定向。

数据存储 (Data Store) - 数据存储不会生成任何操作,只是保存数据以供以后访问。数据存储可以包括长期保存的文件或在等待处理时短暂存储的一批文档。到数据存储的输入流包括改变存储数据的信息或操作。输出流将是从商店检索的数据。

数据流 (Data Flow) - 外部实体,流程和数据存储之间的数据移动用箭头符号表示,箭头符号表示流的方向。这些数据可以是电子的,书面的或口头的。输入和输出数据流根据数据类型或其关联的进程或数据存储进行标记,此名称与箭头一起写入。

分解为子系统 (Sub-Level DFD)

通过使用数据流图,系统可以分解为子系统,子系统可以进一步分解为更低级别的子系统。换句话说,数据流图遵循层次结构; 也就是说,图表可以由若干层组成,每个层对于特定的过程或数据功能是唯一的,并且每个子系统表示处理数据的过程或活动。0级图表从最基本的级别开始,也称为上下文级别,并尝试将系统整体记录。然后,分析师深入了解具有1级图表的各个流程的细节。

信息技术专业人员和系统分析师使用数据流图来记录和向用户显示数据如何在系统中的不同进程之间移动。分析师通常从总体情况开始,然后转向每个流程的更精细细节。

  1. 一个简洁明了的DFD可以用图形方式描绘出大量的系统要求。它可以是手动,自动或两者的组合。
  2. DFD  经常被用来作为预备步骤而无需进入很详细,以后可以阐述创建系统的概述。

其他DFD资源

食品订购系统描述:

数据流图(DFD)可用于显示问题域(例如,信息系统)内的信息流。这是食品订购系统的数据流程图。它显示了系统中涉及的主要过程,与过程相关的外部实体以及存储和提供系统所需数据​​的数据存储。。

使用此数据流图模板开始构建自己的模板。自定义DFD以反映问题的实体。单击“使用此模板”以启动。

DFD - Inventory System Example

绘制图

其他例子

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏BeJavaGod

使用ztree.js,受益一生,十分钟学会使用tree树形结构插件

看到ztree.js,这几个字眼,毋庸置疑,那肯定就是tree树形结构了,曾经的swing年代有jtree,后来jquery年代有jstree和treeview...

47940
来自专栏北京马哥教育

快学学Python异步IO轻松管理10k+并发连接

异步操作在计算机软硬件体系中是一个普遍概念,根源在于参与协作的各实体处理速度上有明显差异。软件开发中遇到的多数情况是CPU与IO的速度不匹配,所以异步IO存在于...

38460
来自专栏林冠宏的技术文章

Android 5.0 到 Android 6.0 + 的深坑之一 之 .so 动态库的适配

(原创:https://cloud.tencent.com/developer/user/1148436/activities) 目录:   前序   一,问题...

382100
来自专栏Golang语言社区

13 年的 Bug 调试经验总结

在《Learning From Your Bugs》一文中,我写了关于我是如何追踪我所遇到的一些最有趣的bug。最近,我回顾了我所有的194个条目(从13岁开始...

34060
来自专栏性能与架构

数据库数据切分

垂直切分 将数据库想象成由很多个一大块一大块的“数据块”(表)组成,垂直地将这些“数据块”切开,然后把它们分散到多台数据库主机上面 ? 优点 (1)数据库的拆分...

38550
来自专栏大数据人工智能

ZStack--工作流引擎

在IaaS软件中的任务通常有很长的执行路径,一个错误可能发生在任意一个给定的步骤。为了保持系统的完整性,一个IaaS软件必须提供一套机制用于回滚先前的操作步骤。...

51040
来自专栏张善友的专栏

Google SiteMap Protocol协议

在新浪看到这样的新闻Google雅虎微软联手支持网页手工提交标准, Google、微软和雅虎认为,统一标准有助于从整体上改进站点地图,从而搜索引擎可以将更广泛的...

241100
来自专栏Golang语言社区

13 年的 Bug 调试经验总结

在《Learning From Your Bugs》一文中,我写了关于我是如何追踪我所遇到的一些最有趣的bug。最近,我回顾了我所有的194个条目(从13岁开始...

36360
来自专栏有困难要上,没有困难创造困难也要上!

Linux使用sshfs通过ssh挂载远端机器

335110
来自专栏程序人生

思考,快与慢

吐槽:GitBook editor 有个二B的设计-当它莫名检测出文件被外星人修改后,会弹个无法取消的对话框-检测出外部修改,ignore? discard? ...

32170

扫码关注云+社区

领取腾讯云代金券