讲义:数据流程图dfd
- 格式:doc
- 大小:91.50 KB
- 文档页数:8
数据流图和数据流程图⼀、数据流图1.(Data Flow Diagram):简称DFD,它从数据传递和加⼯⾓度,以图形⽅式来表达系统的逻辑功能、在系统内部的逻辑流向和逻辑变换过程,是的主要表达⼯具及⽤于表⽰软件模型的⼀种图⽰⽅法。
2.包括:a.指明数据存在的数据符号,这些数据符号也可指明该数据所使⽤的媒体;b.指明对数据执⾏的处理的处理符号,这些符号也可指明该处理所⽤到的机器功能;c.指明⼏个处理和(或)数据媒体之间的数据流的流线符号;d.便于读、写数据流程图的特殊符号。
3.中有以下⼏种主要元素:→:数据流。
数据流是数据在系统内传播的路径,因此由⼀组成分固定的数据组成。
□:数据源或宿(“宿”表⽰数据的终点)。
代表系统之外的实体,可以是⼈、物或其他软件系统。
○:对数据的加⼯(处理)。
加⼯是对数据进⾏处理的单元,它接收⼀定的数据输⼊,对其进⾏处理,并产⽣输出。
〓:数据存储。
表⽰信息的静态存储,可以代表⽂件、⽂件的⼀部分、数据库的元素等。
⼆、数据流程图1.数据流程图(Data Flow Diagram,DFD/Data Flow Chart),是描述系统数据流程的⼯具,它将数据独⽴抽象出来,通过图形⽅式描述信息的来龙去脉和实际流程。
它是⼀种能全⾯地描述信息系统逻辑模型的主要⼯具。
它可以利⽤少数⼏种符号综合的反映出信息在系统中的流动、处理和存储的情况。
2.数据流程图具有抽象性和概括性。
3.数据流程图的基本成分系统部件包括系统的外部实体、处理过程、数据存储和系统中的数据流四个组成部分a,外部实体外部实体指系统以外⼜和系统有联系的⼈或事物,它说明了数据的外部来源和去处,属于系统的外部和系统的界⾯。
通常外部实体在数据流程图中⽤正⽅形框表⽰,框中写上外部实体名称b,处理过程处理指对数据逻辑处理,也就是数据变换,它⽤来改变数据值。
⽽每⼀种处理⼜包括数据输⼊、数据处理和数据输出等部分。
在数据流程图中处理过程⽤带圆⾓的长⽅形表⽰处理,长⽅形分三个部分,标识部分⽤来标识⼀个功能,功能描述部门是必不可少的,功能执⾏部门表⽰功能由谁来完成。
数据流图百科名片数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
目录编辑本段简介数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。
数据流图英文缩写DFD(Data Flow Diagram)它是描绘信息流和数据从输入移动到输出的过程中所经受的变换。
数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。
数据流程图包括:a.指明数据存在的数据符号,这些数据符号也可指明该数据所使用的媒体;b.指明对数据执行的处理的处理符号,这些符号也可指明该处理所用到的机器功能;c.指明几个处理和(或)数据媒体之间的数据流的流线符号;d.便于读、写数据流程图的特殊符号。
在处理符号的前后都应是数据符号。
数据流程图以数据符号开始和结束(除9.4规定的特殊符号外)编辑本段数据流数据流是一组数据。
在数据流图中数据流用带箭头的线表示,在其线旁标注数据流名。
在数据流图中应该描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件。
加工(处理)在数据流图中加工用圆圈表示,在圆圈内写上加工名。
一个处理框可以代表一系列程序、单个程序或者程序的一个模块。
编辑本段组成元素数据流图数据流程图中有以下几种主要元素:→:数据流。
数据流是数据在系统内传播的路径,因此由一组成分固定的数据组成。
如订票单由旅客姓名、年龄、单位、身份证号、日期、目的地等数据项组成。
由于数据流是流动中的数据,所以必须有流向,除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名。
□:数据源(终点)。
代表系统之外的实体,可以是人、物或其他软件系统。
○:对数据的加工(处理)。
为数据处理)。
对数据流进⾏某些操作或变换。
每个加⼯也要有名字,通常是动词短语,简明地描述完成什么加⼯。
在分层的数据流图中,加⼯还应编号。
(3)数据存储(⼜称为⽂件),指暂时保存的数据,它可以是数据库⽂件或任何形式的数据组织。
(4)数据源点或终点,是本软件系统外部环境中的实体(包括⼈员、组织或其他软件系统),统称外部实体。
⼀般只出现在数据流图的顶层图。
画数据流图的步骤 (1)⾸先画系统的输⼊输出,即先画顶层数据流图。
顶层流图只包含⼀个加⼯,⽤以表⽰被开发的系统,然后考虑该系统有哪些输⼊数据、输出数据流。
顶层图的作⽤在于表明被开发系统的范围以及它和周围环境的数据交换关系。
下图为飞机机票预订系统的顶层图。
(2)画系统内部,即画下层数据流图。
不再分解的加⼯称为基本加⼯。
⼀般将层号从0开始编号,采⽤⾃顶向下,由外向内的原则。
画0层数据流图时,分解顶层流图的系统为若⼲⼦系统,决定每个⼦系统间的数据接⼝和活动关系。
例如,在上⾯的机票预订系统按功能可分成两部分,⼀部分为旅⾏社预订机票,另⼀部分为旅客取票,两部分通过机票⽂件的数据存储联系起来,0层数据流图如图3-4。
(3)注意事项。
①命名。
不论数据流、数据存储还是加⼯,合适的命名使⼈们易于理解其含义。
②画数据流⽽不是控制流。
数据流反映系统”做什么”,不反映“如何做”,因此箭头上的数据流名称只能是名词或名词短语,整个图中不反映加⼯的执⾏顺序。
③⼀般不画物质流。
数据流反映能⽤计算机处理的数据,并不是实物,因此对⽬标系统的数据流图⼀般不要画物质流。
④每个加⼯⾄少有⼀个输⼊数据流和⼀个输出数据流,反映出此加⼯数据的来源与加⼯的结果。
⑤编号。
如果⼀张数据流图中的某个加⼯分解成另⼀张数据流图时,则上层图为⽗图,直接下层图为⼦图。
⼦图及其所有的加⼯都应编号。
⑥⽗图与⼦图的平衡。
⼦图的输⼊输出数据流同⽗图相应加⼯的输⼊输出数据流必须⼀致,此即⽗图与⼦图的平衡。
⑦局部数据存储。
当某层数据流图中的数据存储不是⽗图中相应加⼯的外部接⼝,⽽只是本图中某些加⼯之间的数据接⼝,则称这些数据存储为局部数据存储。
数据流图数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。
数据流图英文缩写DFD(Data Flow Diagram)它是描绘信息流和数据从输入移动到输出的过程中所经受的变换。
数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。
数据流图的基本图形元素有:(1)数据流(2)加工(处理)(3)文件(数据存储)(4)数据池(数据源或终点)数据流图-定义数据流程图表示求解某一问题的数据通路。
同时规定了处理的主要阶段和所用的各种数据媒体。
数据流程图包括:a.指明数据存在的数据符号,这些数据符号也可指明该数据所使用的媒体;b.指明对数据执行的处理的处理符号,这些符号也可指明该处理所用到的机器功能;c.指明几个处理和(或)数据媒体之间的数据流的流线符号;d.便于读、写数据流程图的特殊符号。
在处理符号的前后都应是数据符号。
数据流程图以数据符号开始和结束(除9.4规定的特殊符号外)数据流图-DFD 主要图形元素数据流图有四种基本图形符号:-->:箭头,表示数据流;〇:圆或椭圆,表示加工;= :双杠,表示数据存储;□:方框,表示数据的源点或终点。
数据流图-数据流数据流是一组数据。
在数据流图中数据流用带箭头的线表示,在其线旁标注数据流名。
在数据流图中应该描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件。
加工(处理)在数据流图中加工用圆圈表示,在圆圈内写上加工名。
一个处理框可以代表一系列程序、单个程序或者程序的一个模块。
数据流图数据流图-加工(处理)在数据流图中加工用圆圈表示,在圆圈内写上加工名。
一个处理框可以代表一系列程序、单个程序或者程序的一个模块。
数据流图-文件(数据存储)是按照某种规则组织起来的、长度不限的数据。
在数据流图中文件用一直线表示,在线段旁注上文件名。
一个数据存储也并不等同于一个文件,它可以表示一个文件、文件的一部分、数据库的元素或记录的一部分等;数据流图-数据池(源点和终点)在数据流图中用方框表示,在框内写上相应的名称。
数据流程图(DFD)数据流程图——描述数据流动、存储、处理的逻辑关系,也称为逻辑数据流程图,一般用DFD (Data Flow Diagram)表示。
一、数据流程图的基本成分数据流程图用到四个基本符号,即:外部实体、数据处理、数据流和数据存储。
现分别介绍如下:1、外部实体外部实体——指系统以外又与系统有联系的人或事物。
它表达该系统数据的外部来源和去处,例如:顾客、职工、供货单位等等。
外部实体也可以是另外一个信息系统。
一般用一个正方形,并在其左上角外边另加一个直角来表示外部实体,在正方形内写上这个外部实体的名称。
为了区分不同的外部实体,可以在正方形的左上角用一个字符表示。
在数据流程图中,为了减少线条的交叉,同一个外部实体可在一张数据流程图中出现多次,这时在该外部实体符号的右下角画小斜线,表示重复。
若重复的外部实体有多个,则相同的外部实体画数目相同的小斜线。
外部实体的表示如图6.1所示。
图6.1外部实体2.数据处理处理指对数据的逻辑处理,也就是数据的变换。
在数据流程图中,用带圆角的长方形表示处理,长方形分为三个部分,如图6.2所示。
图6.2 处理标识部分用来标别一个功能,一般用字符串表示,如P1、P1.1等等。
功能描述部分是必不可少的,它直接表达这个处理的逻辑功能。
一般用一个动词加一个作动词宾语的名词表示。
功能执行部分表示这个功能由谁来完成,可以是一个人,也可以是一个部门,也可以是某个计算机程序。
3.数据流数据流是指处理功能的输人或输出,用一个水平箭头或垂直箭头表示。
箭头指出数据的流动方向。
数据流可以是信件、票据,也可以是电话等。
一般说来,对每个数据流要加以简单的描述,使用户和系统设计员能够理解一个数据流的含义。
对数据流的描述写在箭头的上方,一些含义十分明确的数据流,也可以不加说明,如图6.3所示。
图6.3数据流4.数据存储数据存储表示数据保存的地方。
这里"地方"并不是指保存数据的物理地点或物理介质,而是指数据存储的逻辑描述。
数据流程图(DFD)说明目录第一节、系统需求规格说明书标准.................................................... .. (2)第二节、系统规格文档的项目标准.................................................... .. (3)一. 文档标准及命名规则.........3 二. 系统需求说明书所需表格3 第三节、附录 (4)一. 数据流程图(DFD)说明 (4)二. 数据流程图(DFD)符号说明.................................................... ...................................................... .. 5 三. 数据流程图(DFD)命名规则.................................................... ........................................................ 6 四. 数据流(DF)命名规则.......... 7 五. 数据存储体(DS)命名规则. 8 六. 实体关系图(E-R)说明......... 9 七. 数据存储体说明.....10 八. 数据流说明.............11 九. 作业处理说明.........12 十. 数据流索引.............13 十一. 数据存储体索引14 十二. 数据字典说明....15 十三. 范式化完成的数据项说明.................................................... ....................................................16第一节、系统需求规格说明书标准一、系统目标二、系统范围三、新逻辑模型(NLM)1、数据流程图(DFD)2、数据流(DF)描述3、数据存储体(DS)描述 4、作业处理(PD)描述四、数据需求 1、数据项定义(数据字典) 2、范式化的数据存储体 3、实体关系(E-R)图五、性能需求(可选) 六、软/硬件需求(可选) 七、系统设计的前提/假设条件第二节、系统规格文档的项目标准一. 文档标准及命名规则1、文档用纸的规格2、命名标准 1)系统/子系统编号 2)数据项命名规则 3)屏幕、报表编号 4)范式化过程的表示法例:DS_经范式化后为DS_1=@item1+item2+…, DS2_, DS3_…… 5)DFD符号说明 (见附表) 6)DF命名规则 (见附表) 7)DS命名规则 (见附表) 8)E-RD命名规则(见附表)二. 系统需求说明书所需表格 1、数据流程图(DFD)说明 2、数据流(DF)说明 3、数据存储体(DS)说明 4、作业处理(PD)说明 5、实体关系图(E-R)图说明 6、数据字典说明第三节、附录一. 数据流程图(DFD)说明项目代号:系统代号:页号:填写人:系统名称:日期:描述项目名称描述要领及各项标准2. DFD 说明1) 数据流图(DFD)是以简洁/明了的图形来表示业务处理以及所需之输入及输出数据。
数据流图(DFD)专题讲解及例题分析——解题的方法与技巧1.首先要懂得数据流图设计要略有时为了增加数据流图的清晰性,防止数据流的箭头线太长,减少交叉绘制数据流条数,一般在一张图上可以重复同名的数据源点、终点与数据存储文件。
如某个外部实体既是数据源点又是数据汇点,可以在数据流图的不同的地方重复绘制。
在绘制时应该注意以下要点:(1)自外向内,自顶向下,逐层细化,完善求精。
(2)保持父图与子图的平衡。
为了表达较为复杂问题的数据处理过程,用一个数据流图往往不够。
一般按问题的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系。
根据层次关系一般将数据流图分为顶层数据流图、中间数据流图和底层数据流图,除顶层图外,其余分层数据流图从0开始编号。
对任何一层数据流图来说,称它的上层数据流图为父图,在它的下一层的数据流图为子图。
顶层数据流图只含有一个加工,表示整个系统;输入数据流和输出数据流为系统的输入数据和输出数据,表明了系统的范围,以及与外部环境的数据交换关系。
底层数据流图是指其加工不能再分解的数据流图,其加工称为“原子加工”。
中间数据流图是对父层数据流图中某个加工进行细化,而它的某个加工也可以再次细化,形成子图。
中间层次的多少,一般视系统的复杂程度而定。
任何一个数据流子图必须与它上一层父图的某个加工对应,二者的输入数据流和输出数据流必须保持一致,此即父图与子图的平衡。
父图与子图的平衡是数据流图中的重要性质,保证了数据流图的一致性,便于分析人员阅读和理解。
在父图与子图平衡中,数据流的数目和名称可以完全相同;也可以在数目上不相等,但是可以借助数据字典中数据流描述,确定父图中的数据流是由子图中几个数据流合并而成的,也即子图是对父图中加工和数据流同时进行分解,因此也属于父图与子图的平衡,如图1所示。
图1 父图与子图的平衡(3)保持数据守恒。
也就是说,一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者是通过该加工能产生的数据。
数据流程图(DFD)数据流程图——描述数据流动、存储、处理的逻辑关系,也称为逻辑数据流程图,一般用DFD (Data Flow Diagram)表示。
一、数据流程图的基本成分数据流程图用到四个基本符号,即:外部实体、数据处理、数据流和数据存储。
现分别介绍如下:1、外部实体外部实体——指系统以外又与系统有联系的人或事物。
它表达该系统数据的外部来源和去处,例如:顾客、职工、供货单位等等。
外部实体也可以是另外一个信息系统。
一般用一个正方形,并在其左上角外边另加一个直角来表示外部实体,在正方形内写上这个外部实体的名称。
为了区分不同的外部实体,可以在正方形的左上角用一个字符表示。
在数据流程图中,为了减少线条的交叉,同一个外部实体可在一张数据流程图中出现多次,这时在该外部实体符号的右下角画小斜线,表示重复。
若重复的外部实体有多个,则相同的外部实体画数目相同的小斜线。
外部实体的表示如图6.1所示。
图6.1外部实体2.数据处理处理指对数据的逻辑处理,也就是数据的变换。
在数据流程图中,用带圆角的长方形表示处理,长方形分为三个部分,如图6.2所示。
图6.2 处理标识部分用来标别一个功能,一般用字符串表示,如P1、P1.1等等。
功能描述部分是必不可少的,它直接表达这个处理的逻辑功能。
一般用一个动词加一个作动词宾语的名词表示。
功能执行部分表示这个功能由谁来完成,可以是一个人,也可以是一个部门,也可以是某个计算机程序。
3.数据流数据流是指处理功能的输人或输出,用一个水平箭头或垂直箭头表示。
箭头指出数据的流动方向。
数据流可以是信件、票据,也可以是电话等。
一般说来,对每个数据流要加以简单的描述,使用户和系统设计员能够理解一个数据流的含义。
对数据流的描述写在箭头的上方,一些含义十分明确的数据流,也可以不加说明,如图6.3所示。
图6.3数据流4.数据存储数据存储表示数据保存的地方。
这里"地方"并不是指保存数据的物理地点或物理介质,而是指数据存储的逻辑描述。
在数据流程图中,数据存储用右边开口的长方条表示。
在长方条内写上数据存储的名字。
名字也要恰当,以便用户理解。
为了区别和引用方便,再加一个标识,用字母D和数字组成。
为清楚起见,用竖线表示同一数据存储在图上不同地方的出现,如图6.4所示。
图6.4数据存储指向数据存储的箭头,表示送数据到数据存储(存放、改写等等);从数据存储发出的箭头,表示从数据存储读取数据,如图6.5所示。
图6.5 数据的读取与存储图6.5中,“商品编号#-”表示按这个数据项检索,即“商品编号”是关键字。
二、数据流程图的画法系统分析的根本目的是分析出合理的信息流动、处理、存储的过程。
数据流程分析有许多方法,如HIPO (Hierarchical Input Process Output)法和我们介绍的结构化方法等。
基本思想都是一样的,即把一个系统看成一个整体功能,明确信息的输入与输出,系统为了实现这个功能,内部必然有信息的处理、传递、存储过程。
这些处理又可以分别看做整体功能,其内部又有信息的处理、传递、存储过程。
如此一级一级地剖析,直到所用处理步骤都很具体为止。
具体作法是:按业务流程图理出的业务流程顺序,将相应调查过程中所掌握的数据处理过程,绘制成一套完整的数据流程图,一边整理绘图,一边核对相应的数据和报表、模型等。
数据流程图一般包括四个元素:外部实体、数据存储、处理过程、数据流向。
常用的基本图符(从左往右):外部实体 数据存储 处理过程 数据流下面以高等学校学籍管理系统为例说明画数据流程图的方法。
学籍管理是一项十分严肃而复杂的工作。
它要记录学生从入学到学生离校整个在校期间的情况,学生毕业时把学生的情况提供给用人单位。
学校还要向上级主管部门报告学生学籍变动情况。
首先,我们把整个系统看成一个功能。
它的输入是新生入学时,从省、市招生办公室转来的新生名单和档案,输出是学生离校时给用人单位的毕业生档案和定期给主管部门的统计报表,如图6.6所示。
学籍表中记载学生的基本情况,如学籍变动情况、各学期各门课程的学习成绩、在校期间的奖惩记录等。
图6.6 学籍管理系统顶层DFD图6.6概括描述了系统的轮廓、范围,标出了最主要的外部实体和数据流。
还有一些外部实体、数据流没有画出来,随着数据流程图的展开再逐渐增加。
这样做的好处是突出主要矛盾,系统轮廓更清晰。
外部实体 数据存储 处理过程数据流D1 学籍表D1图6.7 学籍管理系统第一层DFD图6.6是进一步分析的出发点。
学籍管理包括学生学习成绩管理、学生奖惩管理、学生异动管理三部分。
由此,可以将图6.6展开成图6.7。
虚线框是图6.6中处理框的放大。
图6.6的各个数据流都必须反映在图6.7上。
此外还有新增的数据流和外部实体。
虚线框外新增的数据流,在进入或流出虚线框时用"X"标记。
数据存储"学籍表"是图6.6中原有的,可画在虚线框外,或一半在内,一半在外。
在图6.7中,与学籍表有关的数据流更具体了。
下面以成绩管理为例,较详细地说明逐层分解的思路。
某校现在实行校、系两级学习成绩管理,学校教学管理科、系教务员都登记学生成绩。
任课教师把学生成绩单一式两份分别送系教务员和学校教学管理科(简称教管科)。
系教务员根据成绩单登录学籍表,学期结束时,给学生发成绩通知,并根据学籍管理条例,确定每个学生升级、补考、留级、退学的情况。
教管科根据收到的成绩单登录教管科存的学籍表,统计各年级各科成绩分布报主管领导。
补考成绩也作类似处理。
这样P2框扩展成图 6.8图6.8 成绩管理的展开从图6.8看出某些不尽合理的地方。
例如"学籍表"结构是一样的,但是系里存一份,教管科也存一份,数据冗余,工作重复。
但现实情况就是这样,在调查阶段应如实反映,至于新系统应怎么做,可在对现行系统分析的基础上,提出新系统逻辑模型时再考虑。
图6.8中的一些处理,有的框还需要进一步展开。
如P2.1一框,分析期末成绩包括以下几件事:(1)把每个学生的各科成绩登录在所在班的学习成绩一览表中;(2)根据学习成绩一览表,在学籍表中填写各个学生的成绩;(3)根据"学习成绩一览表"评学习成绩优秀奖;(4)根据学习成绩一览表、以往留级情况(学籍表中有记载)决定学生的升级、补考、留级、退学;(5)发成绩通知单,通知补考时间。
这样P2.1一框展开如图6.9所示。
图中的数据存储m,即学习成绩一览表,只是与P2.1有关,不涉及其它处理框,必须画在框内。
图6.9 分析期末成绩框的展开在图6.9中,除之外,其他各个处理都已十分明确,不需要再分解。
关于学习成绩管理的分解到此可以结束了。
三、画数据流程图的注意事项在系统分析中,数据流程图是系统分析员与用户交流思想的工具。
图通俗易懂。
实践证明,只要对用户稍作解释,用户就能看明白。
同时,适合对不同管理层次的业务人员进行业务调查。
在调查过程中,随手就可记录有关情况,随时可与业务人员讨论,使不足的地方得到补充,有出入的地方得到纠正或改进,系统分析员应对图的分解、布局进行适当调整,画出正式图,使用户更好理解。
1、关于层次的划分从前面的例子我们看到系统分析中得到一系列分层的数据流程图。
最上层的数据流程图相当概括地反映出信息系统最主要的逻辑功能、最主要的外部实体和数据存储。
这张图应该使人一目了然,立即有个深刻印象,使人知道这个系统的主要功能和与环境的主要联系是什么。
逐层扩展数据流程图,是对上一层图(父图)中某些处理框加以分解。
随着处理的分解,功能越来越具体,数据存储、数据流越来越多。
必须注意,下层图(子图)是上层图中某个处理框的放大。
因此,凡是与这个处理框有关系的外部实体、数据流、数据存储必须在下层图中反映出来。
下层图上用虚线长方框表示所放大的处理框,属于这个处理内部用到的数据存储画在虚线框内,属于其他框也要用到的数据存储,则画在虚线框之外或跨在虚线框上。
流人或流出虚线框的数据流。
逐层扩展的目的,是把一个复杂的功能逐步分解为若干较为简单的功能。
逐层扩展不是肢解和蚕食,使系统失去原来的面貌,而应保持系统的完整性和一致性。
究竟怎样划分层次,划分到什么程度,没有绝对的标准,但一般认为:(1)展开的层次与管理层次一致,也可以划分得更细。
处理块的分解要自然,注意功能的完整性。
(2)一个处理框经过展开,一般以分解为4个至10个处理框为宜。
(3)最下面的处理过程用几句话、或者几张判定表活一张简单的HIPO图就能表达清楚。
.2、检查数据流程图的正确性通常可以从以下几个方面检查数据流程图的正确性:(1)数据守恒,或称为输人数据与输出数据匹配。
数据不守恒有两种情况。
一种是某个处理过程用以产生输出的数据,没有输入给这个处理过程,这肯定是遗漏了某些数据流。
另一种是某些输入在处理过程中没有被使用,这不一定是一个错误,但产生这种情况的原因以及是否可以简化值得研究。
(2)在一套数据流程图中的任何一个数据存储,必定有流入的数据流和流出的数据流,即写文件和读文件,缺少任何一种都意味着遗漏某些加工。
画数据流程图时,应注意处理框与数据存储之间数据流的方向。
一个处理过程要读文件,数据流的箭头应指向处理框,若是写文件则箭头指向数据存储。
修改文件要先读后写,但本质上是写,箭头也指向数据存储。
若除修改之外,为了其他目的还要读文件,此时箭头画成双向的。
(3)父图中某一处理框的输入、输出数据流必须出现在相应的子图中,否则就会出现父图与子图的不平衡。
这是一种比较常见的错误,而不平衡的分层使人无法理解。
因此,特别应注意检查父图与子图的平衡,尤其是在对子图进行某些修改之后。
父图的某框扩展时,在子图中用虚线框表示,有利于这种检查。
父图与子图的关系,类似于全国地图与分省地图的关系。
在全国地图上标出主要的铁路、河流,在分省地图上标得则更详细,除了有全国地图上与该省相关的铁路、河流之外,还有一些次要的铁路、公路、河流等等。
(4)任何一个数据流至少有一端是处理框。
换言之,数据流不能从外部实体直接到数据存储,不能从数据存储到外部实体,也不能在外部实体之间或数据存储之间流动。
初学者往往容易违反这一规定,常常在数据存储与外部实体之间画数据流。
其实,记住数据流是指处理功能的输入或输出,就不会出现这类错误。
3、提高数据流程图的易理解性数据流程图是系统分析员调查业务过程,与用户交换思想的工具。
因此,数据流程图应该简明易懂。
这也有利于后面的设计,有利于对系统说明书进行维护。
可以从以下几个方面提高易理解性。
(1)简化处理间的联系结构化分析的基本手段是分解,其目的是控制复杂性。
合理的分解是将一个复杂的问题分成相对独立的几个部分,每个部分可单独理解。
在数据流程图中,处理框间的数据流越少,各个处理就越独立,所以我们应尽量减少处理框间输入及输出数据流的数目。