ssm基于BS的仓库在线管理系统的设计与实现论文

摘 要

如今的时代,是有史以来最好的时代,随着计算机的发展到现在的移动终端的发展,国内目前信息技术已经在世界上遥遥领先,让人们感觉到处于信息大爆炸的社会。信息时代的信息处理肯定不能用之前的手工处理这样的解决方法,必须采用计算机来处理这些信息,因为传统方法对应计算机处理的信息效率上真的相差甚远。
本次使用Java技术开发的仓库在线管理系统,就是运用计算机来管理仓库物品出入库信息,该系统是可以实现物品管理,出入库管理,公告管理,供货方管理,员工管理等功能。
仓库在线管理系统使用计算机处理相关信息,主要是在数据的传输上能达到即可传递,数据不管是想要获取或者输入,都可以及时反馈,极大的提高了效率,使用的MySQL数据库也能让数据更能安全的存储。

关键词:仓库在线管理系统;物品;出入库管理

Abstract
Today’s era is the best era in history. With the development of computers and the development of mobile terminals, China’s current information technology has been far ahead in the world, making people feel that they are in a society with an explosion of information. Information processing in the information age must not use the previous solution of manual processing. Computers must be used to process these information, because the information efficiency of traditional methods corresponding to computer processing is really far away.
The online warehouse management system developed using Java technology this time uses computers to manage the information of warehouse items in and out.
The online warehouse management system uses computers to process relevant information, mainly in the transmission of data that can be delivered. Whether the data is to be acquired or input, it can be fed back in time, which greatly improves the efficiency, and the MySQL database used can also be used. Make data more secure storage.

Key Words:Warehouse online management system; items; warehouse management

目 录

第一章 绪论 1
1.1 研究背景 1
1.2 研究意义 1
1.3 研究内容 2
第二章 开发环境与技术 3
2.1 Java语言 3
2.2 JDK简介 3
2.3 Eclipse开发工具 4
第三章 系统分析 5
3.1可行性分析 5
3.1.1运行可行性分析 5
3.1.2技术可行性分析 5
3.1.3经济可行性分析 5
3.2系统流程分析 6
3.3 系统性能分析 8
3.3.1系统的安全性 8
3.3.2系统易维护性 8
3.3.3系统可扩展性 8
3.4系统功能分析 9
第四章 系统设计 11
4.1界面设计原则 11
4.2功能模块设计 11
4.3数据库设计 13
4.3.1数据库E-R图 13
4.3.2 数据库表结构 16
第五章 系统实现 19
5.1 管理员功能实现 19
5.1.1 物品信息管理 19
5.1.2 员工管理 19
5.1.3 公告信息管理 20
5.2 员工功能实现 20
5.2.1 物品信息查看 20
5.2.2 出入库管理 21
5.2.3 出入库列表管理 21
5.2.4 个人信息 22
第六章 系统测试 23
6.1 测试方案 23
6.2 系统测试用例 25
6.2.1 登录功能测试 25
6.2.2 注册功能测试 25
6.3 测试的结果 26
结 论 27
参考文献 28
致 谢 29

第一章 绪论

1.1 研究背景
在现在社会,对于信息处理方面,是有很高的要求的,因为信息的产生是无时无刻的,并且信息产生的数量是呈几何形式的增加,而增加的信息如何存储以及短时间分析检索,也是有时效性的,所以,不管是任何的企业和个人,只要需要处理信息,必然是要寻找到一个适合自己的解决方案,而软件开发商和数据库提供商就是为了解决这些问题。相比之前人工信息处理的水平,现代的信息处理方法是完胜以前的信息处理方法。开发一个符合自己需求的信息管理系统,可以把整个信息处理的过程变得很有规范,并且很有水准,让整个信息处理变成一个自动化的过程,并且在数据处理结果之中直接设定好检索标准,或者是多条件检索标准,通过数据分析获得自己需要的内容,这都是信息化的好处。当一切信息数据存在小小的存储介质之中,那么数据迁移备份的重要性也变得更加简洁,可以设置自动化远程备份,自动化远程处理,不管是使用过程还是维护过程,都会变得更加的高效和整洁,最重要的成本上面的控制,可以极限减少,开源节流,不外如是,减少社会资源的浪费,也是计算机技术的存在的一个优势。所以,对于仓库物品出入库信息的管理,一方面为了提高仓库物品出入库信息的管理水平,另一方面为了提高仓库物品出入库信息的维护水平,仓库在线管理系统的开发就显得十分有必要了。
1.2 研究意义
仓库在线管理系统不仅可以保证信息安全的前提下提高信息处理水平,更重要的是提高了信息使用者以及所有者的管理水平。信息的出现,必须经过人为的处理,人们才能接受和使用,所以提高了信息处理水准就显得极为重要。采用计算机技术,会发现在数据传递方面,有着急速的传递,不管是距离多远,都可以实时抵达,不管数据量多大,都能在短时间进行处理完毕,让人为的可出错性变低,工作量变少。仓库在线管理系统的出现,让仓库物品出入库信息的管理跟上了信息时代的步伐,不仅可以在全时间段提供着稳定的处理速度以及处理水准,更能完美的保证了数据的可靠性。不仅如此,仓库在线管理系统在使用上面也是得心应手,操作起来极其的简单,只要认识字就行,页面设计相当不错,不用过多的考虑或者寻找,就能使用。总而言之,仓库在线管理系统在信息资源的处理方面,表现是极其的出色,不仅提高了管理水准,也让数据的迁移变得更加方便。
1.3 研究内容
本文总共分六章来对仓库在线管理系统进行介绍,研究内容具体安排如下:
第一章:通过资料查询,和对调研资料的总结,对仓库在线管理系统的背景和仓库在线管理系统的意义进行说明;
第二章:选择适合本系统的技术和工具并对其进行说明;
第三章:分析仓库在线管理系统开发可行性问题,研究本系统的性能,对本系统使用者的功能进行分析。
第四章:细分功能,利用功能结构图来展示系统的详细功能,同时设计数据库,包括E-R图和数据表的设计;
第五章:展示仓库在线管理系统的实现界面和实现的功能;
第六章:测试仓库在线管理系统,检测系统的功能能否可用,以及发现并解决系统功能运行的问题。

