软件工程-图书管理系统的概要设计

server/2024/11/13 5:34:59/

软件概要设计说明书

目录

软件概要设计说明书

一、引言

1.1 编写目的

1.2 背景

1.3 定义

1.3.1特定对象

1.3.2专业术语

1.4 参考资料

二、总体设计

2.1 需求规定

2.1.1信息要求

2.1.2功能要求

2.2 运行环境

2.3 基本概要设计和处理流程

2.4 体系结构设计

2.5 模块设计

2.5.1读者管理子系统

2.5.2图书管理员管理子系统

2.6 人工处理过程

2.7 本阶段尚未解决的问题

三、接口设计

3.1 用户接口

3.2 外部接口

3.2.1硬件接口

3.2.2软件接口

3.3 内部接口

3.3.1内部模块间的关系

3.3.2接口数据描述

​编辑四、运行设计

4.1 运行模块组合

4.2 运行控制

4.3 运行时间

五、系统数据结构设计

5.1数据库的概念模型、逻辑模型和物理模型

5.2数据表设计

5.3 数据结构与程序的关系

六、系统出错处理设计

6.1 出错信息

6.2 补救措施

6.3 系统维护设计


一、引言

1.1 编写目的

本说明书旨在对图书借阅管理系统进行概要的功能说明,以指导开发人员创建一个图书借阅管理系统,来替代传统的手工卡片管理方式,提高图书馆的管理效率和服务质量。系统应能够满足管理员和读者的需求,实现图书和读者信息的电子化管理。通过项目的概要设计说明,确保用户需求在系统开发过程中得到充分考虑和实现,使最终产品能够满足用户的期望和要求。

1.2 背景

(1)项目名称:图书借阅管理系统。

(2)项目任务提出者:图书馆馆长。

(3)项目开发者:软件工程系学生。

(4)用户:读者(包括全体学生和教职工),图书管理员。

1.3 定义

1.3.1特定对象

(1)图书借阅管理系统:具有管理图书馆图书借阅及归还信息和查询更新等功能的计算机系统。

(2)图书管理员:负责图书和读者信息维护、借书证办理、图书管理等工作的人员。

(3)读者:图书馆的借书人,包括学生、教职工等。

1.3.2专业术语

(1)SQL Server:系统服务器使用的数据库管理系统。

(2)SQL:一种用于访问及查询数据库的语言。

(3)E-R图 (Entire and Relation):为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。

(4)数据流图:简称DFD,就是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的。主要表达工具及用于表示软件模型的一种图示方法。

(5)数据字典(Data Dictionary):是一种用户可以访问的记录数据库和应用程序元数据的目录。主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的数据字典。被动数据字典是指修改时必须手工更新其内容的数据字典。

1.4 参考资料

(1)国家GB标准的软件体系结构设计报告模板。

(2)国家GB标准的界面设计模板。

(3)国家GB标准的数据库设计报告模板。

(4)国家GB标准的模块设计报告模板。

(5)软件需求规格说明书。

二、总体设计

2.1 需求规定

2.1.1信息要求

(1)图书基本信息:作者,图书名,ISBN,价格,分类号,存放位置等。

(2)分类信息:类别号,类别名。

(3)读者信息:姓名,账号,密码,班级,学号,借书证号,是否有不良记录(逾期归还)等。

(4)管理员信息:姓名,管理员工号,账号,密码等。

(5)借阅记录表:借阅流水,图书编号,归还日期,借阅日期,学生学号等。

2.1.2功能要求

(1)读者借书,还书,查询图书信息等功能。

(2)图书管理员新增图书,删减图书,更新或新增、删除读者信息,查阅图书和学生信息等功能。

(3)图书管理员查询读者是否逾期归还的功能。

2.2 运行环境

(1)网络配置:初期3-5台计算机,局域网环境,后期会扩展到internet环境。

(2)操作系统:支持Windows、Linux。

(3)数据库管理系统:SQL Server等。

2.3 基本概要设计和处理流程

(1)复审整个系统的数据流图:

复审后的图书借阅管理系统数据流图如下:

图1 复审后的图书借阅管理系统的0层数据流图

描述:如图1所示,相比于复审前,将存储文件“读者信息数据库”修改为“读者信息”,将“图书信息数据库”修改为“图书信息”,并且还新增了“图书管理员信息”,便于后续图书管理员的用户验证操作。

图2 复审后的图书借阅管理系统的加工2子图

