什么是数据流程图(DFD)?

一图胜千言。数据流图(DFD)是可视化系统中信息流的传统方法。一个整洁而清晰的DFD可以图形化地描述大量的系统需求。它可以是手动的,自动的,或者两者的结合。

它显示了信息是如何进入和离开系统的,是什么改变了信息,以及信息存储在哪里。DFD的目的是显示整个系统的范围和边界。它可以作为系统分析人员与系统中充当重新设计系统起点的任何人员之间的通信工具。

它通常以一个上下文图作为DFD图的第0级开始,DFD图是整个系统的简单表示。为了进一步详细说明,我们深入到第1层图,其中包含从系统的主要功能分解而来的较低层功能。当需要进一步分析时,这可能会继续发展成一个2级图。升级到3级、4级等等是可能的,但超出3级的情况并不常见。请记住,分解特定函数的细节级别取决于该函数的复杂性。

图中的符号

现在,我们想简要地向您介绍一些您将在下面的教程中看到的图表符号。

外部实体

外部实体可以表示人、系统或子系统。它是某些数据的来源或流向。就业务流程而言,它是我们所研究的系统的外部。由于这个原因,人们习惯于在图的边缘绘制外部实体。

过程

流程是进行数据操作和转换的业务活动或功能。可以将流程分解为更细的细节级别,以表示如何在流程中处理数据。

数据存储

数据存储表示进程所需和/或产生的持久数据的存储。下面是一些数据存储的例子:成员表单、数据库表等。

数据流

数据流表示信息流,其方向由箭头表示,箭头显示在流连接器的末端。

在本教程中我们将做什么” />

  • 接下来,让我们创建一个外部实体。将鼠标指针放在系统上。按下并拖出右上角的资源目录按钮。

  • 释放鼠标按钮并从资源目录中选择双向数据流->外部实体。

  • 将新的外部实体命名为Customer。

  • 现在,我们将对系统访问的数据库进行建模。使用资源目录创建来自系统的数据存储,其中包含双向数据流。

  • 命名新的数据存储库存。

  • 创建另外两个数据存储,Customer和Transaction,如下所示。我们刚刚完成了上下文关系图。

如何绘制一级DFD” />

  • 连接到所选流程(系统)的数据存储和/或外部实体将在第1级DFD中引用。因此,当提示您将它们添加到新图表中时,单击Yes以确认。

  • 注意:新的DFD最初看起来应该与上下文关系图非常相似。每个元素都应该保持不变,除了系统过程(从这个新的DFD分解而来)现在已经没有了,取而代之的是一个空格(待阐述)。

  • 重新命名新的DFD。右键点击它的背景并选择Rename…在关系图的名称框中,输入Level 1 DFD并按回车键。

  • 在中心创建三个流程(流程订单、发货、收货),如下图所示。那是系统过程的老地方,我们把它们放在那里来阐述系统。

  • 连接数据流的连接线

  • 本节中的其余步骤是关于连接图中的模型元素的。例如,客户在下订单进行处理时提供订单信息。

  • 将鼠标指针放在客户上方。拖出资源目录图标并按进程顺序释放鼠标按钮。

  • 从资源目录中选择数据流。

  • 新订单信息有流程说明。

  • 同时,流程订单流程也从数据库中接收客户信息来处理订单。

  • 使用资源目录创建从客户到处理订单的数据流。

  • 可选:如果您愿意,可以将数据流标记为“客户信息”。但是,由于这个数据流在视觉上是相当不言自明的,我们将在这里省略它。

  • 通过组合来自客户(外部实体)的订单信息和来自客户(数据存储)的客户信息,Process order (Process)然后在数据库中创建一个事务记录。创建从流程顺序到事务的数据流。

  • 绘画技巧:

  • 若要重新排列连接线,请将鼠标指针置于要添加轴心点的位置。然后你会看到一个气泡在你的鼠标指针。按下并拖动到需要的位置。

  • 到目前为止,您的图表应该是这样的。

  • 一旦存储了事务,接下来就是传递过程。因此,创建一个来自Process Order (Process)的数据流来交付好(Process)。

  • 发货时需要阅读交易信息(即订单号,以便包装正确的产品发货)。从事务(数据存储)创建一个数据流来交付好(流程)。

  • 注意:如果缺少空间,请随意移动形状以腾出空间。

  • Ship Good还需要读取客户的送货地址信息。从客户(数据存储)创建一个数据流来交付好(流程)。

  • Ship Good然后更新库存数据库以反映所运货物。创建一个从发货(流程)到库存(数据存储)的数据流。更新的产品记录。

  • 一旦订单到达客户手中,发放收据的过程就开始了。其中,收据是根据存储在数据库中的事务记录准备的。因此,让我们从事务(数据存储)创建一个数据流来发出收据(流程)。

  • 然后向客户发出收据。让我们创建一个从问题收据(流程)到客户(外部实体)的数据流。命名数据流接收。

  • 您刚刚完成了第一级图的绘制,它应该是这样的。

如何提高DFD的可读性” />

  • 移动图形,使图表看起来不那么拥挤。

更多过程示例

下面的列表向您介绍了涉及不同业务和问题领域的各种数据流图示例。其中一些包括使用多个上下文级别。

  • 客户服务系统

  • 食品订单系统

  • 证券交易

  • 超市的应用

  • 车辆保养得宝

  • 视频租赁存储

资源

  • Order-Processing.vpp

  • Order-Processing_result.vpp

本教程的读者也可以阅读

  • 如何编写有效的用例” />本文http://jiagoushi.pro/node/857讨论:请加入知识星球【首席架构师圈】或者加微信小号【jiagoushi_pro】或者加QQ群【11107777】公众号

    【jiagoushipro】
    【超级架构师】
    精彩图文详解架构方法论,架构实践,技术原理,技术趋势。
    我们在等你,赶快扫描关注吧。微信小号

    【cea_csa_cto】
    50000人社区,讨论:企业架构,云计算,大数据,数据科学,物联网,人工智能,安全,全栈开发,DevOps,数字化.

    QQ群

    【11107767】深度交流企业架构,业务架构,应用架构,数据架构,技术架构,集成架构,安全架构。以及大数据,云计算,物联网,人工智能等各种新兴技术。
    加QQ群,有珍贵的报告和干货资料分享。

    视频号【超级架构师】
    1分钟快速了解架构相关的基本概念,模型,方法,经验。
    每天1分钟,架构心中熟。

    知识星球向大咖提问,近距离接触,或者获得私密资料分享。知识星球【首席架构师圈】微信圈子志趣相投的同好交流。微信圈子【首席架构师圈】喜马拉雅路上或者车上了解最新黑科技资讯,架构心得。【智能时刻,架构君和你聊黑科技】知识星球认识更多朋友,职场和技术闲聊。知识星球【职场和技术】微博【智能时刻】智能时刻哔哩哔哩【超级架构师】抖音【cea_csa_cto】超级架构师快手【cea_csa_cto】超级架构师小红书【cea_csa_cto】超级架构师首席架构师智库

    谢谢大家关注,转发,点赞和点在看。