数据流图

一.概念

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


二.基本符号

  

 

三.分层情况

 

 (1)顶层。决定系统的范围,决定输入输出数据流,它说明系统的边界,把整个系统的功能抽象为一个加工,顶层DFD只有一张。

 (2)中间层。顶层之下是若干中间层,某一中间层既是它上一层加工的分解结果,又是它下一层若干加工的抽象,即它又可进一步分解。

 (3)底层。若一张DFD的加工不能进一步分解,这张DFD就是底层的了。底层DFD的加工是由基本加工构成的,所谓基本加工是指不能再进行分解的加工。

  

四.基本成分

  系统部件包括系统的外部实体、处理过程、数据存储和系统中的数据流四个组成部分

  (1)外部实体(找外部实体,解题思路:先找出系统中的实体,在把系统实体除去)

 外部实体指系统以外又和系统有联系的人或事物,它说明了数据的外部来源和去处,属于系统的外部和系统的界面。外部实体支持系统数据输入的实体称为源点,支持系统数据输出的实体称为终点。通常外部实体在数据流程图中用正方形框表示,框中写上外部实体名称,为了区分不同的外部实体,可以在正方形的左上角用一个字符表示,同一外部实体可在一张数据流程图中出现多次,这时在该外部实体符号的右下角画上小斜线表示重复.

 ( 2)处理过程

 处理指对数据逻辑处理,也就是数据变换,它用来改变数据值。而每一种处理又包括数据输入、数据处理和数据输出等部分。在数据流程图中处理过程用带圆角的长方形表示处理,长方形分三个部分,标识部分用来标识一个功能,功能描述部门是必不可少的,功能执行部门表示功能由谁来完成。

  (3)数据流

 数据流是指处理功能的输入或输出。它用来表示一中间数据流值,但不能用来改变数据值。数据流是模拟系统数据在系统中传递过程的工具。

  在数据流程图中用一个水平箭头或垂直箭头表示,箭头指出数据的流动方向,箭线旁注明数据流名。

  (4)数据存储

 数据存储表示数据保存的地方,它用来存储数据。系统处理从数据存储中提取数据,也将处理的数据返回数据存储。与数据流不同的是数据存储本身不产生任何操作,它仅仅响应存储和访问数据的要求。

 


五.数据流图解题思路

在软考出题中,需要完成的就是找出缺少的数据源,存储文件,和缺少的数据流.再看第一次题目的时候就可以在草稿纸上把说明中的出现的名词提取出来,把xxx 文件写出来,在根据给出的部分数据流图来判断和这些数据源和存储文件的位置.具体的解题要领如下:

 1.首先要懂得数据流图设计要略。

(1)自外向内,自顶向下,逐层细化,完善求精。


(2)保持父图与子图的平衡。
  根据层次关系一般将数据流图分为顶层数据流图、中间数据流图和底层数据流图,除顶层图外,其余分层数据流图从0开始编号。对任何一层数据流图来说,称它的上层数据流图为父图,在它的下一层的数据流图为子图。
  顶层数据流图只含有一个加工,表示整个系统;输入数据流和输出数据流为系统的输入数据和输出数据,表明了系统的范围,以及与外部环境的数据交换关系。
  底层数据流图是指其加工不能再分解的数据流图,其加工称为“原子加工”。
  中间数据流图是对父层数据流图中某个加工进行细化,而它的某个加工也可以再次细化,形成子图。中间层次的多少,一般视系统的复杂程度而定。
  任何一个数据流子图必须与它上一层父图的某个加工对应,二者的输入数据流和输出数据流必须保持一致,此即父图与子图的平衡。父图与子图的平衡是数据流图中的重要性质,保证了数据流图的一致性,便于分析人员阅读和理解。
  在父图与子图平衡中,数据流的数目和名称可以完全相同;也可以在数目上不相等,但是可以借助数据字典中数据流描述,确定父图中的数据流是由子图中几个数据流合并而成的,也即子图是对父图中加工和数据流同时进行分解,因此也属于父图与子图的平衡,如图1所示。
(3)保持数据守恒

一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者是通过该加工能产生的数据。每个加工必须有输入数据流和输出数据流,反映此加工的数据来源和加工变换结果。一个加工的输出数据流只由它的输入数据流确定。数据流必须经过加工,即必须进入加工或从加工中流出。

(4)加工细节隐蔽

根据抽象原则,在画父图时,只需画出加工和加工之间的关系,而不必画出各个加工内部的细节。当某层数据流图中的数据存储不是父图中相应加工的外部接口,而只是本图中某些加工之间的数据接口时,那么这些数据存储为局部数据存储。

