【转】数据流图懂不懂?

原文链接:http://www.cnblogs.com/spring5/archive/2012/04/29/2485238.html

最近备战软考,复习到数据流图,学习成果与大家分享。

 

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

 

谈谈我的一点理解

有时候我们要开发或者理解一个系统,总体的系统结构我们弄清楚了,但是细节上需要再深入,而数据流图“自顶向下,由外到内,逐步细化”的思想就凸显出很重要的作用,它可以作为我们系统分析的指导方法。

 

数据流图分析关注的重点是数据,将面向控制的信息作为数据进行处理,包括了系统的所有数据,能准确的抽象系统数据的流向和处理过程.概括的描述当数据在系统流程中流动和处理的移动变换过程;数据流图分层进行分析,对顶层图的分析可以发现是否有输入信息或需要输出的信息被遗漏,容易及早发现系统各部分的逻辑错误,也容易修正.每一层都明确强调“需要什么”,“干了什么”“给出什么”;

这样逐层分解下去,系统被严密的展开,系统的框架就展现出来了.采用数据流图进行分析,可以提高分析的可见性和可控性,更容易理解软件要完成什么功能,数据来源于哪里,结果要输出到哪里等等,清晰明了。

 

下面我们来看看数据流图的组成,设计原则和应用

基本图形符号

加工(数据处理):输入数据在此进行变换产生输出数据。加工对象为:数据结构或数据内容。

数据流:箭头表示数据流向,作为加工之间传输数据的命名通道(数据流有名字),或数据存储文件与加工之间的非命名通道(数据流没名字,但其连接的加工和文件的名字,和流向可以确定其含义)。

 

同一个数据流图上不能有同名的数据流,如果两个以上的数据流指向一个加工,或是从一个加工中输出两个以上的数据流,这些数据流往往存在一定关系,如图:

 

数据存储文件:流向数据存储的数据流可以理解为写入文件或查询文件,从数据存储流出的数据流可以理解为从文件读数据或得到查询结果。

 

数据源点或终点:是系统外部环境中的实体,也称外部实体。它们作为系统与系统外部环境的接口界面,在实际问题中可能是人员、组织、其他硬件系统等。一般出现在顶层数据流图中。

 

数据流图的设计原则

下面我们通过一些示例来说明这些设计原则

 

示例1:

上图违反了父图与子图的平衡原则。

因为父图中有提货单输出流,但子图中没有与这条输出流相关的输出流。

我们看两者的输入流,父图的输入流是订货单,而子图的输入流是数量,账号,客户,这是平衡的,因为子图的三条输入流是对父图输入流的分解,同样子图中的加工4.1,4.2,4.3也可以看成是对父图加工4的分解,这符合自顶向下,逐层细化原则

 

示例2:

下面是一张有错的数据流图。

(1)根据数据守恒原则,外部实体和外部实体,外部实体和数据存储之间不能存在数据流,,存储与存储之间也不应该有数据流,数据流必须跟加工有关,没有加工数据流不可能流来流去的。

(2)对于加工,输入是A,输出还是A,也违反了数据守恒原则,输入与输出一样,加工没有作用。

(3)对于加工,只有输入没有输出,违反了数据守恒原则。比如,人不可能只吃饭,不大小便。嘿嘿

(4)对于加工,只有输出没有输入,违反了数据守恒原则。比如,人不可能一直大小便,但不吃饭。嘿嘿

 

 

示例3:

加工细节隐蔽原则说的是:在画父图时,只需画出加工和加工之间的关系,而不必画出各个加工内部的细节,例如上面的父图中,并没有画出加工1的内部细节

再进行对加工1进行细化的时候,我们就应该画出它的内部细节,如第二个图。

 

简化加工之间的关系:加工间的数据流越少,各个加工就越相对独立,耦合越低,所以应尽量减少加工间输入/输出数据流的数目。

 

均匀分解:不要出现,一些加工分解了10层,而另一些加工分解了3层这样的情况

 

忽略枝节:暂时不要考虑一些例外情况,出错处理等枝节性问题。

 

表现的是输入流而不是控制流:不要和程序流程图混淆,数据流图,强调从数据加工的角度来描述系统,自然是数据流。

