「数据架构」什么是数据流程图(DFD)?如何绘制DFD?

简介: 「数据架构」什么是数据流程图(DFD)?如何绘制DFD?

什么是数据流程图(DFD)?

一图胜千言。数据流图(DFD)是可视化系统中信息流的传统方法。一个整洁而清晰的DFD可以图形化地描述大量的系统需求。它可以是手动的,自动的,或者两者的结合。

它显示了信息是如何进入和离开系统的,是什么改变了信息,以及信息存储在哪里。DFD的目的是显示整个系统的范围和边界。它可以作为系统分析人员与系统中充当重新设计系统起点的任何人员之间的通信工具。

它通常以一个上下文图作为DFD图的第0级开始,DFD图是整个系统的简单表示。为了进一步详细说明,我们深入到第1层图,其中包含从系统的主要功能分解而来的较低层功能。当需要进一步分析时,这可能会继续发展成一个2级图。升级到3级、4级等等是可能的,但超出3级的情况并不常见。请记住,分解特定函数的细节级别取决于该函数的复杂性。

图中的符号

现在,我们想简要地向您介绍一些您将在下面的教程中看到的图表符号。

外部实体

外部实体可以表示人、系统或子系统。它是某些数据的来源或流向。就业务流程而言,它是我们所研究的系统的外部。由于这个原因,人们习惯于在图的边缘绘制外部实体。


过程

流程是进行数据操作和转换的业务活动或功能。可以将流程分解为更细的细节级别,以表示如何在流程中处理数据。


数据存储

数据存储表示进程所需和/或产生的持久数据的存储。下面是一些数据存储的例子:成员表单、数据库表等。


数据流

数据流表示信息流,其方向由箭头表示,箭头显示在流连接器的末端。


在本教程中我们将做什么?

在本教程中,我们将向您展示如何绘制上下文关系图以及级别1的关系图。


如何绘制上下文级DFD?

  • 要创建新的DFD,从工具栏中选择Diagram > new。
  • 在New Diagram窗口中,选择Data Flow Diagram并单击Next。
  • 输入上下文作为关系图名称,然后单击OK进行确认。
  • 我们现在画出第一个过程。从关系图工具栏中,将流程拖动到关系图上。命名新的过程系统。

640.jpg


  • 接下来,让我们创建一个外部实体。将鼠标指针放在系统上。按下并拖出右上角的资源目录按钮。


  • 释放鼠标按钮并从资源目录中选择双向数据流->外部实体。

640.jpg


  • 将新的外部实体命名为Customer。


  • 现在,我们将对系统访问的数据库进行建模。使用资源目录创建来自系统的数据存储,其中包含双向数据流。


  • 命名新的数据存储库存。


  • 创建另外两个数据存储,Customer和Transaction,如下所示。我们刚刚完成了上下文关系图。


如何绘制一级DFD?

  • 我们将分解系统过程以形成一个新的DFD,而不是从头创建另一个图。右键单击System并从弹出菜单中选择分解。


  • 连接到所选流程(系统)的数据存储和/或外部实体将在第1级DFD中引用。因此,当提示您将它们添加到新图表中时,单击Yes以确认。
  • 注意:新的DFD最初看起来应该与上下文关系图非常相似。每个元素都应该保持不变,除了系统过程(从这个新的DFD分解而来)现在已经没有了,取而代之的是一个空格(待阐述)。
  • 重新命名新的DFD。右键点击它的背景并选择Rename…在关系图的名称框中,输入Level 1 DFD并按回车键。
  • 在中心创建三个流程(流程订单、发货、收货),如下图所示。那是系统过程的老地方,我们把它们放在那里来阐述系统。


  • 连接数据流的连接线
  • 本节中的其余步骤是关于连接图中的模型元素的。例如,客户在下订单进行处理时提供订单信息。
  • 将鼠标指针放在客户上方。拖出资源目录图标并按进程顺序释放鼠标按钮。


  • 从资源目录中选择数据流。


  • 新订单信息有流程说明。



  • 同时,流程订单流程也从数据库中接收客户信息来处理订单。
  • 使用资源目录创建从客户到处理订单的数据流。


  • 可选:如果您愿意,可以将数据流标记为“客户信息”。但是,由于这个数据流在视觉上是相当不言自明的,我们将在这里省略它。
  • 通过组合来自客户(外部实体)的订单信息和来自客户(数据存储)的客户信息,Process order (Process)然后在数据库中创建一个事务记录。创建从流程顺序到事务的数据流。


  • 绘画技巧:
  • 若要重新排列连接线,请将鼠标指针置于要添加轴心点的位置。然后你会看到一个气泡在你的鼠标指针。按下并拖动到需要的位置。


  • 到目前为止,您的图表应该是这样的。


  • 一旦存储了事务,接下来就是传递过程。因此,创建一个来自Process Order (Process)的数据流来交付好(Process)。


  • 发货时需要阅读交易信息(即订单号,以便包装正确的产品发货)。从事务(数据存储)创建一个数据流来交付好(流程)。

640.jpg


  • 注意:如果缺少空间,请随意移动形状以腾出空间。
  • Ship Good还需要读取客户的送货地址信息。从客户(数据存储)创建一个数据流来交付好(流程)。


  • Ship Good然后更新库存数据库以反映所运货物。创建一个从发货(流程)到库存(数据存储)的数据流。更新的产品记录。


  • 一旦订单到达客户手中,发放收据的过程就开始了。其中,收据是根据存储在数据库中的事务记录准备的。因此,让我们从事务(数据存储)创建一个数据流来发出收据(流程)。


  • 然后向客户发出收据。让我们创建一个从问题收据(流程)到客户(外部实体)的数据流。命名数据流接收。

