当前位置: 首页 > news >正文

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

需求分析

一、系统概况

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

二、系统目标

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

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

(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

名称: 仓库管理员

别名: 管理者

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

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

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

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

相关文章:

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

需求分析 一、系统概况 仓库管理系统是一种基于互联网对实际仓库的管理平台,旨在提供一个方便、快捷、安全的存取货物和查询商品信息平台。该系统通过在线用户登录查询,可以线上操作线下具体出/入库操作、查询仓库商品信息、提高仓库运作效率&#xff…...

立创EDA学习:PCB布局

参考内容 【PCB布线教程 | 嘉立创EDA专业版入门教程(11)】 https://www.bilibili.com/video/BV1mW4y1Z7kb/?share_sourcecopy_web&vd_sourcebe33b1553b08cc7b94afdd6c8a50dc5a 单路布线 遵循顺序 先近后远,先易后难 可以拖动让拐角缩小…...

tomcat与Apache---一起学习吧之服务器

Apache和Tomcat都是Web服务器,但它们有一些重要的区别。 Apache服务器是普通服务器,本身只支持HTML即普通网页。不过可以通过插件支持PHP,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资…...

Vue3的优势

Vue3和Vue2之间存在以下主要区别: 1. 性能优化:Vue3在内部进行了重写和优化,采用了新的响应式系统(Proxy),相较于Vue2中的Object.defineProperty,更具性能优势。Vue3还对编译和渲染进行了优化&…...

鸿蒙开发案例002

1、目标需求 界面有增大字体按钮,每次点击增大字体按钮,“Hello ArkTS”都会变大 2、源代码 Entry Component struct Page {textValue: string Hello ArkTSState textSize: number 50myClick():void{this.textSize 4}build() {Row() {Column() {//…...

Git学习笔记(第9章):国内代码托管中心Gitee

目录 9.1 简介 9.1.1 Gitee概述 9.1.2 Gitee帐号注册和登录 9.2 VSCode登录Gitee账号 9.3 创建远程库 9.4 本地库推送到远程库(push) 9.5 导入GitHub项目 9.6 删除远程库 9.1 简介 9.1.1 Gitee概述 众所周知,GitHub服务器在国外,使用GitHub作为…...

使用k8s 配置 RollingUpdate 滚动更新实现应用的灰度发布

方案实现方式: RollingUpdate 滚动更新机制 当某个服务需要升级时,传统的做法是,先将要更新的服务下线,业务停止后再更新版本和配置,然后重新启动服务。 如果业务集群规模较大时,这个工作就变成了一个挑战…...

MATLAB知识点:mode :计算众数

​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自第3章 3.4.1节 mode :计算众数 众数是指一…...

【JavaWeb】MVC架构模式

文章目录 MVC是什么?一、M :Model 模型层二、V:View 视图层三、C:Controller 控制层四、非前后端分离MVC五、前后端分离MVC总结 MVC是什么? MVC(Model View Controller)是软件工程中的一种**软件…...

【Unity学习笔记】创建人物控制器

人物左右移动 1 导入模型,如果没有模型,则在 窗口-资产商店-free sample 找到人物模型 2 在 窗口-包管理中 导入自己的模型 3 在自己的资产文件夹中找到Prefabs Base HighQuality MaleFree1模型,导入到场景中 4 Assets中创建C#项目 写入如下…...

HCIP:不同VLAN下实现网络互相通信

配置pc1 配置pc2 配置pc3 将sw1划分到vlan3 将sw3划分到vlan3 在sw1上进行缺省 将sw1上(g0/0/1)的untagged改成 1 3 则在pc1上ping pc2可通 在sw1上进行缺省 在sw3上(e0/0/1)打标记 则在pc1上ping pc3可通(实现互通&am…...

07 队列

目录 1.队列 2.实现 3.OJ题 1. 队列 只允许在一段进行插入数据操作,在另一端进行数据删除操作的特殊线性表,队列具有先进先出FIFO(First In Firtst Out),插入操作的叫队尾,删除操作的叫队头 2. 实现 队列…...

产品面试题2

39.产品经理在与 开发团队合作时,以下哪个角色负责将产品需求转化为可执行的任务? a) 技术经理 b) 交互设计师 c) 项目经理 d) 开发工程师 答案:c 40.以下哪个方法适用于评估产品的用户满意度和体验? a) 用户访谈 b) 用户调研问卷…...

[NSSCTF]-Web:[SWPUCTF 2021 新生赛]easy_md5解析

先看网页 大致就是输入name和password的值,只要他俩的值不一样,然后经过md5函数之后一样就能出flag。 解法一(利用php的科学计数法): 在php中,假设a,b为数字,那科学计数法可以用ae…...

嵌入式解惑——串口通信中的流控制有什么作用?

在串口通信中,流控制(Flow Control)是一个非常重要的概念。它主要是用来协调发送端和接收端的数据传输速率,以防止接收端流量过大导致的数据丢失问题。   串口通信的特点是数据是以串行方式,一位一位的进行传输。如果…...

Kubernetes-Taint (污点)和 Toleration(容忍)

目录 一、Taint(污点) 1.污点的组成 2.污点的设置、查看和去除 3.污点实验: 二、Toleration(容忍) 1.容忍设置的方案 2.容忍实验: Taint 和 toleration 相互配合,可以用来避免 pod 被分配…...

