参考答案:
【问题1】(4分,各1分)
E1:借阅者E2:图书管理员E3/E4: 学生数据库/职工数据库
注:E3和E4不分顺序,但必须不同。
【问题2】(4分,各1分)
D1:图书表D2:借出图书表D3:逾期未还图书表D4:罚金表
【问题3】(5分)
检查借阅者身份或检查借阅者ID;检查逾期未还图书;检查罚金是否超过限额;借阅图书;归还图书
【问题4】(2分)
保持父图与子图平衡。父图中某加工的输入输出数据流必须与它的子图的输入输出数据流在数量和名字上相同。如果父图的一个输入(或输出)数据流对应于子图中几个输入(或输出)数据流,而子图中组成这些数据流的数据项全体正好是父图中的这一个数据流,那么它们仍然算是平衡的。
详细解析:
本题考查采用结构化方法进行系统分析与设计,主要考查数据流图(DFD)的应用,是比较传统的题目,要求考生细心分析题目中所描述的内容。
DFD是一种便于用户理解、分析系统数据流程的图形化建模工具,是系统逻辑模型的重要组成部分。
【问题1】
本题考查顶层DFD。顶层DFD一般用来确定系统边界,将待开发系统看作一个加工,图中只有唯一的一个处理和一些外部实体,以及这两者之间的输入输出数据流。题目要求根据描述确定图中的外部实体。分析题目中描述,并结合已经在顶层数据流图中给出的数据流进行分析。从题目的说明中可以看出:和系统的交互者包括图书管理员、借阅者两类人,图书管理员需要维护图书信息、得到查询所得的图书信息,借阅者提供借阅者ID、借阅与归还的图书。还有通过与教务处维护的学生数据库、人事处维护的职工数据库中的数据进行比对以验证借阅者ID是否合法的两个数据库作为外部实体。
对应图1-1中数据流和实体的对应关系,可知E1为借阅者,E2为图书管理员,E3和E4为学生数据库和职工数据库。
【问题2】
本题考查0层DFD中数据存储的确定。说明描述维护图书信息主要存储或者更新图书表;借阅时需要检查逾期未还图书表是否有逾期未还图书以及罚金表中的罚金限额,归还时出现缺失和损坏需要处以罚金并存入罚金表;借阅与归还图书时需要存入借出图书表和更新借出图书表。在处理逾期时需要将罚金记入罚金表,要检查和更新罚金限额。根据描述和图1-2中的数据存储的输入输出数据流提示,可知:D1为图书表,D2 为借出图书表,D3为逾期未还图书表,D4 为罚金表。
【问题3】
本题对0层DFD中的处理进一步精化建模,绘制下层数据流图。从说明中对“处理借阅”的描述和图1-2可知,处理借阅需要检查借阅者身份、检查逾期未还图书、检查罚金是否超过限额、借阅图书和归还图书。描述中:检查所还图书是否逾期,若是,执行“处理逾期”操作。这里处理逾期明确说明是一个操作,而且在描述(3)中单独描述,在图1-2中已经建模为单独一个处理,所以在本问题中仍然不分解为一个处理。
【问题4】
本题考查在绘制下层数据流图时需要注意的问题。问题3明确给出是对复杂处理进行进一步精化,绘制下层数据流图,因此需要注意的问题是绘制下层数据流图时要保持父图和子图平衡。父图中某加工的输入输出数据流必须与它的子图的输入输出数据流在数量和名字上相同。如果父图的一个输入(或输出)数据流对应于子图中几个输入(或输出)数据流,而子图中组成这些数据流的数据项全体正好是父图中的这一个数据流,那么它们仍然算是平衡。