阅读下列说明和图,回答问题。
[说明]
某学校开发图书管理系统,以记录图书馆藏图书及其借出和归还情况,提供给借阅者借阅图书功能,提供给图书馆管理员管理和定期更新图书表功能。主要功能的具体描述如下:
(1)处理借阅。借阅者要借阅图书时,系统必须对其身份(借阅者ID)进行检查。通过与教务处维护的学生数据库、人事处维护的职工数据库中的数据进行比对,以验证借阅者ID是否合法,若合法,则检查借阅者在逾期未还图书表中是否有逾期未还图书,以及罚金表中的罚金是否超过限额。如果没有逾期未还图书并且罚金未超过限额,则允许借阅图书,更新图书表,并将借阅的图书存入借出图书表,借阅者归还所借图书时,先由图书馆管理员检查图书是否缺失或损坏,若是,则对借阅者处以相应罚金并存入罚金表;然后,检查所还图书是否逾期,若是,执行“处理逾期”操作;最后,更新图书表,删除借出图书表中的相应记录。
(2)维护图书。图书馆管理员查询图书信息;在新进图书时录入图书信息,存入图书表;在图书丢失或损坏严重时,从图书表中删除该图书记录。
(3)处理逾期。系统在每周一统计逾期未还图书,逾期未还的图书按规则计算罚金,并记入罚金表,并给有逾期未还图书的借阅者发送提醒消息。借阅者在借阅和归还图书时,若罚金超过限额,管理员收取罚金,并更新罚金表中的罚金额度。
现采用结构化方法对该图书管理系统进行分析与设计,获得如图1所示的顶层数据流图和图2所示的0层数据流图。
图1 顶层数据流图
问答题
使用说明中的词语,给出图1中的实体E1-E4的名称。
【正确答案】E1:借阅者。
E2:图书管理员。
E3/E4:学生数据库/职工数据库。
【答案解析】[解析] 本题考查数据流图(DFD)的应用,是一种比较传统的题目。
本问题要求给出图1中的实体E1~E4的名称。这个需要从题目中的描述和该图来获得。题目中有信息描述:“借阅者要借阅图书时,系统必须对其身份(借阅者ID)进行检查”,结合顶层数据流图可知,E1为借阅者;另外,根据题目描述“图书馆管理员查询图书信息;在新进图书时录入图书信息,存入图书表;在图书丢失或损坏严重时,从图书表中删除该图书记录”,结合图,可以知道E2是图书馆管理员,再结合描述“借阅者要借阅图书时,系统必须对其身份(借阅者ID)进行检查。通过与教务处维护的学生数据库、人事处维护的职工数据库中的数据进行比对,以验证借阅者ID是否合法”和顶层数据流图可知,E3和E4应该是学生数据库和职工数据库,这两者的位置可以互换。
问答题
使用说明中的词语,给出图2中的数据存储D1~D4的名称。
【正确答案】D1:图书表。
D2:借出图书表。
D3:逾期未还图书表。
D4:罚金表。
【答案解析】[解析] 本问题考查数据存储的确定。根据题目的描述“图书馆管理员查询图书信息;在新进图书时录入图书信息,存入图书表;在图书丢失或损坏严重时,从图书表中删除该图书记录”,结合0层数据流图可知D1为图书表;根据题目描述“如果没有逾期未还图书并且罚金未超过限额,则允许借阅图书,更新图书表,并将借阅的图书存入借出图书表,”,再结合0层数据流图可知D2为借出图书表,并且确实生成病历至病历文件的数据流和日志文件至生成病历的数据流;根据题目描述“系统在每周一统计逾期未还图书,逾期未还的图书按规则计算罚金,并记入罚金表”,再结合0层数据流图我们可知D4为罚金表。在确定了上面三个存储后,题目中还剩下逾期未还图书表,很显然,D3就是逾期未还图书表。
问答题
在DFD建模时,需要对有些复杂加工(处理)进行进一步精化,绘制下层数据流图。针对图2中的加工“处理借阅”,在1层数据流图中应分解为哪些加工?(使用说明中的术语)
【正确答案】检查借阅者身份或检查借阅者ID;检查逾期未还图书;检查罚金是否超过限额;借阅图书;归还图书。
【答案解析】[解析] 本题主要考查加工的分解。对于求解这类问题,主要根据题目的描述来进行,0层图中加工“处理借阅”在题目的描述中,其处理过程为:先检查借阅者的身份,如果身份合法,则检查借阅者是否有逾期未还图书及罚金表中的罚金是否超过限额,如果没有,则允许借阅读书,然后是归还图书。因此0层图中的加工“处理借阅”可以细分为l层图中的若干个加工,其分别是:检查借阅者的身份,检查逾期未还图书,检查罚金是否超过限额,借阅读书及归还图书等加工。
问答题
说明[问题3]中绘制1层数据流图时要注意的问题。
【正确答案】保持父图与子图平衡。父图中某加工的输入输出数据流必须与它的子图的输入输出数据流在数量和名字上相同。如果父图的一个输入(或输出)数据流对应于子图中几个输入(或输出)数据流,而子图中组成这些数据流的数据项全体正好是父图中的这一个数据流,那么它们仍然算是平衡的。
【答案解析】[解析] 本题主要考查根据上层数据流图绘制下层数据流图时的注意事项。其主要就是要保持父图与子图间的平衡,具体有:父图中某加工的输入输出数据流必须与它的子图的输入输出数据流在数量和名字上相同;如果父图的一个输入(或输出)数据流对应于子图中几个输入(或输出)数据流,而子图中组成这些数据流的数据项全体正好是父图中的这一个数据流,那么它们仍然算是平衡的。