1

如果我有一个从后端的 API 读取的前端应用程序,那么我会有这样的数据流程图,因为数据从后端流向前端:

在此处输入图像描述

但是,当我想强调这是一个只读的 API,并且前端无法写入后端时,我觉得必须把箭头调转,说“前端从后端读取”:

在此处输入图像描述

但这会与数据流箭头冲突,因为箭头指示流的方向:

在此处输入图像描述

您如何表示与数据流图的读/写关系?

4

1 回答 1

0

数据流图使用箭头来显示数据流的方向。无论您使用Gane & Sarson还是Yourdon & DeMarco ),单向箭头表示单向流:

  • 您的第一个图表意味着数据从后端流向前端,并且仅朝那个方向流动。没有必要说它是只读的,因为流是单向的。

  • 如果您希望前端从后端读取和写入数据,则需要在相反方向上的第二个箭头。一种常见的做法是使用双向箭头(Yourdon 在几个示例中使用它,Gane 和 Sarson 甚至推荐它来保持图表简单)。

  • 如果您想让它只读,但指出用于查找相关数据的数据元素,您可以使用 Gane & Sarson 的“搜索参数规范”表示法(适用于数据存储而不是进程):

    在此处输入图像描述 资料来源:结构化系统分析,Chris Gane 和 Trish Sarson

您的第二张图会产生误导:它不仅会显示错误方向的流动,而且此外,DFD 约定是用流动的数据类型标记箭头:

应命名箭头以指示沿流移动的数据的含义,即名词。
带有动词名称的数据流表示已被省略的过程。进出流程的数据流必须以某种方式进行更改。
- 来源:Visual Paradigm 教程

这个约定也解释了为什么双向箭头在实践中很少见,只要你标记了流:返回的流会有一个稍微不同的名称(例如更新的数据、更正的数据、验证的数据)。

您的图表中唯一的模糊之处在于谁启动了流程:是前端读取还是后端写入?但这很正常:这种图表的目的不是要详细说明。您可以添加一个箭头“请求数据”以显示前端启动通信,但这会很快使您的图表超载,并且增加的精度会以牺牲可读性为代价。

于 2021-08-11T17:29:16.010 回答