描述:如图2所示,相较于复审前,添加了2.1登陆验证这个加工。另外也增加了一个存储文件,即图书管理员信息,并对原来的文件名进行修改,同时也精化了部分流程。

(2)对部分数据流图精化如下:

 

图3 读者管理功能的精化数据流图

 

图4 图书管理员管理功能的精化数据流图

2.4 体系结构设计

根据复审的数据流图,得出软件的逻辑结构。利用综合型数据流图的分析方法,得到的软件结构图如下所示:

图5 图书借阅管理系统的软件结构图

2.5 模块设计

2.5.1读者管理子系统

(1)获取借书请求包含模块:

获取借书请求模块:读者输入自己的身份信息和借书证号等,向上层系统发出借书请求。

(2)检查借书证号包含模块:

检查借书证号模块:从上层获取到读者发出的借书请求后,开始检查读者的借书证号与身份信息是否匹配,向上层系统反馈有效借书证号。

(3)获取有效借书证号包含模块:

获取有效借书证号模块:获取下层的有效借书证号之后,将有效借书证号反馈给上层。

(4)检查所借图书库存包含模块:

检查所借图书库存模块:从上层接收到有效借书证号后,检查此时读者所借图书的库存,再将库存情况返回给上层。

(5)输出库存情况包含模块:

输出库存情况模块:从上层获取库存情况后,输出给下层的模块。

(6)是否允许借书包含模块:

是否允许借书模块:从上层获取库存情况后,检查此时是否满足借书条件,然后将借书结果返回给上层。

(7)输出借书结果包含模块:

输出借书结果模块:接收上层的借书结果后输出。

(8)还书管理包含模块:

还书管理模块:获取上层的还书请求,然后进行还书处理。

(9)查询管理包含模块:

查询管理模块:接收上层的查询请求,进行查询处理。

2.5.2图书管理员管理子系统

(1)登陆验证包含模块:

登陆验证模块:图书管理员输入用户名、密码等信息,然后进行登陆验证操作,之后反馈给上层登陆验证的结果。

(2)分类请求包含模块:

分类请求模块:获取登陆成功的信息后,接收用户输入的请求,进行分类,以便于选择合适的下层模块处理。主要分为三类,增、删图书请求,撤销、办理借书证请求和修改信息请求。

(3)增、删图书包含模块:

增、删图书模块:获取上层的购进书单、旧书单,然后进行增、删图书事务的处理。

(4)撤销、办理借书证包含模块:

撤销、办理借书证模块:接收上层的新生名单、毕业生名单,进行撤销、办理借书证的操作,并将借书证发送给下层。

(5)日常维护包含模块:

日常维护模块:获取上层的修改信息请求后,完成修改信息的操作,并将修改信息结果发送给下层。

(6)查询管理包含模块:

查询管理模块:图书管理员查询图书或读者的相关信息。

2.6 人工处理过程

(1)图书登记和清理、读者信息维护等操作由图书管理员人工输入,系统进行自动处理和存储。

(2)读者登陆验证信息和图书管理员登陆验证信息需要人工输入,系统自动进行登陆验证操作。

2.7 本阶段尚未解决的问题

(1)系统性能优化策略。

(2)数据备份和恢复方案。

三、接口设计

3.1 用户接口

系统采用图形用户界面(GUI),主要包括以下界面:

登录界面:用户输入账号和密码进行登录。

主界面:显示系统主要功能菜单。

图书管理界面:进行图书信息的添加、修改和删除操作。

读者管理界面:进行读者信息的登记和维护操作。

借还书界面:进行图书的借阅和归还操作。

查询界面:提供图书和借阅信息的查询功能。

3.2 外部接口

3.2.1硬件接口

(1)系统运行服务器要求运行内存大于1G,存储空间大于2G。

(2)用户电脑内存要求512M以上,磁盘空间要求40G以上,硬盘空间要求1.5G以上。

3.2.2软件接口

(1)数据库接口:系统与SQL Server数据库交互,进行数据的存储和读取。

(2)网络接口:支持局域网和Internet环境下的访问。

3.3 内部接口

3.3.1内部模块间的关系

图书馆图书借阅管理系统由多个模块组成,各模块之间通过接口进行数据交换和功能调用。主要模块包括登陆验证模块、借书管理模块、维护管理模块、还书管理模块和查询管理模块。它们的内部调用关系和依赖关系如下:

(1)登陆验证模块:负责用户的注册、登录和权限管理,其他模块需通过此模块验证用户身份和权限。

依赖关系:所有模块都依赖用户管理模块进行权限验证。