python三数之和

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1…...

uniapp 用css animation做的鲤鱼跃龙门小游戏

第一次做这种小游戏,刚开始任务下来我心里是没底的,因为我就一个‘拍黄片’的,我那会玩前端的动画啊,后面尝试写了半天,当即我就给我领导说,你把我工资加上去,我一个星期给你做出来,…...

JeecgBoot 3.6.1实现Modal对话框,以为审核数据为例

JeecgBoot 3.6.1实现Modal对话框 vue使用的是3.0版本 文章目录 JeecgBoot 3.6.1实现Modal对话框前言一、列表页面关键代码示例二、textAuditModal.vue代码示例三、test.api.ts总结 前言 在工作中,有一个需求,要求,在数据列表页,…...

Spring基于dynamic-datasource实现MySQL多数据源

目录 多数据源实现 引入依赖 yml配置文件 业务代码 案例演示 多数据源实现 引入依赖 <dependency><groupId>com.baomidou</groupId><artifactId>dynamicdatasourcespringbootstarter</artifactId><version>3.5.0</version> &…...

如何高效拆分CATIA多实体零件:pycatia自动化解决方案的完整指南

如何高效拆分CATIA多实体零件&#xff1a;pycatia自动化解决方案的完整指南 【免费下载链接】pycatia python module for CATIA V5 automation 项目地址: https://gitcode.com/gh_mirrors/py/pycatia 在CATIA三维设计领域&#xff0c;工程师们经常面临一个常见挑战&…...

Visual C++运行库一键修复:3分钟解决Windows软件启动失败的终极方案

Visual C运行库一键修复&#xff1a;3分钟解决Windows软件启动失败的终极方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经兴奋地双击一个游戏或专…...

深入剖析VSCODE在Ubuntu虚拟机中遭遇EACCES权限错误的根源与安全修复方案

1. 当VSCODE在Ubuntu虚拟机中突然罢工&#xff1a;EACCES权限错误的真实面目 第一次在Ubuntu虚拟机里用VSCODE修改文件时&#xff0c;突然跳出的"EACCES: permission denied"警告框&#xff0c;相信让不少开发者心头一紧。这个看似简单的权限错误&#xff0c;背后其…...

基于MCP协议的Windows桌面AI自动化控制:Copaw Control实战指南

1. 项目概述与核心价值最近在折腾AI智能体开发&#xff0c;特别是想让它们能更“听话”地操作我的电脑&#xff0c;比如帮我整理文件、截图、或者自动处理一些重复性的桌面任务。在这个过程中&#xff0c;我发现了tompaineclaw/copaw-control-mcp这个项目。简单来说&#xff0c…...

模型预测控制与神经控制屏障函数的融合应用

1. 项目概述&#xff1a;当模型预测控制遇上神经控制屏障函数在自动驾驶和机器人控制领域&#xff0c;模型预测控制&#xff08;MPC&#xff09;因其优秀的实时优化能力而广受青睐。但从业者都知道一个"公开的秘密"——传统MPC就像个近视的导航员&#xff0c;只能确保…...

禅论结构量化:通达信可视化分析插件的算法实现与实践应用

禅论结构量化&#xff1a;通达信可视化分析插件的算法实现与实践应用 【免费下载链接】Indicator 通达信缠论可视化分析插件 项目地址: https://gitcode.com/gh_mirrors/ind/Indicator 禅论量化分析插件通过算法自动识别K线图中的线段结构和中枢区域&#xff0c;为交易者…...

别再被EC11编码器波形坑了!STM32F103外部中断驱动避坑指南(附完整代码)

EC11编码器驱动开发实战&#xff1a;从硬件滤波到软件防抖的全方位避坑指南 旋转编码器作为人机交互的重要组件&#xff0c;在嵌入式系统中应用广泛。EC11以其性价比和可靠性成为许多项目的首选&#xff0c;但实际开发中&#xff0c;工程师常被信号抖动、方向误判等问题困扰。本…...

2026上海徐汇区新高一名师辅导暑假班必看 | 优师授课、直击重点

初升高是上海学生学业关键拐点&#xff0c;徐汇区名校云集、学习节奏快、考点难度高&#xff0c;选对名师辅导&#xff0c;直接决定孩子能否快速适应高中、抓住重点、少走弯路。2026年徐汇家长选新高一名师班&#xff0c;核心看三点&#xff1a;优师背景、授课精准、直击考点&a…...

开源提示词工程平台LynxPrompt:本地化部署与工程化实践指南

1. 项目概述&#xff1a;一个提示词工程的“瑞士军刀”如果你和我一样&#xff0c;长期在AI应用开发、内容创作或者自动化流程构建的一线工作&#xff0c;那么“提示词”这三个字对你来说&#xff0c;绝对不陌生。从简单的聊天对话&#xff0c;到复杂的代码生成、数据分析&…...

《机密计算破局政务金融、截图工具漏洞泄露NTLM哈希、智能体仿冒日增200+:AI安全的三场“攻防战”》

一、全链路机密计算破局&#xff1a;政务/金融敏感数据进入“可信推理”时代当前&#xff0c;大模型落地过程中面临的核心矛盾在于&#xff1a;越是高价值的专业技术领域&#xff0c;其训练数据和实时推理数据的安全级别就越高。在政务场景中&#xff0c;政府规划、财政数据、内…...