需求分析
一、系统概况
仓库管理系统是一种基于互联网对实际仓库的管理平台,旨在提供一个方便、快捷、安全的存取货物和查询商品信息平台。该系统通过在线用户登录查询,可以线上操作线下具体出/入库操作、查询仓库商品信息、提高仓库运作效率,优化仓库使用流程等功能,实现了用户在网上对仓库操作的全流程。
二、系统目标
系统的目标是满足用户在使用仓库的过程中的需求,包括线上查询商品、线上操作出/入库商品、线上筛选、提高仓库运作效率、降低成本等环节,并保证在查询和出/入库操作的安全性和可靠性。同时,该系统还为用户提供了一个开放、简单的操作环境,上手难度低,操作环节简便清晰。
三、系统总体结构与子结构说明
(1)系统总体结构说明
仓库管理系统的总体结构包括前端应用程序、后端服务器和数据库三部分。
1>前端应用程序:是用户直接可以接触到的部分,包括网站界面、手机客户端等。它主要负责与用户的交互和展示用户存入商品、商品数量、存取记录等。
2>后端服务器:是系统的核心部分,主要负责处理用户请求、业务逻辑和数据存储等。它包括用户管理、商品管理、物流管理、评论管理等子系统
3>数据库:数据库是系统的基础部分,主要负责存储和管理所有的数据。它包括用户信息表、管理员信息表、商品分类表、仓库库存信息表等多个数据表。
(2)子系统结构说明
仓库管理系统的子系统结构包括用户管理、商品管理、出/入库操作管理、信息查询管理等四个子系统。
1>用户管理子系统:负责用户注册、登录、修改密码、查询用户信息等操作。
2>商品管理子系统:负责对仓库的商品种类的区分、数量的记录、信息的修改等操作
3>出/入库操作管理子系统:对每次的出入库操作做相应的记录、完成线上和线下的实事操控管理、修改商品原本的数据等操作。
4>信息查询管理子系统:负责将用户的查询请求进行分析处理,使用户能实事的查询到自己在仓库中商品的具体情况信息。
四、形式化方法
1)基于模型的方法:使用状态表示系统的运行步骤,通过状态之间的转换来表示 运行时的变化与操作。基于模型的方法可以很好地表达表示非功能性需求(比 如时间需求),但是,这种方法不容易描述并发系统的特点。如:描述计算机 软硬件的 Z 语言;
2) 基于逻辑的方法:系统的性能约束、时间要求、分支条件约束等可以采用逻辑 的方法来描述,不同的逻辑都有对应的公理证明系统来验证描述的正确性。如: 模态逻辑,时序逻辑等。
五、需求分析阶段成果
5.1数据流图
1、组成数据流图的元素信息
源点/终点 | 处理 |
用户 仓库管理员 | 出/入库登记 产生报表 |
数据流 | 数据存储 |
登记信息 用户ID 用户姓名 处理时间 商品编号 商品名称 商品数量 管理员姓名 管理员ID 商品报表 商品编号 商品名称 出/入库数量 主要供应商 | 出/入库信息 库存清单* 商品编号 仓库临界值* 用户信息 用户名 用户操作时间 商品编号 商品名称 管理员信息 管理员id 管理员姓名 管理员处理时间 商品数量 商品编号 库存信息 (见商品报表) |
2、数据流模型
(1)第0层数据流图
(2) 第1层数据流图
(2)第2层数据流图
5.2实体-联系图(ER图)
5.3状态转换图
5.4数据字典
1、符号定义
符号 | 含义 | 举例说明 |
= | 被定义为 | |
+ | 与 | X = a + b 表示X由a 和 b 组成 |
[ … |… ] | 或 | X = [a | b ] 表示X由a或b组成 |
{ … } | 重复 | X = { a } 表示X由0个或多个a组成 |
( … ) | 可选 | X = ( a ) 表示a可在X中出现,也可不出现 |
m{…}n | 重复 | X = m{a}n 表示由m-n个a组成 |
*…* | 注释 | *xxx* xxx表示对改行的描述 |
2、数据项
数据项: | 仓库管理员姓名 |
别名: | 管理员 |
数据类型: | varchar |
数据长度: | 1-20Byte |
描述: | 记录每次处理系统事务的管理员的姓名 |
定义: | 仓库管理员姓名=1{字符}8 |
位置: | 管理员信息表 |
S
数据项: | 仓库管理员ID |
别名: | 管理员编号 |
数据类型: | Char |
数据长度: | 8Byte |
描述: | 在管理员信息表中充当该表的主键,用于为一确定管理员身份 |
定义: | 仓库管理员ID={字符} |
位置: | 管理员信息表 |
数据项: | 仓库管理员处理时间 |
别名: | 系统操作时间 |
数据类型: | DATATIME |
数据长度: | 8Byte |
描述: | 记录管理员每次处理系统的具体时间 |
定义: | YYYY-MM-DD HH:MM:SS *混合日期和时间值* |
位置: | 仓库库存信息表 |
数据项: | 仓库编号 |
别名: | 暂无 |
数据类型: | Int |
数据长度: | 4Byte |
描述: | 唯一标识是那个仓库 |
定义: | 仓库管理员姓名 = n *n为int型整数* |
位置: | 仓库库存信息表 |
数据项: | 仓库容量 |
别名: | 暂无 |
数据类型: | float |
数据长度: | 4Byte |
描述: | 描述一个仓库中某种商品最多可以存放多上容积 |
定义: | 仓库容量 = n |
位置: | 仓库库存信息表 |
数据项: | 商品位置 |
别名: | 暂无 |
数据类型: | Char |
数据长度: | 8Byte |
描述: | 用于精准的在仓库中定位到所需要的商品的位置 |
定义: | 商品位置 = {字符} |
位置: | 商品分类表 |
数据项: | 商品库存 |
别名: | 商品剩余量 |
数据类型: | Float |
数据长度: | 4Byte |
描述: | 用于记录在仓库中已经存放的商品的剩余量为多少 |
定义: | 商品库存 = n *n为float型数据* |
位置: | 商品分类表 |
数据项: | 商品名称 |
别名: | 商品名 |
数据类型: | Char |
数据长度: | 8Byte |
描述: | 用于表示出每个商品的具体名字 |
定义: | 商品名称 = {字符} |
位置: | 商品分类表 + 仓库库存信息表 |
数据项: | 商品ID |
别名: | 商品编号 |
数据类型: | Char |
数据长度: | 20Byte |
描述: | 用于唯一表示某商品 |
定义: | 商品ID = {字符} |
位置: | 商品分类表 + 仓库库存信息表 |
数据项: | 商品种类 |
别名: | 暂无 |
数据类型: | Char |
数据长度: | 8Byte |
描述: | 用于区分不同种类商品,以便对商品进行分区存储 |
定义: | 商品种类 = {字符} |
位置: | 商品分类表 |
数据项: | 商品数量 |
别名: | 存放量,取出量 |
数据类型: | Float |
数据长度: | 4Byte |
描述: | 用于标识每次参加操作的仓品的具体数量 |
定义: | 商品位置 = {字符} |
位置: | 商品分类表 + 仓品库存信息表 |
数据项: | 用户ID |
别名: | 账号 |
数据类型: | Char |
数据长度: | 8 Byte |
描述: | 用于唯一标识用户并且是用户进入系统时所需要使用的号码 |
定义: | 用户ID = {字符} |
位置: | 用户信息表 |
数据项: | 用户密码 |
别名: | 密码 |
数据类型: | Char + int |
数据长度: | 8 – 20 Byte |
描述: | 当用户登录系统的时候,作为用户访问的私有性而由用户自己设置的密码,体现出安全性 |
定义: | 用户ID = a + n *a 为字符 n 为int型整数* |
位置: | 用户信息表 |
数据项: | 用户姓名 |
别名: | 暂无 |
数据类型: | Char |
数据长度: | 8 Byte |
描述: | 用户进行实名认证之后的姓名。 |
定义: | 用户姓名 = {字符} |
位置: | 用户信息表 |
数据项: | 用户操作时间 |
别名: | 操作记录 |
数据类型: | DATATIME |
数据长度: | 8 Byte |
描述: | 用于记录用户的每次操作的具体时间 |
定义: | YYYY-MM-DD HH:MM:SS *混合日期和时间值* |
位置: | 商品报表 |
3、数据结构
编号: 1 |
名称: 用户信息 |
别名: 操作情况 |
组成: 用户ID + 用户名 + 操作时间 + (商品信息) + 具体操作 |
作用: 用户访问系统是对用户信息的记录和处理 |
备注: 对应数据流图中的D1 |
编号: 2 |
名称: 出/入库信息 |
别名: 出入库操作 |
组成: 商品ID + 商品数量 + 仓库容量 + 商品名称 |
作用: 对用户对仓库的出库和入库操作提供具体的信息 |
备注: 对应数据流图中的D2 |
编号: 3 |
名称: 管理员信息 |
别名: 管理员 |
组成: 管理员ID + 管理员姓名 + 处理时间 + (商品信息) + 具体操作 |
作用: 管理员收到用户的查询请求后对系统进行操作时对管理员的具体信息进行登记记录 |
备注: 对应数据流图中的D3 |
编号: 4 |
名称: 库存信息 |
别名: 暂无 |
组成: 商品分类表 + 仓库库存信息表 |
作用: 处理出用户所查询的仓库商品信息产生商品清单应答给用户 |
备注: 对应数据流图中的D4 |
4、数据流
编号:11 |
数据流名: 登录界面 |
数据流来源: 用户 |
数据流去向: 仓库管理系统 |
组成:用户 + 登录账号 + 登录密码 |
作用: 使用户可以正常的登录该系统 |
编号:12 |
数据流名: 查询请求 |
数据流来源: 用户 |
数据流去向: 仓库管理员 |
组成:用户 + 功能选择 + 仓库管理员 |
作用: 将用户想要查询的商品具体信息传给仓库管理员,由仓库管理员访问系统进行操作 |
编号:13 |
数据流名: 出/入库请求 |
数据流来源: 用户 |
数据流去向: 商品报表 |
组成:仓库库存表 + 商品分类表 + 出/入库信息 + 用户 |
作用: 将用户的出/入库信息经处理产生商品报表送给管理员,并实事完成相应操作 |
编号:14 |
数据流名: 产生商品清单 |
数据流来源: 管理员 |
数据流去向: 用户 |
组成:仓库库存表 + 商品分类表 + 用户 + 仓库管理员 |
作用: 仓库管理员接收到用户的查询请求后通过该系统产生相应的商品清单反馈给用户 |
5、加工逻辑
编号: 21 |
名称: 登录app |
别名: 登录界面 |
输入: 用户账号 , 用户密码 |
输出:进入功能选择界面或重新输入/找回密码 |
加工逻辑: IF 用户输入正确的用户账号和用户密码 THEN 进入功能选择界面 ELSE 注册/找回密码 |
备注: 使用户正确的进入仓库管理系统中 |
编号: 22 |
名称: 功能选择 |
别名: 暂无 |
输入: 对应的功能 |
输出:重新选择或进入识别系统 |
加工逻辑: IF 用户输入正确的功能进行功能匹配 THEN 进入识别系统 ELSE 重新选择 |
备注:用户通过对功能的选择正确的进入识别系统 |
编号: 23 |
名称: 出/入库操作 |
别名: 暂无 |
输入: 正确的商品信息 |
输出:更新出/入库信息,更新库存,产生商品报表 |
加工逻辑: IF 用户输入正确的功能进行功能匹配 THEN 进入识别系统 IF 仓库已满 / 为空 THEN 无法完成操作(不合法) ELSE 产生商品报表,完成操作 ELSE 重新选择 |
备注:完成用户所选择的出/入库操作 |
6、外部实体
编号:31 |
名称: 用户 |
别名: 暂无 |
简述: 能使用该系统的基本功能 |
从外部实体输入: 对应的操作 向外部实体输出: 商品报表 |
备注: 能通过本系统,用户能通过功能选择在本系统中完成相应的出/入库和查询操作 |
编号: 32 |
名称: 仓库管理员 |
别名: 管理者 |
简述: 能管理商品报表和进入系统为用户生成商品清单 |
从外部实体输入: 用户查询请求 向外部实体输出: 具体商品清单 |
备注:能直接与系统交互,对外部用户是透明的,通过查询请求为用户提供商品清单 |