「数据架构」5分钟学会数据流程图:客户服务系统示例

简介: 「数据架构」5分钟学会数据流程图:客户服务系统示例

数据流图(DFD)提供了系统内信息流(即数据流)的可视化表示。通过创建一个数据流图,您可以告诉参与系统流程的人员所提供和交付的信息、完成流程所需的信息以及需要存储和访问的信息。数据流图在软件工程中得到了广泛的应用。您可以在信息系统建模中使用DFD。本文以客户服务系统为例,对数据流图(DFD)进行了描述和说明。

CS系统示例

数据流图是一个层次图,包括:

  • 上下文关系图(概念上为零级)
  • 第1层的过程
  • 以及可能的第2级DFD和功能分解的进一步级别,这取决于系统的复杂性

上下文

下图显示了为铁路公司的客户服务系统绘制的上下文数据流程图。它包含一个表示要建模的系统的流程(形状),在本例中是“CS系统”。它还显示将与系统交互的参与者(称为外部实体)。在本例中,CS Assistant和Passenger是将与系统交互的两个实体。在流程和外部实体之间有数据流(连接器),表明实体和系统之间存在信息交换。


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

1级过程

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


CS系统数据流图示例包含四个流程、两个外部实体和四个数据存储。虽然没有控制数据流图中形状位置的设计指导原则,但我们倾向于将流程放在中间,将数据存储和外部实体放在两侧,以便于理解。

由图可知,乘客可以通过查询运输明细流程接收运输明细,具体由数据存储、运输明细和铁路实时统计提供。存储在运输明细中的数据是持久性数据(由标签“D”表示),而存储在铁路实时统计中的数据是短暂保存的瞬态数据(由标签“T”表示)。标注形状用于列出乘客可以查询的详细信息。

CS Assistant可以启动购买纪念品流程,将订单细节存储在订单数据存储中。虽然购买纪念品的是顾客本人,但是进入系统存储订单细节的是CS助理。因此,我们使数据流从CS助理到购买纪念品流程。

CS Assistant还可以通过提供订单细节来启动购买过程,这些细节将再次存储在订单数据存储中。数据流图是一个高度抽象的高级图。这里所绘制的数据存储顺序并不一定意味着数据库中的实际订单数据库或订单表。订单细节的物理存储方式将在以后实现系统时决定。

最后,CS Assistant可以通过提供事件和物品细节来启动报告丢失过程,并将信息存储在物品丢失数据库中。

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

用D、M和T表示数据类型

在数据流图中绘制的每个数据存储都以字母为前缀,默认情况下为'D'。字母表示数据存储所保存的数据的类型。字母“D”用于表示持久的计算机化数据,这可能是典型信息系统中最常见的数据类型。除了计算机化的数据,数据还可以被暂时保存一小段时间。我们称这种数据为暂态数据,用字母“T”表示。有时,数据是不用计算机来存储的。我们称这种数据为人工数据,用字母M表示。最后,如果数据在不使用计算机的情况下存储,并且保存时间很短,则称为手动暂态数据,用T(M)表示。

注意细节的层次

在这个数据流图示例中,在标记数据时多次使用了单词“details”。我们有“运输详情”和“订单详情”。如果我们把它们明确地写为“路线信息、列车时间和延误”、“纪念品名称、数量和数量”、“票款类型和数量”会怎样?这是正确的吗?这个问题没有明确的答案,但在做决定时试着问自己一个问题。你为什么要画DFD?

在大多数情况下,数据流程图是在系统开发的早期阶段绘制的,其中许多细节还有待确认。一般术语如“细节”、“信息”、“证书”的使用当然会留下讨论的空间。然而,使用通用术语可能会缺乏细节,使设计失去其实用性。所以这取决于你设计的目的。

不要透支

在数据流图中,我们关注的是系统和外部方之间的交互,而不是接口之间的内部通信。因此,接口和使用的数据存储之间的数据流被认为超出了范围,不应该显示在图中。

