1、3 数据流程图数据流程图(DFD)与与E-R图的绘制图的绘制3.1 开发数据流程图开发数据流程图 数据流程图(数据流程图(DFD)是一种图形化的系统模型,它)是一种图形化的系统模型,它在一张图中展示信息系统的主要需求,即:输入、输出、在一张图中展示信息系统的主要需求,即:输入、输出、过程和数据存储。它描述了数据流动、存储、处理的逻辑过程和数据存储。它描述了数据流动、存储、处理的逻辑关系。关系。外部项名外部项名称称外部项外部项数据流数据流数据流名称数据流名称数据存储名称数据存储名称数据存储数据存储功能功能描述描述处理功能处理功能基本图例如下:基本图例如下:EX1EX1:请根据以下销售过程画出数据
2、流程图:用户将定货请根据以下销售过程画出数据流程图:用户将定货单交给某企业的业务经理,经检验后,对不合格的订单单交给某企业的业务经理,经检验后,对不合格的订单要由用户重填,合格的订单交仓库保管员做出库处理,要由用户重填,合格的订单交仓库保管员做出库处理,即:查阅库存台帐,如果有货则向用户开票发货,如缺即:查阅库存台帐,如果有货则向用户开票发货,如缺货,则通知采购员采购。货,则通知采购员采购。用户用户发货票发货票不合格订单不合格订单订货单订货单检验检验合格订单合格订单出库出库处理处理采购通知采购通知库存台帐库存台帐EX1EX1采购员采购员EX2EX2:请根据以下定货过程画出数据流程图:采购员从请
3、根据以下定货过程画出数据流程图:采购员从仓库收到缺货通知单后立即进行定货处理,即,查阅仓库收到缺货通知单后立即进行定货处理,即,查阅订货合同单,若已定货,则向供货单位发出催货单,订货合同单,若已定货,则向供货单位发出催货单,否则,填写定货单送供货单位。供货单位发运货物后,否则,填写定货单送供货单位。供货单位发运货物后,立即向采购员发出取货通知。立即向采购员发出取货通知。EX2EX2仓库仓库缺货通知单缺货通知单订货订货催货单催货单供货单位供货单位订货单订货单取货通知取货通知订货合同单订货合同单EX3EX3:请根据以下储蓄所存款过程画出数据流程图:储户将填请根据以下储蓄所存款过程画出数据流程图:储
4、户将填写好的存款单、存折和存款交储蓄所,查对储户帐,将不合写好的存款单、存折和存款交储蓄所,查对储户帐,将不合格的存款单退给储户重填,合格的存款单交存款处理,处理格的存款单退给储户重填,合格的存款单交存款处理,处理时要修改储户帐,并将存折交还储户,而将存款放入现金库。时要修改储户帐,并将存折交还储户,而将存款放入现金库。EX3EX3储户储户查对查对存款存款储户帐储户帐不合格存款单不合格存款单存折、存款单存折、存款单现金单现金单存折存折存折存折合格存款单合格存款单现金库现金库EX4EX4:某仓库管理系统按以下步骤进行信息处理,试画出数某仓库管理系统按以下步骤进行信息处理,试画出数据流程图。据流程
5、图。(1 1)保管员根据当日的出库单和入库单通过出、入库处保管员根据当日的出库单和入库单通过出、入库处理去修改库存台帐。理去修改库存台帐。(2 2)根据库存台帐由统计、打印程序输出出库日报表。根据库存台帐由统计、打印程序输出出库日报表。(3 3)需要查询时,可利用查询程序在输入查询条件后需要查询时,可利用查询程序在输入查询条件后 ,到库存台帐去查找,显示查询结果。到库存台帐去查找,显示查询结果。查询结果查询结果EX4EX4保管员保管员入库单入库单库存台帐库存台帐出库单出库单出入库处理出入库处理查询查询统计统计打印打印库存日库存日报表报表查询条件查询条件注意:注意:(1 1)数据流程分析采用自顶
6、向下逐层分解的方法,通过数据流程分析采用自顶向下逐层分解的方法,通过分析绘制分层的数据流程图分析绘制分层的数据流程图(data flow diagram,DFD)(data flow diagram,DFD)来来进行系统分析。进行系统分析。(2 2)DFDDFD由顶层图、一级细化图、二级细化图等一组图构由顶层图、一级细化图、二级细化图等一组图构成。在顶层图中,将系统视为由一个处理功能所构成的系成。在顶层图中,将系统视为由一个处理功能所构成的系统;一级细化图是对顶层图处理功能的分解与细化。统;一级细化图是对顶层图处理功能的分解与细化。怎样画怎样画DFDDFDn了解了解DFDDFD的特性的特性n画
7、分层画分层DFDDFD1 1)DFDDFD的特性的特性n与程序流程图不同,与程序流程图不同,DFDDFD不表示程序的控制结构,只描不表示程序的控制结构,只描述述数据数据的流动的流动n DFDDFD分成分成多层多层(子图、父图概念子图、父图概念)表示表示,从而逐步展开从而逐步展开数据流和功能的细节。数据流和功能的细节。S S2 21 13 32.22.22.12.12.32.33.13.13.23.2 顶层顶层1 1层层2 2层层(基本系统模型基本系统模型)(系统的子功能系统的子功能)DFDDFD的分层表示的分层表示2 2)画分层画分层DFDDFD(1)(1)先画出顶层先画出顶层DFDDFD(2
8、)(2)自顶向下画出各层自顶向下画出各层DFDDFD 分解原则:分解原则:分解后的软件成分有相对独立功能分解后的软件成分有相对独立功能 一次分解不要加入细节过多一次分解不要加入细节过多3 3)画分层画分层DFDDFD的指导原则的指导原则(1 1)父图)父图-子图平衡子图平衡(2 2)编号)编号(3 3)分解的程度)分解的程度父图父图-子图平衡子图平衡父图父图-子图平衡:子图平衡:模型分解时必须保持父图的输入输出数据流和子模型分解时必须保持父图的输入输出数据流和子图输入输出数据流相同。图输入输出数据流相同。A1 14 42 23 3BFEGCD缺少缺少C C3.13.1ED3.33.33.23.
9、2对加工对加工3细化细化的子图:的子图:加工加工3处理编号处理编号处理的编号原则:处理的编号原则:子图图号为分解的父图中的处理号子图图号为分解的父图中的处理号,同级子图在最后数字以序号区别。同级子图在最后数字以序号区别。S S2 21 13 32.22.22.12.12.32.33.13.13.23.2 顶层顶层(不编号)(不编号)1 1层层2 2层层分解的程度分解的程度分解的深度与层次分解的深度与层次:按功能情况定,一般设深度为按功能情况定,一般设深度为3-53-5;如超过如超过5 5个加工最好分解画,否则容易出错。个加工最好分解画,否则容易出错。某订货系统功能说明如下:某订货系统功能说明如
10、下:假设某一企业采购部门每天需要一张订货报表,报表假设某一企业采购部门每天需要一张订货报表,报表按材料编号排序,报表中列出所有需要再次订货的材料。按材料编号排序,报表中列出所有需要再次订货的材料。对于每种需要再次订货的材料应列出下列数据:材料编号对于每种需要再次订货的材料应列出下列数据:材料编号、名称、订货数量、目前价格(或参考价格)、主要供应、名称、订货数量、目前价格(或参考价格)、主要供应单位、第二供应单位等。材料入库或出库称为事务,通过单位、第二供应单位等。材料入库或出库称为事务,通过放在仓库的放在仓库的CRTCRT终端把事务报告给订货系统。当某种材料的终端把事务报告给订货系统。当某种材
11、料的库存数量少于库存量临界值时就应该再次订货。库存数量少于库存量临界值时就应该再次订货。应用举例一应用举例一 如何画出上述订货系统的数据流程图呢?如何画出上述订货系统的数据流程图呢?考虑数据的源点和终点:考虑数据的源点和终点:从上面对系统的描述可以知道,从上面对系统的描述可以知道,仓库管理员通过终端把事务报告给订货系统,系统经过汇仓库管理员通过终端把事务报告给订货系统,系统经过汇总处理,每天向采购部提供一张订货报表。所以,采购员总处理,每天向采购部提供一张订货报表。所以,采购员是数据的终点,而仓库管理员是数据的源点。是数据的终点,而仓库管理员是数据的源点。仓管仓管员员0.0订货系统订货系统采购
12、采购员员事务事务订货报表订货报表图图 (a)(a)订货系统的顶层数据流程图订货系统的顶层数据流程图 考虑处理:考虑处理:问题给出问题给出“采购部需要报表采购部需要报表”,因此,因此必须有一个用于产生报表的处理。输入事务的结果必须有一个用于产生报表的处理。输入事务的结果是改变材料库存量,然而任何改变数据的操作都是是改变材料库存量,然而任何改变数据的操作都是处理,因此对事务进行的加工是另一个处理处理,因此对事务进行的加工是另一个处理。考虑数据流:考虑数据流:系统把订货报表送给采购部,因此系统把订货报表送给采购部,因此订货报表是一个数据流;仓库需要将每笔事务输入订货报表是一个数据流;仓库需要将每笔事
13、务输入到系统中,显然事务是另一个数据流。到系统中,显然事务是另一个数据流。考虑数据存储:考虑数据存储:从问题的阐述中,可以看出产从问题的阐述中,可以看出产生报表和处理事务这两个处理在时间上明显不匹配,生报表和处理事务这两个处理在时间上明显不匹配,每当有一个事务发生时就必须立即处理事务,而每每当有一个事务发生时就必须立即处理事务,而每天只产生一次订货报表。因此天只产生一次订货报表。因此,用来产生订货报表用来产生订货报表的数据必须存放一段时间,也就是应该有一个数据的数据必须存放一段时间,也就是应该有一个数据存储。存储。另外,另外,“当某种材料的库存数量少于库存量当某种材料的库存数量少于库存量临界值
14、时就应该再次订货临界值时就应该再次订货”,这个事实意味着必须,这个事实意味着必须在某个地方有材料库存量和库存量临界值这样的数在某个地方有材料库存量和库存量临界值这样的数据据。因此,需要有一个保存清单的数据存储。因此,需要有一个保存清单的数据存储。一旦把数据流程图中的四种成份都分离出来之后,就一旦把数据流程图中的四种成份都分离出来之后,就可着手绘制系统的数据流程图了。数据流程图的绘制也是可着手绘制系统的数据流程图了。数据流程图的绘制也是采用自顶向下的方法,由粗到细,逐层细化,最后形成一采用自顶向下的方法,由粗到细,逐层细化,最后形成一套完整的拟建系统的数据流程图。套完整的拟建系统的数据流程图。仓
15、管仓管员员1.0处理事务处理事务采购采购员员事务事务订货报表订货报表图图 (b)(b)订货系统的一层数据流程图订货系统的一层数据流程图 2.0产生报表产生报表D2 订货信息订货信息D1 库存信息库存信息 数据流图数据流图D2 D2 1.1 1.1事务输入事务输入和检验和检验仓管仓管员员 1.2 1.2更新库存更新库存1.31.3处理订货处理订货D1D1 库存信息库存信息 F3 F3 库存库存F1 F1 事务事务事务事务F2 F2 F4 F4 缺货信息缺货信息 F5 F5 订货信息订货信息 订货信息订货信息 图图(c)(c)订货系统的订货系统的2 2层数据流程图层数据流程图 (子图子图1)1)D
16、2 D2 采购采购员员2.0 2.0 产生报表产生报表 F6 F6 订货汇总信息订货汇总信息 F7 F7 订货报表订货报表 订货信息订货信息 图图(d)(d)订货系统的订货系统的1 1层数据流程图(图层数据流程图(图b b的局部,的局部,各数据成分加上编号)各数据成分加上编号)购书单购书单教材购销系统教材购销系统教材购销系统的顶层教材购销系统的顶层DFDDFD学生学生领书单、无领书单、无效购书单效购书单缺书单缺书单进书单进书单书库保书库保管员管员应用举例二应用举例二购书单购书单缺书单缺书单销售销售教材教材采购采购教材教材1 12 2第一层第一层DFD DFD 教材购销系统教材购销系统教材存量表
17、教材存量表学学生生D1D1缺书登记表缺书登记表D2D2书库书库保保管管员员进书单进书单教材入教材入库信息库信息领书单领书单、无效、无效购书单购书单1.21.2第二层第二层DFD DFD 销售子系统销售子系统(1.0)(1.0)无效无效书单书单教材存量表教材存量表D1D1开发票开发票D2D2缺书登记表缺书登记表学生学生各班学生用书表各班学生用书表D3D3售书登记表售书登记表D4D41.11.1 审查审查有效性有效性1.31.3 登记并登记并开领书单开领书单学生学生1.51.5补售补售教材教材1.41.4登记登记缺书缺书购书单购书单发票发票领书领书 单单 有效有效购书单购书单教材入库信息教材入库信
18、息 按书号按书号汇总缺书汇总缺书2.12.12.32.3第二层第二层DFD DFD 采购子系统采购子系统(2.0)(2.0)待购教材表待购教材表D5D5教材一览表教材一览表D6D6书库书库保保管管员员进书单进书单教材存量表教材存量表D1D12.22.2按出版社按出版社统计缺书统计缺书修改教材库修改教材库存和待购量存和待购量D2D2缺书登记表缺书登记表缺缺书书单单教材入库信息教材入库信息开发数据流程图时的注意事项:开发数据流程图时的注意事项:(1 1)上层数据流程图与下层数据流层图的平衡;)上层数据流程图与下层数据流层图的平衡;(2 2)对图中各元素加以编号)对图中各元素加以编号 P P-处理处理,D D-数据存储数据存储,F F-数据流数据流,.-流程图的层次流程图的层次(3 3)图中只有数据流,无控制流)图中只有数据流,无控制流 只考虑加工之间的数据流动只考虑加工之间的数据流动(4)数据流程图的核心是)数据流程图的核心是“处理功能处理功能”处理数据处理数据流。流。数据流数据流数据流数据流处理处理态度决定一切态度决定一切细节影响成败细节影响成败