书店管理系统-需求分析

suprefuck 2021-12-25 23:38:36

 

项目背景调研

随着信息科技及互联网产业的迅速发展, 现代化社会中各行各业产生激烈的竞争, 如何提高工作效率, 降低成本, 提高生产及交易过程的现代化和自动化程度, 充分满足生产者和消费者的需求, 提供更优质的服务成为各行各业追逐的目标, 对于传统书店来说, 整个交易流程自动化程度很低, 难以满足日益增长的物质文化需求, 因此开发一套方便快捷, 高效实用且安全稳定的书店管理系统成为了传统书店的当务之急, 书店店主需要开发一套满足相关需求的书店管理系统.

项目目标

  • 加强书籍管理, 提高整体工作效率, 通过书店管理系统实现对书籍管理和交易过程的信息化.
  • 为书店店主, 供货商和消费者提供在线信息交流和交易的平台.

需求概述

书店管理系统需要满足如下需求:

店长

  1. 书籍管理: 店长可以管理书籍相关的信息.

    • 书籍的管理操作包括书籍信息的添、删、查、改.

    • 书籍信息包括书名、作者、存货量、销售量、进价、销售价格等.

  2. 订单管理:店长可以管理书籍订单.

    • 订单的管理操作包括订单的添加与删除.

    • 订单信息包括书名、需求数量等.

    • 店长发布订单时即可以固定进货价格,也可以选择由供货商竞价.

    • 当店长发布订单后,所有供货商将收到通知.

    • 对于固定进货价格的订单,当订单被供货商接受后,店长会收到通知,且书籍信息中相应书籍的存货量会相应增加。若订单被所有供货商拒绝,该订单将被撤销且店长会收到通知.

    • 对于供货商竞价的订单,店长还将设置订单有效时间。当到达订单有效时间后,出价最低的供货商将获得该订单。若无供货商出价,该订单将被撤销且店长会收到通知.

  3. 用户管理:店长可以管理顾客与供货商的账户.

    • 账户类型包括店长、顾客和供货商三类.

    • 顾客与供货商可以注册账户,需要通过店长的审核。店长也可以在后台手动添加账户.

    • 顾客与供货商可以注销账户,店长也可以在后台封禁账户.

  4. 销售管理:店长可以在线销售书籍.

    • 店长可以选择在线销售的书籍以及销售价格.

    • 店长可以根据书店销售情况调整销售策略,如限时折扣、捆绑销售等.

顾客

  1. 书籍查询:顾客可以查询自己需要的书籍.

    • 支持按名字、书号、类别、关键字、销量等方式查询.

    • 能查询到的信息包括书籍的基本信息、价格、是否有货、评论等.

    • 对查询到的书籍,顾客能够收藏自己感兴趣的书籍.

    • 系统能自动记录顾客的浏览历史.

  2. 书籍购买:顾客可以购买所需要的书籍, 并自动创建订单.

    • 支持填写收货信息,包括地址、姓名、电话等.

    • 支持在线支付,包括银行卡、微信、支付宝等多种支付方式;支持货到付款.

    • 用户提供发票抬头等信息后,就能在线开具发票.

  3. 订单管理:顾客可以查看订单的状态, 可以自主取消订单.

    • 包括订单的支付状态,已支付、未支付等.

    • 支持查询书籍的到货情况,支持查询书籍的预计达到时间、当前书籍位置等.

    • 在未发货时顾客可以选择取消订单,系统自动退款;若已经发货,则顾客只能选择退货.

  4. 退货: 当顾客对到手的书籍不满意时, 可以申请退货.

    • 顾客可以在线申请退货,需填写退款原因;待店长批准之后,顾客可以将要退的书按指定地址寄出.

    • 店长收到顾客的退货之后,系统自动给顾客退款.

  5. 书籍评价: 顾客收到书籍后, 可以对书籍做出评价, 反馈自己的意见或建议.

    • 评价具体包括对书籍、购买过程、快递等的按星级评价.

    • 支持文字性的评论;支持附加图片.

    • 支持追加评价.

供货商

  1. 订单管理: 供货商可以对店长发布的订单进行处理.

    • 当书店发布订单时供货商会接到通知.

    • 对于固定进货价格的订单,供货商可以选择接受或拒绝.

    • 对于竞价的订单,供货商可以看到其他供货商所出的最低价,并可以选择出更低的价格.当订单有效时间到达后,所有参与出价的供货商均会收到竞价是否成功的通知.

 

功能需求

业务功能需求如下:

店主业务功能需求模块划分:

  1. 书籍管理
  2. 订单管理
  3. 用户管理
  4. 销售管理

顾客业务功能需求模块划分:

  1. 书籍查询
  2. 书籍购买
  3. 订单管理
  4. 退货
  5. 书籍评价

供货商业务功能需求模块划分:

  1. 订单管理

 

 

用例图

店长用例图

 

 

 

顾客用例图

 

供货商用例图

 

 

 

非功能需求

可靠性需求

系统应当具有必要的可靠性使得系统能够较长时间无故障运行, 平均应当满足不低于7*24小时即一周的无故障运行.

可扩展性需求

系统应当具有必要的灵活性, 以适应未来功能扩展的需求.

性能需求

  • 响应时间: 用户在浏览器端操作将在3秒钟之内得到响应.
  • 并发量: 系统需要不低于100人次并发操作.

界面需求

系统应当提供操作友好的界面, 使用者通过一定的培训和学习可以熟练使用该系统.

开发技术

前端:HTML,JavaScript

后端:C++

其他:MySQL

数据库表设计

 账户数据表

字段类型含义
IDstring主键, 用户唯一标识
userNamestring用户名
passwordstring密码
emailstring邮箱

书籍数据表

字段类型含义
IDstring主键, 书籍唯一标识
bookNamestring书籍名
authorstring书籍作者
inventoryint存货量
saleNumint销售量
biddouble进价
pricedouble销售价格

 

店长订单数据表

字段类型含义
IDstring主键, 订单唯一标识
bookNamestring书籍名称
needNumint书籍进货数量
biddouble进货价格
timeint订单有效时间

顾客订单数据表

字段类型含义
IDstring主键, 订单唯一标识
bookNamestring书籍名称
addressstring住址
namestring姓名
phoneNumberstring电话号码
needNumint购买书籍数量
statusint订单状态
dateint预计到达时间
positionstring书籍当前位置

软件架构设计

我们选择三层机构来实现书店管理系统

三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想,复杂项目不能把SQL语句直接写到程序里,不模块话,难以维护。应该采取三层架构。

1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得,使用js实现。

2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理,使用c++实现。

3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等,使用mysql实现。

用户层只能调用业务层,业务层只能调用数据层对数据库进行操作。公用函数供各层调用。

 

作者:102

...全文
655 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

571

社区成员

发帖
与我相关
我的任务
社区描述
软件工程教学新范式,强化专项技能训练+基于项目的学习PBL。Git仓库:https://gitee.com/mengning997/se
软件工程 高校
社区管理员
  • 码农孟宁
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