不要混淆数据流和进程流

当遇到从数据存储连接到流程的连接器时,如果没有在关系图上显示指定的数据请求步骤,一些设计人员可能会感到不舒服。有些设计人员会尝试将请求附加到流程和数据存储之间的连接器上,并将其标记为“请求”或“对某些东西的请求”,这当然是不必要的。

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

资源

  • Customer-Service-System.vpp

本教程的读者也可以阅读

  • 什么是数据流程图(DFD)?如何绘制DFD?
  • 如何编写有效的用例?
  • 数据流程图:实例-订餐系统
  • 如何使用ERD对关系数据库设计建模?
  • 如何开发现有的和将来的业务流程?
相关文章
|
1月前
|
存储 SQL 关系型数据库
ClickHouse(02)ClickHouse架构设计介绍概述与ClickHouse数据分片设计
ClickHouse的核心架构包括执行过程和数据存储两部分。执行过程涉及Parser与Interpreter解析SQL,通过Column、DataType、Block、Functions和Storage模块处理数据。Column是内存中列的表示,Field处理单个值,DataType负责序列化和反序列化,Block是内存中表的子集,Block Streams处理数据流。Storage代表表,使用不同的引擎如StorageMergeTree。数据存储基于分片和副本,1个分片由多个副本组成,每个节点只能拥有1个分片。
83 0
ClickHouse(02)ClickHouse架构设计介绍概述与ClickHouse数据分片设计
|
1月前
|
存储
嵌入式微处理器的系统架构中指令系统
嵌入式微处理器的系统架构中指令系统
15 0
|
2月前
|
缓存 NoSQL 关系型数据库
|
2月前
|
监控 数据可视化 关系型数据库
微服务架构+Java+Spring Cloud +UniApp +MySql智慧工地系统源码
项目管理:项目名称、施工单位名称、项目地址、项目地址、总造价、总面积、施工准可证、开工日期、计划竣工日期、项目状态等。
307 6
|
2月前
|
存储 安全 网络安全
「读书笔记」《大规模分布式存储系统:原理解析与架构实战》:八
「读书笔记」《大规模分布式存储系统:原理解析与架构实战》:八
|
2月前
|
分布式计算 关系型数据库 大数据
「读书笔记」《大规模分布式存储系统:原理解析与架构实战》:九
「读书笔记」《大规模分布式存储系统:原理解析与架构实战》:九
|
2月前
|
存储 负载均衡 算法
「读书笔记」《大规模分布式存储系统:原理解析与架构实战》:一
「读书笔记」《大规模分布式存储系统:原理解析与架构实战》:一
|
2月前
|
存储 机器学习/深度学习 固态存储
「读书笔记」《大规模分布式存储系统:原理解析与架构实战》:二
「读书笔记」《大规模分布式存储系统:原理解析与架构实战》:二
「读书笔记」《大规模分布式存储系统:原理解析与架构实战》:二
|
1月前
|
存储 前端开发 BI
基于云计算技术的B/S架构智能云HIS系统源码 集挂号、处方、收费、取药、病历于一体
云HIS是针对中小医院机构、乡镇卫生室推出的一套基于云端的云HIS服务平台,借助云HIS,将医院业务流程化,大大提高医院的服务效率和服务质量,为客户提供医院一体化的信息解决方案。云HIS主要功能:包含门诊收费管理,住院收费管理,门诊医生工作站,住院医生工作站,住院护士工作站,辅助检查科室管理,药房药品管理,药库药品管理,报表查询。满足诊所、中小医院业务中看诊、收费、发药、药库管理、经营分析等多环节的工作需要。
45 4
|
2月前
|
SQL 分布式计算 Hadoop
Azkaban【基础 01】核心概念+特点+Web界面+架构+Job类型(一篇即可入门Azkaban工作流调度系统)
【2月更文挑战第6天】Azkaban【基础 01】核心概念+特点+Web界面+架构+Job类型(一篇即可入门Azkaban工作流调度系统)
101 0