又称DFD或分层数据流图,需要与E-R图(实体属性图)分开,这里给出图元及对应含义。
上述需要注意的是,
需填写数据流的名称,一般都在题中(给出的数据流图或题干文字)
需填写数据流的起点终点,一般都在题中(给出的数据流图或题干文字)
父图和子图之间的平衡
子图内平衡
注意:数据流图中操作流程信息的方向。同时应该保证既有输入也有输出。
只有输入没有输出称为黑洞。
只有输出没有输入称为奇迹。
以上为基础知识回顾,以下为实例解读。
阅读下列说明和有关的图表,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
A公司决定为该市车站开发自动售票系统,系统的要求如下:
1.乘客能按以下三步操作购票:选定目的地;投入钱币;获得一张票;
2.当且仅当乘客选定目的地后,系统才接收投钱,每次投入的钱只购买一张票;
3.只要投入的钱不少于所需的票价,且票库中有所要求的票,则应尽快出票;
4.如需找钱,则在出票的同时应退还多余的钱;
5.如果乘客投入的钱不够票价,或者票库中没有所要求的票时,系统将全额退钱,并允许乘客另选目的地,继续购票;
6.出票前乘客可以按"取消"按钮取消购票,系统将全额退出该乘客投入的钱,并允许乘客另选目的地,继续购票;
7.出票结束(包括退还多余的钱)后,系统应保存销售记录,并等待乘客购票。
该系统还要求快速响应和操作同步,所以它应是一个实时系统。为此,A公司在该系统的数据流程图中附加了过程控制部分,形成转换图。在该图中,控制流(事件流)用虚线表示,数据流用实线表示。图中的数据流并没有画全,需要考生填补。转换图如图1所示。
图1转换图
程进行的控制可以用系统内部各个状态之间的迁移来描述,从而形成状态迁移图。在状态迁移图中,用双线框表示状态,用有向边表示状态的迁移。引起状态迁移的事件以及由该事件引起的动作,在有向边旁用"事件 动作"形式注明。状态迁移图如图2所示。
图2状态迁移图
该公司还制作了一个过程启动表,用以表明状态迁移图中的4个动作与转换图中的4个过程之间的"启动"关系,即说明哪个动作将启动哪个过程。用1表示启动,用0表示不启动。启动的过程将根据获得的输入数据产生输出数据,未启动的过程则不会产生输出数据。该表中没有列出的过程,其执行与否与事件无关。过程启动表见表1:
【问题1】
转换图中缺少哪三条数据流?请指明每条数据流的名称、起点和终点。
【问题2】
在状态迁移图中,a,b,c分别表示什么事件?请用转换图中给出的事件名解答。
【问题3】
在过程启动表中,d,e处应填什么?请分别用4位二进制码表示。
问题1
问的是缺少的数据流和起点终点,这里我们需要把数据流图分离出来,即虚线不要,看我们的数据流图相关图示即明白,不再详叙
这里有一个极大的干扰项,我第一次就做错了,上面给了一个售票控制,我把它当做加工了,导致数据流全错,其实不应该出错的,首先图示和其他的加工还是有区别的,我近视700+,我的锅,然后根据题意,这个售票控制应该是转换图的一部分,且没有任何实现的出和入,都是虚线的操作。
如果你没有出现这个问题,那么恭喜你,这题很简单了。
只提出数据流图,很容易发现
接受目的地后到出票,按照系统说明及日常认知,肯定要进行目的地核查
接受的钱肯定需要进行核查,然后进行出票和退钱
返回验证,检查后是有出票操作的。
所以缺少的数据流为
问题2
首先这个迁徙图,我们没见过,不过有相关的说明,我们需要获得的信息是啥?
引起状态迁移的事件以及由该事件引起的动作,在有向边旁用"事件 动作"形式注明
我们的问题就能转化为
1.在接受投钱的时候,什么事件发生可以退钱,并等待重新选择目的地
2.在接受投钱的时候,什么事件发生可以出票
3.在正在出票的时候,什么事件发生可以接收新目的地
结合题意
a - "取消"操作
b - 核查正确
c - 出票结束。
问题3
哪个动作将启动哪个过程
这个我们可以理解为 哪个过程会包含相关动作(接收钱,出票,退钱,接收新目的地)
这样理解就好填多了
首先
接收目的地的过程,可能接受新目的地,刚出票结束或取消,可能退钱,票价不够或没有票
收钱的过程不会有接受目的地和退钱的动作
出票的过程中也不会有接受目的地和退钱的动作
退还钱的过程中肯定会退钱,没有接受新目的地的动作,只有等退钱结束后才能接受新目的地
最后答案
d - 1001
e – 1000
阅读下列说明和数据流图,回答问题1~问题3。
【说明】
某考务处理系统主要功能是考生管理和成绩管理:
1.对考生送来的报名表进行检查。
2.对合格的报名表编好准考证号码后将准考证送给考生,将汇总后的考生名单送给阅卷站。
3.对阅卷站送来的成绩表进行检查,并根据考试中心指定的合格标准审定合格者。
4.填写考生通知单(内容包含该考生的准考证号、姓名、各课程成绩及最终合格/不合格标志),送给考生。
5.根据考生信息及考试成绩,按地区、年龄、文化程度和职业进行成绩分类统计及试题难度分析,产生统计分析表。
考务处理系统的顶层图如图1所示,第0层图如图2所示,加工2子图如图3所示。
【数据流图】
图1顶层图
图2 0层图
图3加工2子图
【问题1】
指出哪张图的哪些文件可以不必画出。
【问题2】
数据流图1-3中缺少3条数据流,请直接在图中添加。
【问题3】
根据系统功能和数据流图填充下列数据字典条目中的 (1) 和 (2) :
试题得分表=准考证号+{课程名+成绩}
考生名册=报名号+准考证号+姓名+通信地址+出生年份+文化程度+职业
考生通知单= (1)
报名表= (2)
问题1
哪张图的哪些文件,可以解读为图示的双横线内(文件),即这题的答案就是图2或者图3的试卷得分表和考生名册
即四选一的问题,我们直接开始分析,
图2的考生名册连接图中的1登记报名表,2统计成绩,显然不能去掉,虽然从图3可以看出考生名册是输入,但考生名册的输入成谜,且根据题意,显然不是最好的答案
图2的试卷得分表,结合图3的加工子图,可以直接去掉,此时图2的试卷得分表的输入输出都是针对2统计成绩,在图2中显得多余,所以这应该是最好答案
图3,的两种表,都是加工的细节,显然不能去掉,即并不多余
上述比较啰嗦,这种问题碰到,我们肯定优先选择带文件的0层图,原因之一,细节暴露在加工内肯定比在0层图好,原因之二,针对加工的数据流表文件既有输出也有输入,可以省略,可以当做知识点记住,基础知识内有理论说明。
0层图中的"试卷得分表"是局部文件,可不必画出。
问题2
比较简单,没有第一个例题恶心人,我们直接数 输入和输出
很容易发现
缺少合格标准的输入
错误成绩表的输出
第三个可能麻烦点,不过仔细阅读根据考生信息及考试成绩,按地区、年龄、文化程度和职业进行成绩分类统计及试题难度分析,产生统计分析表这句话,即可明白 分类统计表的输出需要 考生名册的输入
然后就是数据流的起点和终点,第三个已经说出来了,第二个也比较简单,即与正确的成绩表进行分开就好,第一个也很好理解,直接指到审定合格者
(1)分类统计成绩中需要读入考生成绩,缺少从"考生名册"到"2.4分类统计成绩"的数据流。
(2)"2.1检查成绩表"缺少输出数据流"错误成绩表"。
(3)"2.2审定合格者"缺少输入数据流"合格标准"。
问题3
这题应该是这三个中最简单的
4.填写考生通知单(内容包含该考生的准考证号、姓名、各课程成绩及最终合格/不合格标志),送给考生。
已经给出了,需要注意的是数据字典的写法
(1)准考证号+姓名+{课程名+成绩}+合格/不合格标志
(2)报名号+姓名+通信地址+出生年份+文化程度+职业
阅读下列说明和数据流图,回答问题1~问题3。
【说明】
某医院收费系统的主要功能是收取病人门诊的各项费用。系统的收费功能分为3个方面:病历收费、挂号收费和根据处方单内容收取检查或药物费用。
1.病人初次来该医院看病,首先购买病历,记录病人基本情况。
2.病人看病前要挂号。根据病人的病历和门诊部门(内科、外科等),系统提供相应的挂号单和处方单,并收取费用。
3.病人根据处方单进行进一步检查或取药前需交纳各项费用。系统首先根据病人基本情况检查处方单中病历号是否正确,记录合格的处方单,并提供收据。
4.所有收费都必须依据定价表中的定价来计算,且所有收费都必须写入收费记录中。
医院收费系统的顶层图如图2所示;医院收费系统的第O层DFD图如图3所示。其中,加工1的细化图如图4所示,加工2的细化图如图5所示。
假定顶层图是正确的,"定价表"文件已由其他系统生成。
【数据流图】
图2医院收费系统的顶层图
图3医院收费系统的0层图
图4医院收费系统的加工1子图
图5医院收费系统的加工2子图
【问题1】
指出哪张图的哪些文件可以不必画出。
【问题2】
数据流图4中缺少2条数据流,请直接在图中添加。
【问题3】
数据流图5中缺少4条数据流,请直接在图中添加。