第二章 开发环境与技术

仓库在线管理系统的开发需要的软件环境和技术下面将介绍一下。
2.1 Java语言
Java语言流行至今,依然是后台程序开发人员从业者需要学习的技能之一,并且可以不断的进行深造,可以用Java解决各种各样的问题。Java是一种面向对象的语言,这一点对Java语言的发展功不可没。万物皆对象,很生动的对自然存在的各种环境,各种问题提供了一个解决思路,人类对世界的认知就是从一个一个事物慢慢领悟的,对行为的认知就是事物之间的联系进行认知的,对各种事物之间的联系组成了人类对世界的认知。而Java语言关于编程描述的方法,符合人类对自然界的认知方法。一切自然界的信息如果要进行存储处理,如果只是信息存储的话,也需要对其定义,信息即数据,进而推导,符合数据要求格式的类型,就是符合人类认知事物的类型。Java语言面向对象就是这样理解的,符合人类正常思维。Java不仅仅是运行不挑环境,开发符合人类正常认知,并且还衍生出其他的好的特性,比如安全系数比较高,因为不牵扯到硬件指针,不存在直接访问内存,这样应对计算机病毒的入侵有着很好的防范。Java是一种很好的开发语言。
2.2 JDK简介
JDK这个是Java开发所必须的东西。Java开发必须用JDK,运行必须用JRE,而JDK往往携带了JRE环境,也就是说只要安装了JDK就不需要再去重复性的安装JRE,所以JDK这款开发Java的必备品也就很受欢迎。一台电脑上可以安装多个版本的JDK,并且可以对不同的项目指定不同的JDK,这一点做的相当的友好。如果一台电脑默认没有安装过JDK是不需要配置环境变量,就可以直接访问JDK的,这一点对于初学者来讲,起码配置环境变量方面就方便了很多。JDK目前最新版本是JDK17,版本已经很高了,但是不管是学习还是使用,一般都喜欢用比较稳定的版本,比如JDK1.7或者JDK1.8版本。
2.3 Eclipse开发工具
对于用于开发Java语言的工具来讲,从一开始就是MyEclipse,因为是开源免费的,许多教学机构或者是学校,如果大批量用收费的开发工具来进行讲课,是一种资金的浪费,所以选择MyEclipse作为开发工具,是许多Java学习人员的入门必备。但是随着Java语言功能越来越多,MyEclipse虽然是免费的,但是如果项目需要某些插件的话,需要手动去对应插件的官网进行下载,有时候插件还会被屏蔽,不仅仅在配置开发环境方面造成一定的困难,还会让开发的雄心变弱。Eclipse就在这样的情况下诞生了,秉承于MyEclipse的操作习惯,把一些常用的插件给集成到一个软件里,比如常用的JDK,Tomcat等插件,直接安装Eclipse就可以使用,不需要另外的安装其他的插件,会让使用过MyEclipse的人员用起来很顺手,操作也比较简单。在公司里进行开发也有很多程序员用的都是Eclipse作为开发工具,有效的提升开发效率。可以同时开发许多项目,不同的项目可以选择不同的工作空间,每个独立的工作空间都可以进行单独的配置,可以对Tomcat端口进行修改,也可以在同一个Tomcat里面启动很多个网站项目,在操作方面更加便捷。

第三章 系统分析