(2)借书管理模块:负责图书借阅操作,记录借阅历史。

依赖关系:依赖登陆验证模块进行用户身份验证,依赖维护管理模块获取图书信息。

调用关系:调用维护管理模块的接口更新图书状态。

(3)维护管理模块:负责图书信息的增删改查操作,为借书、还书管理模块和查询管理模块提供图书数据。

依赖关系:借书、还书管理模块依赖维护管理模块获取和更新图书信息。

关联关系:查询管理模块关联维护管理模块进行图书信息查询。

(4)还书管理模块:负责图书归还操作,记录借阅历史。

依赖关系:依赖依赖登陆验证模块进行用户身份验证。

调用关系:调用维护管理模块的接口更新图书状态。

(5)查询管理模块:提供图书信息、读者信息和借阅历史的查询功能。

依赖关系:依赖登陆验证模块进行用户身份验证,依赖维护管理模块、借书管理模块和还书管理模块获取所需数据。

内部模块之间的关系图如下所示:

图6 内部主要模块之间的联系

3.3.2接口数据描述

模块之间的数据交换通过定义明确的接口来实现,每个接口的描述如下图所示:

 

四、运行设计

4.1 运行模块组合

(1)用户界面模块:负责与用户进行交互,提供图形用户界面(GUI),

包含的主要界面有登录界面、主界面、图书管理界面、读者管理界面、借还书界面和查询界面,用户通过用户界面模块进行登录、浏览、查询、借还书等操作。

(2)业务逻辑模块:处理系统的核心业务逻辑,根据用户输入的数据进行业务处理,如验证用户身份、借书还书处理、更新图书信息等。该模块通过调用数据访问模块获取和更新数据库中的数据。

(3)数据访问模块:负责与数据库进行数据交互。提供数据的读取、写入、更新和删除操作接口,确保业务逻辑模块能够正确地与数据库进行数据交互,保证数据的一致性和完整性。

4.2 运行控制

(1)系统启动与初始化:系统启动时,首先初始化各模块,包括用户界面模块、业务逻辑模块和数据访问模块。初始化完成后,系统尝试连接数据库,确保数据库连接成功。如果连接失败,系统会记录错误日志并提示管理员进行检查。

(2)用户登录:用户启动应用程序后,首先进入登录界面。用户输入用户名和密码进行身份验证。验证通过后,系统根据用户角色(如管理员或普通读者)显示相应的主界面。

(3)功能选择与操作:用户登录成功后,进入系统主界面,用户根据需求选择相应的功能模块(如图书管理、读者管理、借还书、查询等)。系统根据用户选择的功能模块,加载对应的界面和数据。

(4)数据处理与反馈:用户在各功能模块中进行操作(如添加图书、借还书等),系统接收用户输入的数据,调用业务逻辑模块进行处理。处理完成后,系统调用数据访问模块与数据库进行交互(如更新图书信息、记录借阅历史等)。数据处理完成后,系统将处理结果反馈给用户,提示操作成功或失败的信息。

(5)错误处理:系统运行过程中,如果出现错误(如数据库连接错误、数据处理错误等),系统会记录详细的错误日志。系统提示用户发生错误的信息,并根据错误类型提供相应的解决建议(如重新尝试、联系管理员等)。对于严重错误,系统可能会自动重启相应的模块或服务,确保系统的稳定运行。

(6)系统退出:用户完成所有操作后,可以选择退出系统。系统在用户退出时,保存所有未完成的数据处理,确保数据完整性。退出后,系统释放所有占用的资源,并断开与数据库的连接。

4.3 运行时间

(1)响应时间:系统需快速响应用户操作,确保用户在使用过程中能够获得流畅的体验。借书和还书操作的响应时间应控制在2秒以内,以保证用户在借还书时不会感到延迟。

(2)更新处理时间:系统的更新处理时间主要取决于系统的运行状态和所处理的数据量。在正常运行状态下,系统应在5秒内完成图书信息、读者信息等数据的更新操作。对于批量数据处理,如批量图书入库或批量读者信息更新,系统应尽量在10秒内完成,以提高处理效率。

(3)数据转换和传送时间:系统在进行数据转换和传送时,需要考虑数据量和网络带宽等因素。一般情况下,数据的转换和传送时间应控制在10秒以内,确保系统在不同模块间的数据交互能够及时完成。

五、系统数据结构设计

5.1数据库的概念模型、逻辑模型和物理模型

(1)概念模型

 

图7 数据库的概念模型

(2)逻辑模型

图8 数据库的逻辑模型

