仓储管理系统——软件工程报告(需求分析)②

需求分析

一、系统概况

仓库管理系统是一种基于互联网对实际仓库的管理平台,旨在提供一个方便、快捷、安全的存取货物和查询商品信息平台。该系统通过在线用户登录查询,可以线上操作线下具体出/入库操作、查询仓库商品信息、提高仓库运作效率,优化仓库使用流程等功能,实现了用户在网上对仓库操作的全流程。

二、系统目标

系统的目标是满足用户在使用仓库的过程中的需求,包括线上查询商品、线上操作出/入库商品、线上筛选、提高仓库运作效率、降低成本等环节,并保证在查询和出/入库操作的安全性和可靠性。同时,该系统还为用户提供了一个开放、简单的操作环境,上手难度低,操作环节简便清晰。

三、系统总体结构与子结构说明

(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

名称: 仓库管理员

别名: 管理者

简述: 能管理商品报表和进入系统为用户生成商品清单

从外部实体输入:  用户查询请求

向外部实体输出:  具体商品清单

备注:能直接与系统交互,对外部用户是透明的,通过查询请求为用户提供商品清单

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/340936.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++ 20 Module

头文件包含一直是C/C的传统,它使代码声明与实现分离,但它有一个非常大的问题就是会被重复编译,拖累编译速度。 通常一个标准头文件iostream展开后可能达几十万甚至上百万行。笔者使用下面的示例进行测试,新建一个main.cc&#xf…

每日一题——LeetCode1304.和为零的N个不同整数

方法一 个人方法 n为偶数&#xff0c;只要同时放入一个数的正数和负数&#xff0c;那么和总为0&#xff0c;n是奇数就放入一个0&#xff0c;剩下的当偶数看待 var sumZero function(n) {let res[]if(n%2!0){res.push(0)n--}nn/2for(let i1;i<n;i){res.push(i)res.push(-i…

Linux 系统中查看系统日志方法

Linux 系统提供了强大的日志功能&#xff0c;可以记录系统和应用程序的各种事件和错误信息。系统日志对于故障排除和性能监控非常重要。 一、使用命令行工具查看系统日志 1. 使用 journalctl 命令查看系统日志&#xff1a; journalctl 命令是 systemd 日志管理器的客户端工具…

npm下载依赖报Python,c++等相关错误

执行npm install 下载时&#xff0c;报错&#xff0c;缺少python相关的错 解决方法&#xff1a; //下载python 1、 npm install --global --production windows-build-tools//配置环境 &#xff1a; 也可暂时不用配置,能用就不用配置&#xff08;npm config set python &qu…

大数据学习之Flink,Flink部署

Flink部署 一、了解它的关键组件 客户端&#xff08;Client&#xff09; 作业管理器&#xff08;JobManager&#xff09; 任务管理器&#xff08;TaskManager&#xff09; 我们的代码&#xff0c;实际上是由客户端获取并做转换&#xff0c;之后提交给 JobManger 的。所以 …

力扣746. 使用最小花费爬楼梯

动态规划 思路&#xff1a; 定义 dp[i] 为到达下标 i 层的最小花费&#xff1b;则状态转移方程为&#xff1a; 第 i 层可以从第 i - 1 层爬一层或者第 i - 2 层爬两层到达&#xff1b;则 dp[i] std::min(dp[i - 1] cost[i - 1], dp[i - 2] cost[i - 2])初始状态&#xff1a…

【漏洞复现】CloudPanel makefile接口远程命令执行漏洞(CVE-2023-35885)

文章目录 前言声明一、CloudPanel 简介二、漏洞描述三、影响版本四、漏洞复现五、修复建议 前言 CloudPanel 是一个基于 Web 的控制面板或管理界面&#xff0c;旨在简化云托管环境的管理。它提供了一个集中式平台&#xff0c;用于管理云基础架构的各个方面&#xff0c;包括 &a…

可靠与稳定的数字化时代之选——亚信安慧AntDB数据库

在数字化时代&#xff0c;数据已经成为企业的重要资产。为了确保数据的可靠、稳定与高效处理&#xff0c;越来越多的企业选择亚信安慧AntDB数据库作为其核心数据存储和处理解决方案。AntDB数据库凭借其超融合、可靠和稳定的特点&#xff0c;为企业提供了卓越的数据管理体验。 …

终端(命令提示符或Windows PowerShell或Azure Cloud Shell)概述

终端&#xff08;命令提示符或Windows PowerShell或Azure Cloud Shell&#xff09;是一种很 不 好用的东西 就是要背&#xff0c;很 不 爽 介绍 Windows 终端是一个新式主机应用程序&#xff0c;它面向你喜爱的命令行 shell&#xff0c;如命令提示符、PowerShell 和 bash&…

OpenCV——Scharr边缘检测

目录 一、Scharr算法1、算法概述2、主要函数 二、C代码三、python代码四、结果展示1、灰度图2、X方向一阶边缘2、Y方向一阶边缘3、整幅图像的一阶边缘 五、相关链接 OpenCV——Scharr边缘检测由CSDN点云侠原创&#xff0c;爬虫自重。如果你不是在点云侠的博客中看到该文章&…

代码+视频R语言绘制逆概率加权后的基线表

基于 PS &#xff08;倾向评分&#xff09;的逆概率加权(IPTW )法首先由&#xff32;osenbaum作为一种以模型为基础的直接标准化法提出&#xff0c;属于边际结构模型。简单来说&#xff0c;就是把许多协变量和混杂因素打包成一个概率并进行加权&#xff0c;这样的话&#xff0c…

机器学习_线性回归原理和实战

文章目录 线性回归原理线性回归实战 线性回归原理 在讲线性回归之前&#xff0c;我们先看看中学时学的&#xff0c;一元线性回归的公式&#xff1a;ya∗xb。这公式对于本篇内容关联还是挺大的。 所谓回归分析 (regression analysis)&#xff0c;就是确定两种或两种以上变量间…

小程序中使用echarts实现带边框雷达图

小程序中怎么使用echarts的流程在这边文章&#xff0c;点击去观看 我们项目需要实现一个带边框的雷达图&#xff0c;看了API之后没有发现怎么去实现这个边框&#xff0c;所以想到了画两个雷达图来实现这个边框&#xff0c;具体效果如上&#xff0c;代码如下 // 初始化雷达图i…

未来趋势:视频美颜SDK与增强现实(AR)的融合

当下&#xff0c;视频美颜SDK不断演化&#xff0c;成为用户记录和分享生活时不可或缺的一部分。同时&#xff0c;增强现实技术也以其独特的沉浸感和交互性受到青睐&#xff0c;被广泛应用于游戏、教育、医疗等领域。 一、视频美颜与AR的结合 1.实时美颜的AR增值体验 借助AR的…

定向减免!函数计算让轻量 ETL 数据加工更简单,更省钱

作者&#xff1a;澈尔、墨飏 业内较为常见的高频短时 ETL 数据加工场景&#xff0c;即频率高时延短&#xff0c;一般均可归类为调用密集型场景。此场景有着高并发、海量调用的特性&#xff0c;往往会产生高额的计算费用&#xff0c;而业内推荐方案一般为攒批处理&#xff0c;业…

C++入门学习(十一)字符型

C中的字符型可以表示ASCII码中的所有字符&#xff0c;包括字母、数字、标点符号等。 ASCII码是一种用于编码字符的编码系统&#xff0c;它使用不同的数值来表示不同的字符。ASCII码使用7位或8位二进制数来表示每个字符&#xff0c;因此可以表示128或256个不同的字符。 在ASCI…

【开源】基于JAVA的图书管理系统

目录 一、 系统介绍二、 功能模块2.1 登录注册模块2.1 图书馆模块2.2 图书类型模块2.3 图书模块2.4 图书借阅模块2.5 公告模块 三、 源码解析3.1 图书馆模块设计3.2 图书类型模块设计3.3 图书模块设计3.4 图书借阅模块设计3.5 公告模块设计 四、 免责说明 一、 系统介绍 图书管…

各省税收收入、个人和企业所得税数据,Shp、excel格式,2000-2021年

基本信息. 数据名称: 各省税收收入、个人和企业所得税数据 数据格式: Shp、excel 数据时间: 2000-2021年 数据几何类型: 面 数据坐标系: WGS84 数据来源&#xff1a;网络公开数据 数据字段&#xff1a; 序号字段名称字段说明1sssr_2021税收收入&#xff08;亿元&am…

软件测试到底是选择自学还是报培训机构(纯个人经验分享)----分享给正在迷茫的学弟学妹们!

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

Ceph应用管理

目录 资源池 Pool 管理 创建 CephFS 文件系统 MDS 接口 服务端操作 客户端操作 创建 Ceph 块存储系统 RBD 接口 创建 Ceph 对象存储系统 RGW 接口 OSD 故障模拟与恢复 资源池 Pool 管理 我们如何向 Ceph 中存储数据呢&#xff1f;首先我们需要在 Ceph 中定义一个 Pool…
最新文章