一般来说,开发系统不是一拍脑袋就解决的事情,需要有个严谨的分析,并且逐条实现的过程,而系统分析只是系统开发的前奏而已,后续还会有相关的系统实现,系统设计等。
3.1可行性分析
系统是否可以正常实现操作流程,实现操作目的,符合操作流程,这些都可以提前进行分析论证。提前进行分析在开发之前是很重要的,并且进行书面记载,有助于开发流程的缜密性。
3.1.1运行可行性分析
开发仓库在线管理系统必然是有运行条件的,开发条件和运行条件都可以进行分析。首先从运行角度上讲,只是作为一个仓库在线管理系统的运行环境,不是超大型商业项目,只是运行一个毕业设计,数据量有限,并发条件有限,所以用常规的内存大于4G,CPU双核以上,基本上就能满足运行的硬件需要,硬盘的话常规的大于60G的即可。
3.1.2技术可行性分析
一切可以实现B/S模式的技术很多,而正好在学校就学习了相关的开发技术,采用已经有基础的学习来进行扩展更丰富的功能,从技术上面是不需要太多的重复性投入,可以更快的进行开发,技术可行。
3.1.3经济可行性分析
经济主要考虑投入与获利之间的比例问题,仓库在线管理系统开发投入只需要现有的,不必要另外购买的电脑就可以进行使用,一切开放性所用到的工具和资料都可以在图书馆以及互联网上面得到相应的免费资讯,这些都决定了经济上面的投入是不需要太多的。项目功能属于常规功能,没有多并发超用户同时访问的需求,所以也不需要考虑太多的资金投入,所以经济可行。
通过各个方面的研究分析,确定了开发之前这些可行性分析是很有必要的,增加了开发的信心,提高了开发效率,让开发的流程更加的具体化。
3.2系统流程分析
本项目在处理数据方面,必须规定其流程,要让每个步骤都要符合设定预期。注册的结果可以说只有两种结果,一个是成功,一个是失败,成功就会把注册时候输入的数据写入到数据库表里存储,如果失败则提示提示失败,并且不写入数据库。因为两种结果,所以要对数据的合法性进行判断,而数据的合法性需要对每条信息进行判断,主要对哪条信息判断,这些都要有流程。
在这里插入图片描述

图3.1用户注册流程图
登录是所有系统必不可少的功能之一。虽然不起眼,但是却是一件不可缺少的事情,登录的作用主要代表着当前操作用户是某人,当然,登录的时候是需要输入账号和密码的,都正确才可以登录,登录的时候会对输入的信息进行判断的。
在这里插入图片描述

图3.2 用户登录流程图
数据的添加是一件比较严肃的事情,必须判断正确与否,不然随意的添加可能会导致数据库设定与实际数据输入要求不一致,导致数据丢失的问题,所以必须根据数据设定要求,在输入数据的时候就进行判断输入信息是否合法。
在这里插入图片描述

图3.3 信息添加流程图
3.3 系统性能分析
在软件开发的环节,有一个很重要的步骤,那就是关于性能需求分析的环节。如果不对软件的性能需求进行分析和预估,那么后果是很严重的。比如国内的12306,如果只是一个用户登录注册,查票购票退票,那么很容易开发出来,但是同时几百万人次的不同操作,如果没有对这个需求的提前分析预估,还是按照十个八个的并发操作进行软件开发,那肯定是上线就崩溃直接就下线的结果。所以说性能需求是很重要的一个环节。一般系统需求从下面几个角度同时考虑。
3.3.1系统的安全性
一个系统是否安全,不仅仅只是考虑用户的密码是否经过了加密,也更需要考虑数据存储的安全性,比如可以把数据库专门放到一个局域网里的服务器,让主服务器代码远程连接数据库,因为代码服务器与数据服务器的物理分离,如果代码服务器被破解,起码用户数据还有机会保存。
3.3.2系统易维护性
系统长时间运营,肯定需要进行维护。那么维护所需要带来的是性能的提升还是并发数量的提升,这些都是需要考虑的,系统不仅仅要容易维护,数据容易迁移备份,还要符合其他特性。
3.3.3系统可扩展性
系统的功能不可能一成不变的,随时可能会加一些其他的模块,比如有些商场用户积分的问题,这些开始都没有这项设定,后续想加的功能,那么就需要在不改变其原来的功能的前提下,对积分相关模块进行升级,这些就是系统设计之初需要考虑的问题,尽量开发模块化。
综上所述,性能需求必须在符合业务逻辑之外,考虑是否会出现其他的各种情况的一种分析,还必须能解决可能会出现的问题的一种需求分析。所以说,系统的性能需求分析是必不可少的一个环节。

3.4系统功能分析
系统功能主要针对主要模块功能进行分析,暂时不考虑非典型性的问题,只要能满足正确操作流程即可。
仓库在线管理系统设置的角色有管理员,员工等。
(1)管理员
管理员对员工信息,物品信息,公告信息,出入库信息等信息的管理。对管理员的功能进行分析之后,将使用图3.4的管理员用例图来描述管理员的功能。
在这里插入图片描述

图3.4 管理员用例图
(2)员工
员工查看物品,查看公告,对物品进行入库操作或出库操作,查询物品出入库明细信息。对员工的功能进行分析之后,将使用图3.5的员工用例图来描述员工的功能。
在这里插入图片描述

图3.5 员工用例图

第四章 系统设计

不管是好用还是不好用的系统,在如今的互联网时代都会被广而告之,但是能留存下来的,必然是好用的,并且好看的系统,不好用并且不好看的系统用户会逐渐抛弃的。所以,开发的系统必须是有主题的,要打开系统就明白这个系统主要的作用和功能,所以设计这方面需要下苦功夫的。
4.1界面设计原则
一般都是图片,文字以及各种输入框和按钮等组成的界面,每个界面的内容都大不相同,如何设计成页面的统一,操作的统一,这是下面需要讨论的问题。
第一点:界面设计必须符合人体工程学。人体工程学是一门入微级别的学问,主要考虑人类在各种工作状态下如何提高生产效率。所以说,界面设计的首要目的,就是为了提升效率。
第二点:有效导航是必须的。导航的目的,就是帮助操作人员的记忆能力,提高操作效率而生的,所以导航一定要设置的符合模块的功能,让用户一看到导航就会知道是哪个模块,需要哪些操作,这些步骤是必不可少的,如果把所有功能放到一个页面呈现平面化布局,肯定不合适,所以合适的导航能够帮助工作。
第三点:界面设计的统一性。统一性不是说背景图片是同一个图片或者背景是同一个色系,而是说让操作系统统一。比如导航就统一用树状结构,有模块有层次,理解容易。多项搜索如果一行放不下,就收起,可以选择多项也可以模糊查询,这些都要符合人类正常认知才可以。
所以说,系统设计的核心就是界面设计,主要的业务处理逻辑只要能处理,需要下大力气的还是页面设计。
4.2功能模块设计
本小节运用功能结构图来描述管理员具备的详细的功能,对管理员的功能结构图绘制结果如图4.1所示。管理员对员工信息,物品信息,公告信息,出入库信息等信息的管理。
在这里插入图片描述