(3)物理模型

 

图9 数据库的物理模型

5.2数据表设计

(1)图书信息表(books)

字段类型描述:

title VARCHAR(50) 书名

author VARCHAR(30) 作者

isbn VARCHAR(30) ISBN编号

quantity int 数量

price FLOAT(2) 价格

position VARCHAR(50) 存放位置 

(2)读者表(readers)

字段类型描述:

username VARCHAR(30) 用户名

password VARCHAR(30) 密码

readerId INT 读者ID (学号/工号)

cardId VARCHAR(30) 借书证号

phone NUMBER(11) 联系电话

(3)借阅记录表(borrows)

字段类型描述:

cardId VARCHAR(30) 借书证号

isbn VARCHAR(30) ISBN编号

borrowDate DATE 借书日期

dueDate DATE 还书日期

(4)图书管理员信息表(managers)

username VARCHAR(30) 用户名

password VARCHAR(30) 密码

workId VARCHAR(30) 工号

phone NUMBER(11) 联系电话

5.3 数据结构与程序的关系

(1)用户界面模块与数据结构的关系:用户界面模块通过调用业务逻辑层的接口来获取和展示数据。用户输入的数据通过界面模块传递到业务逻辑层,业务逻辑层再通过数据访问层与数据库交互。例如,用户在图书查询界面输入查询条件后,界面模块将查询条件传递给业务逻辑层,业务逻辑层调用数据访问层查询数据库,并将查询结果返回给界面模块进行展示。

(2)业务逻辑模块与数据结构的关系:业务逻辑模块是系统的核心,负责处理所有的业务逻辑。业务逻辑模块通过数据访问层与数据库进行交互,实现数据的增删改查操作。在借书操作中,业务逻辑模块会检查图书的可借状态、更新图书库存、记录借阅信息等,这些操作都需要通过数据访问层来完成对数据库的相应操作。

(3)数据访问模块与数据结构的关系:数据访问模块直接与数据库进行交互,是系统与数据库之间的桥梁。数据访问模块提供一组接口,用于业务逻辑模块调用,从而实现对数据库的操作。数据访问模块会实现对图书信息表、读者表、借阅记录表等数据表的增删改查操作。

(4)数据库与数据结构的关系:数据库中存储了系统运行所需的所有数据,包括图书信息、读者信息、借阅记录等。数据库设计中的表结构直接反映了系统中的数据结构,各表之间的关系通过外键进行关联。比如借阅记录表中的 cardId 字段和读者表中的 cardId 字段相关联,以确保每条借阅记录都有对应的读者信息。

六、系统出错处理设计

6.1 出错信息

为了确保系统在运行过程中能够及时发现并处理各种错误,系统将实现全面的错误处理机制。以下是系统中可能出现的主要错误类型及其描述:

(1)用户身份验证错误

错误代码:E1001。

错误描述:用户名或密码不正确。

可能原因:用户输入错误的用户名或密码。

用户提示:用户名或密码不正确,请重试。

(2)权限不足错误

错误代码:E1002。

错误描述:用户权限不足。

可能原因:用户尝试执行其权限范围之外的操作。

用户提示:您没有执行此操作的权限。

(3)图书信息错误

错误代码:E2001。

错误描述:图书信息不存在。

可能原因:用户输入了错误的图书ID或系统中没有该图书的信息。

用户提示:未找到图书信息,请检查输入的图书ID。

(4)借阅操作错误

错误代码:E3001。

错误描述:图书不可借阅。

可能原因:图书已被借出或数量不足。

用户提示:该图书当前不可借阅,请稍后再试。

(5)归还操作错误

错误代码:E3002。

错误描述:借阅记录不存在。

可能原因:用户尝试归还未借出的图书或输入了错误的图书ID。

用户提示:未找到相关借阅记录,请检查输入的图书ID。

(6)数据库连接错误

错误代码:E4001。

错误描述:无法连接到数据库。

可能原因:数据库服务器宕机或网络问题。

用户提示:系统暂时不可用,请稍后再试。

(7)系统内部错误

错误代码:E5001。

错误描述:系统内部发生错误。

可能原因:程序异常或逻辑错误。

用户提示:系统发生内部错误,请联系管理员。

6.2 补救措施

为了确保系统在出现错误时能够迅速恢复正常运行,以下是针对不同错误类型的补救措施:

(1)用户身份验证错误:提示用户重新输入用户名和密码,多次失败后锁定账户并通知管理员。

