Data Flow Diagram (DFD) provides a visual representation of the flow of information (i.e. data) within a system. By creating a Data Flow Diagram, you can tell the information provided by and delivered to someone who takes part in system processes, the information needed in order to complete the processes and the information needed to be stored and accessed. Data Flow Diagram is widely-used in software engineering. You can use DFD in modeling information systems. This article describes and explain Data Flow Diagram (DFD) by using a customer service system as an example.

The CS System Example

The data flow diagram is a hierarchy of diagram consist of:

  1. Context Diagram (conceptually level zero)
  2. The Level-1 DFD
  3. And possible Level-2 DFD and further levels of functional decomposition depending on the complexity of your system

Context DFD

The figure below shows a context Data Flow Diagram that is drawn for a railway company's Customer Service System. It contains a process (shape) that represents the system to model, in this case, the "CS System". It also shows the participants who will interact with the system, called the external entities. In this example, CS Assistant and Passenger are the two entities who will interact with the system. In between the process and the external entities, there are data flow (connectors) that indicate the existence of information exchange between the entities and the system.

Context DFD is the entrance of a data flow model. It contains one and only one process and does not show any data store.

Level 1 DFD

The figure below shows the level 1 DFD, which is the decomposition (i.e. break down) of the CS System process shown in the context DFD. Read through the diagram and then we will introduce some of the key concepts based

The CS System Data Flow Diagram example contains four processes, two external entities and four data stores. Although there is no design guidelines that governs the positioning of shapes in a Data Flow Diagram, we tend to put the processes in the middle and data stores and external entities on the sides to make it easier to comprehend.

Based on the diagram, we know that a Passenger can receive Transport details from the Inquiry Transport Details process, and the details are provided by the data stores Transport Details and Railway Live Statistic. While data stored in Transport Details are persistent data (indicated by the label "D"), data stored in Railway Live Statistic are transient data that are held for a short time (indicated by the label "T"). A callout shape is used to list out the kind of details that can be inquired by passenger.

CS Assistant can initiate the Buy Souvenir process, which will result in having the Order details stored in the Order data store. Although customer is the real person who buy souvenir, it is the CS Assistant who accesses the system for storing the order details. Therefore, we make the data flow from CS Assistant to the Buy Souvenir process.

CS Assistant can also initiate the Buy Ticket process by providing Order details and the details will be stored again in the Order data store. Data Flow Diagram is a high level diagram that is drawn with a high degree of abstraction. The data store Order which is drawn here does not necessarily imply a real order database or order table in a database. The way how order details are stored physically is to be decided later on when implementing the system.

Finally, CS Assistant can initiate the Report Lost process by providing the Incident and item details and the information will be stored in the Lost Item database.

Data Flow Diagram Tips and Cautions

Stating the type of data with D, M and T

Each data store which is drawn in a Data Flow Diagram are prefixed by a letter, which is 'D' by default. The letter indicates the kind of data the data store holds. The letter 'D' is used to represent a persistent computerized data, which is probably the most common kind of data type in a typical information system. Besides computerized data, data can also be held for a short time in temporary. We call this kind of data transient data and is represented by letter 'T'. Sometimes, data is stored without the use of a computer. We call this kind of data manual data and is represented by letter 'M'. Finally, if the data is stored without using computer and also is held for a short time, this is known as manual transient data and is represented by T(M).

Be aware of the level of details

In this Data Flow Diagram example, the word "details" is used many times when labeling data. We have "transport details" and "order details". What if we write them explicitly as "route information, train times and delays", "souvenir name, quantity and amount" and "ticket type and amount"? Is this correct? Well, there is no definite answer to this question but try to ask yourself a question when making a decision. Why are you drawing a DFD?

In most cases, Data Flow Diagram is drawn in the early phase of system development, where many details are yet to be confirmed. The use of general terminologies like "details", "information", "credential" certainly leave room for discussion. However, using general terms can be kind of lacking details and make the design lost its usefulness. So it really depends on the purpose of your design.

Don't overdrawn

In a Data Flow Diagram, we focus on the interactions between the system and external parties, rather than the internal communications among interfaces. Therefore, data flows between interfaces and the data stores used are considered to be out of scope and should not be shown in the diagram.

Don't mix up data flow and process flow

Some designers may feel uncomfortable when coming across a connector connecting from a data store to a process, without showing the step of data request being specified on the diagram. Some designers will attempt to put a request attached to the connector between a process and a data store, labeling it "a request" or "request for something", which is surely unnecessary.

Keep in mind that Data Flow Diagram was designed for representing the exchange of information. Connectors in a Data Flow Diagram are for representing data, not for representing process flow, step or anything else. When we label a data flow that ends at a data store "a request", this literally means we are passing a request as data into a data store. Although this may be the case in implementation level as some of the DBMS do support the use of functions, which intake some values as parameters and return a result, however, in data flow diagram, we tend to treat data store as a sole data holder that does not possess any processing capability. If you want to model the system flow or process flow, you could use either Activity Diagram or BPMN Business Process Diagram instead. If you want to model the internal structure of data store, you may use Entity Relationship Diagram.

