浅析数据流图

来源:互联网 发布:南京软件协会 编辑:程序博客网 时间:2024/05/29 15:45

        在软工视频还有自考课本中以及后面的学习中,我们都要用到数据流图,那么什么是数据流图呢,在我没有深入了解它之前先介绍一下。

一、数据流图(DFD)

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

       数据流图英文缩写DFDData Flow Diagram)它是描绘信息流和数据从输入移动到输出的过程中所经受的变换。数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。

      数据流程图包括:

a.指明数据存在的数据符号,这些数据符号也可指明该数据所使用的媒体;

b.指明对数据执行的处理的处理符号,这些符号也可指明该处理所用到的机器功能;

c.指明几个处理和(或)数据媒体之间的数据流的流线符号;

d.便于读、写数据流程图的特殊符号。

       在处理符号的前后都应是数据符号。数据流程图以数据符号开始和结束(除94规定的特殊符号外)

       数据流图有两种典型结构,一是变换型结构,它所描述的工作可表示为输入、主处理和输出,变换型结构数据流图如图

另一种是事务型结构,这种数据流图呈束状,即一束数据流平行流入或流出,

 事务型结构数据流图

可能同时有几个事务要求处理。

 二、原理

       DFD设计过程就是将数据和处理进行逐层分解就形成了若干层次的DFDDFD分为顶层图(只有一张)0层图(也只有一张)、子图、子子图等等。

三、组成元素

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

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

:数据源(终点)。代表系统之外的实体,可以是人、物或其他软件系统。

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

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

四、原则

     在单张数据流图时,必须注意以下原则:

1.一个加工的输出数据流不应与输入数据流同名,即使它们的组成成分相同。

2.保持数据守恒。也就是说,一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者说是通过该加工能产生的数据。

3.每个加工必须既有输入数据流,又有输出数据流。

4.所有的数据流必须以一个外部实体开始,并以一个外部实体结束。

5.外部实体之间不应该存在数据流

五、DFD画法

1.确定系统的输入输出

由于系统究竟包括哪些功能可能一时难于弄清楚,可使范围尽量大一些,把可能有的内容全部都包括进去。此时,应该向用户了解系统从外界接受什么数据系统向外界送出什么数据等信息,然后,根据用户的答复画出数据流图的外围。

2.由外向里画系统的顶层数据流图

首先,将系统的输入数据和输出数据用一连串的加工连接起来。在数据流的值发生变化的地方就是一个加工。接着,给各个加工命名。然后,给加工之间的数据命名。最后,给文件命名。

3.自顶向下逐层分解,绘出分层数据流图

对于大型的系统,为了控制复杂性,便于理解,需要采用自顶向下逐层分解的方法进行,即用分层的方法将一个数据流图分解成几个数据流图来分别表示。

六、检查和修改数据流图的原则

1.限于四中基本图形元素

2.主图必须包括四种基本元素

3.每个加工至少一个输入数据流和输出数据流

4.按层给加工编号。

5.数据流子图必须和上一层的加工对应。

七、注意事项

1.命名。不论数据流、数据存储还是加工,合适的命名使人们易于理解其含义。

2.画数据流而不是控制流。数据流反映系统做什么,不反映如何做,因此箭头上的数据流名称只能是名词或名词短语,整个图中不反映加工的执行顺序。

3.一般不画物质流。数据流反映能用计算机处理的数据,并不是实物,因此对目标系统的数据流图一般不要画物质流。

4.每个加工至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果。

5.编号。如果一张数据流图中的某个加工分解成另一张数据流图时,则上层图为父图,直接下层图为子图。子图及其所有的加工都应编号。

6.父图与子图的平衡。子图的输入输出数据流同父图相应加工的输入输出数据流必须一致,此即父图与子图的平衡。

7.局部数据存储。当某层数据流图中的数据存储不是父图中相应加工的外部接口,而只是本图中某些加工之间的数据接口,则称这些数据存储为局部数据存储。

8.提高数据流图的易懂性。注意合理分解,要把一个加工分解成几个功能相对独立的子加工,这样可以减少加工之间输入、输出数据流的数目,增加数据流图的可理解性。

八、.对数据流图和加工编号

对于一个软件系统,其数据流图可能有许多层,每一层又有许多张图。为了区分不同的加工和不同的DFD子图,应该对每张图进行编号,以便于管理。

顶层图只有一张,图中的加工也只有一个,所以不必为其编号。

0层图只有一张,图中的加工号分别是0.10.2、…,或者1 2

子图就是父图中被分解的加工号。

子图中的加工号是由图号、圆点和序号组成,如:1.121.3等等。

      DFD其实主要是对加工不断分解的过程,在此过程中要重点注意父子图以及数据、数据流的平衡。

 

0 1
原创粉丝点击