图书管理系统设计文档
开发环境
- win10
- IDEA2019
- MAVEN
- TOMCAT9
- Mysql 8.0
- SpringMVC框架
- 前端使用bootstrap渲染
- UML 系统抽象
应用背景
设计一个图书借阅管理系统来进行图书管理,如要借书,学生登录系统并提交想要借阅的书籍。如果要还书,学生登录系统确认还书,系统计算是否逾期,如果逾期则显示罚金。此外,学生可以向图书馆捐赠书籍。
图书管理员可以查询所有学生借阅的书籍情况,也可以修改书籍的信息和增删书籍。
需求分析
设计一个小型的图书管理系统,需要提供以下功能:
- 输入数据进行合法性验证
- 数据库密码字段应该进行加密
- 输入学号,返回学生借阅列表
- 输入【书名】,可以借书
- 点击还书按钮可以还书。
数据库抽象
学生
作为数据库的一类实体,拥有以下三类属性:
- 学号【int类型 主键】
- 姓名【
varchar类型
】 - 密码【
varchar类型
】
在数据库中新建一张学生表管理学生信息。
书籍
作为数据库的一类实体,拥有以下三类属性:
- 书号【int 主键】
- 书名【
varchar
】 - 数量【
varchar
】 - 图书描述【
varchar
】
在数据库中新建一张书籍表管理书籍。
借书表
按照BCNF
的设计原则,消除数据库非主属性对主属性的传递函数依赖和部分函数依赖,需要新建一张借书表保存图书馆的借阅信息。
-
stu_id: 标识借书用户, 外键约束
-
book_id:标识所借图书编号,外键约束
-
timestamp
: 借书时间
系统抽象
以下按照类图、用例图、时序图、活动图、状态图对图书馆进行系统抽象建模,其中每一个模型表示一个不同的视角或者观点。
类图
描述系统中的对象类以及类之间的关系
类图说明:
可以看到这是一个分层的架构:底层的pojo
层负责包装数据库中的数据,DAO(Data Access Object)
层涵盖对数据库的增删查改,service层用来实现业务,controller层接收前端请求并且执行相应的业务。
pojo
层:每一个类对应数据库 的一张表DAO
层: 包含两个接口,用来操作学生和图书。- Service 层:由DAO层组合而成
- controller层:由service层聚合而成。
用例图
描述系统及其环境之间的交互
参与者 | 普通用户、管理员 |
---|---|
描述: | 读者:可以通过网络查询书籍信息和捐赠书籍,读者可以借书、还书。普通管理员:对后台的书库,读者库,资料库进行管理。 |
数据: | 图书的数量、名称、描述;图书的借阅情况 |
触发机制 | 参与者发出请求 |
响应 | 图书管理系统已经更新的确认信息 |
时序图
描述参与者与系统直接