Data Flow Diagram with Examples - Customer Service System的更多相关文章

  1. 数据可视化 —— 数据流图(Data Flow Diagram)

    数据流图(Data Flow Diagram):简称 DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能.数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表 ...

  2. react & redux data flow diagram

    react & redux data flow diagram Redux 数据流程图

  3. SSIS Data Flow 的 Execution Tree 和 Data Pipeline

    一,Execution Tree 执行树是数据流组件(转换和适配器)基于同步关系所建立的逻辑分组,每一个分组都是一个执行树的开始和结束,也可以将执行树理解为一个缓冲区的开始和结束,即缓冲区的整个生命周 ...

  4. Intel® Threading Building Blocks (Intel® TBB) Developer Guide 中文 Parallelizing Data Flow and Dependence Graphs并行化data flow和依赖图

    https://www.threadingbuildingblocks.org/docs/help/index.htm Parallelizing Data Flow and Dependency G ...

  5. Data Flow ->> Script Component

    和Control Flow中的Script Task非常类似,不同的是Script Component是Per-Row的执行类型.打个比方,在Script Component中加入两个Output的字 ...

  6. Spring Cloud Data Flow 中的 ETL

    Spring Cloud Data Flow 中的 ETL 影宸风洛 程序猿DD 今天 来源:SpringForAll社区 1 概述 Spring Cloud Data Flow是一个用于构建实时数据 ...

  7. 【SFA官方译文】:Spring Cloud Data Flow中的ETL

    原创: 影宸风洛 SpringForAll社区 昨天 原文链接:https://www.baeldung.com/spring-cloud-data-flow-etl 作者:Norberto Ritz ...

  8. (转)CAS (4) —— CAS浏览器SSO访问顺序图详解(CAS Web Flow Diagram by Example)

    CAS (4) —— CAS浏览器SSO访问顺序图详解(CAS Web Flow Diagram by Example) tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0 ...

  9. SSIS ->> Data Flow Design And Tuning

    Requirements: Source and destination system impact Processing time windows and performance Destinati ...

随机推荐

  1. 面试中常问的五种IO模型和BIO,NIO,AIO

    一,五种IO模型: 一个IO操作可以分为两个步骤:发起IO请求和实际的IO操作例如:1.操作系统的一次写操作分为两步:第一步,将数据从用户空间拷贝到系统空间:第二步,从系统空间往网卡写.2.一次读操作 ...

  2. Java序列化机制剖析

    本文转载自longdick的博文<Java序列化算法透析>,原文地址:http://longdick.iteye.com Java序列化算法透析 Serialization(序列化)是一种 ...

  3. 通过pycharm使用git和github的步骤(图文详解)

    一.在Pycharm工具中配置集成Git和GitHub.1.集成Git. 打开Pycharm,  点击File-->Settins-->Version Control-->Git 然 ...

  4. Java并发基础05. 传统线程同步通信技术

    先看一个问题: 有两个线程,子线程先执行10次,然后主线程执行5次,然后再切换到子线程执行10,再主线程执行5次--如此往返执行50次. 看完这个问题,很明显要用到线程间的通信了, 先分析一下思路:首 ...

  5. PTA 7-42 整型关键字的散列映射(手写哈希表的线性探测法)

    本题考点: 整型哈希表的线性探测法 给定一系列整型关键字和素数P,用除留余数法定义的散列函数将关键字映射到长度为P的散列表中.用线性探测法解决冲突. 输入格式: 输入第一行首先给出两个正整数N(≤10 ...

  6. P1198 [JSOI2008]最大数(线段树基础)

    P1198 [JSOI2008]最大数 题目描述 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值. 限制: ...

  7. DALI 48V驱动

    DALI-CC-30W-48V技术手册 产品名称:DALI-CC-30W-48V 支持协议:IEC 62386-101:2018,IEC 62386-102:2018,IEC 62386-207:20 ...

  8. 构建LNMP

                                                                             构建LNMP 案例1:部署LNMP环境 案例2:构建L ...

  9. Martinjingyu的开发环境

    Mac Pro Book一台去年新款,最近这4年多折腾的东西总结下. Mac的包管理器首选HomeBrew,安装如下: ruby -e "$(curl -fsSL https://raw.g ...

  10. Jmeter 压力测试笔记(4)--分布式部署

    分布式部署:坑,大坑~ 超级坑~~~~ 在这里坑了2天,整整2天.其它略过不表下面只写经验: 在linux下,centos7系统   1主 14执行机. jmeter版本 5.2.1  所有机器在同一 ...