2.5.4 数据流图的举例
通过“高校教学管理系统”和“考务处理系统”两个示例说明数据流的具体实现过程。
例2.3 某高校教学管理系统的工作过程如下:在每学期开学时,学生需要注册登记,只有注册成功后才能成为该学校的正式学生。学校实行校级、系级两级管理,学生如果因健康或学习跟不上等原因要求休学、退学时,需要先向系里提出申请,系里核实情况后再提交学校教务处审批,然后将审批结果通知学生。每学期学生都可以进行选课,在得到确认后就可以听课并参加考试。在期末教师要将学生的考试成绩上报教务处,教务处将登记、备案。考试不及格需要补考,如果超过3门不及格,则要留级或降级。对于优秀学生,学校还给予奖励,根据学习成绩发放奖学金。
解:(1)数据流分析
①数据源点:学生、系办、教务处、教师。
②数据终点:学生、系办、教师。
③数据流:
与学生有关的数据流包括注册申请、学籍申请、补考通知、学籍资格变动通知;
与教师有关的数据流包括教学安排、学生修课成绩;
与系办有关的数据流包括新生名単、学籍审理意见、奖学金统计等;
与教务处有关的数据流包括成绩统计、学籍审理意见。
2.画出系统顶层数据流图
在任何系统都由若干个数据源点、终点和一个代表系统对数据加工变换的基本功能的处理组成,如图2.6所示。

图2.6 教学管理系统顶层数据流图
3.第一步分解
基本系统模型的数据流图非常抽象,因此,需要把基本功能细化,描绘系统的主要功能。我们采用从外向里的方法对教学管理系统进行分解。按功能细化后可分为“注册管理”“成绩管理”“学籍管理”和“奖励管理”4个主要功能,同时增加“学生名册”和“成绩档案”两个数据存储,并绘制了细化的数据流,如图2.7所示。

图2.7 教学管理系统数据流图
4.第二步细化
对描绘系统的各个功能进行细化,可得到进步的数据流程描述。例如,对“学籍管理”进一步细化,得出底层数据流图,如图2.8所示。

图2.8 学籍管理底层数据流图
学籍管理包括“学籍变动处理”“留级处理”和“毕业处理”。而“学籍变动处理”又细分为“初步审查学生申请”与“审查报批申请”。学籍变动需要经过两级审批处理,系里先要进行初步审查,核实学生申请报告,了解学习成绩或身体状况等情况,提出初审意见上报教务处,教务处综合考虑学生的情况后做出最后审批,并将结果通知学生本人。“留级处理”则是直接由系办根据学生考试情况做出决定。“毕业处理”则是由教务处每年根据学生的学习情况统一处理,负责发放毕业证书。
例2.4 有如下的一个简单的考务处理系统,要求完成以下工作:
(1)对考生送来的报名单进行检查;
(2)对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站;
(3)对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者;(https://www.daowen.com)
(4)制作考生通知单(含成绩及合格/不合格标志)送给考生;
(5)按地区进行成绩分类统计和试题难度分析,产生统计分析表。
解:我们对需求进行关键字提取,并用红色标出实体,绿色标出关键的数据流。
(1)顶层数据流图:系统的输入/输出(顶层图)。
①确定源或宿:考生、阅卷站和考试中心(它们都是既是源又是宿)。
②顶层唯一的加工:考务处理系统。
③确定数据流:系统的输入/输出信息。
输入数据流:报名单(来自考生)、成绩清单(来自阅卷站)、合格标准(来自考试中心)。
输出数据流:准考证(送往考生)、考生名单(送往阅卷站)、考生通知书(送往考生)、统计分析表(送往考试中心)。
额外的输出数据流(考虑系统的健壮性):报名单(返回给考生)、错误成绩单(返回给阅卷站)。
通过分析得到考务处理系统的顶层数据流图,如图2.9所示。

图2.9 考务处理系统的顶层数据流图
(2)第0层数据流图:经过分析,考务业务处理主要功能应当有登记报名单、统计成绩两个主要数据流,输入的源点和输出的终点是考生、考试中心和阅卷站。
从输入端开始,根据考务业务工作流,画出数据流流经的各加工框,逐步画到输出端,得到0层数据流图,如图2.10所示。

图2.10 考务处理系统的0层数据流图
(3)第1层数据流图。
以0层图中加工1(登记报名表)为例,根据业务处理流程来确定加工1的分解,与加工1有关的业务流程:首先检查考生送来的报名单,然后编准考证号,并产生准考证,最后产生考生名单和考生名册(文件)。
确定加工1分解的3个子加工:检查报名单、编准考证号、登记考生。
除了原有数据流,增加了“合格报名单”和“正式报名单”。加工1的第1层数据流图,如图2.11所示。

图2.11 考务处理系统中加工1细化的1层数据流图
同理,得到0层图中加工2的1层数据流图,如图2.12所示。

图2.12 考务处理系统中加工2细化的1层数据流图