关于数据流图使用的总结

一、数据流图简介


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

数据流图属于功能模型的一种,以图形的方式描绘数据在系统中流动和处理的过程,属于需求分析阶段的产物

二、基本元素


数据流程图中有以下几种主要元素:

数据流:→

数据流是数据在系统内传播的路径,因此由一组成分固定的数据组成。如订票单由旅客姓名、年龄、单位、身份证号、日期、目的地等数据项组成。由于数据流是流动中的数据,所以必须有流向,除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名。

数据源或宿(“宿”表示数据的终点):□

代表系统之外的实体,可以是人、物或其他软件系统。

对数据的加工(处理):○

加工是对数据进行处理的单元,它接收一定的数据输入,对其进行处理,并产生输出。

数据存储:〓

表示信息的静态存储,可以代表文件、文件的一部分、数据库的元素等。

三、数据流图绘制的原则


  1. 一个加工的输出数据流不应与输入数据流同名,即使它们的组成成分相同。
  2. 保持数据守恒。也就是说,一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者说是通过该加工能产生的数据。
  3. 每个加工必须既有输入数据流,又有输出数据流。
  4. 所有的数据流必须以一个外部实体开始,并以一个外部实体结束。
  5. 外部实体之间不应该存在数据流

四、数据流图绘制的注意事项


  1. 命名。
    不论数据流、数据存储还是加工,合适的命名使人们易于理解其含义。
  2. 画数据流而不是控制流。
    数据流反映系统“做什么”,不反映“如何做”,因此箭头上的数据流名称只能是名词或名词短语,整个图中不反映加工的执行顺序。
  3. 一般不画物质流。
    数据流反映能用计算机处理的数据,并不是实物,因此对目标系统的数据流图一般不要画物质流。
  4. 每个加工至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果。
  5. 编号。
    如果一张数据流图中的某个加工分解成另一张数据流图时,则上层图为父图,直接下层图为子图。子图及其所有的加工都应编号。
  6. 父图与子图的平衡。
    子图的输入输出数据流同父图相应加工的输入输出数据流必须一致,此即父图与子图的平衡。
  7. 局部数据存储。
    当某层数据流图中的数据存储不是父图中相应加工的外部接口,而只是本图中某些加工之间的数据接口,则称这些数据存储为局部数据存储。
  8. 提高数据流图的易懂性。
    注意合理分解,要把一个加工分解成几个功能相对独立的子加工,这样可以减少加工之间输入、输出数据流的数目,增加数据流图的可理解性。

五、数据流图的绘制步骤


  • 第一步,画子系统的输入输出
    把整个系统视为一个大的加工,然后根据数据系统从哪些外部实体接收数据流,以及系统发送数据流到那些外部实体,就可以画出输入输出图。这张图称为顶层图。
  • 第二步,画子系统的内部
    把顶层图的加工分解成若干个加工,并用数据流将这些加工连接起来,使得顶层图的输入数据经过若干加工处理后,变成顶层图的输出数据流。这张图称为0层图。从一个加工画出一张数据流图的过程就是对加工的分解。
    可以用下述方法来确定加工:
    在数据流的组成或值发生变化的地方应该画出一个加工,这个加工的功能就是实现这一变化,也可以根据系统的功能决定加工。
    确定数据流的方法
    用户把若干数据当作一个单位来处理(这些数据一起到达、一起处理)时,可以把这些数据看成一个数据流。
    关于数据存储
    对于一些以后某个时间要使用的数据,可以组织成为一个数据存储来表示。
  • 第三步,画加工的内部
    把每个加工看作一个小系统,把加工的输入输出数据流看成小系统的输入输出流。于是可以象画0层图一样画出每个小系统的加工的DFD图。
  • 第四步,画子加工的分解图
    对第三步分解出来的DFD图中的每个加工,重复第三步的分解过程,直到图中尚未分解的加工都是足够简单的(即不可再分解)。至此,得到了一套分层数据流图。
  • 第五步,对数据流图和加工编号
    对于一个软件系统,其数据流图可能有许多层,每一层又有许多张图。为了区分不同的加工和不同的DFD子图,应该对每张图进行编号,以便于管理。
    • 顶层图只有一张,图中的加工也只有一个,所以不必为其编号。
    • 0层图只有一张,图中的加工号分别是0.1、0.2、…,或者1, 2 。
    • 子图就是父图中被分解的加工号。
    • 子图中的加工号是由图号、圆点和序号组成,如:1.12,1.3 等等。
  • 应该注意的问题:
    1. 应适当的为数据流、加工、数据存储以及外部实体命名,名字应该反映该成分的实际含义,避免使用空洞的名字。
    2. 画数据流图,不是画控制流。
    3. 一个加工的输出数据流,不应与输入数据流同名,及时他们的组成完全相同。
    4. 允许一个加工有多条数据流流向另一个加工,也允许一个加工有两条相同的输出数据流流向不同的加工。
    5. 保持父图与子图的平衡。也就是说,父图中的某加工的输入输出流必须与他的子图的输入输出数据流在数量上和名字上相同。值得注意的是,如果父图中的一个输入(输出)数据流对应于子图中的几个输入(输出)数据流,而子图中组成这些数据流的数据项的全体正好是父图中的这一个数据流,那么他们仍然算是平衡的。
    6. 在自顶向下的分解过程中,若一个数据存储首次出现时,只与一个加工有关系,那么这个数据存储应作为这个加工的内部文件而不必画出。
    7. 保持数据守恒,也就是,一个加工的所有输出数据流中的数据必须能从该加工的输出流中直接获得,或者通过该加工能产生的数据。
    8. 每个加工必须既有输入数据流,又有输出数据流。
    9. 在整套数据流图中,每个数据存储必须既有读的数据流,又有写的数据流。但是在某张子图中,可能只有读没有写,或者只有写没有读。

参考资料

  1. 数据流图_百度百科
    http://baike.baidu.com/link?url=8X8cCXRkXA2c8Qx62c6cPYCzNj-ray2uopLj059P_YJe1wUio-b_ywAYyv3pZRh8ofAeB2BzGD5OVlWRRRDjjtWXa_huVxv49WHMjTBE93TmFt8QduBBLsPN31KXl5Lt

  2. 数据流图的画法及实例
    http://blog.csdn.net/upwaker/archive/2004/08/07/68054.aspx

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值