640.jpg


  • 您刚刚完成了第一级图的绘制,它应该是这样的。


如何提高DFD的可读性?

  • 上面完成的图表看起来有点死板和忙碌。在本节中,我们将对连接器进行一些更改以提高可读性。
  • 右键单击图表(级别1 DFD)并选择连接器>曲线。图中的连接器现在用曲线表示。


  • 移动图形,使图表看起来不那么拥挤。


更多过程示例

下面的列表向您介绍了涉及不同业务和问题领域的各种数据流图示例。其中一些包括使用多个上下文级别。

  • 客户服务系统
  • 食品订单系统
  • 证券交易
  • 超市的应用
  • 车辆保养得宝
  • 视频租赁存储


资源

  • Order-Processing.vpp
  • Order-Processing_result.vpp

本教程的读者也可以阅读

  • 如何编写有效的用例?
  • 数据流程图:实例-订餐系统
  • 如何使用ERD对关系数据库设计建模?
  • 如何开发现有的和将来的业务流程?
  • 数据流程图与实例-客户服务系统
相关文章
|
7天前
|
存储 分布式计算 数据挖掘
数据架构 ODPS 是什么?
数据架构 ODPS 是什么?
59 7
|
7天前
|
数据采集 搜索推荐 数据管理
数据架构 CDP 是什么?
数据架构 CDP 是什么?
23 2
|
1月前
|
存储 大数据 数据处理
洞察未来:数据治理中的数据架构新思维
数据治理中的数据架构新思维对于应对未来挑战、提高数据处理效率、加强数据安全与隐私保护以及促进数据驱动的业务创新具有重要意义。企业需要紧跟时代步伐,不断探索和实践新型数据架构,以洞察未来发展趋势,为企业的长远发展奠定坚实基础。
|
2月前
|
存储 搜索推荐 数据库
MarkLogic在微服务架构中的应用:提供服务间通信和数据共享的机制
随着微服务架构的发展,服务间通信和数据共享成为关键挑战。本文介绍MarkLogic数据库在微服务架构中的应用,阐述其多模型支持、索引搜索、事务处理及高可用性等优势,以及如何利用MarkLogic实现数据共享、服务间通信、事件驱动架构和数据分析,提升系统的可伸缩性和可靠性。
43 5
|
3月前
|
安全 网络安全 数据安全/隐私保护
云原生技术探索:容器化与微服务架构的实践之路网络安全与信息安全:保护数据的关键策略
【8月更文挑战第28天】本文将深入探讨云原生技术的核心概念,包括容器化和微服务架构。我们将通过实际案例和代码示例,展示如何在云平台上实现高效的应用部署和管理。文章不仅提供理论知识,还包含实操指南,帮助开发者理解并应用这些前沿技术。 【8月更文挑战第28天】在数字化时代,网络安全和信息安全是保护个人和企业数据的前线防御。本文将探讨网络安全漏洞的成因、加密技术的应用以及提升安全意识的重要性。文章旨在通过分析网络安全的薄弱环节,介绍如何利用加密技术和提高用户警觉性来构建更为坚固的数据保护屏障。
|
3月前
|
存储 监控 安全
大数据架构设计原则:构建高效、可扩展与安全的数据生态系统
【8月更文挑战第23天】大数据架构设计是一个复杂而系统的工程,需要综合考虑业务需求、技术选型、安全合规等多个方面。遵循上述设计原则,可以帮助企业构建出既高效又安全的大数据生态系统,为业务创新和决策支持提供强有力的支撑。随着技术的不断发展和业务需求的不断变化,持续优化和调整大数据架构也将成为一项持续的工作。
|
3月前
|
Java 数据库连接 微服务
揭秘微服务架构下的数据魔方:Hibernate如何玩转分布式持久化,实现秒级响应的秘密武器?
【8月更文挑战第31天】微服务架构通过将系统拆分成独立服务,提升了可维护性和扩展性,但也带来了数据一致性和事务管理等挑战。Hibernate 作为强大的 ORM 工具,在微服务中发挥关键作用,通过二级缓存和分布式事务支持,简化了对象关系映射,并提供了有效的持久化策略。其二级缓存机制减少数据库访问,提升性能;支持 JTA 保证跨服务事务一致性;乐观锁机制解决并发数据冲突。合理配置 Hibernate 可助力构建高效稳定的分布式系统。
67 0
|
8天前
|
缓存 负载均衡 JavaScript
探索微服务架构下的API网关模式
【10月更文挑战第37天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务的航向。它不仅是客户端请求的集散地,更是后端微服务的守门人。本文将深入探讨API网关的设计哲学、核心功能以及它在微服务生态中扮演的角色,同时通过实际代码示例,揭示如何实现一个高效、可靠的API网关。
|
7天前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####
|
7天前
|
Dubbo Java 应用服务中间件
服务架构的演进:从单体到微服务的探索之旅
随着企业业务的不断拓展和复杂度的提升,对软件系统架构的要求也日益严苛。传统的架构模式在应对现代业务场景时逐渐暴露出诸多局限性,于是服务架构开启了持续演变之路。从单体架构的简易便捷,到分布式架构的模块化解耦,再到微服务架构的精细化管理,企业对技术的选择变得至关重要,尤其是 Spring Cloud 和 Dubbo 等微服务技术的对比和应用,直接影响着项目的成败。 本篇文章会从服务架构的演进开始分析,探索从单体项目到微服务项目的演变过程。然后也会对目前常见的微服务技术进行对比,找到目前市面上所常用的技术给大家进行讲解。
18 1
服务架构的演进:从单体到微服务的探索之旅