这些原则中,最重要的当属:保持父图与子图平衡,保持数据平衡,加工细节隐蔽

 一般从这三个原则来考查一张数据流图是否正确。

  

数据字典

 

数据字典的就是对数据流图中出现的所有被命名的图形元素在数据字典中作为一个词条加以定义,使每个图形元素的名称都有一个确切的解释。

 

在对数据流和数据文件词条进行描述时可能包含一定的数据结构,对于数据结构的描述常用的是定义是。如下表

 

在数据字典中有4种类型的条目:

1、数据项条目:通常为数据项的值类型,允许的取值范围等

2、数据流条目:给出某个数据流的定义,列出该数据流的各组成数据项。

3、文件条目:对文件的定义,列出期组成的数据项

4、加工条目:对每个不能再分解的加工做说明,包括加工的激发条件,加工的逻辑,优先级等等。

 

示例:

图书管理系统中

查询请求信息=[查询读者请求信息|查询图书请求信息]

读者情况=读者号+姓名+所在单位+{借书情况}

 

根据上面的定义表,我们很容易看出这些条目的意思。

 

 

下面我们来看一个数据流图的综合应用问题,这样有助于我们理解数据流图。

 

需求:


根据以上信息提出的几个问题!希望对这几个问题的解析,能加深大家对数据流图的理解。

对于问题1:

我们前面提到过,

可以通过数据流图那三个重要设计原则(保持父图与子图平衡,保持数据平衡,加工细节隐蔽)来考查一张数据流图是否正确。

1、查看是否平衡,即子图中的输入流合输出流和父图是否对应;

2、查看数据守恒,处理查询请求没有输入,登记读者信息没有输出.

正确应该如红色箭头画法。

对于问题2:

1、首先我们看到对于加工2,父图和子图是平衡的,所以,本题只能是2.1和2.2或者他们和文件之间缺少数据流。

只得根据需求描述去分析到底缺失哪些数据流。

 

根据在原需求中的

我们可以很轻松的判断出缺少哪些数据流,如下图红色箭头

对于问题3:这是一个数据字典的应用问题。

根据以上我们截取需求中的信息,,注意红色部分,再结合我们开始介绍的数据字典定义符号的使用,即可很轻松解决这个问题。

管理工作请求单=[购入新书|读者借书|读者还书|图书注销]

入库单=分类目录号+书名+作者+价格+数量+购书日期。

 

 

数据流图就到这了,我是懂了,不知道你懂了没?

时间: 2024-10-28 08:40:46

【转】数据流图懂不懂?的相关文章

JavaScript闭包 懂不懂由你反正我是懂了_javascript技巧

越来越觉得国内没有教书育人的氛围,为了弄懂JS的闭包,我使出了我英语四级吃奶的劲去google上搜寻着有关闭包的解释,当我看到stackoverflow上这一篇解答,我脑中就出现了一句话:就是这货没跑了! 不才译文见下,见笑了. Peter Mortensen问: 就像老Albert所说的,"如果你不能向一个六岁的孩子解释清楚,那么其实你自己根本就没弄懂."好吧,我试着向一个27岁的朋友就是JS闭包(JavaScript closure)却彻底失败了. 你们会怎么把它解释给一个充满好奇

Javascript闭包——懂不懂由你,反正我是懂了

摘要:"如果你不能向一个六岁的孩子解释清楚,那么其实你自己根本就没弄懂."好吧,我试着向一个27岁的朋友就是JS闭包(JavaScript closure)却彻底失败了. 越来越觉得国内没有教书育人的氛围,为了弄懂JS的闭包,我使出了我英语四级吃奶的劲去google上搜寻着有关闭包的解释,当我看到stackoverflow上这一篇解答,我脑中就出现了一句话:就是这货没跑了! 不才译文见下,见笑了. Peter Mortensen问: 就像老Albert所说的,"如果你不能向一

败家还是持家?看你懂不懂购物算法!

人生的很多选择都是在充满不确定性时做出的.当面对这些选择时,你需要用到手头的所有信息来做明智的选择.不论是娱乐消遣还是现实生活,许多概率问题都与如何选择最佳概率有关. 亚马逊在线商店有一个功能叫做"金盒子".当你点击进去的时候,里面会有十种不同类型的商品,从书籍到DVD,从厨具到"松下ER411NC鼻毛和耳毛修剪器".每一次都只会出现一种产品,当你决定是买或者跳过之后,才会出现下一种产品,以前当你决定买下一款产品时剩下的产品就不会再展示了:但是现在你可以随心所欲选择

