初次认识数据流图
数据流图
说到数据流图,这算是在一个系统前期对一个系统的数据的很好的描述,正所谓一张图抵得上千言万语,所以在软件需求说明书中的至关重要的一个环节,所以在这里我为大家简单的的介绍一下软件需求说明书中的数据流图。
概念
数据流图(Data Flow Diagram)
是一种图形化的系统模型,它在一张图中展示信息系统的数据流向——即系统的输入与输出数据分别是什么,数据从哪里来并最终流向何处,以及数据存储在什么地方。
画图的目的
需求分析阶段,为了获得一个对新系统的框架认识、概念性认识,需要对新系统建模。而用图形表示需求,就是需求建模,获得分析模型。需求分析方法中的结构化分析方法的特点是利用数据流图来帮助人们理解问题,对问题进行分析,并且也是与客户交流很重要的交流。
基本组成
数据流(-->):是由一组固定成分的数据组成,表示数据的流向。值得注意的是,数据流图中描述的是数据流,而不是控制流。除了流向数据存储或从数据存储流出的数据不必命名外,每个数据流必须要有一个合适的名字,以反映该数据流的含义。
加工(〇):加工描述了输入数据流到输出数据之间的变换,也就是输入数据流经过什么处理后变成了输出数据。每个加工都有一个名字和编号。编号能反映该加工位于分层的数据流图的哪个层次和哪张图中,能够看出它是由哪个加工分解出来的子加工。
数据存储 (=):数据存储表示暂时存储的数据。每个数据存储都有一个名字。
外部实体(□):外部实体是存在于软件系统之外的人员或组织,他指出数据所需要的发源地或系统所产生的数据的归属地,也就是源点和终点。
如何画图
第一步:确定系统的输入输出
应该向用户了解“系统从外界接受什么数据”、“系统向外界送出什么数据”等信息,然后,根据用户的答复画出数据流图的外围。这张图成为顶层图
第二步:由外向里画系统的顶层数据流图
首先,将系统的输人数据和输出数据用一连串的加工连接起来。在数据流的值发生变化的地方就是一个加工。接着,给各个加工命名。然后,给加工之间的数据命名。最后,给文件命名。这张图称为0层图。从一个加工画出一张数据流图的过程就是对加工的分解。
可以用下述方法来确定加工:
1.在数据流的组成或值发生变化的地方应该画出一个加工,这个加工的功能就是实现这一变化,也可以根据系统的功能决定加工。例如我们登录时的验证信息,就是一个简单的加工过程
2.确定数据流的方法
用户把若干数据当作一个单位来处理(这些数据一起到达、一起处理)时,可以把这些数据看成一个数据流。
3.关于数据存储
对于一些以后某个时间要使用的数据,可以组织成为一个数据存储来表示。
第三步:自顶向下逐层分解,绘出分层数据流图
对于大型的系统,为了控制复杂性,便于理解,需要采用自顶向下逐层分解的方法进行,即用分层的方法将一个数据流图分解成几个数据流图来分别表示。
应该注意的问题:
1. 应适当的为数据流、加工、数据存储以及外部实体命名,名字应该反映该成分的实际含义,避免使用空洞的名字。
2. 画数据流图,不是画控制流。
3. 一个加工的输出数据流,不应与输入数据流同名,及时他们的组成完全相同。
4. 允许一个加工有多条数据流流向另一个加工,也允许一个加工有两条相同的输出数据流流向不同的加工。
5.保持父图与子图的平衡。也就是说,父图中的某加工的输入输出流必须与他的子图的输入输出数据流在数量上和名字上相同。值得注意的是,如果父图中的一个输入(输出)数据流对应于子图中的几个输入(输出)数据流,而子图中组成这些数据流的数据项的全体正好是父图中的这一个数据流,那么他们仍然算是平衡的。
6. 在自顶向下的分解过程中,若一个数据存储首次出现时,只与一个加工有关系,那么这个数据存储应作为这个加工的内部文件而不必画出。
7. 保持数据守恒,也就是,一个加工的所有输出数据流中的数据必须能从该加工的输出流中直接获得,或者通过该加工能产生的数据。
8. 每个加工必须既有输入数据流,又有输出数据流。
9. 在整套数据流图中,每个数据存储必须既有读的数据流,又有写的数据流。但是在某张子图中,可能只有读没有写,或者只有写没有读。
下面便是我对机房收费系统的一张数据流图,仅仅是对大家做个参考。