(2)权限不足错误:提示用户联系管理员获取相应权限,并记录非法操作尝试日志。

(3)图书信息错误:提示用户检查图书ID是否正确,如果错误多次出现,通知管理员检查图书数据库。

(4)借阅操作错误:提示用户图书当前不可借阅,并建议选择其他图书或稍后再试。

(5)归还操作错误:提示用户检查图书ID,如果错误多次出现,通知管理员检查借阅记录。

(6)数据库连接错误:系统自动尝试重新连接数据库,如果问题持续存在,通知系统管理员进行检查和维护。

(7)系统内部错误:记录错误详细信息到日志文件中,提示用户联系管理员,并尽快修复程序错误。

6.3 系统维护设计

为了确保系统的长期稳定运行,制定了以下维护设计方案:

(1)定期备份:数据库进行每日自动备份,确保数据在系统故障时能够恢复。将备份文件存储在不同的物理位置,以防止单点故障。

(2)日志记录:系统运行时详细记录所有操作日志和错误日志,并定期检查日志,及时发现和解决潜在问题。

(3)安全更新:系统定期进行安全更新,确保使用最新的安全补丁和防护措施,定期审计系统安全性,防止未授权访问和数据泄漏。

(4)性能监控:实时监控系统性能指标,如响应时间、CPU和内存使用率等,在性能下降时及时进行优化和扩容。

(5)用户反馈:提供用户反馈机制,收集用户在使用过程中的问题和建议根据用户反馈定期更新和改进系统功能。


http://www.ppmy.cn/server/111952.html

相关文章

【Leetcode 2399 】 检查相同字母间的距离 —— 哈希表

给你一个下标从 0 开始的字符串 s ,该字符串仅由小写英文字母组成,s 中的每个字母都 恰好 出现 两次 。另给你一个下标从 0 开始、长度为 26 的的整数数组 distance 。 字母表中的每个字母按从 0 到 25 依次编号(即,a -> 0, b…

每日刷一刷力扣SQL(八)

185.部门工资前三高的所有员工 考察点:窗口函数的使用 select d.name as Department ,t.name as Employee,t.salary as Salary from (select* ,DENSE_Rank() over(PARTITION BY departmentId order by salary DESC) as rank_idfrom Employee ) t join Department …

【数学建模】2024数学建模国赛经验分享

文章目录 一、关于我二、我的数模历程三、经验总结: 一、关于我 我的CSDN主页:https://gxdxyl.blog.csdn.net/ 2020年7月(大二结束的暑假)开始在CSDN写作: 阿里云博客专家: 接触的领域挺多的&#xff…

Android 移除最近任务列表展示

Android 设置应用在最近任务列表不展示 android 中想要实现在最近任务列表中不展示,实现的方式很简单. 在Mainifests的MainActivity中添加: android:excludeFromRecents“true” 如下所示: <activity android:name".MainActivity"android:excludeFromRecents&…

flux bitsandbytes bnb量化;diffusers 15G显卡加载使用

使用bitsandbytes进行bnb量化 在线参考: https://colab.research.google.com/gist/sayakpaul/4af4d6642bd86921cdc31e5568b545e1/scratchpad.ipynb 安装包 !pip install -U accelerate transformers bitsandbytes !pip install git+https://github.com/huggingface/diffuser…

Vue面试常见知识总结2——spa、vue按需加载、mvc与mvvm、vue的生命周期、Vue2与Vue3区别

SPA SPA&#xff08;Single Page Application&#xff0c;单页面应用&#xff09;是一种Web应用程序架构&#xff0c;其核心特点是在用户与应用程序交互时&#xff0c;不重新加载整个页面&#xff0c;而是通过异步加载页面的局部内容或使用JavaScript动态更新页面。以下是对SPA…

ORACLE 统计信息的备份与恢复

备份 --需要先创建统计信息基础表 exec dbms_stats.create_stat_table(USER1,STAT_TIMESTAMP); --导出某个用户的所有统计信息 exec dbms_stats.export_schema_stats(USER1,STAT_TIMESTAMP);--测试(插入100条&#xff0c;更新统计信息&#xff0c;略) select num_rows,last_ana…

数据库:头歌实验一关系数据库标准语言SQL

一、创建数据库 本关任务&#xff1a; 建立数据库 任务要求&#xff1a; 建立demo数据库 并显示所有数据库 #代码开始 CREATE DATABASE demo; show databases;#代码结束 二、创建表 本关任务&#xff1a; 建立数据表 任务要求 设有一个demo数据库&#xff0c;包括S,P,…