「数据架构」数据流程图示例-订餐系统

简介: 「数据架构」数据流程图示例-订餐系统

数据流图(DFD)提供了系统内信息流(即数据流)的可视化表示。通过绘制数据流程图,您可以了解由参与系统流程的人员提供并交付给他们的信息、完成流程所需的信息以及需要存储和访问的信息。本文以一个订餐系统为例,对数据流图(DFD)进行了描述和说明。

食品订购系统示例

上下文

上下文关系图是只显示顶层的数据流关系图,也称为0级。在这个层次上,只有一个可见的流程节点,它代表了一个完整系统的功能,包括它如何与外部实体交互。上下文关系图的一些好处是:

  • 显示系统边界的概述
  • 使用简单的符号不需要任何技术知识
  • 简单的绘制,修改和阐述作为其有限的表示法

下图显示了为食品订购系统绘制的上下文数据流程图。它包含一个表示要建模的系统的流程(形状),在本例中是“食品订购系统”。它还显示将与系统交互的参与者(称为外部实体)。在本例中,供应商、厨房、经理和客户是将与系统交互的实体。在流程和外部实体之间有数据流(连接器),表明实体和系统之间存在信息交换。



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

1级过程

下图显示了第一级DFD,它是在DFD上下文中显示的食品订购系统流程的分解(即分解)。通读这张图,然后我们将介绍一些基于这张图的关键概念。


食品订单系统数据流图示例包含三个流程、四个外部实体和两个数据存储。

根据图表,我们知道客户可以下订单。订单食品流程接收订单,将其转发到厨房,将其存储在订单数据存储中,并将更新后的库存详细信息存储在库存数据存储中。该流程还向客户交付账单。

经理可以通过Generate Reports流程接收报告,该流程分别从库存数据存储和订单数据存储中获取库存细节和订单。

经理还可以通过提供库存订单来启动订单库存流程。流程将库存订单转发给供应商,并将更新后的库存详细信息存储在库存数据存储中。

数据流程图提示和注意事项

提示

  1. 过程标签应该是动词短语;数据存储由名词表示
  2. 数据存储必须至少与一个进程相关联
  3. 外部实体必须与至少一个流程相关联
  4. 不要让它变得太复杂;通常5 - 7个普通人可以管理流程
  5. DFD是不确定的——编号不一定表示顺序,它在与用户讨论时用于标识流程
  6. 数据存储不应该连接到外部实体,否则,这将意味着您将让外部实体直接访问您的数据文件
  7. 如果没有经过一个流程,数据流不应该存在于两个外部实体之间
  8. 有输入但无输出的过程被认为是黑洞过程

注意事项

不要混淆数据流和进程流

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

请记住,数据流图是为表示信息交换而设计的。数据流图中的连接器用于表示数据,而不是表示流程流、步骤或其他任何东西。当我们将结束于数据存储的数据流标记为“请求”时,这意味着我们将请求作为数据传递到数据存储中。虽然这可能是在实现级别的DBMS做支持的使用功能,而摄入一些值作为参数并返回一个结果,在数据流图中,我们倾向于把数据存储作为唯一的数据夹,并不拥有任何处理能力。如果您想对系统流或流程流建模,那么可以使用UML活动图或BPMN业务流程图。如果希望对数据存储的内部结构建模,请使用实体关系图。

资源

  • Food-Ordering-System.vpp

本教程的读者也可以阅读

  1. 什么是数据流程图(DFD)?如何绘制DFD?
  2. 如何编写有效的用例?
  3. 如何使用ERD对关系数据库设计建模?
  4. 如何开发现有的和将来的业务流程?
  5. 数据流程图与实例-客户服务系统
相关文章
|
1月前
|
消息中间件 存储 缓存
十万订单每秒热点数据架构优化实践深度解析
【11月更文挑战第20天】随着互联网技术的飞速发展,电子商务平台在高峰时段需要处理海量订单,这对系统的性能、稳定性和扩展性提出了极高的要求。尤其是在“双十一”、“618”等大型促销活动中,每秒需要处理数万甚至数十万笔订单,这对系统的热点数据处理能力构成了严峻挑战。本文将深入探讨如何优化架构以应对每秒十万订单级别的热点数据处理,从历史背景、功能点、业务场景、底层原理以及使用Java模拟示例等多个维度进行剖析。
55 8
|
1月前
|
存储 分布式计算 数据挖掘
数据架构 ODPS 是什么?
数据架构 ODPS 是什么?
343 7
|
1月前
|
数据采集 搜索推荐 数据管理
数据架构 CDP 是什么?
数据架构 CDP 是什么?
57 2
|
2月前
|
存储 前端开发 测试技术
Android kotlin MVVM 架构简单示例入门
Android kotlin MVVM 架构简单示例入门
40 1
|
2月前
|
测试技术 uml
#如何画好架构图:7种常用类型与示例
【10月更文挑战第12天】 架构图是展示系统结构和组件之间关系的图形表示,它对于理解系统的组织和设计至关重要。在不同的上下文中,架构图的类型和细节会有所不同。以下是7种常用的架构图类型及其示例:
214 2
|
3月前
|
存储 搜索推荐 数据库
MarkLogic在微服务架构中的应用:提供服务间通信和数据共享的机制
随着微服务架构的发展,服务间通信和数据共享成为关键挑战。本文介绍MarkLogic数据库在微服务架构中的应用,阐述其多模型支持、索引搜索、事务处理及高可用性等优势,以及如何利用MarkLogic实现数据共享、服务间通信、事件驱动架构和数据分析,提升系统的可伸缩性和可靠性。
56 5
|
2月前
|
存储 大数据 数据处理
洞察未来:数据治理中的数据架构新思维
数据治理中的数据架构新思维对于应对未来挑战、提高数据处理效率、加强数据安全与隐私保护以及促进数据驱动的业务创新具有重要意义。企业需要紧跟时代步伐,不断探索和实践新型数据架构,以洞察未来发展趋势,为企业的长远发展奠定坚实基础。
|
4月前
|
Java 数据库连接 微服务
揭秘微服务架构下的数据魔方:Hibernate如何玩转分布式持久化,实现秒级响应的秘密武器?
【8月更文挑战第31天】微服务架构通过将系统拆分成独立服务,提升了可维护性和扩展性,但也带来了数据一致性和事务管理等挑战。Hibernate 作为强大的 ORM 工具,在微服务中发挥关键作用,通过二级缓存和分布式事务支持,简化了对象关系映射,并提供了有效的持久化策略。其二级缓存机制减少数据库访问,提升性能;支持 JTA 保证跨服务事务一致性;乐观锁机制解决并发数据冲突。合理配置 Hibernate 可助力构建高效稳定的分布式系统。
77 0
|
20天前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
1月前
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
43 3