软件工程概论实验报告图书馆自动循环系统用户需求及规格说明书.docx
- 文档编号:26579616
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:18
- 大小:141.78KB
软件工程概论实验报告图书馆自动循环系统用户需求及规格说明书.docx
《软件工程概论实验报告图书馆自动循环系统用户需求及规格说明书.docx》由会员分享,可在线阅读,更多相关《软件工程概论实验报告图书馆自动循环系统用户需求及规格说明书.docx(18页珍藏版)》请在冰豆网上搜索。
软件工程概论实验报告图书馆自动循环系统用户需求及规格说明书
软件工程概论
软件工程概论上机实验报告
题目:
图书馆自动循环系统用户需求及规格说明书
目录
项目名称1
需求说明2
系统分析3
实验结论16
项目名称
“图书馆自动循环系统用户需求及规格说明书”。
考虑一个图书馆自动循环系统。
每本书有一个条形码,每个借书者有一张借书卡,上面也有一个条形码。
当借书者想借书时,图书管理员扫描该书和借书卡上的条形码,并在计算机终端上输入C。
类似地,还书时,图书管理员再次进行扫描,并输入R。
图书管理员可以向书库中增加图书(+)或去掉图书(-)。
借书者可以在一台终端上确定书库中特定作者的所有书籍(借书者输入A=之后,再输入作者的名字)、特定标题的所有书籍(输入T=之后,再输入标题)或者特定主题范围的所有书籍(输入S=之后,再输入主题范围)。
最后,如果借书者想要一本目前已借出的书,图书管理员可以在该书上做个标记,当该书被归还时,将为申请过它的借书者保留起来(输入H=之后,再输入该书的书号)。
需求说明
随着社会信息量的与日俱增,作为信息存储的主要媒体之一图书,数量、规模比以往任何时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。
在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。
对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理需要有效的图书管理软件。
图书馆自动循环系统是一套功能比较完善的数据管理软件,具有数据操作方便高效迅速等优点。
该软件采用功能强大的数据库软件开发工具进行开发,具有很好的可移植性,可在应用范围较广的DOS,WINDOWS系列等操作系统上使用。
除此以外,可通过访问权限控制以及数据备份功能,确保数据的安全性。
图书馆自动循环系统针对的用户是较大型的图书馆,藏书的种类和数量很多,读者的数量和来源比较广。
相应的需求有:
1.能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括:
1)图书信息的录入、删除及修改。
2)图书信息的多关键字检索查询。
3)图书的出借、返还和资料统计。
2.能够对一定数量的读者进行相应的信息存储与管理,这其中包括:
1)读者信息的登记、删除及修改。
2)读者资料的统计与查询。
3.能够对需要的统计结果提供列表显示输出。
4.读者能够利用多种关键字对数据库进行搜索、查找。
5.能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息备份的服务。
系统分析
1.画DFD
第一次求精如下图所示。
图1-1图书馆自动循环系统的数据流图(第一次求精)
现在对DFD逐步求精。
图1-2描述了第二次求精。
加入了图书供应方面添加或删除图书的数据流图。
图1-2图书馆自动循环系统的数据流图(第二次求精)
然后在数据流图中,对借书者搜索图书的部分进行求精。
图1-3图书馆自动循环系统的数据流图(第三次求精)
继续求精。
对借书者借书还书的部分进行求精,建立BORROWED_BOOKS的数据存储,更加方便借书还书的操作,并添加借书者预定书籍的操作。
图1-4图书馆自动循环系统的数据流图(第四次求精)
2.决定哪部分计算机化以及如何计算机化
在上述数据流图中显示的内容里,数据存储中的LIBRARY_BOOK_DATA,BOOKED_ORDER_DATA和BORROWED_BOOK_DATA都是计算机文件。
对于管理员进行添加或删除书的操作administrate_library_books,可以不进行计算机化,因为会比较复杂,不符合成本—效益原则,可采用人工方式输入到计算机中,删除时则可以直接手动找到该书目,手动删除。
Author_serach,tile_search和subject_search为了提升操作效率,应该将其计算机化。
因为题目的要求是实现自动循环的图书馆系统,因此,我们将Check_if_borrow_available_and_add_borrow_info,book_and_save_the_book_when_returned和Return_and_delete_the_borrowed_info完全计算机化。
图书管理员只需扫描书目上的条形码,实现借书、还书,通过借书者输入“A=”,“T=”和“S=”实现书目的查找和搜索,借书者输入“H=”时,将预定已被借出的书目。
当图书管理员扫描被借书且预定的书目条形码时,该书将被自动保留。
3.确定数据流的细节
决定什么数据必须进入各种数据流。
然后,逐步求精每个流。
表3-1图书馆自动循环系统的典型数据字典词条
数据元素名
描述
叙述
Book_info
由域组成的记录
Book_identification
Book_author
Book_title
Book_subject
Book_mark
这些域包含一本书信息的全部细节
Book_mark
Bool值
0或1,表示是否被订阅
Book_identification
12位整数
由过程generate_book_number生成的唯一编号
Administrate_libray_books
过程:
输入参数:
Book_info
输出参数:
操作成功/失败
这个处理将book_info的所有信息作为输入,添加到LIBRARY_BOOK_DATA计算机文件中,成功或失败均在屏幕上显示消息;或者在LIBRARY_BOOK_DATA中查询一条书目,将其删除,计算机文件中将不在存在这本书,这里需要检查删除是否能够实现,即该书目是否已被借出或预订,返回操作相应消息。
Order
由域组成的记录
Order_identification
Booker_number
Booker_name
Ordered_book_status
Ordered_book_identification
Ordered_book_author
Ordered_book_title
Ordered_book_subject
这些域包含一个申请预订书目的全部细节,包括预订者的信息以及书的信息
Order_identification
12位整数
由过程generate_order_number生成的唯一编号,前10位数字包含申请单号本身,后2位是校验位
Ordered_book_status
1位整数
由多项过程参与更改,默认值为1当进行delete,return等操作时可能更改此值。
表示当前预定书的状态,0表示已下架,1表示已借出,2表示在库中
Apply_the_book
过程:
输入参数:
Order
输出参数:
操作成功/失败
这个处理将order的所有信息作为输入,检查其有效性,然后将其输入到BOOKED_DATA的数据存储中,并将book_info中的book_mark值标记为1。
在屏幕上显示成功或失败的消息。
Borrower_number
10位整数
由管理员或借书者手动输入,为借书者的学号
Author_search
过程:
输入参数:
A=作者名字
输出参数:
该作者的所有书籍
这个处理将作者的名字作为输入,然后在LIBRARY_BOOK_DATA中查询,寻找book_info中作者一栏为该作者的书目,并将其列出。
返回值为查询到的该作者的所有书籍
Title_search
过程:
输入参数:
T=书籍名称
输出参数:
该名称的所有书籍
这个处理将作者的名字作为输入,然后在LIBRARY_BOOK_DATA中查询,寻找book_info中名称一栏符合该名称的书目,并将其列出。
返回值为查询到的该名称的所有书籍,如果没有则在屏幕上显示相应消息。
Subject_search
过程:
输入参数:
S=主题范围
输出参数:
该主题范围的所有书籍
这个处理将作者的名字作为输入,然后在LIBRARY_BOOK_DATA中查询,寻找book_info中主题一栏符合该主题范围的书目,并将其列出。
返回值为查询到的该主题范围的所有书籍,如果没有则在屏幕上显示相应消息。
Borrow
过程:
输入参数:
书目的条形码
输出参数:
借阅成功/失败
借书者将要借阅的书籍递给管理员,管理员扫描图书上的条形码,该过程将条形码作为输入,在LIBRARY_BOOK_DATA中查找该书,查找book_info中该书的book_mark,如果是0表示无人预定,借阅成功。
如果是1,表示被订阅,通过check_book_and_borrower_info检查预订者和借阅者是否为同一人,为同一人则借阅成功,不同则失败。
借阅成功后在BORROWED_ORDER_DATA中记录下借阅者和该书的所有信息,失败后在屏幕上返回信息
Borrowed_order
由域组成的记录
Borrowed_identification
Borrower_number
Borrower_name
Borrow_date
Book_identification
Book_author
Book_title
Book_subject
这些域包含一个已借阅书目的全部细节,包括借阅者的信息以及被借阅书的信息
check_book_and_borrower_info
过程:
输入参数:
Booker_number
Borrower_number
Ordered_book_identification
Book_identification
输出参数:
返回值为匹配
(1)或不匹配(0)
这个过程将订阅者的学号与借阅者学号、所预定书籍条形码与要借阅书籍作比较,如果二者都一直,则匹配,返回1;如果有至少一项不同,则不匹配,返回0
Return
过程:
输入参数:
Book_identification
输出参数:
操作成功/失败
这个过程将book_identification作为输入,在BORROWED_ORDER_DATA中找到book_identification一项,寻找匹配项,未找到则操作失败;找到后操作成功,检查book_mark值如果是1,表示已预定,则将ordered_book_status改为2,表示在库中。
返回消息。
Add
过程:
输入参数:
Book_info
add_date
book_destination
输出参数:
添加成功/失败
图书管理员向书库中添加书籍。
这个处理将图书的所有信息、入库时间和图书位置作为输入,检查所有信息符合格式且正确无误,则添加成功;否则添加失败。
Delete
过程:
输入参数:
Book_info
输出参数:
删除成功/失败
这个处理将图书的某一项信息作为输入,在LIBRARY_BOOK_DATA中查找目标图书,查找到之后管理员执行删除操作,这个过程将检查该书是否有预定,如果有预定信息则在该预定信息中更改图书状态为“已下架”,然后把该书的所有book_info、入库信息、历史记录等全部删除,操作成功后返回删除成功信息,否则返回错误消息
4.定义处理的逻辑
既然已经确定了产品中的数据元素,现在可以研究在每个处理中发生了什么。
用判决树来表示。
图4-1借书者借书过程的判决树
图4-2借书者搜索过程的判决树
5.定义数据存储
定义每个数据和它的表示(格式)的准备内容。
标题
主题范围
作者
LIBRARY_BOOK_DATA
条形码
作者
标题
主题范围
图5-1LIBRARY_BOOK_DATA的数据实时访问图
实时访问的问题取决于对书籍进行什么查询,假设决定采用联机方式验证订单,一个借书者可能按照作者查找书籍(“A=霍·金”),也可能按标题查找书籍(“T=软件工程面向对象和传统的方法”),或者按主题范围查找书籍(“S=软件测试”),但是很少有按条形码搜索的。
因此,实时访问LIBRARY_BOOK_DATA要通过作者、标题和主题范围进行。
主题范围
作者
标题
借书者学号
借阅日期
BORROWED_ORDER_DATA
条形码
作者
标题
主题范围
借书者学号
借书者姓名
借阅日期
图5-2BORROWED_ORDER_DATA的数据实时访问图
预定书籍主题范围
预定书籍标题
预定书籍作者
预定者学号
BOOKED_ORDER_DATA
预定申请编号
预定书籍作者
预定书籍标题
预定书籍主题范围
预定者学号
预定者姓名
预定书籍条形码
图5-3BOOKED_ORDER_DATA的数据实时访问图
6.定义物理资源
使用数据库管理系统(DBMS),规定相关表格内容如下
表6-1LIBRARY_BOOK_DATA表
书籍条形码
书籍名称
书籍作者
书籍主题范围
书籍所在位置
书籍当前状态
表6-2BORROWED_ORDER_DATA表
借阅编码
书籍条形码
借阅者学号
借阅者姓名
借阅时间
归还时间
表6-3ORDERED_BOOK_DATA表
预定申请编码
预定者学号
预订者姓名
预定书籍条形码
预定书籍状态
表6-4LIBRARY_BOOKS_BORROW_HISTORY表
书籍条形码
入库时间
借阅次数
借阅时间
归还时间
7.确定输入—输出规格说明
表7-1图书馆自动循环系统输入—输出规格说明
输入元素
数据类型
数据长度
描述
Book_identification
long
12位
图书条形码,用来标识馆内图书
Book_title
String
15位
图书名称
Book_author
String
15位
书籍作者
Book_subject
String
15位
书籍主题范围
Add_date
Time
8位
入库的时间
Booker_number
Long
10位
预订者学号
Booker_name
String
15位
预订者姓名
Ordered_book_identification
Long
12位
预定书籍条形码
Order_identification
Long
12位
申请预订编码
Ordered_book_author
String
15位
预定书籍作者
Ordered_book_title
String
15位
预定书籍名称
Ordered_book_subject
String
15位
预定书籍主题范围
Borrowed_identification
Long
12位
借阅编号
Borrower_number
Long
10位
借阅者学号
Borrower_name
String
15位
借阅者姓名
Borrow_date
Time
8位
借阅时间
Book_mark
Bool
1位
标识书籍是否被订阅,0为未预定,1为已预订
Ordered_book_status
Int
1位
标识所预定书籍的状态,0为已下架,1为已借出,2为回到库中
Books_borrowed_times
Int
12位
标识借阅次数
8.确定大小
输入量:
平均每天约8000左右条有关借阅、预定、归还的输入
打印报表的频率:
每周1~2次
打印报表的最后期限:
每周的结算日前
CPU和存储器间传递book_info,borrowed_order_info,booked_order_info,每天传输量约为10M。
数据库文件为图书馆书库全部内容,比较庞大。
9.确定硬件要求
从步骤8中确定的磁盘文件大小的信息,可以计算出大容量存储器的要求。
另外,可以确定用于备份的大容量存储器的要求。
从输入容量的信息,可以发现这方面的要求。
因为打印报表的行数和频率是已知的,可以指定输出设备。
如果客户已经有硬件了,可以确定这个硬件是否合适,或者是否必须得到附加的硬件。
另一方面,如果客户缺乏合适的硬件,可以建议需要什么以及应当购买还是租用。
对于小一些的系统,技术的进步对硬件决策的影响不大,然而大一些的系统,硬件成本非同一般,需要仔细决策。
实验结论
一个规格说明文档必须满足两个相互矛盾的要求。
一方面,这个文档对于客户必须是清晰和可理解的,因为客户很可能不是一个计算机专家。
毕竟,客户在为产品付钱,并且除非客户相信自己真正理解了新产品将是什么样的,否则客户很可能决定不批准开发这个产品,也可能请其他软件公司建造它。
另一方面,规格说明文档必须完整而详细,因为这实际上是开展设计可得到的唯一的信息来源。
即使客户承认需求阶段所有的要求都已经明确了,如果规格说明文档中包含一些错误,如遗漏、矛盾、或模糊,不可避免的结果是,设计中的错误将带到实现中去。
因此,我们需要一种以某种格式描述目标产品的技术,它既是相当非技术性的,能够为客户所理解;又要足够准确,使得在开发周期结束时交付客户的产品是无错误的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 概论 实验 报告 图书馆 自动 循环系统 用户 需求 规格 说明书