软件工程实验报告实验1:软件项目的需求分析学号:班号:姓名:课程主讲教师:张建国实验指导教师:张建国提交日期:2011年11月11日软件需求规格说明书1引言1.1编写目的编写本文档的目的是根据系统分析工程师和客户沟通的结果,对用户需求进行了全面细致的分析,深入描述《图书管理系统》软件的功能和性能与界面,确定该软件设计的限制和定义软件的其他有效性需求。该需求规格说明书的读者对象是图书管理系统软件小组的研发工程师、测试工程师、销售工程师,版权归上述所有者所有,严禁外传。1.2背景随着社会信息量的与日俱增,作为信息存储的主要媒体之一图书,数量、规模比以往任何时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理需要有效的图书管理软件。图书管理系统软件LMSV1.0是一套功能比较完善的数据管理软件,具有数据操作方便高效迅速等优点。该软件采用功能强大的数据库软件开发工具进行开发,具有很好的可移植性,可在应用范围较广的DOS、WINDOWS系列等操作系统上使用。除此以外,LMSV1.0可通过访问权限控制以及数据备份功能,确保数据的安全性。1.3定义文档中采用的专门术语的定义及缩略词简要如下:LMS:LibraryManagementSystem,图书管理系统。1.4参考资料[1]王慧亮关于图书管理系统的批文[2]郑人杰,殷人昆,陶永雷。《实用软件工程》(第二版)。北京:清华大学出版社,1997。[3]王立福,麻志毅。《软件工程》(第二版)。北京:北京大学出版社,2001。[4]唐学忠,王文。《VisualBasic程序设计教程》北京:中国电力出版社,2002。2任务概述2.1目标《图书管理系统》针对的用户是单个中小型图书室或者个人,藏书的种类和数量较少,读者的数量和来源受到一定的限制。相应的需求有:1.能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括:1)图书信息的录入、删除及修改。2)图书信息的多关键字检索查询。3)图书的出借、返还和资料统计。2.能够对一定数量的读者进行相应的信息存储与管理,这其中包括:1)读者信息的登记、删除及修改。2)读者资料的统计与查询。3.能够对需要的统计结果提供列表显示输出。4.能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息备份的服务。2.2用户的特点该软件的最终用户是图书馆管理人员和读者。这些人员对本软件的使用频度相当大2.3假定和约束一个更为完善的图书管理系统,应提供更为便捷与强大的信息查询功能,如相应的网络操作及服务,由于开发时间和计算机数量有限,该系统并未提供这一功能。对信息的保护手段仅限于设置用户级别,以及提供数据文件的备份,比较简单,不能防止恶意的破坏,安全性能有待进一步完善。3需求规定3.1对功能的规定1.1功能划分该软件具有如下主要功能:1.浏览功能;2.查询功能;3.插入功能;4.修改功能;5.删除功能;6.授权功能;1.2功能描述1.浏览功能列出当前数据库文件中书籍和读者的所有记录;可选定一项记录,显示所有域;2.查询功能书目匹配查询;读者匹配查询;书目和读者相关匹配查询;3.插入功能增加一个书目记录;增加一个读者记录4.修改功能修改某一已存在的记录内容,提供确认机制;5.删除功能删除一个记录,提供确认机制;6.授权功能;授权读者访问数据的权限;3.2对性能的规定3.2.1精度查询时应保证查全率,所有在相应域中包含查询关键字的记录都应能查到,同时保证查准率。3.2.2时间特性要求一般操作的响应时间应在1-2秒内。3.2.3灵活性满足运行环境在允许操作系统之间的安全转换和与其它应用软件的独立运行要求。3.3输人输出要求1.3静态数据图书管理系统的静态数据包括:图书(book):图书编号(BookID);图书书名(BookName);图书作者(Author);图书出版社(Publisher);图书单价(BookPrice);图书摘要(Abstract);图书分类(Class);图书状态(BookStatus);读者(reader):读者识别号(ReaderID);读者姓名(Name);读者权限(Level);读者联系方法(Address);读者电话号码(TelephoneNumber);读者电子邮件(Email);图书访问记录(recorder):借阅图书号(bookID);借阅者证号(ReaderID);借书日期(OutDate);系统设置表(configuration):记录号(id);读者识别号(readid)最多可借图书数(MaxBLNum);最多借书天数(MaxBLDays);系统操作员记录表(administer):记录序号(WorkerId);账号(Account);口令(Password);权限级别(Level);1.4动态数据输入数据:鼠标对按钮的点击查询方式、查询关键字;新建图书项、读者项;图书项、读者项相应纪录更改;备份数据恢复所需的数据备份文件;借阅、返还、丢失注销时的图书序号、读者借阅证号;受限操作所需的密码;输出数据:查询关键字确定的数据库记录的子集;统计结果及其格式化文件;信息录入、删改结果(成功或失败);图书借阅、返还、丢失注销等操作结果;数据备份输出的数据备份文件;内部数据:查询操作建立的索引;1.5数据库描述数据库采用MicrosoftAccess数据库。1.6数据流图和数据词典《图书管理系统》的总体功能如下:图书的出借;图书的返回;图书信息查询;图书的增删改;读者的增删改;图书管理者查询统计图书和读者信息;图书管理系统数据备份;图书管理系统数据恢复;图书管理者口令修改;1.读者借书过程:(1):数据流图:A:图书信息;B:读者信息;C:图书访问记录;D:日期;图书6借书登记5借书检验DD读者图书库检验错误图书借书证借书信息日历DDAB读者库图书访问记录BCC(2):数据词典:数据源点及汇点描述:①名称:读者简要描述:借书、还书、查询及登记注册有关数据流:借书证;所借书本数目:②名称:日历简要描述:当日日期有关数据流:年月日数目:加工逻辑词条描述:①加工名:借书检验加工编号:1简要描述:检验读者身份、图书是否入库、读者还能借多少书以此判定读者是否能借书输入数据流:借书证;所借书本,读者信息,图书信息,图书访问记录,日期输出数据流:借书错误信息,借书信息加工逻辑:IF借书证未登记入库THEN发出“借书错误”ELSEIF图书未登记入库THEN发出“借书错误”ELSEIF读者已借图书和现借图书多于限制数NTHEN发出“借书错误”ELSEIF读者已借图书中有超期THEN发出“借书错误”ELSE发出“借书信息”ENDIFENDIFENDIFENDIF②加工名:借书登记加工编号:2简要描述:将“借书信息”登记到“图书访问记录库图书访问记录”中,完成后将书本递交读者输入数据流:借书信息,日期输出数据流:图书访问记录,图书加工逻辑:将借书信息及日期写入图书访问记录;将图书递交读者数据流名词条描述:①数据流名:借书证说明:用以携带读者的唯一识别标识数据流来源:读者数据流去向:借书检验数据流组成:借书证=借书证号+姓名+联系方法借书证号=“000000001”..“999999999”姓名=2{字母}24联系方法=4{字母}50每个数据量流通量:②数据流名:图书说明:记录图书的主要相关信息数据流来源:读者数据流去向:借书检验数据流组成:图书=书号+书名+作者+出版社+价格+摘要+状态书号=“000000001”..“999999999”书名=2{字母}24作者=2{字母}24出版社=2{字母}24价格=“000.01”..“999.99”摘要=10{字母}200状态=1{字母}每个数据量流通量:③数据流名:检验错误说明:用于指示读者借书错误信息数据流来源:借书检验数据流去向:读者数据流组成:检验错误=2{字母}40每个数据量流通量:④数据流名:借书信息说明:用于传递读者号和图书号数据流来源:借书检验数据流去向:借书登记数据流组成:借书信息=借书证号+书号每个数据量流通量:⑤数据流名:日期说明:提供当前日期信息数据流来源:日历数据流去向:借书检验,借书登记数据流组成:日期=年+月+日年=“0000”..“9999”月=“01”..“12”日=“01”..“31”每个数据量流通量:⑥数据流名:图书访问记录说明:用于记录读者借书信息数据流来源:图书访问记录库,借书登记数据流去向:借书检验数据流组成:图书访问记录=书号+借阅证号+借书日期借书日期=日期每个数据量流通量:⑦数据流名:读者信息说明:用于记录登记入库的读者信息数据流来源:读者库数据流去向:借书检验数据流组成:读者信息=借书证号+姓名+联系方法每个数据量流通量:⑧数据流名:图书信息说明:用于记录登记入库的图书信息数据流来源:图书库数据流去向:借书检验数据流组成:图书信息=书号+书名+作者+出版社+价格+摘要+状态每个数据量流通量:数据文件词条描述:①数据文件名:读者库简述:存放读者信息输入数据:输出数据:读者信息数据文件组成:读者库由“读者信息”组成存储方式:关键码存取频率:②数据文件名:图书库简述:存放图书信息输入数据:输出数据:图书信息数据文件组成:图书库由“图书信息”组成存储方式:关键码存取频率:③数据文件名:图书访问记录库简述:存放图书访问记录信息输入数据:图书访问记录输出数据:图书访问记录数据文件组成:图书访问记录库由“图书访问记录”组成存储方式:关键码存取频率:2.读者还书过程:数据源点及汇点描述:加工逻辑词条描述:①加工名:还书检验加工编号:3简要描述:检验图书是否图书室外借图书输入数据流:图书,图书访问记录输出数据流:检验错误,还书信息加工逻辑:IF书号与数据库数据不符THEN发出“检验错误”ELSE发出“还书信息”ENDIF②加工名:还书登记加工编号:4简要描述:删除读者对该图书的借书信息,如果超期给出警告及天数输入数据流:还书信息,日期输出数据流:图书访问纪录,还书成功加工逻辑:IF所还图书超期THEN统计超期天数生成含警告的返回信息ELSE删除图书访问记录库中相应的借书记录生成成功信息ENDIF给出还书返回信息数据流名词条描述:①数据流名:还书信息说明:用于传递图书书号数据流来源:还书检验数据流去向:还书登记数据流组成:还书信息=书号每个数据量流通量:②数据流名:还书成功D图书读者3还书检验4还书登记检验错误还书信息图书访问记录C日历还书返回信息说明:用于通知还书成功数据流来源:还书登记数据流去向:读者数据流组成:还书成功=2{字母}10每个数据量流通量:数据文件词条描述:3.读者查询浏览过程:数据源点及汇点描述:加工逻辑词条描述:①加工名:查询许可检验加工编号:5简要描述:检验读者身份是否有效输入数据流:借书证,查询信息,读者信息输出数据流:检验错误,查询信息加工逻辑:IF借书证在读者库中不存在THEN发出“检验错误”ELSE发出“查询信息”ENDIF②加工名:数据查询加工编号:6简要描述:根据所读入的查询信息,检索图书库和图书访问记录库得出相应结果输入数据流:查询信息,图书信息,图书访问记录,日期输出数据流:查询结果加工逻辑:根据所读入的查询信息,检索图书库和图书访问记录库得出相应结果数据流名词条描述:①数据流名:查询信息说明:用于传递查询关键字段数据流来源:读者,查询许可检验数据流去向:查询许可检验,数据查询D读者5查询许可检验6数据查询图书访问记录读者库图书库检验错误查询信息借书证查询信息日历A查询结果CB数据流组成:查询信息=1{字母}50每个数据量流通量:②数据流名:查询结果说明:用于显示读者查询的结果数据流来源:数据查询数据流去向:读者数据流组成:查询信息=