图4.1 管理员功能结构图
本小节运用功能结构图来描述员工具备的详细的功能,对员工的功能结构图绘制结果如图4.2所示。员工查看物品,查看公告,对物品进行入库操作或出库操作,查询物品出入库明细信息。
在这里插入图片描述

图4.2 员工功能结构图
4.3数据库设计
在系统后台选择数据库的时候,首先第一条就是要满足使用需要,只要满足使用需要,再对数据库的使用友好度和性能上进行分析。选择当前分布最广发的关系型数据库是完全能满足需要的,并且在数据的设计上也有完美的设计顺序,最重要的是符合人们的直观要求。
4.3.1数据库E-R图
下面主要是描述E-R图模型的。对于用户的需求,要具体化,比如有个角色需要有登录,那么最基本的设定必须有账号和密码,那么像姓名,性别其他的对象关系,其实是有从属关系的,通过这样具体化分析,可以得到数据的格式要求,并且能得到数据之间的直接关系。然后可以通过专业的Visio工具来进行E-R图的创建,遵守约定的E-R图表达方式,就可以对数据进行图标形式的描述,并且之间的关系更容易理解。
(1)图4.4即为物品这个实体所拥有的属性值。
在这里插入图片描述

图4.4 物品实体属性图
(2)图4.5即为管理员这个实体所拥有的属性值。
在这里插入图片描述

图4.5 管理员实体属性图
(3)图4.6即为公告这个实体所拥有的属性值。
在这里插入图片描述

图4.6 公告实体属性图
(4)图4.7即为员工这个实体所拥有的属性值。
在这里插入图片描述

图4.7 员工实体属性图
(5)图4.8即为上面介绍的实体中存在的联系。
在这里插入图片描述

图4.8 实体间关系E-R图
4.3.2 数据库表结构
在程序开发的过程中,系统设计里面包含有数据库的设计,一般都在功能设计的后面进行数据设计,为什么有这样的顺序呢?那是有原因的。数据库设计不能凭空想象,必须符合数据的定义,而数据只是在使用过程之中产生,其实并没有具体化的表现,所以要把数据进行结构的整理,字段的规划。比如用户账号可能是中文或者英文,以及数字形式存在,更或者可能包含一些符号,那么账号字段的设计就只能是文本形式存在,不能是数据形式或者是时间形式存在,以此类推,数据表结构的设计就是在对系统的具体实现数据进行描述规划的一种行为。所以在这个环节尤其要注意,否则可能使用过程中会发现很多不可预料的问题。
对本系统的数据库的要求就是,要严格遵循数据实现原则,符合数据定义范式。对每个表都要进行具体分析,并且表之间的关系更应该有逻辑性,如果违反前面的要求,那么数据很有可能出现问题,所以要把数据之间的关系用E-R图形式画出来,这样理解起来更直观,更不容易出错,效率也更高。
表4.1 公告信息表
字段 注释 类型 空
id (主键) 主键 int(11) 否
news_name 公告标题 varchar(200) 是
news_types 公告类型 int(11) 是
news_photo 公告图片 varchar(200) 是
insert_time 公告时间 timestamp 是
news_content 公告详情 text 是
create_time 创建时间 timestamp 是
表4.2 物品信息表
字段 注释 类型 空
id (主键) 主键 int(11) 否
shangpin_uuid_number 物品编号 varchar(200) 是
shangpin_name 物品名称 varchar(200) 是
shangpin_types 物品类型 int(11) 是
shangpin_kucun_number 物品库存 int(11) 是
gonghuofang_types 供货方 int(11) 是
create_time 创建时间 timestamp 是
表4.3 出入库表
字段 注释 类型 空
id (主键) 主键 int(11) 否
shangpin_churu_inout_uuid_number 出入库流水号 varchar(200) 是
shangpin_churu_inout_name 出入库名称 varchar(200) 是
shangpin_churu_inout_types 出入库类型 int(11) 是
shangpin_danwei 收货单位 varchar(200) 是
shangpin_jingshouren 经手人 varchar(200) 是
shangpin_churu_inout_content 备注 text 是
insert_time 添加时间 timestamp 是
create_time 创建时间 timestamp 是
表4.4 出入库详情表
字段 注释 类型 空
id (主键) 主键 int(11) 否
shangpin_churu_inout_id 出入库 int(11) 是
shangpin_id 商品 int(11) 是
shangpin_churu_inout_list_number 操作数量 int(11) 是
insert_time 操作时间 timestamp 是
create_time 创建时间 timestamp 是
表4.5 管理员表
字段 注释 类型 空
id (主键) 主键 bigint(20) 否
username 用户名 varchar(100) 否
password 密码 varchar(100) 否
role 角色 varchar(100) 是
addtime 新增时间 timestamp 否
表4.6 员工表
字段 注释 类型 空
id (主键) 主键 int(11) 否
username 账户 varchar(200) 是
password 密码 varchar(200) 是
yonghu_name 员工姓名 varchar(200) 是
yonghu_photo 头像 varchar(255) 是
sex_types 性别 int(11) 是
yonghu_phone 联系方式 varchar(200) 是
yonghu_id_number 员工身份证号 varchar(200) 是
yonghu_email 邮箱 varchar(200) 是
yonghu_delete 假删 int(11) 是
create_time 创建时间 timestamp 是

