软件工程中的数据流图 (DFD)2025年4月15日 | 阅读7分钟 数据流图 (DFD) 是一种可视化或图形化描述,它使用一套标准的符号和约定来描述业务如何处理数据。诸如结构化系统分析和设计方法 (SSADM) 等正式技术经常包含 DFD。尽管 DFD 在表面上可能与流程图或统一建模语言 (UML) 相似,但它们并不旨在描绘程序逻辑的细节。 ![]() 数据流图的目的是什么?DFD 使用信息流和处理步骤顺序的图形化描述,而不是文本描述,从而简化了应用程序业务需求的说明。它们最初记录业务分析的结果,然后在整个开发过程中使用。然后改进描述,以展示数据如何在应用程序流中传输和被应用程序流改变。有自动化和手动过程的示例。 数据流图的历史是什么?UML 出现于 DFD 之后,DFD 于 20 世纪 70 年代末首次亮相软件工程。加州大学洛杉矶分校的 David Martin 和 Gerald Estrin 的数据流图计算模型,启发了计算机专家 Larry Constantine 和 Ed Yourdon 出版的《结构化设计》一书,该书推广了 DFD。面向对象设计,即软件工程中一个重要的范式转变,至今仍被广泛使用,是由结构化设计的概念带来的。计算专家 Chris Gane、Trish Sarson 和 Tom DeMarco 提供了成为 DFD 方法规范的符号和约定。 那些早期的 DFDs 彻底改变了软件工程、软件开发和业务流程。通过定义工作流程、识别可访问的数据存储以及将系统设计与系统支持的活动联系起来,绘制数据处理系统中的数据流有助于理解业务流程本身中的数据流。 数据流图规则大多数数据流图都遵循以下基本指南
数据流图组成部分DFD 由以下四个主要部分组成
![]() 外部实体这些是 DFD 中数据流的起点和终点。外部实体位于 DFD 的边界上,以表示数据进入和退出整个系统或过程。一个人、一个组或一个系统都可以被视为外部实体。例如,在模拟购买过程并获取销售收据的 DFD 中,客户可以是一个外部实体。终止符、参与者、源和汇是外部实体的其他名称。 进程改变或转换数据的活动称为过程。这些操作可能包括计算、排序、验证、重定向以及任何使该部分数据流向前推进所需的其他更改。例如,在客户购买 DFD 过程中发生的一个过程是信用卡支付验证。 数据存储在 DFD 中,数据被保留以供将来使用。数据存储可以代表数据库、文档、文件或任何其他类型的数据存储库。产品库存数据库、客户地址数据库和交货时间表电子表格是产品履行 DFD 中存储的一些数据示例。 数据流信息在外部实体、过程和数据存储之间移动的路径称为数据流。例如,在电子商务 DFD 中,数据流会将用户输入的登录信息与身份验证网关链接起来。 物理 DFD 与逻辑 DFD 的区别是什么?逻辑 DFD 使用相当抽象的语言来描述逻辑信息流。这意味着它们将提供广泛的系统、过程和活动,但不会提供关于技术的细节。物理 DFD 显示更多物理信息流的细节,特别是与数据库、应用程序和信息系统相关的细节。此外,它们通常包含附加功能,以更准确地说明信息流、对数据进行的或与数据一起进行的活动以及涉及这些活动的资源。 DFD 有多种逻辑和物理解释。直线型组织和企业架构师经常使用逻辑 DFD,而对物理 DFD 的细节描述较少。另一方面,开发团队比逻辑 DFD 更倾向于使用物理 DFD。 DFD 中使用了哪些约定和符号?DFD 中使用的概念和符号因使用的方法模型而异。尽管不推荐,但某些组已经开发了自己的约定。 ![]() 各种 DFD 约定包括以下内容
每个 DFD 概念代表以下内容
各种 DFD 方法使用不同的符号约定。由于显著的差异和不同的符号规则,不熟悉某个方法的技术人员可能会发现理解 DFD 存在困难。 例如,在 Gane 和 Sarson 约定中,过程带有圆角,而实体是方形盒子。在 Yourdon 和 DeMarco 技术中,过程是圆圈,而实体是方形。Gane 和 Sarson 约定在 SSADM 方法中几乎是颠倒的。在 De Marco 和 Yourdon 中,存储显示为平行线,而其他所有方法都使用不同的表示法。这就是为什么公司选择并坚持一种方法和符号至关重要的原因。 DFD 有哪些层和级别?在 DFD 中,级别或层用于表示系统或过程信息的不断增加的级别。这些级别包括以下内容
尽管理论上可能存在更多层,但它们很少使用,并且可能表示比数据流图通常显示的更多细节。 如何创建数据流图?以下是创建 DFD 的过程的简单摘要,尽管它可能因使用的程序而异 步骤 1:选择要绘制图表的系统或过程。 步骤 2:在选择相关利益相关者后,将它们分组为外部实体、流动、过程和存储。 步骤 3:使用简单的连接来描绘 0 级上下文图。 步骤 4:创建更复杂的 1 级图,其中包含来自上下文图过程的分支的链接流、存储、额外过程和外部实体。 步骤 5:根据需要并以所需的详细程度重复此操作。 步骤 6:在每个级别上定期审查图表至关重要,以确保没有遗漏或多余的过程或流。 DFD 有哪些类型?关于单一方法的文档或课程是 DFD 的最佳示例。当在没有方法框架的情况下审查示例 DFD 时,理解其结构和视觉效果可能会很困难。与显示软件流程或软件架构的流程图或 UML 不同,大多数 DFD 示例显示的是业务或功能视角的过程。 下面提供了一个使用 Gane 和 Sarson 技术说明学校烹饪课程的示例。 有哪些工具可以创建 DFD?尽管 DFD 可以手工绘制,但这在临时讨论之外很少这样做。图形或演示工具,特别是那些允许开发自定义符号的工具,可用于生成 DFD。然而,此类工具通常需要选择固定的页面大小,这对大多数 DFD 用户来说受到限制。 大多数 DFD 是使用专门的 DFD 工具创建的,这些工具有时会与特定方法相关的其他功能结合使用。有许多工具,包括开源和专有的。DFD 也可以使用云托管技术创建。选择一种与要使用的方法相辅相成的工具至关重要,因为其中许多工具与特定方法相关。组织应考虑使用标准工具,因为不同工具之间的导入和导出功能可能受到限制。 以下是一些 DFD 工具的示例
DFD 的优点DFD 提供以下优点
下一个主题数据字典 |
我们请求您订阅我们的新闻通讯以获取最新更新。