软件工程:需求规格说明书(图书管理系统)

目录

[1 导言](#1 导言)

[1.1 编写目的](#1.1 编写目的)

[1.2 参考资料](#1.2 参考资料)

[2 项目介绍](#2 项目介绍)

[2.1 项目背景](#2.1 项目背景)

[2.2 项目目标](#2.2 项目目标)

[3 应用环境](#3 应用环境)

[3.1 系统运行网络环境 ​编辑](#3.1 系统运行网络环境 编辑)

[3.2 系统软硬件环境](#3.2 系统软硬件环境)

[4 功能模型](#4 功能模型)

[4.1 功能角色分析](#4.1 功能角色分析)

[4.1.1 图书管理员](#4.1.1 图书管理员)

[4.1.2 普通读者](#4.1.2 普通读者)

[4.1.3 邮件系统](#4.1.3 邮件系统)

[4.2 功能性需求](#4.2 功能性需求)

[4.2.1 预定图书用例文档](#4.2.1 预定图书用例文档)

[4.2.2 预定图书用例活动图](#4.2.2 预定图书用例活动图)

[4.3 非功能性需求](#4.3 非功能性需求)

[4.3.1 性能需求](#4.3.1 性能需求)

[4.3.2 安全需求](#4.3.2 安全需求)

[4.3.3 可靠性需求](#4.3.3 可靠性需求)

[4.3.4 兼容性需求](#4.3.4 兼容性需求)

[4.3.5 数据保密需求](#4.3.5 数据保密需求)

[5 分析模型](#5 分析模型)

[5.1 预定图书类图](#5.1 预定图书类图)

[5.2 预定图书顺序图](#5.2 预定图书顺序图)


1 导言

1.1 编写目的

该文档描述了毕业设计指导过程管理系统网站的功能、非功能、设计约束的还有性能方面等需求,为之后的概要设计做准备。

本文档的预期读者包括:设计开发人员、项目管理人员、软件测试人员、普通用户。

1.2 参考资料

[1] 韩万江等.《软件项目管理案例教程 第 3 版》[M].机械工业出版社,2013:起止页码.

2 项目介绍

2.1 项目背景

随着人们生活水平的日益提高,人们对文化的需求也越来越大。在人们的业余生活中,越来越多的人乐于享受滚喊文字给生活带来的乐趣。而图书也是学生的学习过程中必不可少的。而本项目旨在研发一个图书馆的管理系统,实现图书馆的信息化管理。在方便读者查询借阅图书的同时,方便图书馆管理员对图书进行管理。

2.2 项目目标

本项目目标如下:

1.创建一个用户友好的交互界面方便老师监督学生的毕业设计的阶段质量以及加强学生与老师在毕业设计过程中的沟通交流。

2.满足用户的需求,例如:登录注册功能、老师的周任务分配以及对学生任务完成质量的评分还有老师与学生的交流沟通,还有最后的分数统计。

3.做出一个高质量、低成本的系统,防止在高并发情况下的网站崩溃或者访问速度过慢等。

3 应用环境

3.1 系统运行网络环境

如图所示,用户(教师,学生,系统管理员)可以通过网络浏览器登录到网站,并进行相应的操作,web服务器接收到相应操作做出反映,之后对数据库进行相应操作,并将返回的结果返回到浏览器的页面上。

3.2 系统软硬件环境

服务器配置要求如表所示:

|--------|---------------------------------------------------|
| 配置项 | 配置参数 |
| CPU 型号 | 英特尔 Core i5-7300HQ @ 2.50GHz 四核 |
| CPU 主频 | 2.50GHz |
| 内存容量 | 8.00GB ( 金士顿 DDR3 1333MHz / 金士顿 DDR3L 1600MHz ) |
| 硬盘容量 | 1TB / 7200 转/分 |
| 显卡芯片 | NVIDIA GeForce GTX 1050 Ti |
| 操作系统 | Windows 10 64位 |
| 网卡 | Qualcomm Atheros QCA9377 Wireless Network Adapter |

系统运行软件环境如下表所示:

|---------|--------------------|
| 环境项 | 环境参数 |
| 操作系统 | 具有 Java 虚拟机的操作系统 |
| 数据库 | MySQL |
| 开发工具 | SpringBoot+Mybatis |
| Web 服务器 | Tomcat |

4 功能模型

4.1 功能角色分析

角色(Actor)是指与系统产生交互的外部用户或者外部系统。本系统的主要角色有图书管理员、普通读者、邮件系统,以下是对角色的详细介绍。

4.1.1 图书管理员

图书管理员负责添加、更新和删除系统中的图书资料信息,同时登记图书资料的借出和归还情况;图书管理员负责用户的添加和删除工作;图书管理员可以按照作者或主题等检索查询图书资料信息。

4.1.2 普通读者

普通读者可以按照作者或主题等检索查询图书资料信息,并且可以预定目前借不到的图书资料。除此之外,普通读者可以查询预定记录和取消预定。

4.1.3 邮件系统

一旦预定的图书资料被归还或购买,系统将立即发email通知预定者。

4.2 功能性需求

图书管理系统用例图:

4.2.1 预定图书用例文档

用例名称 ****:****预定图书

参与者 ****:****普通读者

****描述:****普通读者自行在系统上预定想要的书。

****前置条件:****读者已成功登录系统,并检索查询想要预定的图书。

基本事件流 ****:****1.读者选择想要预定的图书,点击"预定"。

2.系统查询所选图书的库存,若库存为零则执行3,否则执行异常事件流2.1。

3.系统生成预定记录和预定编号,并显示"预定成功"。

异常事件流 ****:****2.1系统提示"所选图书有库存,不能预定",读者点击"确定",系统返回预定界面。

****后置条件:****预定成功并记录此次预定。

4.2.2 预定图书用例活动图

4.3 非功能性需求

4.3.1 性能需求

响应时间:

在95%的情况下,一般时段响应时间不超过1.5秒,高峰时段不超过4秒。

定位系统从点击到第一个界面显示出来所需要的时间不得超过300毫秒。

业务量:

周任务并发数为20,最大周任务提交并发数为50。

估计用户数为10000人,每天登录用户数为1000左右,网络的带宽为100M带宽。

系统可以同时满足10,000个用户请求,并为10000个并发用户提供浏览功能。

系统容量:

支持1万用户,支持GB级数据。

数据库表行数不超过100万行,数据库最大容量不超过1000GB,磁盘空间至少需要40G以上。

精度:

定位精度误差不超过80米。

计算的精确性到小数点后7位。

资源使用率:

CPU占用率<=50%。

内存占用率<=50%。

4.3.2 安全需求

严格权限访问控制,用户在经过身份认证后,只能访问其权限范围内的数据,只能进行其权限范围内的操作。

不同的用户具有不同的身份和权限,需要在用户身份真实可信的前提下,提供可信的授权管理服务,保护数据不被非法/越权访问和篡改,要确保数据的机密性和完整性。

能经受来自互联网的一般性恶意攻击。如病毒(包括木马)攻击、口令猜测攻击、黑客入侵等。

4.3.3 可靠性需求

对输入有提示,数据有检查,防止数据异常。

系统健壮性强,应该能处理系统运行过程中出现的各种异常情况,如:人为操作错误、输入非法数据、硬件设备失败等,系统应该能正确的处理,恰当的回避。

4.3.4 兼容性需求

系统应支持IOS,Android , windows操作系统;

系统应支持Mysql 数据库系统;

最多只有5%的系统实现需要具体到特定的操作系统。

4.3.5 数据保密需求

网络传递数据应经过加密。需要保证数据在采集、传输和处理过程中不被偷窥、窃取、篡改。业务数据需要在存储时进行加密,确保不可破解。

5 分析模型

在文档第四部分,展示系统角色、系统例图模型 和非功能需求。主要以用例图描述为主,分析用例执行过程。 这里,将在用例模型的基础上,绘制分析模型,用类图和顺序图描述。

5.1 预定图书类图

这里创建了四个类:普通读者、预定系统、图书、书库。

5.2 预定图书顺序图

普通读者选择自己想要预定的图书并点击"预定",系统进行审核,查询其所选图书是否在库,书库将查询结果返回系统,图书在库,则显示预定失败;若图书不在库,则生成预约记录,并将预约记录提供给系统和普通读者,显示预约成功。

相关推荐
Reese_Cool3 分钟前
【数据结构与算法】排序
java·c语言·开发语言·数据结构·c++·算法·排序算法
TheITSea1 小时前
云服务器宝塔安装静态网页 WordPress、VuePress流程记录
java·服务器·数据库
AuroraI'ncoding1 小时前
SpringMVC接收请求参数
java
九圣残炎1 小时前
【从零开始的LeetCode-算法】3354. 使数组元素等于零
java·算法·leetcode
天天扭码2 小时前
五天SpringCloud计划——DAY1之mybatis-plus的使用
java·spring cloud·mybatis
程序猿小柒2 小时前
leetcode hot100【LeetCode 4.寻找两个正序数组的中位数】java实现
java·算法·leetcode
不爱学习的YY酱3 小时前
【操作系统不挂科】<CPU调度(13)>选择题(带答案与解析)
java·linux·前端·算法·操作系统
丁总学Java3 小时前
Maven项目打包,com.sun.tools.javac.processing
java·maven
kikyo哎哟喂3 小时前
Java 代理模式详解
java·开发语言·代理模式
duration~3 小时前
SpringAOP模拟实现
java·开发语言