§3数据流程图(DFD)与E-R图的绘制3.1开发数据流程图数据流程图(DFD)是一种图形化的系统模型,它在一张图中展示信息系统的主要需求,即:输入、输出、过程和数据存储。它描述了数据流动、存储、处理的逻辑关系。外部项名称外部项数据流数据流名称数据存储名称数据存储功能描述处理功能基本图例如下:EX1:请根据以下销售过程画出数据流程图:用户将定货单交给某企业的业务经理,经检验后,对不合格的订单要由用户重填,合格的订单交仓库保管员做出库处理,即:查阅库存台帐,如果有货则向用户开票发货,如缺货,则通知采购员采购。用户发货票不合格订单订货单检验合格订单出库处理采购通知库存台帐EX1采购员EX2:请根据以下定货过程画出数据流程图:采购员从仓库收到缺货通知单后立即进行定货处理,即,查阅订货合同单,若已定货,则向供货单位发出催货单,否则,填写定货单送供货单位。供货单位发运货物后,立即向采购员发出取货通知。EX2仓库缺货通知单订货催货单供货单位订货单取货通知订货合同单EX3:请根据以下储蓄所存款过程画出数据流程图:储户将填写好的存款单、存折和存款交储蓄所,查对储户帐,将不合格的存款单退给储户重填,合格的存款单交存款处理,处理时要修改储户帐,并将存折交还储户,而将存款放入现金库。EX3储户查对存款储户帐不合格存款单存折、存款单现金单存折存折合格存款单现金库EX4:某仓库管理系统按以下步骤进行信息处理,试画出数据流程图。(1)保管员根据当日的出库单和入库单通过出、入库处理去修改库存台帐。(2)根据库存台帐由统计、打印程序输出出库日报表。(3)需要查询时,可利用查询程序在输入查询条件后,到库存台帐去查找,显示查询结果。查询结果EX4保管员入库单库存台帐出库单出入库处理查询统计打印库存日报表查询条件注意:(1)数据流程分析采用自顶向下逐层分解的方法,通过分析绘制分层的数据流程图(dataflowdiagram,DFD)来进行系统分析。(2)DFD由顶层图、一级细化图、二级细化图等一组图构成。在顶层图中,将系统视为由一个处理功能所构成的系统;一级细化图是对顶层图处理功能的分解与细化。怎样画DFD了解DFD的特性画分层DFD1)DFD的特性与程序流程图不同,DFD不表示程序的控制结构,只描述数据的流动DFD分成多层(子图、父图概念)表示,从而逐步展开数据流和功能的细节。S2132.22.12.33.13.2顶层1层2层(基本系统模型)(系统的子功能)DFD的分层表示2)画分层DFD(1)先画出顶层DFD(2)自顶向下画出各层DFD分解原则:分解后的软件成分有相对独立功能一次分解不要加入细节过多3)画分层DFD的指导原则(1)父图-子图平衡(2)编号(3)分解的程度父图-子图平衡父图-子图平衡:模型分解时必须保持父图的输入输出数据流和子图输入输出数据流相同。A1423BFEGCD缺少C3.1ED3.33.2对加工3细化的子图:加工3处理编号处理的编号原则:子图图号为分解的父图中的处理号,同级子图在最后数字以序号区别。S2132.22.12.33.13.2顶层(不编号)1层2层分解的程度分解的深度与层次:按功能情况定,一般设深度为3-5;如超过5个加工最好分解画,否则容易出错。某订货系统功能说明如下:假设某一企业采购部门每天需要一张订货报表,报表按材料编号排序,报表中列出所有需要再次订货的材料。对于每种需要再次订货的材料应列出下列数据:材料编号、名称、订货数量、目前价格(或参考价格)、主要供应单位、第二供应单位等。材料入库或出库称为事务,通过放在仓库的CRT终端把事务报告给订货系统。当某种材料的库存数量少于库存量临界值时就应该再次订货。应用举例一如何画出上述订货系统的数据流程图呢?考虑数据的源点和终点:从上面对系统的描述可以知道,仓库管理员通过终端把事务报告给订货系统,系统经过汇总处理,每天向采购部提供一张订货报表。所以,采购员是数据的终点,而仓库管理员是数据的源点。仓管员0.0订货系统采购员事务订货报表图(a)订货系统的顶层数据流程图考虑处理:问题给出“采购部需要报表”,因此必须有一个用于产生报表的处理。输入事务的结果是改变材料库存量,然而任何改变数据的操作都是处理,因此对事务进行的加工是另一个处理。考虑数据流:系统把订货报表送给采购部,因此订货报表是一个数据流;仓库需要将每笔事务输入到系统中,显然事务是另一个数据流。考虑数据存储:从问题的阐述中,可以看出产生报表和处理事务这两个处理在时间上明显不匹配,每当有一个事务发生时就必须立即处理事务,而每天只产生一次订货报表。因此,用来产生订货报表的数据必须存放一段时间,也就是应该有一个数据存储。另外,“当某种材料的库存数量少于库存量临界值时就应该再次订货”,这个事实意味着必须在某个地方有材料库存量和库存量临界值这样的数据。因此,需要有一个保存清单的数据存储。一旦把数据流程图中的四种成份都分离出来之后,就可着手绘制系统的数据流程图了。数据流程图的绘制也是采用自顶向下的方法,由粗到细,逐层细化,最后形成一套完整的拟建系统的数据流程图。仓管员1.0处理事务采购员事务订货报表图(b)订货系统的一层数据流程图2.0产生报表D2订货信息D1库存信息数据流图D21.1事务输入和检验仓管员1.2更新库存1.3处理订货D1库存信息F3库存F1事务事务F2F4缺货信息F5订货信息订货信息图(c)订货系统的2层数据流程图(子图1)D2采购员2.0产生报表F6订货汇总信息F7订货报表订货信息图(d)订货系统的1层数据流程图(图b的局部,各数据成分加上编号)购书单教材购销系统教材购销系统的顶层DFD学生领书单、无效购书单缺书单进书单书库保管员应用举例二购书单缺书单销售教材采购教材12第一层DFD教材购销系统教材存量表学生D1缺书登记表D2书库保管员进书单教材入库信息领书单、无效购书单1.2第二层DFD销售子系统(1.0)无效书单教材存量表D1开发票D2缺书登记表学生各班学生用书表D3售书登记表D41.1审查有效性1.3登记并开领书单学生1.5补售教材1.4登记缺书购书单发票领书单有效购书单教材入库信息按书号汇总缺书2.12.3第二层DFD采购子系统(2.0)待购教材表D5教材一览表D6书库保管员进书单教材存量表D12.2按出版社统计缺书修改教材库存和待购量D2缺书登记表缺书单教材入库信息开发数据流程图时的注意事项:(1)上层数据流程图与下层数据流层图的平衡;(2)对图中各元素加以编号P-处理,D-数据存储,F-数据流,.-流程图的层次(3)图中只有数据流,无控制流只考虑加工之间的数据流动(4)数据流程图的核心是“处理功能”处理数据流。数据流数据流处理3.2开发E-R图传统的系统开发方法都把重点集中在新系统的数据存储需求上,而数据存储需求包括数据实体、数据实体的属性以及它们之间的关系。我们采用E-R图来定义数据存储需求的模型。在E-R图中矩形代表数据实体,连接矩形的直线代表数据实体间的关系。