第五章 系统实现

程序开发人员对功能具体实现后,都要描述自己编写的功能实现,一般都通过文字描述功能,实现用图片截图的形式出现,通过这样的设定,可以让更多得人明白系统的实现结果,达到更容易理解程序操作的目的。
5.1 管理员功能实现
5.1.1 物品信息管理
管理员点击导航栏的物品信息管理链接就进入物品信息管理界面。物品信息管理界面如图5.1所示。本功能允许管理员对物品的基本资料进行修改,添加,查询,删除。
在这里插入图片描述

图5.1 物品信息管理界面
5.1.2 员工管理
管理员点击导航栏的员工管理链接就进入员工管理界面。员工管理界面如图5.2所示。本功能允许管理员对员工基础资料进行修改,查询,添加,删除。
在这里插入图片描述

图5.2 员工管理界面
5.1.3 公告信息管理
管理员点击导航栏的公告信息管理链接就进入公告信息管理界面。公告信息管理界面如图5.3所示。本功能允许管理员更改公告,添加公告等。
在这里插入图片描述

图5.3 公告信息管理界面
5.2 员工功能实现
5.2.1 物品信息查看
员工在物品信息查看界面可以对物品的信息进行查询和查看。物品信息查看界面如图5.4所示。员工需要了解各个物品的库存以及供货方等信息。
在这里插入图片描述

图5.4 物品信息查看界面
5.2.2 出入库管理
员工点击导航栏的出入库管理链接就进入出入库管理界面。出入库管理界面如图5.5所示。本功能允许员工对物品进行入库,对物品进行出库等操作。
在这里插入图片描述

图5.5 出入库管理界面
5.2.3 出入库列表管理
员工点击导航栏的出入库列表管理链接就进入出入库列表管理界面。出入库列表管理界面如图5.6所示。本功能允许员工根据物品的名称获取物品出入库的详情信息,包括供货方,经手人,操作数量等信息,同时可以新增物品出入库的详情信息。
在这里插入图片描述

图5.6 出入库列表管理界面
5.2.4 个人信息
员工点击导航栏的个人信息链接就进入个人信息界面。个人信息界面如图5.7所示。本功能允许员工对自己的个人信息进行查看,同时修改员工自己的介绍信息。
在这里插入图片描述

图5.7 个人信息界面

第六章 系统测试

