实验目的、内容及要求:
1、熟悉并学习软件工程课程实验的开发环境;
2、掌握根据开发项目的需求,在需求分析的基础上完善数据流图的功能,并给出相应数据字典;
3、掌握在数据流图分析的基础上完成系统功能结构图的划分;
4、以“图书管理系统”为例。
实验仪器设备(实验环境):
PC机+Win10;
draw.io。
实验原理(知识点):
1、基于“抽象”和“分解”的基本思想,建立目标系统的逻辑模型。“抽象”用最本质的属性表示一个软件系统;“分解”将复杂的问题分解成若干小问题;
2、数据流图——一种图形化技术,它描绘数据从输入到输出过程中所经历的变换;
3、数据字典——数据流图里出现的所有被命名的元素作为一个词条加以定义,使其有一个确切的解释;
4、软件设计的原则——模块化;抽象;自顶向下逐步求精;高内聚低耦合;信息隐藏与局部化。
实验过程:
【题目1】某图书管理系统需求分析与设计。
某图书管理系统具有以下功能:
借书:输入读者借书证,系统首先检查借书证是否有效,若有效,对于第一次借书的读者,在借书文件上建立档案。否则,查阅借书文件,检查该读者所借图书是否超过10本,若已达10本,拒借,未达10本,办理借书(检查该读者目录并将借书情况登入借书文件)。
还书:从借书文件中读出与读者有关的记录,查阅所借日期,如果超期(3个月)作罚款处理。否则,修改库存目录与借书文件。
查询:可通过借书文件、库存目录文件查询读者情况、图书借阅情况,以及库存情况,打印各种统计表。
用结构化分析方法画出系统顶层图、0层图(数据流图),并写出系统顶层图数据字典。
该系统顶层图:
“查询”0层图:
“借书”0层图:
“还书”0层图:
图书管理系统的数据字典如下:
(1)顶层图数据字典:首次借书读者={读者+借书证}
多次借书读者={读者+借书证}
借书证={姓名+学号}
读者={姓名+学号+班号}
工作人员={姓名+工作人员代号}
姓名:2{姓名}4
学号:9{数字}9
班号:4{数字}4
工作人员代号:4{数字}4
读者情况:{姓名+学号}
图书借阅情况:{图书名+图书编号+读者+库存数量}
库存情况:{图书名+图书编号+库存数量}
图书名:{汉字}
图书编号:6{数字}6
(2)借书0层图数据字典:借书证={姓名+学号}
读者={姓名+学号+班号}
借书次数:0..*
读者信息={姓名+学号}
借书情况={读者+图书名+图书编号+所借日期}
读者目录={读者+图书名+图书编号+所借日期}
姓名:2{汉字}4
学号:9{数字}9
班号:4{数字}4
图书名:{汉字}
图书编号:6{数字}6
所借日期:8{数字}8
(3)还书0层图数据字典:工作人员={姓名+工作人员代号}
读者记求={读者+图书名+图书编号+所借日期}
读者={姓名+学号+班号}
罚款信息={读者+图书名+图书编号+罚金数额}
库存目录={图书名+图书编号+库存数量}
借书文件={读者+图书名+图书编号+所借日期}
姓名:2{汉字}4
学号:9{数字}9
班号:4{数字}4
工作人员代号:4{数字}4
图书名:{汉字}
图书编号:6{数字}6
所借日期:8{数字}8
罚金数额:1{数字}2
(4)查询0层图数据字典:工作人员={姓名+工作人员代号}
库存目录= {图书名+图书编号+库存数量}
借书文件={读者+图书名+图书编号+所借日期}
统计表={库存目录+读者记录}
读者记录={读者+图书名+图书编号+所借日期}
姓名:2{汉字}4
学号:9{数字}9
班号:4{数字}4
工作人员代号:4{数字}4
图书名:{汉字}
图书编号:6{数字}6
所借日期:8{数字}8