数据流图(DFDS) 表示通过系统的信息流。DFD 迅速成为可视化软件系统流程中涉及的主要步骤和数据的流行方式。
数据流图 (DFD) 是表示流程或系统(通常是信息系统)的数据流的一种方式,例如:
- 数据来自哪里
- 它去哪里
- 如何存储
换句话说,它显示了系统如何使用自上而下的分解技术(或称为逐步细化)在输入和输出方面处理数据。
什么是逐步细化?
其中一个有效的方式来解决一个复杂的问题是把它分解成更简单的子问题。您首先将整个任务分解为更简单的部分。
逐步细化本质上是对系统进行分解,以深入了解构成系统的子系统,称为自顶向下分解法。
例如,系统概述被开发为系统上下文图,它指定但不指定子系统的任何级别。然后将这些子系统中的每一个细化为更详细的内容(例如 DFD 中的级别 0、1、2 等),有时在许多其他子系统级别上进行细化,直到将整个规范简化为基本元素。
通常,头脑风暴产生的想法(实际上是我们待办事项列表中的事情)处于不同“细节”级别 — — 其中一些比其他的“低”,或者,我们可以说,一些包含其他。
让我们按层次排列这些。换句话说,让我们确定哪些步骤是另一个步骤的一部分。一种方法是将每个动作视为一组动作。
逐步细化示例
收拾屋子
{真空餐厅,整理客厅}
厨师
{选择食谱,购买食材,烤鸡。做蔬菜}
设置表
{找到桌布,取出盘子,取出玻璃器皿,取出银器,餐巾}
烤鸡
{烤箱预热至400 度,将鸡肉放入锅中,将鸡肉放入400 度烤箱中90分钟}
做蔬菜
{切菜,煮菜}
(*来源:自上而下的设计和逐步细化 — — 维基书籍)
一旦确定了这些基本元素,我们就可以将它们构建到计算机模块中。一旦它们建成,我们就可以把它们放在一起,用这些单独的组件组成整个系统。
DFD中的自顶向下分解技术
在 DFD 中,自顶向下分解(也称为调平或逐步细化)是一种用于在较低级别的 DFD 中显示更多细节的技术。调平是通过绘制一系列越来越详细的图表来完成的,直到达到所需的详细程度。如图所示,DFD Leveling 首先将目标系统显示为单个进程,然后显示更多细节,直到所有进程都是功能原语。
- 处于较高级别的 DFD 不太详细
- 高层次的 DFD 将分解为更详细的较低层次的 DFD
- 上下文图是层次结构中最高的(参见 DFD 创建规则)。所谓的零级后跟 DFD 0,从流程编号(EG、流程 1、流程 2)开始。
- 在下一步中,所谓的第一级 — DFD 1 — 编号继续。EG流程1分为DFD的前三个级别,分别编号为1.1、1.2和1.3。
- 同样,第二级 (DFD 2) 中的进程编号为 EG 1.1.1、1.1.2、1.1.3 和 1.1.4。
- 层数取决于模型系统的大小。级别 0 中的每个过程可能不具有相同数量的分解级别。
DFD 示例 — 客户服务系统示例
数据流图是一个层次结构图,包括:
- 上下文图(概念级别为零)
- 一级 DFD
- 以及可能的 Level-2 DFD 和进一步级别的功能分解,具体取决于您系统的复杂性
上下文DFD
下图显示了为铁路公司的客户服务系统绘制的上下文数据流图。它包含一个表示要建模的系统的过程(形状),在本例中为“ CS 系统”。它还显示将与系统交互的参与者,称为外部实体。在此示例中,CS 助手和乘客是将与系统交互的两个实体。在流程与外部实体之间,存在数据流(连接器),表明实体与系统之间存在信息交换。
编辑此 Yourdon 和 Coad DFD 示例
上下文 DFD 是数据流模型的入口。它只包含一个进程,不显示任何数据存储。
1 级 DFD
下图为1级DFD,即上下文DFD所示的CS System流程的分解(即分解)。通读该图,然后我们将基于该图介绍一些关键概念。
编辑此 Yourdon 和 Coad 图示例
编辑此 Yourdon 和 Coad 图示例
CS 系统数据流图示例包含四个进程、两个外部实体和四个数据存储。尽管没有管理数据流图中形状定位的设计指南,但我们倾向于将流程放在中间,将数据存储和外部实体放在两侧,以便于理解。
根据该图,我们知道乘客可以从Inquiry Transport Details过程接收运输详细信息,这些详细信息由数据存储Transport Details和Railway Live Statistic 提供。存储在Transport Details中的数据是持久数据(由标签“D”表示),而存储在Rails Live Statistic中的数据是短暂保存的数据(由标签“T”表示)。标注形状用于列出乘客可以查询的详细信息类型。
CS Assistant可以启动购买纪念品流程,这将导致将订单详细信息存储在订单数据存储中。虽然客户是购买纪念品的真实人,但访问系统存储订单详细信息的是CS助手。因此,我们让数据从CS Assistant流向Buy Souvenir流程。
CS Assistant还可以通过提供订单详细信息来启动买票流程,详细信息将再次存储在订单数据存储中。数据流图是以高度抽象的方式绘制的高级图。这里绘制的数据存储Order,并不一定意味着真正的订单数据库或数据库中的订单表。订单详细信息的物理存储方式将在稍后实施系统时决定。
最后,CS Assistant可以通过提供事件和物品详细信息来启动报告丢失过程,该信息将存储在丢失物品数据库中。
通过示例了解更多 DFD
- 证券交易平台
- 点餐系统
- 客户服务系统(铁路公司)
- 超市应用
- 车辆维修站