逐步细化开发 DFD

数据流图 (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 Process 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 示例 — 客户服务系统示例

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

  1. 上下文图(概念上为零级)
  2. 1 级 DFD
  3. 以及可能的 2 级 DFD 和更多级别的功能分解,具体取决于系统的复杂性

上下文 DFD

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

编辑此 Yourdon 和 Coad DFD 示例

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

1级DFD

下图显示了1级DFD,它是上下文DFD中显示的CS System流程的分解(即分解)。通读该图,然后我们将根据该图介绍一些关键概念。

编辑此 Yourdon 和 Coad 图示例

CS 系统数据流图示例包含四个进程、两个外部实体和四个数据存储。尽管没有设计指南来管理数据流图中形状的位置,但我们倾向于将流程放在中间,将数据存储和外部实体放在两侧,以便更容易理解。

由图可知,  Passenger 可以  从 Inquiry Transport Details流程中接收到Transport 详细信息 ,详细信息由数据存储 Transport Details 和 Railway Live Statistic提供。虽然存储在 运输详细信息 中的数据是持久数据(由标签“D”表示),但存储在 铁路实时统计 中的数据是短暂保存的数据(由标签“T”表示)。标注形状用于列出乘客可以查询的详细信息类型。

CS Assistant 可以启动 购买纪念品 流程,这将导致将 订单详细信息 存储在 订单 数据存储中。虽然客户是购买纪念品的真实人,但  访问系统以存储订单详细信息的是CS助手。因此,我们将数据从 CS Assistant 流向 Buy Souvenir 流程。

CS Assistant还可以 通过提供 订单详细信息 来启动 购买票流程,详细 信息将再次存储在 订单 数据存储中。数据流图是一种高度抽象的高级图。这里绘制的数据存储Order并不一定意味着真实的订单数据库或数据库中的订单表。订单详细信息的物理存储方式将在稍后实施系统时决定。

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

通过示例了解更多 DFD

Leave a Reply

您的电子邮箱地址不会被公开。