一个系统不可能只有几个页面就叫做系统,系统的意思就是有好多不同的功能模块的集合才叫做系统。系统包含很多子模块,每个模块与模块之间都有不同的联系,系统测试就是先测试每个模块的功能,符合了之后再测试模块与模块之间的功能,都测试合格还需要验收。测试流程,测试步骤,测试数据,只要是测试的过程,都要有详细的记录。有记录的测试,叫科学测试,如果胡乱测试,那么可能会漏掉一些关键性的问题所在。所以为了提高程序的质量,在测试这个环节就要下很大的心思,测试的越好,系统的修复性越好,才能让用户产生更大的满意。
6.1 测试方案
测试方案主要分两个方向,一个是黑盒测试,一个是白盒测试,这两个测试方向是目前最通用的测试方案。测试过程中,要对各个模块实现有个预期,在符合用户的要求上,要对一些字段还有逻辑进行测试,需要不断输入各种各样类型的数据来进行测试,看是否会有内存漏出,指针异常,或者是逻辑问题。
白盒测试:白盒主要是进行逻辑测试的,测试是属于透明形式的测试。白盒测试要求对各种逻辑以及各种判断,每种判断都要进行一次测试,判断实现效果。白盒测试可以说就是把代码能实现的不能实现的语句都进行判断,只要进行过白盒测试,甚至能定位到哪些判断有问题,或者说某个方法就有问题,只要白盒测试过关的,那说明代码功能基本上没有什么大的问题,符合功能开发的很不错。
黑盒测试:黑盒是不管代码是怎么编写的,只测试功能接口问题。黑盒测试一般不让用户测试的,因为主要围绕着安全性或者恢复性测试,包括负载均衡方面,这些需要大量的数据进行冲击,用户是没有这方面的技术的。所以一般需要负责专业的测试人员进行测试,专业的测试人员经过专门的测试方面培训,懂得黑盒测试的测试要领,所以先经过白盒测试功能问题,然后再经过黑盒测试进行运行问题,基本上就满足了测试任务。
本章节主要就是对系统的测试来设置对应的测试操作,从模块功能测试到最后的验收测试。
模块测试:在模块测试一般都是程序员开发过程中,有的自己写属于自己模块的测试用例,一般以达到效果为主,每个模块都是一个单元,这样来区分单元测试的过程,如果不进行单元测试会出现大问题的,会出现各个环节不知道数据的执行流程,方法跳转,以及更重要的异常抛出,这些可能都会忽略,所以要进行模块测试。
模块测试一般有几个需要注意:
第一个问题:路径问题,路径是绝对路径还是相对路径,因为程序代码很多,所以这些肯定要进行测试的,不然会出现异常。
第二个问题:接口问题。接口的命名方式,会不会与技术自带的接口混淆,会不会接口重复,这些都是需要测试的。
第三个问题:数据结构。数据库的数据结构在代码里,是否编写过程中达到了预期,有些地方该是包装类型的还是数据类型的,这些都要测试。
第四个问题:异常处理。每个环节可能会出现的问题,都要定义异常抛出,并且尽量写好异常处理原因,只要抛出指定异常信息,才会达到测试目的。
第五个问题:边界问题。边界问题一般指的的数据大小以及正负数的问题,这些该测试还要测试的,不测试不符合操作流程。
总而言之,模块测试是测试的第一个环节,是不可少的,也是出现问题最多的领域。
集成测试:模块测试完毕才可以集成测试,集成测试主要是对各个模块之间的逻辑进行测试,只要是相关联的模块,都要测试一遍,需要找到模块关联是否能达到正常开发预期。
集成测试主要采用渐增式测试,好处有以下几点:
第一点:渐进式可以更彻底的对逻辑所有功能进行测试,是很彻底的。
第二点:渐进式相当节约时间,节约时间就是节约成本。
第三点:可以更快速的定位错误位置,有助于问题反馈。
用渐进式测试软件功能,用到的混合法。混合法是有顺序的,自上而下测试和自下而上测试,对程序的上下层混合测试,就是测试里面的集成测试方法。
验收测试:验收一般是甲方派人来负责程序的验收测试,派来的人员可能计算机水平层次不齐,也更适合对程序问题提出异议,因为计算机开发的哪怕在行业内最厉害的,也不一定能满足甲方的需求,毕竟开发者认为合理的必须有局外人来进行判断,而甲方派人测试则是代表着对程序的直观认知,前面的所有测试,只是验收测试前的测试,验收测试决定着程序是最终问题。
6.2 系统测试用例
测试主要是实际操作程序功能与设计程序功能是否一致,检验编程效果的一种方法。
6.2.1 登录功能测试
作为仓库在线管理系统,登录是首要功能,后面不管是任何功能,都必须在登录成功后才可以进行操作,所以登录必须进行测试。
表6.1 登录功能测试表
测试数据 实际数据 预期情况 最终情况
把用户表里面的任意一个账号,还有配套密码进行录入 账号:abo
密码:abo 成功登录 成功登录
不使用用户表的账号,还有密码 账号:uuu
密码:uuu 提示错误的账号或密码 登录失败
把用户表的任意一个账号进行输入,并随意编写一个密码,该密码不是该表账号对应的密码 账号:abo
密码:uuu 提示错误的账号或密码 登录失败
不输入用户表的账号,而是账号随意编写,但是密码却是用户表的密码 账号:uuu
密码:abo 提示错误的账号或密码 登录失败
6.2.2 注册功能测试
注册功能也是大部分应用程序需要做的功能,一般注册功能设定必须是账号唯一,这样能保证用户的安全,用一个与别人不一样的用户名,这样坏人不容易猜到,所以注册时候提交的用户名如果已经存在肯定是不让注册的,只有唯一的账号才可以注册,而这些都要有反馈提示。
表6.2 注册功能测试表
测试数据 实际数据 预期情况 最终情况
把用户表的其中一个账号进行登记 账号:abo 账号已存在,请重新输入 注册失败
登记用户表里面不存在的账号 账号:yh1 可以注册 注册成功
6.3 测试的结果
在仓库在线管理系统的测试过程中,优化了系统的功能导航,以及操作流程,并且对运行环境测试,发现市场上主流的电脑都可以使用,并且操作简单,使用方便,功能完善。通过所有测试的结果就是本设计合格。

结 论

仓库在线管理系统的开发不是一帆风顺的,虽然严格按照一定的开发流程来进行仓库在线管理系统的开发,但是中间出现了很多突发情况。当题目选择之后,就开始查找资料,也不知道是查找方式问题还是阅历问题,感觉资料查的都是相关资料,但是当查到资料后看的一头雾水,好多都是与仓库在线管理系统开发不相关的,像浪里淘沙一样过滤了很多无用的东西才收集到一点点对自己可用的。当定下功能功能的时候,又开始对功能进行分析,反复的判断功能直接的关系,是否存在逻辑问题。数据库的设计也是一大问题,也许是开发经验不足,当数据库设计好后,编码到一半发现考虑问题不够重复,编码实现太复杂,需要在对数据库表重新设计,返工很多遍。在开发过程中,看到同伴们在努力的开发自己也埋头苦干,最终实现了仓库在线管理系统。
本次使用Java技术开发的仓库在线管理系统,就是运用计算机来管理仓库物品出入库信息,该系统是可以实现物品管理,出入库管理,公告管理,供货方管理,员工管理等功能。符合设计预期。
经过整体的开发了解,发现了仓库在线管理系统的不足之处,首先第一点就是开发人少,时间短,属于练手项目,所以很多实际生活中可能遇到的问题并没有考虑到位,比如数据的冗余,大数据并发等,这些都是没有考虑的,在以后的日子里将会对技术方面精益求精,不断修复仓库在线管理系统,让仓库在线管理系统更强壮。

