阅读以下说明和图,回答问题1至问题4,将解答填入对应栏内。【说明】某高校欲开发一个成绩管理系统,记录并管理所有选修课程学生平时成绩和考试成绩,其主要功能描述如下:1.每门课程都由3到6个单元构成,每个单元结束后会进行一次测试,其成绩作为这门课程平时成绩。课程结束后进行期末考试,其成绩作为这门课程考试成绩。2.学生平时成绩和考试成绩均由每门课程主讲教师上传给成绩管理系统。3.在记录学生成绩之前,系统需要验证这些成绩是否有效。首先,根据学生信息文件来确认该学生是否选修这门课程,若没有,那么这些成绩是无效;如果他确选修了这门课程,再根据课程信息文件和课程单元信息文件来验证平时成绩是否与这门课程所包含单元相对应,如果是,那么这些成绩是有效,否则无效。4.对于有效成绩,系统将其保存在课程成绩文件中。对于无效成绩,系统会单独将其保存在无效成绩文件中,并将详细情况提交给教务处。在教务处没有给出具体处理意见之前,系统不会处理这些成绩。5.若一门课程所有有效平时成绩和考试成绩都已经被系统记录,系统会发送课程完成通知给教务处,告知该门课程成绩已经齐全。教务处根据需要,请求系统生成相应成绩列表,用来提交考试委员会审查。6.在生成成绩列表之前,系统会生成一份成绩报告给主讲教师,以便核对是否存在错误。主讲教师须将核对之后成绩报告返还系统。7.根据主讲教师核对后成绩报告,系统生成相应成绩列表,递交考试委员会进行审查。考试委员会在审查之后,上交一份成绩审查结果给系统。对于所有通过审查成绩,系统将会生成最终成绩单,并通知每个选课学生。现采用结构化方法对这个系统进行分析与设计,得到如图1-1所示顶层数据流图和如图1-2所示0层数据流图。1、【问题1】使用说明中词语,给出图1-1中外部实体E1~E4名称。2、【问题2】使用说明中同语,给出图1-2中数据存储D1~D5名称。
3、【问题3】数据流图1-2缺少了三条数据流,根据说明及数据流图1-1提供信息,分别指出这三条数据流起点和终点。
4、【问题4】数据流图是在系统分析与总体设计阶段宏观地描述系统功能需求重要图形化工具,程序流程图也是软件开发过程中比较常用图形化工具。简要说明程序流程图适用场合与作用。
1、E1:考试委员会: E2:主讲教师;E3:学生或选课学生; E4:教务处
2、D1:学生信息文件;D2:课程单元信息文件;D3:课程信息文刊;D4:课程成绩文件。D5:无效成绩文件注:D2和D3答案可以互换。 3、
注:数据流起点、终点全部答对才可给分,数据流不分先后顺序。4、 程序流程图通常在进行详细设计时使用,用来描述程序逻辑结构
【解析】
试题一分析]本题考查是DFD应用,属于比较传统题目,考查点也与往年类似。问题1考查是顶层DFD。顶层DFD通常用来确定系统边界,其中只包含一个唯一加工(即待开发系统)、外部实体以及外部实体与系统之间输入输出数据流。题目要求填充正是外部实体。从顶层DFD可以看出,数据流足完整。所以只要根据数据流从题目说明上下文中,找出E1~E4所对应外部实体,分别为:考试委员会、主讲教师、学生和教务处。0层DFD中缺少东西比较多,要求填写数据存储及缺失数据流。先来确定数据存储。首先,从说明中找出可能是数据存储元素米。很明显,学生信息文件、课程信息文件、课程单元信息文件、课程成绩文件、无效成绩文件应该是数据存储。下面工作就是对号入座。从0层DFD上可以看到,加工3到D5有一条数据流;而加工3所完成操作是“记录无效成绩”。从说明中可知,“对于无效成绩,系统会单独将其保存在无效成绩文件中”,所以D5应该是数据存储“无效成绩文件”。类似地,从加工2“记录有效成绩”到D4有一条数据流,这说明D4就是数据存储“课程成绩文件”。D1输出有两条数据流,分别流向加工1“验证学生信息”和加工4“生成成绩列表”。由说明“根据学生信息文件来确认该学生是否选修这门课程”可知,验证学生信息时,需要根据学生信息文件来进行;而生成成绩列表及成绩单时,学生信息都是必要。所以D1应该是“学生信息文件”。这样话,D2和D3就应该分别与“课程单元信息文件”和“课程信息文件”对应。由于D2和D3都只与加工1有关,所以它们对应关系就是随意。这样5个数据存储就填充完整了。下面要补充缺失数据流。首先,从说明第5条可知,生成成绩列表时是需要从课程成绩文件中获取信息,“课程成绩文件”实际上就是图中D4。而D4和加工4之间并没有数据流,因此这就是一条缺失数据流。另外,前面在确定D1所对应数据存储时提到过,生成成绩单时是需要学生信息。所以,加工5应该从D1中获取相应信息,这样就找到了第二条数据流。第三条数据流也比较容易找。说明第7条告诉我们,只有“对于所有通过审查成绩,系统将会生成最终成绩单,并通知每个选课学生”。也就是说,从成绩列表到成绩单生成是有条件。这意味着,在加工4和加工5之间应该存在一条数据流,这就是第3条数据流。问题4说明该问题实际上是为了考查大家对DFD进一步理解,明确DFD在软件开发中用于描述功能需求。