做网络营销 你真的够懂“人性”吗?

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 我是从11年下半年开始接触互联网的,我的第一桶金来自于攻心评论,我的第二桶金来自于软文. 先来说说我的第一桶金吧!在2012年的时候,最火热的我自己觉得是单页.博客营销,我自己也有一个博客,皮鞋评测博客,这是我第一次做网赚的网站,当时花了非常大的心血去做,每一篇文章都是自己精挑细选出来的. 每一天就和一个傻逼一样,天天更新原创,狂发外链,就这

Google不懂中国式营销

中介交易 SEO诊断 淘宝客 云主机 技术大厅 作为世界老牌点击广告运营商Google来说,其在多年前的美元结算方式的确带动了国内个人站长们的广告悬挂热潮.而近日的查封,降价,严格审批等举措,又使刚刚发展起来的国内广告联盟平台运营市场经受了前所未有的打击.整体来看,Google似乎代表着一个标准,国内很多新兴的广告联盟平台几乎都在以它为自己的标榜.而这也就使得它们在看到Google降价之后,变得茫然失措了起来. Google到底懂不懂中国式营销? Google懂中国式营销.因为它知道中国拥有其他

徐静蕾:站长们,大家懂炒作吗?

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 本报记者李特报道 用了620天的时间,个人博客点击量就突破亿次大关.昨天下午,新浪网特意为徐静蕾博客12日11点18分点击量过亿举办庆祝酒会.新浪网执行副总裁.总编辑陈彤说:"老徐的博客目前是世界点击第一,她的博客创造了一个世界纪录."不过,现场的记者最感兴趣的还是老徐的博客点击率的真实性,对此,徐静蕾称:"说炒

写给想互联网创业, 但不懂技术的人

42区站长张沈鹏是个很有意思的互联网创业者,有不少想在互联网创业的互联网或者非互联网朋友跟他讨论创业问题.他最近整理的一篇文章<写给想互联网创业, 但不懂技术的人>,我认为是想在互联网创业的人很值得参考的,不管懂不懂技术.下面是文章全文,我将其转载到这里,是为了让更多互联网创业者看到.文章格式不像Tech2IPO其它文章的一贯风格,但读起来很轻松,希望读者们不要介意Tech2IPO小作者的偷懒. 最近了写了一个小网站42qu.com, 线上线下都涌现出很多IT圈外的同学们问我如何做网站的问题.

构筑情感,助推行为——电脑管家小火箭世界杯

构筑情感,助推行为 世界杯期间,大街小巷.茶余饭后都在议论着与足球相关的事情--今天下注赢了,可惜下少了:范佩西鱼跃腰真好:又出来个黑马,J星好妖等等.仿佛一夜春风来,千树万树球花开,每个人开始懂球了.琳琅满目的世界杯活动如雨后春笋般映入人们的眼帘,毕竟人的精力是有限的,刨去看球时间,去关注一个产品活动的时候,其余产品便如尘封的烛台慢慢落满灰尘,无人问津.如何持续的留住用户,让用户活跃在自己的产品上,这是每一个产品都需要思考的问题.小火箭世界杯从洞察用户行为开始, 信息构筑契合用户大脑深处的记忆

企业网专职SEO 月工资2700 我在坚持什么

引言:企业网站与普通SEO人员你们的出路在哪里? 前面我讲过了SEO人员与企业的关系,但是对于一个普通的SEO人员如何选择一个有潜力的公司作为依靠.作为自己创业的起点呢?下面我就针对这个问题来个分析与点评 一:首先SEO人员必须要熟悉基本的一些SEO手法与思路,懂得如何建立一个对搜索引擎友好的网站结构.不管你懂不懂网站制作,程序编写.你必须得懂得自己是需要搭建一个什么样网站. 二:你必须要对公司的产品有相当的熟悉,比如性能,参数,规格,行业术语等等.这样你才能定位住关键词与长尾关键词.知道展示一