数据流图(Data Flow Diagram ,简称DFD)
在信息处理系统中应用数据流图,通过对系统中数据、数据加工的全面分析,准确勾画出系统的框架,系统开发人员问以此为交流平台,共同分析可行性、合理性等,有助于系统缺陷在分析阶段被及时的发现和消除,为系统的设计、实现、测试阶段提供准确而充分的分析,是确保系统及产品质量的必要条件.
采用语言描述、控制流图、程序框图分析是不是比用数据流图更好呢?
用语言描述进行分析,分析的结果是无形的,只有对这个系统需要完成功能的描述.是否对所有数据的输人、输出、数据的处理过程进行分析是不可见的,也就无法考证分析的正确性和充分性,分析是不可控的,必然导致软件的缺陷,要到软件开发阶段后期才能发现,有可能对系统产生一定危害.
用控制流图进行分析,分析关注的重点是控制,通过标识其状态描述系统的行为;标识这些状态是如何达到的,并定义状态间的变迁.信息处理领域的系统S是通过数据驱动的,用控制流图的分析不能涵盖所有数据,只对能产生系统行为的数据被分析,分析是不充分的,那么某些软件的缺陷在软件开发阶段早期不会被发现.
用程序框图进行分析,分析关注的重点是如何实现系统的功能,注重的是细节,它应使用在软件开发的设计阶段.在分析阶段要注重系统的框架,用程序框图的分析不能清楚地看出系统的框架,将分析和设计过程混在一起,容易掩盖软件的缺陷.
用数据流图进行分析,分析关注的重点是数据,将面向控制的信息作为数据进行处理,涵盖系统的所有数据,能准确的抽象系统的信息处理过程.概括的描述信息流和当数据从输人移动到输出时被应用的变换,每一层都明确强调“干什么“,“需要什么”,“给出什么”;可以反映出数据的流向和处理过程;数据流图分层进行分析,对顶层图的分析可以发现是否有输入信息或需要输出的信息被遗漏,容易及早发现系统各部分的
逻辑错误,也容易修正.这样逐层分解下去,系统被严密的展开,系统的框架被展现出来.数据流图还有助于消除通常存在于软件开发人员与系统总体及硬件人员的交流隔阂.系统开发人员通过数据流图更容易理解软件要完成什么功能,数据来源于哪里,结果要输出到哪等等,他们可以给软件人员更多合理的建议.由于采用数据流图进行分析,提高分析的可见性和可控性,有助于软件的缺陷在软件开发阶段早期被及时的发现和消除.
一,数据流图的基本元素
数据流图中只能有四种基本元素,如下:
描述一个处理.输入数据在此进行变换产生输出数据.其中注明处理的名称.
描述一个输入源点或输出汇点.其中注明源点或汇点的名称.
描述一个数据流.被加工的数据及其流向.流线上注明数据名称,箭头代表数据流动方向.
描述一个数据存储.通常用于代表一个数据表,其中注明数据表的名称.
二,分层数据流图
为了表达数据处理过程的数据加工情况,用一个数据流图往往是不够的.稍为复杂的实际问题,在数据流图上常常出现十几个甚至几十个加工.这样的数据流图看起来很不清楚.层次结构的数据流图能很好地解决这一问题.按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统.
下图给出分层数据流图的示例.数据处理S包括三个子系统1,2,3.顶层下面的第一层数据流图为DFD/L1.第二层数据流图DFD/L2.1,DFD/L2.2及DFD/L2.3分别是子系统1,2和3的细化.对任何一层数据流图来说,我们称它的上层图为父图,在它下一层的图则称为子图.
三,画数据流图的步骤和原则
基本步骤:自外向内,自顶向下,逐层细化,完善求精.
基本原则:
① 数据流图上所有图形符号只限于前述四种基本元素.
② 顶层数据流图必须包括前述四种基本元素,缺一不可.
③ 顶层数据流图上的数据流必须封闭在外部实体之间.
④ 每个加工至少有一个输入数据流和一个输出数据流.
⑤ 在数据流图中,需按层给加工框编号.编号表明该加工处在哪一层,以及上下层的父图与子图的对应关系.
⑥ 规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致.此即父图与子图的平衡.
⑦ 可以在数据流图中加入物质流,帮助用户理解数据流图.
⑧ 图上每个元素都必须有名字.数据流和数据文件的名字应当是"名词"或"名词性短语",表明流动的数据是什么.加工的名字应当是"名词+宾语",表明做什么事情.
⑨ 数据流图中不可夹带控制流.
⑩ 初画时可以忽略琐碎的细节,以集中精力于主要数据流.
四,数据流图应用举例
例子待续
数据流图(Data Flow Diagram ,简称DFD)相关推荐
- 什么是数据流图 Data Flow Diagram (DFD)
什么是数据流图(DFD)?如何绘制DFD? 一张图片胜过千言万语.数据流图(DFD)是系统内信息流的传统视觉表示.一个整齐而清晰的DFD可以用图形描绘出大量的系统需求.它可以是手动的,自动的或两者的组 ...
- 数据可视化 —— 数据流图(Data Flow Diagram)
数据流图(Data Flow Diagram):简称 DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能.数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表 ...
- 软考-数据流图详解(Data Flow Diagram)
一.概念 它是将提供给用户的业务流程图("物理模型")进行功能建模,转化成开发人员能够理解的一系列"逻辑模型"图,即以图形化的方法描绘数据在系统中的流动和处理的 ...
- data flow(数据流图)
软件需求分析的基础:机构化分析方法. 结构化分析方法适用于数据处理类型软件的需求分析.它提供的主要建模工具包括 数据流图.数据字典.机构化英语.判定表.和判定树等. 在这里主要说明DFD图的使用和画法 ...
- 01_关于TensorFlow、什么是数据流图(Data Flow Graph)、TensorFlow的特征、谁可以使用Tensorflow、为啥Google要开源这个神器?
1 关于TensorFlow TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库.节点(Nodes)在图中表示数学操作,图中的线(edges)则表 ...
- 深度学习编译器Data Flow和Control Flow
深度学习编译器Data Flow和Control Flow 本文介绍了一下深度学习框架的Data Flow和Control Flow,基于TensorFlow解释了TensorFlow是如何在静态图中 ...
- Cumulative Flow Diagram for Best Process Stability
The cumulative flow diagram will show you how stable is your flow. It displays any weaknesses and pr ...
- GraphCodeBERT: Pre-Training Code Representation With Data Flow
论文来源:ICLR-2021 论文链接:https://arxiv.org/abs/2009.08366(看时间,应该是2020发在了arxiv上,2021被ICLR录用) ⭐主要贡献: 可以说是在 ...
- Spring Cloud Data Flow 中的 ETL
来源:SpringForAll社区 1 概述 Spring Cloud Data Flow是一个用于构建实时数据管道和批处理过程的云原生工具包. Spring Cloud Data Flow已准备好用 ...
最新文章
- 怎么通过python挣外快_利用Python爬虫轻松挣外快的几个方法(值得收藏)
- 基于CentOS 6.8平台最新源代码包编译安装企业版MariaDB数据库
- [bbk5128]第12集 - Chapter 06- Working with Composite Data Types -01-4998(Record)
- pytorch实现性别检测
- python父进程调用子进程_Python2.7下,调用subprocess启动子进程,读取子进程标准输出若干问题...
- Erlang 进程创建性能测试
- flask mysql分页,Flask分页的实现方法
- php 路由实现_PHP操作路由器实现方法示例
- php抓住教务处课表详细教程,php实现模拟登陆方正教务系统抓取课表
- 30岁 android,90后30岁倒计时
- linux输出替换字符串,Linux命令之sed-替换字符串
- 软件质量之道:PCLint之一
- 搞清楚C语言的网络函数族hton ntoh 以及大小端记忆法
- [LeetCode解题报告] LCP 48. 无限棋局
- matlab 图像去白边,Matlab生成的图片如何去掉白边?
- 奥塔在线:如何查看连接数?
- 如何将汉语拼音转换为音素+声调数字
- python读取mt4数据_[转载]如何获取MT4完整的历史数据?
- ios放大镜效果始终不能去掉
- ucinet可视化网络关系图_6款社会网络分析软件,你pick哪个?