系统分析的根本目的是分析出合理的信息流动、处理、存储的过程。数据流程分析有许多方法,如HIPO(Hierarchical Input Process Output)法和我们介绍的结构化方法等。基本思想都是一样的,即把一个系统看成一个整体功能,明确信息的输入与输出,系统为了实现这个功能,内部必然有信息的处理、传递、存储过程。这些处理又可以分别看做整体功能,其内部又有信息的处理、传递、存储过程。如此一级一级地剖析,直到所用处理步骤都很具体为止。
具体作法是:按业务流程图理出的业务流程顺序,将相应调查过程中所掌握的数据处理过程,绘制成一套完整的数据流程图,一边整理绘图,一边核对相应的数据和报表、模型等。数据流程图一般包括四个元素:外部实体、数据存储、处理过程、数据流向。
常用的基本图符:
外部实体 数据存储 处理过程 数据流
下面以高等学校学籍管理系统为例说明画数据流程图的方法。学籍管理是一项十分严肃而复杂的工作。它要记录学生从人学到学生离校整个在校期间的情况,学生毕业时把学生的情况提供给用人单位。学校还要向上级主管部门报告学生学籍变动情况。
首先,我们把整个系统看成一个功能。它的输人是新生人学时,从省、市招生办公室转来的新生名单和档案,输出是学生离校时给用人单位的毕业生档案和定期给主管部门的统计报表,如图6.6所示。学籍表中记载学生的基本情况,如学籍变动情况、各学期各门课程的学习成绩、在校期间的奖惩记录等。
图6.6 学籍管理系统顶层DFD
图6.7 学籍管理系统第一层DFD
图6.6概括描述了系统的轮廓、范围,标出了最主要的外部实体和数据流。还有一些外部实体、数据流没有画出来,随着数据流程图的展开再逐渐增加。这样做的好处是突出主要矛盾,系统轮廓更清晰。
图6.6是进一步分析的出发点。学籍管理包括学生学习成绩管理、学生奖惩管理、学生异动管理三部分。由此,可以将图6.6展开成图6.7。虚线框是图6.6中处理框的放大。图6.6的各个数据流都必须反映在图6.7上。此外还有新增的数据流和外部实体。虚线框外新增的数据流,在进入或流出虚线框时用"X"标记。数据存储"学籍表"是图6.6中原有的,可画在虚线框外,或一半在内,一半在外。在图6.7中,与学籍表有关的数据流更具体了。
下面以成绩管理为例,较详细地说明逐层分解的思路。
某校现在实行校、系两级学习成绩管理,学校教学管理科、系教务员都登记学生成绩。任课教师把学生成绩单一式两份分别送系教务员和学校教学管理科(简称教管科)。系教务员根据成绩单登录学籍表,学期结束时,给学生发成绩通知,并根据学籍管理条例,确定每个学生升级、补考、留级、退学的情况。教管科根据收到的成绩单登录教管科存的学籍表,统计各年级各科成绩分布报主管领导。补考成绩也作类似处理。这样P2框扩展成图 6.8
图6.8 成绩管理的展开
从图6.8看出某些不尽合理的地方。例如"学籍表"结构是一样的,但是系里存一份,教管科也存一份,数据冗余,工作重复。但现实情况就是这样,在调查阶段应如实反映,至于新系统应怎么做,可在对现行系统分析的基础上,提出新系统逻辑模型时再考虑。
图6.8中的一些处理,有的框还需要进一步展开。如P2.1一框,分析期末成绩包括以下几件事:
(1)把每个学生的各科成绩登录在所在班的学习成绩一览表中;
(2)根据学习成绩一览表,在学籍表中填写各个学生的成绩;
(3)根据"学习成绩一览表"评学习成绩优秀奖;
(4)根据学习成绩一览表、以往留级情况(学籍表中有记载)决定学生的升级、补考、留级、退学;
(5)发成绩通知单,通知补考时间。
这样P2.1一框展开如图6.9所示。图中的数据存储m,即学习成绩一览表,只是与P2.1有关,不涉及其它处理框,必须画在框内。
图6.9 分析期末成绩框的展开
在图6.9中,除之外,其他各个处理都已十分明确,不需要再分解。关于学习成绩管理的分解到此可以结束了