参考文献

[1]宁雪梅.仓库管理系统数据库设计与实现[J].大众标准化,2021,(16):139-141.
[2]骆海东,马卫清,梁丹.面向零售电商的仓库管理系统设计[J].现代信息科技,2021,5(02):27-31.
[3]闫嵩.新时期计算机软件开发中Java语言的应用[J].计算机产品与流通,2019(11):18.
[4]张金波.Java编程中常见的异常及其解决方案[J].计算机产品与流通,2019(12):29.
[5]彭影.优化Java数据库访问效率的策略研究[J].计算机产品与流通,2020(02):21.
[6]赵昕.软件工程思想在JAVA程序设计教学中的应用[J].计算机产品与流通,2020(02):201.
[7]赵荣彪.JDK1.8新特性与编程性能[J].信息技术与信息化,2021,(05):145-146+150.
[8]陈永青.浅析JDK1.7中的Fork/Join框架[J].中国新通信,2016,18(19):94-95.
[9]唐大仕.引入JDK源码学习的Java程序设计实践教学[J].计算机教育,2015,(07):40-42.
[10]李金萍,程满玲.Eclipse的应用发展[J].电脑编程技巧与维护,2016(16):31-32+58.
[11]黄雅琼.数据库设计在网站开发中的应用[J].科技风,2018(11):44.
[12]王会芳,武变霞.Web数据库软件开发中的自主适应设计[J].电子测试,2018(17):82-83.
[13]张赟.计算机软件开发的数据库测试技术[J].电子技术与软件工程,2020(17):150-151.
[14]Xuan Yin,Wei Zheng,Ming Zhang,Jing Zhang,G.Zhuang,T.Ding.A modularized operator interface framework for Tokamak based on MVC design pattern[J].Fusion Engineering and Design,2018.
[15]Oscar Rodriguez-Prieto,Francisco Ortin,Donna O’Shea.Efficient runtime aspect weaving for Java applications[J].Information and Software Technology,2018,100.

致 谢

仓库在线管理系统的完成,经过测试发现符合设计预期的时候,心里感觉压着的石头去掉了,身心愉悦,半年时间一晃就过去,感觉时间过得飞快。突然想到这就要毕业了,毕业设计也完成了,有点惶恐,这里有我尊敬的老师,亲爱的同学们,在学校里真的很感激有他们的陪伴,这几年的校园生活才不至于孤单。
首先感谢我的学校,让我有学习的地方,有吃饭的地方,有住宿的地方,在学校里可以静下心来专心学习。
其次感谢我的导师,导师的作用在于指导,是与我们的其他老师有区别的,其他老师都是教给我们知识,让我们在知识的海洋里遨游,而我们的导师是我在知识海洋里的灯塔,照亮我前进的道路,让我理解如何用自己学校的知识武装自己的头脑,如何把这些知识融会贯通,实现真正的有用,可以看得见摸得着的作品,没有我的导师,就没有我现在的这个作品的出现,所以相当感谢我的导师。
再次感谢我的同学们,当我学习太累的时候,看到他们依然在努力,我会把想要偷懒的心压下去,他们能,我也能,有他们在,我也去掉了很多偷懒的行为;在我开心的时候,有他们一起分享;在我为设计开发挠头的时候,发现他们也有点挠头,我的心里更加的平静,不会过于急躁,可以静心逐步开发。我相信,他们应该也是这样想我的。大家一起学习,一起努力,一起奋斗,感谢我的同学们。
最后感激我的其他专业授课老师们,虽然与他们的缘分只有课堂上,但是还是感谢有他们的付出,才有我们的收获。
最后,我感谢所有值得感谢的人们,谢谢你们!

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

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

相关文章

OpenCV-Python(23):傅里叶变换

原理 傅里叶变换是一种数学变换,用于将一个函数(在图像处理中通常是图像)从时域(空域)转换到频域。它将函数表示为一系列正弦和余弦函数的和,用于分析信号的频率和相位信息。 傅里叶变换的原理是将一个连续…

【iOS安全】JS 调用Objective-C中WKWebview Handler的三种方式

有三种实现途径 1. WKScriptMessageHandler OC部分:注册并实现Handler 将OC中的方法"nativeMethod"注册为JavaScript Message Handler,从而WebView中的JavaScript代码可以调用该方法 // Register in Objective-C code - (void)setupWKWebVi…

No Magic—复杂机电产品系统架构开发套件

产品概述 CATIA Magic,原名MagicDraw,俗称No Magic,被达索收购后融入3DExperience产品协同研发管理平台中,形成更具协同体验的系统工程解决方案。该软件提供对SysML/UML/UAF语言的完整支持,提供独有的MagicGrid方法论&…

5分钟了解接口测试

接口测试是指对系统接口进行测试的一种质量保障手段,主要是验证接口的功能、性能、安全性等方面是否符合预期。 在接口测试中,可以测试以下内容: 功能测试:验证接口的输入和输出是否符合预期,包括参数的正确性、返回结…

【无标题】idea的lombok插件支持@SuperBuilder注解啦

