数据流图(DFD)提供了系统中信息流的可视化表示。通过绘制数据流程图,可以了解参与系统流程的人员提供和交付的信息,完成流程所需的信息,以及需要存储和访问的信息。本文以一个订货系统为例,描述和说明了数据流图(DFD)。
食品订购系统示例
上下文
上下文图是仅显示顶层(也称为0级)的数据流图。在这个层次上,只有一个可见的流程节点,它代表了一个完整系统的功能,包括它如何与外部实体交互。上下文图的一些好处是:显示系统边界概述。使用简单的符号,不需要任何技术知识。简单的绘制、修改和细化是其有限的表现。下图显示了为食品订购系统绘制的上下文数据流程图。它包含一个表示要建模的系统的流程(形状),在本例中是“食物订购系统”。它还显示了将与系统交互的参与者(称为外部实体)。在本例中,供应商、厨房、经理和客户是将与系统交互的实体。流程与外部实体之间存在数据流(连接器),表明实体与系统之间存在信息交换。
上下文DFD是数据流模型的入口。它只包含一个进程,不显示任何数据存储。
1级过程
下图显示了第一级DFD,这是在DFD的上下文中显示的食物订购系统过程的分解(即分解)。通读此图,然后我们将基于此图介绍一些关键概念。食品订单系统数据流图示例包含三个流程、四个外部实体和两个数据存储。
根据图表,我们知道客户可以下订单。订单食品流程接收订单,将其转发到厨房,将其存储在订单数据存储中,并将更新的库存详细信息存储在库存数据存储中。该流程还向客户交付账单。
经理可以通过生成报告流程接收报告,该流程分别从库存数据存储和订单数据存储获取库存详细信息和订单。
经理还可以通过提供库存订单来启动订单库存流程。该流程将库存订单转发给供应商,并将更新的库存详细信息存储在库存数据存储中。
数据流程图提示和注意事项
提示
流程标签应为动词短语;数据存储用名词表示。数据存储必须至少与一个进程相关联。外部实体必须至少与一个流程相关联。不要把事情搞得太复杂;通常,5-7个普通人可以管理DFD的流程,这是不确定的。——号不一定表示订单。当与用户讨论时,它用于标识流程数据存储不应连接到外部实体。否则,这将意味着您将让外部实体直接访问您的数据文件。如果没有流程,数据流就不应该存在于两个外部实体之间。有输入但没有输出的过程被认为是黑洞过程注意事项
。不要把数据流和流程混为一谈。当一些设计人员看到连接器从数据存储连接到流程时,他们可能会感到不舒服,因为他们没有看到图表中以某种方式显示的数据请求的步骤。他们中的一些人会试图通过在进程和数据存储之间添加连接器来表示请求,并将它们标记为“请求”或“对某事的请求”,这是错误的。
请记住,数据流图旨在表示信息交换。数据流图中的连接器用于表示数据,而不是流程、步骤或其他任何东西。当我们将结束于数据存储的数据流标记为“请求”时,这意味着我们将请求作为数据传递给数据存储。尽管这可能是在实现级别
class="candidate-entity-word" data-gid="6188066" qid="6579723147380004109" mention-index="0">DBMS做支持的使用功能,而摄入一些值作为参数并返回一个结果,在数据流图中,我们倾向于把数据存储作为唯一的数据夹,并不拥有任何处理能力。如果您想对系统流或流程流建模,那么可以使用UML活动图或BPMN业务流程图。如果希望对数据存储的内部结构建模,请使用实体关系图。资源
- Food-Ordering-System.vpp
本教程的读者也可以阅读
- 什么是数据流程图(DFD)?如何绘制DFD?
- 如何编写有效的用例?
- 如何使用ERD对关系数据库设计建模?
- 如何开发现有的和将来的业务流程?
- 数据流程图与实例-客户服务系统
原文:https://www.visual-paradigm.com/tutorials/data-flow-diagram-example-food-ordering-system.jsp
本文:http://jiagoushi.pro/data-flow-diagram-examples-food-ordering-system
讨论:请加入知识星球【首席架构师圈】或者飞聊小组【首席架构师智库】