数据流图DFD

数据流图,Data Flow Diagram,简称DFD,是SA方法中用于表示系统逻辑模型的一种工具。它以图形的方式描述数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。所以它是一种功能模型。

1,定义

    流图是系统的逻辑模型,用来描绘数据流在系统中流动和处理的情况。它以图形的方式刻画数据流从输入到输出的移动变换过程,是逻辑系统的图形表示。不涉及硬件,软件,数据结构,和文件组织,与物理描述无关。


2,特性

1)抽象性2)概括性3)层次性

3,基本元素组成

符号:

(1)→:数据流。

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

注意数据流符号:
a,数据流名应直观地反映数据流的含义。
b,数据流应统一编号。编号要与数据字典一致。
c,数据流的流向,有以下五种情况
需要注明数据流名的:
PPSPPD
不需要注明的:
PFFP
d,数据流经过一个加工后其数据结构,数据含义,数据的顺序一定会有所变化,否则这个加工就没有意义了。
e,两个实体间可以有多个数据流存在,但DFD并不表明他们之间的任何关系,诸如次序,主次等

(2)□:外部实体(数据源,终点,Date Flow)。

外部实体代表系统之外的实体,由一个或一组确定的数据项组成。可以是人、物或其他软件系统。
   外部实体分两种:
a,数据源:最初始的数据的来源。
b,终点:数据的去向。
 

(3)○:数据处理。

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

(4)〓:数据存储(文件)

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

 层次结构:

为了控制复杂性,采用“自顶向下逐层分解”的结构化分析方法。这种方法体现了分解和抽象的原则,把大问题分割成若干个小问题,方便研究。分层数据流图的顶层称为0层,它是第1层的父图,而第1层既是0层图的子图,又是第2层图的父图,依此类推。

一套分层的数据流图一般由顶层,底层,中间层组成。顶层数据流图是系统的边界。底层数据流图由一些不再分解的加工组成,这些加工都已足够简单,称为基本加工。在底层和顶层之间的是中间层,中间层数据流图描述了某个加工的分解,而它的组成部分又要进一步分解。较大的系统中间层可达8、9层之多。在分层的数据流图中,父图中有几个加工,它就可以有几个子图。


4,用途

(1)系统分析员用这种工具可以自顶向下分析系统信息流程。
2)可以在图上画出需要计算机处理的部分。
3)根据数据存贮,进一步作数据分析,向数据库设计过渡。
4)根据数据流向,定出存取方式。

5)对应一个处理过程,用相应的语言,判定表等工具表达处理方法。


5,画法

1),先画出顶层DFD
2),逐步分解,画出中间各层DFD(层号,图号,加工编号,)
3),装配平面数据流图(PlaneDFDPDFD)。

 

6,DFD的设计几条原则

总原则:

(1)分解加工要自然。不能强行分割。明确系统系统界面。
(2)减少加工间联系(数据流),提高加工的独立性。
(3)数据守恒。
判断数据守恒的方法:
子图所有外部输入(输出)数据流的合成是其父加工的所有输入(输出)数据流。
(4)均衡分解原则。尽量避免出现一些加工已经分解成为基本加工。而另一些加工还需要好多层的分解才能到达基本加工。
(5)合理布局
(6)语法的正确性
(7)层次的合理划分,和系统边界的确定
(8)可读性。

具体原则:

1 在单张DFD中,必须满足以下原则: 
(1) 一个加工的输出数据流不应该与输入数据流同名,即使它们的组成成分相同(流进和流出存储文件的数据流除外),数据流不能存在于 外部实体与外部实体之间,也不能存在于外部实体和数据存储文件之间;
(2) 保持数据守恒。一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者是通过该加工能产生的数据; 
(3) 每个加工必须既有输入数据流,又有输出数据流;
(4) 所有的数据流都必须以一个加工开始,或以一个加工结束(数据流存在于加工与加工之间,加工与数据存储文件之间,加工与外部实 体之间)。 

(5) 流向/流出数据存储文件的数据流名可以省略不写。 


2 在父图与子图之间,必须满足以下原则: 
(1) 保持父图与子图的平衡。也就是说,父图中某加工的输入(输出)数据流中的数据必须与它的子图的输入(输出)数据流中的数据在数 
量和名字上相同; 

(2) 加工细节隐藏。根据抽象原则,在画父图时,只需画出加工和加工之间的关系,而不必画出各个加工内部的细节; 

(3) 均匀分解。应该使一个数据流图中的各个加工分解层次大致相同; 


3其它应该注意的原则: 
(1)简化加工间关系。在数据流图中,加工间的数据流越少,各加工就越相对独立,所以应尽量减少加工间输入输出数据流的数目; 
(2) 适当地为数据流、加工、文件、源/宿命名,名字应反映该成分的实际意义,避免空洞的名字; 
(3) 忽略枝节。应集中精力于主要的数据流,而暂不考虑一些例外情况、出错处理等枝节性问题; 
(4) 表现的是数据流而不是控制流; 
(5)  在整套数据流图中,每个文件必须既有读文件的数据流又有写文件的数据流,但在某一张子图中可能只有读没有写或者只有写没有读。 
 

7,五个区别:(略)

数据流图和数据流程图的区别;
数据流图与系统流程图的区别;
数据流与程序流程图的区别;
数据流与程序结构图的区别;
数据流与控制流的区别。


8,值得注意的几个问题

1,适当的命名。V+N。
2DFD表示的数据流,而不是控制流。
为了区别数据流和控制流,只需问一个问题:这条路线有什么数据流过。
3,考虑稳定状态。
4,忽略琐碎的细节。
5,随时准备重画。
6,检查数据流图的正确性。
7,提高数据流的易读性/
8,重新分解。1——n。
9,数据流必须加工。



你可能感兴趣的:(数据流图DFD)