(5)简化加工间的关系

在数据流图中,加工间的数据流越少,各个加工就越相对独立,所以应尽量减少加工间输入输出数据流的数目。
(6)均匀分解

应该使一个数据流中的各个加工分解层次大致相同。
(7)适当地为数据流、加工、文件、源/宿命名,名字应反映该成分的实际意义,避免空洞的名字。
(8)忽略枝节。应集中精力于主要的数据流,而暂不考虑一些例外情况、出错处理等枝节性的问题。
(9)表现的是数据流而不是控制流。数据流图与传统的程序流程图不同,数据流图是从数据的角度来描述一个系统的,而流程图则是从对数据加工的角度来描述系统的。数据流图中的箭头是数据流,而流程图中的箭头则是控制流,它表达的是程序执行的次序。数据流图适合于宏观地分析一个组织的业务概况,而程序流程图只适合于描述系统中某个加工的执行细节。
 每个加工必须既有输入数据流,又有输出数据流;在整套数据流图中,每个文件必须既有读文件的数据流又有写文件的数据流,但在某一张子图中可能只有读、没有写,或者只有写、没有读。


2.解题的方法。

(1) 数据平衡原则。
数据平衡原则分为两个方面:
  ① 在分层数据流图中,父图和子图要平衡,也就是说,父图中某加工的输入输出数据流必须与它的子图的输入输出数据流在数量和名字上相同。
  ②数据平衡的另一个方面是说:每个加工必须即有输入数据流又有输出数据流,而且一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者是通过该加工能产生的数据
(2) 要特别注意的几个细节问题。
  ① 除了流向数据存储(文件)或从数据存储流出的数据流不必命名外,其它每个数据流都必须有一个合适的名字。

  ②流向文件的数据流,表示写入数据,流出文件的数据流表示读文件。在整套数据流图中,每个文件必须既有读的数据流又有写的数据流,但在某一张子图中可能只有读没有写,或者只有写没有读。
  ③在逐步精化的过程中,若一个文件首次出现时只与一个加工有关,既该文件是个加工的内部文件,那么该文件在当层图中不必画出,可在该加工的细化图中画出。


注意:物理数据流图与逻辑数据流图的区别:

           物理数据流图关注的是系统中的物理实体,以及一些具体的内容,报告和其他输入/输出硬拷贝.它用做系统构造和实现的技术性蓝图,要说明加工和数据存储是如何实现的。

 

           逻辑数据流图强调参与者所做的事情,可以帮助设计者决定需要哪些系统资源,为了运行系统用户必须执行的活动,在系统安装之后如何保护和控制这些系统.

 

           逻辑数据流图是物理数据流图去掉了所有物理细节后得到的变换形式,逻辑数据流图被用做系统分析的需求分析阶段的起点.

 

           逻辑数据流图强调参与者所做的事情,可以帮助设计者决定需要那些资源。逻辑数据流图说明应该具有那些加工和数据存储,而不关心这些加工和数据存储是如何实现的。

    

           

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论
绘制数据流(DFD)是一种用以描述系统中数据流动和处理的形化工具。数据流是通过标识系统中的输入、处理和输出过程,以及数据在这些过程中传递的方式来展示系统的运作过程和数据流动路径。 绘制数据流的过程是可迭代的,首先要确定系统的边界,即系统与外部实体的交互界面。然后,通过识别输入和输出来定义系统的过程。接下来,将数据流标记为输入、输出或在过程间流动的数据,并标出这些数据的类型。在数据流中,使用箭头表示数据的流动方向,并使用方框表示过程。过程可以是某种计算或处理的操作。 数据流可以分为多个层级,通过将较高级的形细分为更详细的子过程和数据流,帮助用户更好地理解系统的功能和流程。此外,数据流还可以用来发现系统中的冗余、冲突和矛盾,并提供改进系统的基础。 在绘制数据流时,需要遵守一些基本原则。首先,每个过程应该清晰地定义其输入和输出。其次,数据流应该从一个过程直接流动到另一个过程,而不是通过存储区域。此外,过多的细节不应在中显示,应将其延迟至更详细的层级。 绘制数据流的好处是可以帮助用户更好地了解系统的运作过程和数据流动路径,有助于发现系统中的问题和改进方案。同时,数据流也是沟通和交流的工具,可以将系统的功能和需求以形化的方式传达给相关人员。 综上所述,数据流是一种用于描述系统中数据流动和处理方式的形化工具。通过标识输入、处理和输出过程以及数据在这些过程中的流动路径,数据流帮助我们更好地理解系统的功能和运作流程,并提供改进系统的基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弯_弯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值