软件工程概论上机实验报告题目:图书馆自动循环系统用户需求及规格说明书学院名称软件学院软件工程学生姓名**结论16项目名称“图书馆自动循环系统用户需求及规格说明书”。考虑一个图书馆自动循环系统。每本书有一个条形码,每个借书者有一张借书卡,上面也有一个条形码。当借书者想借书时,图书管理员扫描该书和借书卡上的条形码,并在计算机终端上输入C。类似地,还书时,图书管理员再次进行扫描,并输入R。图书管理员可以向书库中增加图书(+)或去掉图书(-)。借书者可以在一台终端上确定书库中特定作者的所有书籍(借书者输入A=之后,再输入作者的名字)、特定标题的所有书籍(输入T=之后,再输入标题)或者特定主题范围的所有书籍(输入S=之后,再输入主题范围)。*后,如果借书者想要一本目前已借出的书,图书管理员可以在该书上做个标记,当该书被归还时,将为申请过它的借书者保留起来(输入H=之后,再输入该书的书号)。需求说明随着社会信息量的与日俱增,作为信息存储的主要媒体之一图书,数量、规模比以往任何时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。
对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理需要有效的图书管理软件。图书馆自动循环系统是一套功能比较完善的数据管理软件,具有数据操作方便高效迅速等优点。该软件采用功能强大的数据库软件开发工具进行开发,具有很好的可移植性,可在应用范围较广的DOS,WINDOWS系列等操作系统上使用。除此以外,可通过访问权限控制以及数据备份功能,确保数据的安全性。图书馆自动循环系统针对的用户是较大型的图书馆,藏书的种类和数量很多,读者的数量和来源比较广。相应的需求有:1.能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括:图书的出借、返还和资料统计。2.能够对一定数量的读者进行相应的信息存储与管理,这其中包括:读者资料的统计与查询。3.能够对需要的统计结果提供列表显示输出。4.读者能够利用多种关键字对数据库进行搜索、查找。5.能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息备份的服务。系统分析1.画DFD**次求精如下图所示。图1-1图书馆自动循环系统的数据流图(**次求精)现在对DFD逐步求精。图1-2描述了第二次求精。
加入了图书供应方面添加或删除图书的数据流图。BORROWERSProcess_ordersBook_detailsboroowreturnsearchLIBRARY_BOOK_DATA图1-2图书馆自动循环系统的数据流图(第二次求精)然后在数据流图中,对借书者搜索图书的部分进行求精。BORROWERSProcess_ordersBook_detailsboroowreturnsearchBOOKS_SUPPLIERLIBRARY_BOOK_DATAAdministrate_library_booksBook_detailsadddelete图1-3图书馆自动循环系统的数据流图(第三次求精)继续求精。对借书者借书还书的部分进行求精,建立BORROWED_BOOKS的数据存储,更加方便借书还书的操作,并添加借书者预定书籍的操作。BORROWERSProcess_ordersBook_detailsboroowreturnBOOKS_SUPPLIERLIBRARY_BOOK_DATAAdministrate_library_booksBook_detailsadddeleteAuthor_searchtitle_searchSubject_searchSearch”A=”Search”T=”Search”S=”Author’s_books_detailsbooks_detailstileBoos_details图1-4图书馆自动循环系统的数据流图(第四次求精)2.决定哪部分计算机化以及如何计算机化在上述数据流图中显示的内容里,数据存储中的LIBRARY_BOOK_DATA,BOOKED_ORDER_DATA和BORROWED_BOOK_DATA都是计算机文件。
对于管理员进行添加或删除书的操作administrate_library_books,可以不进行计算机化,因为会比较复杂,不符合成本—效益原则,可采用人工方式输入到计算机中,删除时则可以直接手动找到该书目,手动删除。BORROWERSCheck_if_borrow_available_and_add_borrow_infoBook_detailsboroowBOOKS_SUPPLIERLIBRARY_BOOK_DATAAdministrate_library_booksBook_detailsadddeleteAuthor_searchtitle_searchSubject_searchSearch”A=”Search”T=”Search”S=”Author’s_books_detailsbooks_detailstileBoos_detailssubjectBORROWED_ORDER_DATABorrowed_book_detailsReturn_and_delete_the_borrowed_inforeturnReturning_book_DetailsBOOKED_ORDER_DATABooked_canceled_detailsbook_and_save_the_book_when_returnedBookorders_detailsBorrowed_and_booked_detailsBooked_detailssubject_search为了提升操作效率,应该将其计算机化。
因为题目的要求是实现自动循环的图书馆系统,因此,我们将Check_if_borrow_available_and_add_borrow_info,book_and_save_the_book_when_returnedReturn_and_delete_the_borrowed_info完全计算机化。图书管理员只需扫描书目上的条形码,实现借书、还书,通过借书者输入“A=”,“T=”和“S=”实现书目的查找和搜索,借书者输入“H=”时,将预定已被借出的书目。当图书管理员扫描被借书且预定的书目条形码时,该书将被自动保留。3.确定数据流的细节决定什么数据必须进入各种数据流。然后,逐步求精每个流。表3-1图书馆自动循环系统的典型数据字典词条数据元素名描述叙述Book_info由域组成的记录Book_identificationBook_authorBook_titleBook_subjectBook_mark 这些域包含一本书信息的全 部细节 Book_mark Bool 或1,表示是否被订阅Book_identification 12 位整数 generate_book_number生成 的**编号 Administrate_libray_book 过程:输入参数: Book_info 输出参数: 操作成功/失败 这个处理将 book_info 有信息作为输入,添加到LIBRARY_BOOK_DATA 计算机 文件中,成功或失败均在屏 幕上显示消息;或者在 LIBRARY_BOOK_DATA 中查询 一条书目,将其删除,计算 机文件中将不在存在这本 书,这里需要检查删除是否 能够实现,即该书目是否已 被借出或预订,返回操作相 应消息。
Order 由域组成的记录 Order_identification Booker_number Booker_name Ordered_book_status Ordered_book_identificati Ordered_book_authorOrdered_book_title 这些域包含一个申请预订书 目的全部细节,包括预订者 的信息以及书的信息 Ordered_book_subjectOrder_identification 12 位整数 成的**编号,前10位数字 包含申请单号本身,后 是校验位Ordered_book_status 位整数由多项过程参与更改,默认 delete,return等操作时可 能更改此值。表示当前预定 书的状态,0 表示已下架,1 表示已借出,2 表示在库中 Apply_the_book 过程: 输入参数: Order 输出参数: 操作成功/失败 这个处理将 order 的所有信 息作为输入,检查其有效性, BOOKED_DATA的数据存储中, book_mark值标记为1。在屏 幕上显示成功或失败的消 Borrower_number10 位整数 由管理员或借书者手动输 入,为借书者的学号 Author_search 过程: 输入参数: A=作者名字 输出参数: 该作者的所有书籍 这个处理将作者的名字作为 LIBRARY_BOOK_DATA中查询, 寻找 book_info 中作者一栏 为该作者的书目,并将其列 出。返回值为查询到的该作 者的所有书籍 Title_search 过程: 输入参数: T=书籍名称