在我的博客阅读本文 1. 前言 今早进公司打开idea,弹出更新提示,简单看了下,原来是idea的lombok插件更新了,惊喜的发现update log上写着Add support for SuperBuilder。 为什么说是惊喜呢?因为之前也有用到这个的场景…

Go后端开发 -- Go Modules

Go后端开发 – Go Modules 文章目录 Go后端开发 -- Go Modules一、什么是Go Modules?二、GOPATH的工作模式1.GOPATH模式2.GOPATH模式的弊端 三、Go Modules模式创建项目1.go mod命令2.go mod环境变量3.使用Go Modules初始化项目4.修改模块的版本依赖关系 四、Go Modules下impo…

数据库:基础SQL知识+SQL实验2

(1)基础知识: 1.JOIN(连接): 连接操作用于根据指定的条件将两个或多个表中的数据行合并在一起。JOIN 可以根据不同的条件和方式执行,包括等值连接、不等值连接等。 (1&#xff09…

SAP BAPI 客户主数据创建:cmd_ei_api=>maintain_bapi

BAPI函数:cmd_ei_api>maintain_bapi 事物代码:XD01/XD02 客户主数据创建、修改、拓展功能开发 数据结构定义: 基本视图信息 公司代码信息结构: 销售视图信息结构: 客户主数据税分类信息结构: 代码参考 详细代码…

C++面向对象编程与泛型编程(GP)

C既支持面向对象编程,又支持泛型编程 1.面向对象编程 将数据结构与处理方法(容器与算法)组成对象封装在一个类中,通过类的封装隐藏内部细节,可以使用继承,多态等方法。 注意:list容器本身带有…

计算机毕业设计——SpringBoot 招投标 任务发布网站(附源码)

1,绪论 在市场范围内,任务发布网站很受欢迎,有很多开发者以及其他领域的牛人,更倾向于选择工作时间、工作场景更自由的零工市场寻求零散单子来补贴家用。 如今市场上,任务发布网站鱼龙混杂,用户需要找一个…

CH341StreamI2C参数解释

总体思路: 第一步:使用EEPROM写入相应的数据 第二步:使用EEPROM读取相应的数据 第三步:使用CH341StreamI2C函数还原读取过程 每一步需要逻辑分析仪进行对比。 第一步:数据写入CH341WriteEEPROM 使用CH341WriteE…

性能测试之Mysql数据库调优

一、前言 性能调优前提:无监控不调优,对于mysql性能的监控前几天有文章提到过,有兴趣的朋友可以去看一下 二、Mysql性能指标及问题分析和定位 1、我们在监控图表中关注的性能指标大概有这么几个:CPU、内存、连接数、io读写时间…

【网络安全】【密码学】常见数据加(解)密算法及Python实现(一)

一、Base64编码 1、算法简介 Base64是一种常见的编(解)码方法,用于传输少量二进制数据。该编码方式较为简短,并不具有可读性,对敏感数据可以起到较好的保护作用。 2、Python实现(调库) &…

每日一道算法题day-one(备战蓝桥杯)

从今天开始博主会每天做一道算法题备战蓝桥杯,并分享博主做题的思路,有兴趣就加入我把! 算法题目: 有一个长度为 N 的字符串 S ,其中的每个字符要么是 B,要么是 E。 我们规定 S 的价值等于其中包含的子…

C++模板(泛型)

1. 模板 1.1 知识点 模板:template 泛型编程: 是指数据的类型是广泛,任意的数据类型 模板:可以将一个函数或类描述成一个模板,例如:画画,给一个人物模型上色彩,根据用户上的色彩是什…

Bean如何诞生与消亡:生命周期探秘【beans 二】

欢迎来到我的博客,代码的世界里,每一行都是一个故事 Bean如何诞生与消亡:生命周期探秘【beans 二】 前言bean的创建过程bean的初始化阶段1. 实现InitializingBean接口:2. 使用PostConstruct注解: bean的属性注入1. Set…

视频倒放软件,看视频如何演绎“逆袭”之旅

你是否厌倦了日复一日的平淡生活,渴望时光倒流,重温那些逝去的精彩瞬间?在数字技术的世界里,这样的愿望或许不再遥不可及。视频倒放仿佛让时光倒流,给我们的视觉带来了全新的冲击,今天,让我们一…

新手第一次在linux上用git上传代码到仓库全过程

目录 背景: 过程: -1.去github.com自己的账号先建个仓库repository 0.命令行输入 git version 看下有无安装git 1.git init 初始化了一个Git仓库,你可以 ls -a 看见这个隐藏的目录 3.git add . 添加要上传的文件到Git的暂存区&#xff0…

windows对微信及小程序抓包:Burp+Fiddler+Proxifier

本文由掌控安全学院 - zbs 投稿 话不多说,直接先上个效果图: 新新的版本哈; 好好的抓包哈; 然后直接说我如何配置的: 准备好三个工具:bp、fiddler、proxifier【也可以用其他的进行代理】 bp、proxifie…

ELement UI时间控件el-date-picker误差8小时解决办法

一、问题描述&#xff1a; 在项目中引用了elementui中的date-picker组件&#xff0c;选中的时间跟实际相差八小时&#xff0c;且格式不是自己想要的格式 <el-date-pickertype"date"placeholder"选择日期"format"yyyy/M/d"v-model"form…