明系统对数据加工变换的基本功能。逐层细化基本系统模型得到功能级DFD和详细DFD。下面即分层数据流图。
假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据;零件编号零件名称、定货数量、目前价格、主要供应者和次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。从问题描述中提取数据流图的四种成分。首先考虑数据的源点和终点:“采购部每天需要一张定货报表”“通过放在仓库中的CRT终端把事务报告给定货系统”
可知:采购员是终点仓库管理员是源点接下来考虑处理:“采购部每天需要一张定货报表”采购部需要报表“零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。”事务的后果是改变库存量可知:产生报表是一个处理处理事务是另一个处理最后考虑数据流和数据存储:系统把定货报表送给采购部定货报表事务需要从仓库送到系统中事务需把事务数据存储起来产生报表和处理事务在时间上不匹配当某种零件的库存数量少于库存量临界值时就应该再次定货,而每天打印一次定货报表需把定货信息存储起来可知:定货报表、事务是数据流数据流如报表包含零件编号零件名称、定货数量、目前价格、主要供应者和次要供应者等信息。事务包含零件编号、事务类型、数量等。库存清单、定货信息是数据存储
f基本系统模型:
功能数据流图:注意符号
进一步分解处理事务:
命名1)为数据流或数据存储命名名字应代表整个数据流或数据存储的内容,而不是仅仅反映它的某些成分不要使用空洞的、缺乏具体含义的名字如“数据”、“信息”、“输入”之类如果在为某个数据流或数据存储起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的2)为处理命名通常先为数据流命名,然后再为与之相关联的处理命名,体现了人类习惯的“由表及里”的思考过程
f名字应该反映整个处理的功能名字最好由一个具体的及物动词,加上一个具体的宾语组成。通常名字中仅包括一个动词如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分解应注意的问题1)是数据流不是控制流画数据流不是控制流;数据流图反映系统“做什么”,不反映“如何做”,因此箭头上的r