【基于BS架构的库存管理系统的设计与实现18000字(论文)】_第1页
【基于BS架构的库存管理系统的设计与实现18000字(论文)】_第2页
【基于BS架构的库存管理系统的设计与实现18000字(论文)】_第3页
【基于BS架构的库存管理系统的设计与实现18000字(论文)】_第4页
【基于BS架构的库存管理系统的设计与实现18000字(论文)】_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.绪论在当下这个时代,随着计算机技术的不断更新迭代,社会经济也在不断取得进步和发展,在日新月异的今天每个行业的每个公司都在面临着不同的难点和痛点,尤其是我国的制造类企业。在这个发展极其迅速的时代为了能够生存并获得突飞猛进的发展,就必须牢固地紧跟上这个时代的前进脚步,积极地拥抱社会变化。在这个以计算机技术为核心的应用类技术急速变化更新的年代里,物品的存储管理技术也变得比之前更加智能化、更加方便和高效。因此拥有一个运转良好的仓库和相配套的库存管理系统是生产加工累企业生存下来下去的关键所在。仓库作为一个存放物品的地点,是我们企业都必须认真对待的,不能发生偏差和损坏。货物是一个个企业获得发展的基本保障,从这个点出发企业必须要保管好自己企业的货物,使货物不遭受损失,才能在这片竞争激烈的市场环境中获得生存和发展的机会。本篇论文和本系统就是基于这样的一个观点引导下,从而进行编码完成了一个在功能使用上基本能满足企业实际生产管理需要的系统,也就是本文所要介绍的库存管理系统。1.1系统背景在21世纪的今天,不断发展和更新迭代的科学技术,我们能够看地比较清楚明白,我们在这样的一个时代,我们所接触和将要使用的物品都将变得更加智能化。到现在为止,在我们生活的周围你可以随处见到各种各样的智能化管理的系统[7]。企业得以活下来并活得更好的根本就是这个企业所拥有的商品,仓库作为企业用来保存商品的重要地方。从以上观点我们可以得出,对于企业来说,一个管理良好的仓库在其中扮演者非常重要的角色。总而言之,一个成功的企业必定会有一个好的仓库,但是一个好的仓库没有一个合理的管理系统是不完美的[7]。但是一个简单的、不能够把数据更快速实时更新的的库存管理的系统已经不适合,因为它不具备信息共享这样的一个功能点,除了这一点之外还也不能够为解决货物的正常运转中所遇到的疑虑提供改造看法,并且还不能保证企业的资源正常运转、发挥出它最优的价值点;还有一些在维护时不管是在维护上还是在二次开发上都太困难了,注定是要被抛弃和更换的。从这个观点和看法来说,如果拥有了一套较为现代化的仓库管理的系统,作为企业,就会比以前很大程度上的提高了企业的生产效率,降低了仓库使用过程中消耗的人力、物力成本,进而有效地大大提升了物品的周转速度。1.2开发目的仓库在企业发展过程中发挥着巨大的作用,尤其是我们制造业类企业,拥有了一个比较完善的库存管理系统能够使的企业在市场中获得巨大的发展的优势提升点。随着企业发展,产业链的增加,企业中的商品总是在不断地更新变换的,仓库中的物品也是在同样的保持着同步的更新频率。在这个不能确定的情况下,物品就不得不时刻不停的被记录、被保存和被改变信息状态。在传统的人工记录那个年代,找一个物品需要很长的时间,而且保密性也不高等各种各样的问题。因此,企业想活下去并且活好,必须淘汰这种老的、旧的、人工记录的方式。现代化科技的不断提升和进步,全球各地已经有了很多的拥有智能系统的大大小小的设备,电脑在我们生活中也经常看到了,这给我们的生活带来了和之前不一样。我们都知道,与之前的人工管理技术相比将计算机这一技术应用在管理仓储上具有更加先进、方便的优势。在以上这些社会需求和技术快速发展和提升的背景之下,本人决定进行开发这样一个基于B/S架构的库存管理系统。这个系统能够实现对货物的出库与入库记录、库存管理和发货处理进行行之有效地管理。与此同时,这个系统代码量比较少、维护起来比较简单,和之前相比能够使用少的很的人力物力,对企业中物品的库存管理是有利的,能提高物品的周转率,减少库存消耗。1.3开发工具1.3.1EclipseEclipse是全部开源的、用于开发基于Java进行开发系统软件的开发工具。Eclipse这款软件它主要的优势点在于有它自身带有的标准化组件集合,含有提升Java语言的主要开发工具运行环境JavaDevelopmentKit(简称JDK)。Eclipse具有较为完善的java开发环境资源,主要包括有提供给用户超强编码生产力的主题功能、能够提供给操作者绝佳的调试功能插件、应用程序的部署能力与测试功能插件等,并且支持了Spring、Hibernet、Struts、Mybatis、JSP、maven、SQLPlus、springboot等一系列的集成框架。1.3.2Oracle Oracle是甲骨文公司这家公司的名字,是当今世界最大的进行研发企业级软件开发公司其中一个,这家软件公司的总部位于大西洋另一边的美国加利福尼亚州这个州的红木滩地区。在1989年正式进入中国市场,在21世纪的第十三个年头里,IBM就被oracle超越,oracle也成为在全球第二大的软件公司,名次排在microsoft之后,最有名的产品是DB、database、RDBMS等关系型数据库系统。1.3.3PowerDesignerPowerDesigner是在数据库使用表的设计这样一个过程中作为数据库模型的主要的建模工具,运用这个工具的最有价值和高效的亮点就是能够更加快捷并且方便地设计以及开发库存管理系统所需要的数据库表和构造,在这个数据库开发中所用到的模型与需要的数据流程基本全部都可以用它这个工具实现。1.4相关技术介绍1.4.1JSP技术JSP使用起来极其具有灵活性的特点,可以用来便携JAVA程序进行运行,在用户看来是完全不可见隐藏的。本技术还可以用来将一些编程的动态的网页语言写法进行包装起来,在浏览器的显示上,用户是不能轻易看到具体的实现逻辑的。网页还可以访问和调用一些后台的java逻辑应用,这些节点能够在服务器端的进行访问和组装不同样的文件资源进行显示。JSP技术还可以分离网页的后台逻辑处理与网页的显示,使之在呈现效果上分成不同的部分,从而达成我们的设计效果。对于一些基础的组件,这些组件是可以重复的、供其他功能调用,jsp技术在开发过程中可提供自己的特点,这对基于B/S这一个架构的应用程序进行设计,更加人性化和更具可扩展性。在现今,不断更新的计算机技术,也带来了Web页面的显示技术不断的更新迭代,产生了各种各样、不一样的能够用来解决动态页面的生成问题和让我们看到的技术和方法,目前用于生成动态网页的技术有PHP、ASP、CGI及JSP。JSP这一项创新性的技术为创建动态网页提供了更加方便快捷的方法。JSP是JavaServerPage的缩写,在20世纪最后一个年头的6月由Sun公司推出的一项新技术。这项技术由Sun公司主导,在采取了了一些在电脑的软硬件、通信、数据库等领域的多位专家的建议基础上,一起合力制定出来的一种动态网页技术,这项技术是基于Java与Web的。1.4.2JavaScript技术JavaScript语言是一种简单的、直译的脚本语言,属于动态语言的一种,是一种弱种类型语言,用于客户显示,提升客户在操作上的体验。JavaScript这个语言的引擎是他的解释器语言,在浏览器中被保留和使用,是一种弱脚本语言,经常用在客户端浏览器,最开始阶段经常在HTML写的网站网页上面经常使用,主要的功能是为静态静止的HTML页面增加动态的显示功能。为了能够将规格进行统一,并且也正是因为它兼容了ECMA这一标准,那么JavaScript也经常被叫做ECMAScript。JS的技术特征有以下7点:脚本语言解释性语言弱类型语言事件驱动动态性安全性跨平台性(兼容性)。1.4.3TomcatTomcat并不仅仅是一个简单的APPServer,在传统的web服务功能上,它与一些传统的Web服务器相比,也一样存在。可是与Apache相对比,在处理静态的HTML的能力上tomcat就太差劲了。从这一点上来讲,我们可以考虑把Tomcat与Apache做成组合,让Apache处理HTML静态显示,Tomcat处理JSP界面还有Servlet逻辑预算结果,这种集成改改Apache和Tomcat的配置文件就大功告成了。传统的AppServer这一类服务器的功能,比如像JNDI,像数据库连接池和用户事务处理等等,tomcat进行了保留和提升。Tomcat还有好多新颖的、独特的、其他的一些特征点,比如与SSL相结合,实现了操作数据的安全传输。JSP和Servlet的开发以Tomcat服务器中间件为基础,JSP与Servlet的开发也较为简单,没有那么高的门槛,常用的文本编辑器、IDE都是可以进行开发,然后把这些东西使用压缩软件压缩为成WAR包的形式的就可以了。1.4.4软硬件需求硬件需求:CPU:Pentium以上计算机内存:512M以上软件需求:操作系统版本:vista/Win7/Win10开发工具:MyEclipse6.0.1后台服务器:ApacheTomcat8.0开发语言:Java浏览器:F6.01.5可行性研究分析系统项目一开始就先进行可行性分析能够让系统以可控制的最低的开发成本来得到经济利益的最大化。可行性分析目的是根据所开发系统的用户需求,明确研究方向,明确目标[1]。对要设计实现的仓库管理系统在技术层面、经济层面、操作层面、法律层面进行不同方面的可行性研究调查,这样既能够保证信息资源的合理利用,也能够避免在设计程序过程中因失误而导致的系统错漏问题,协助我们对设计做出更加合理和可惜的抉择[6]。一个软件系统如果要完成设计,都或多或少受到时间、空间以及经费上的约束和限制。从这个点出发,在开始设计时,我们就必须要对这个系统进行可行性需求的相关分析,只有这样才能够减少开发这一项目所带来的不利局面和弊端,也可以减少人力、物力以及财力方面的消耗。在这篇文章中我们对库存仓库系统做技术层面、经济方面、系统点和发展方面的可行性研究分析。当前对系统进行可行性研究部分的主要目的是为了探讨当前系统开发的必要性、增长点和可以实现性。在这个阶段我们将主要是从经济、技术、操作和法律等五个不同维度的可行性来讨论项目的必要性。1.5.1系统目标可行性分析本库存管理系统在开发过程中时间消耗上短、经费耗费有限,在系统开发完成并成功上线后能充分帮助库存管理人员有效管理货品的类别、数量,可以对商品的种类、出入库时的数量、还有时间等等各个关于商品的信息进行查询。管理员可灵活根据库存量合理调配商品信息,这也对维护供应商之间的关系提供了很好的助力作用。1.5.2系统的经济可行性仓库管理系统是基于B/S框架,利用Java、JSP等技术进行开发,采用的软件也都是开源的,这样既可以减少大量的能源和资源,降低开发系统的使用成本,又可以提高设计的作用,因此系统在开发中对人力、财力等方面的要求不高,具有经济可行性。1.5.3系统的技术可行性这个库存系统的开发有前端程序和后台逻辑处理的结合、连接数据库以及数据库的开发和维护。对于应用程序的开发要使用的技术必须简便易用、并且要能够提供系统所需要的各方面的功能,而对于数据库方面,本系统将要使用的数据库必须是一个完整的、不间断运行的,能搞保证保存的数据必须要可靠、完备。在学习期间通过对软件工程和软件测试以及UML统一建模语言等课程的学习让自己个人对系统更加深了深刻的了解,同时也能够通过使用这些课程学到的开发技术和能力对当前系统进行更加快速地设计、开发。这是一个较为简单和容易操作上手的数据库管理查询系统,这个系统对运行的环境、硬件、软件要求不是很高,在用户实际操作上也较为简单,可以运用我们所学和了解的技术实现系统的功能改造点。1.5.4系统的法律可行性当前这个库存管理系统纯粹是由个人单人完全设计开发的管理系统小型软件,开发系统所用到的编辑器软件、开发这个系统所采纳使用的技术以及使用的数据库程序的源文件都是开源的。综上所述,与普通的系统软件设计相比,我们这个系统进行开发存在很大的不同之处,不存在有侵权等一系列的问题,在法律层面的可行性也是完全具备的。从以上4点分析可以得出,设计这样一个库存管理系统能够提高管理效率,用户操作简便快捷,可以降低成本,是可行而且是必要的。2.软件需求分析系统项目开发的首要阶段是对要开发软件的需求进行分析和论证,这个阶段在软件开发生命周期中占据着重要的作用,其地位也是不言而喻的,确定最终使用人对软件的需求是这当前这个阶段的主要任务。软件项目的开发成型是以需求分析为基础的,它确定了软件系统要做哪些不同方面的内容,具有什么样的功能和性能,哪些约束条件需要满足等。在这个阶段经过用户不断分析论证最终确认的结果,能够影响我们在后期的软件开发过程中功能的具体实现。2.1需求分析作为系统开发的首要步骤的需求分析,对我们将需要进行开发的软件系统整体性能和功能影响深刻,后期的开发都是在此分析基础上进行,我们必须引起重视。对系统的诸多可行性、运行性能和软件功能等方面进行具体的、详细的、站在用户角度的使用分析,这是系统需求分析最重要的部分。不合理的需求分析,会使系统的开发环节出现许多错误和走许多弯路,导致系统开发时间长,效率低,系统质量受到影响[8]。2.1.1用例图我们将库存管理系统分为了两个不同种类的用户角色来运作,即库存管理员和普通用户。管理员对自己个人的管理、普通用户的管理等不同模块共同组成了当前库存系统的整个的用户的用例功能模块,管理员模块的主要功能包括查看库存和修改信息,除此之外还包括对普通用户进行管理、更新产品的入库和出库操作、产品信息修改等多种不同功能,如图2-1所示为仓库管理员用例图。图2-1管理员用例图用户模块的功能主要有搜索仓库的库存信息、查看当前登录人信息以及修改用户信息等等功能,如下面这张图2-2所示为普通用户的用例图。图2-2客户用例图2.1.2类图库存管理系统中存在三种不同但相互交叉的类图:系统操作管理员、系统使用客户、还有库存商品。如下图2-3所示为库存管理系统的三个不同类之间的类图关联关系。图2-3系统类图2.2功能需求分析1、登录验证功能:为了保证仓库管理系统信息的使用上的安全性,进入系统过程中需要首先对当前用户进行验证身份信息的操作,在如果验证没有报错的情况下就可以成功进入当前系统,在如果用户名或者密码无法正常匹配将返回错误的情况下提示要求重新输入信息进行再次登录。2、管理员功能:该功能是为库存管理系统的管理员角色提供的功能,该功能能够对系统中的所有用户进行增加、修改、删除等等操作,能够增加新用户,也可以对已经添加的用户信息进行修改和删除等操作。3、普通用户查询模块:这是一个提供给客户的用户的功能,用户可以使用该功能通过输入不一样的的条件进行筛选、过滤查询客户信息,也可以修改客户自己的信息。4、查询管理商品库存:系统管理员和客户在登录系统后均可以看到这个功能模块,通过该功能客户能够查看商品、对商品进行入库以及出库等操作体验,通过这个功能都可以查看当下时间的物品在仓库中的信息。5、管理用户信息:该项功能是仅仅提供给用户管理员的功能,管理员可以对自己的客户信息进行不同的操作,可对客户新增或者对已经存了很久的客户信息进行维护,修改登录、名字等等。2.3业务流程分析库存管理系统主要有两个用户功能体系,正如下面的描述这是两个功能所实现的功能流程。2.3.1管理员模块业务流程系统可以通过验证管理员输入账号和密码正确后将系统对其放开,登录到系统之后看到的功能主要是对物品的信息管理、对客户的信息进行管理,主要的流程如图2-4所示。图2-4管理员程序流程图2.3.2客户模块业务流程分析管理员可以通过输入账号和密码并经过系统后台验证之后不报错进行登录,登录后的功能主要是对用户信息的管理以及物品信息的管理,我们可以看到主要的功能有用户信息的查看、修改以及查看当前仓库存有的商品等功能点。业务流程图如下图2-5所示。图2-5客户程序流程图2.4数据流程分析2.4.1顶层数据流如图2-6所示是我们当前系统的顶层数据流图。图2-6顶层数据流图2.4.2一层数据流图库存管理系统的第一层数据流图,主要包括仓库内物品信息的管理和操作系统的用户信息的管理。商品的管理,主要包括用户对商品的入库、查询、入库等不同系列的分支处理。用户管理,用户管理员可以对用户的信息进行添加、删除、更改和查看等操作。详细流程图如图2-7所示。图2-7一层数据流程图2.4.3二层数据流图库存管理系统的第二层数据流图,主要包括的功能点有用户的注册和登录数据流转,产品入库以及出库等不同的数据流向。如图2-8所示是用户注册模块数据流图:图2-8用户注册功能的数据流图如图2-9所示为用户登录功能的数据流图:图2-9用户登录功能模块的数据流图如图2-10所示为商品入库功能模块的数据流图:图2-10商品入库模块如图2-11所示为商品查询功能模块的数据流图:图2-11商品查询模块如图2-12所示为商品出库模块的数据流图:图2-12商品入库模块2.5数据字典分析2.5.1数据存储条目文件名称:库存系统用户信息表数据组成:当次注册的用户+之前注册成功的用户组成方式:这是索引类型的文件,以用户名称为主要的索引范围文件名称:库存系统物品库存表数据组成:当次操作新入库的商品+以前入库的商品组织方式:索引文件,以仓库中的物品编号为索引范围2.5.2加工条目加工程序名称:系统的商品存储处理逻辑编号:无输入内容:物品的信息输出内容:系统的库存信息表加工程序名称:商品的入库处理逻辑编号:无输入内容:物品的信息输出内容:系统的库存信息表加工程序名称:商品的出库处理逻辑编号:无输入内容:物品的信息输出内容:系统的库存信息表加工程序名称:用户信息存储的处理逻辑编号:无输入内容:用户的信息输出内容:系统的用户信息表加工程序名称:用户查询处理的逻辑编号:无输入内容:用户的名输出内容:系统的用户信息表加工程序名称:用户信息验证的处理逻辑编号:1.1输入内容:用户的信息输出内容:系统的用户信息表加工程序名称:验证用户是否存在的处理逻辑编号:1.2输入内容:用户的名输出内容:系统的用户信息表加工名:录入用户信息的处理逻辑编号:1.3输入:用户的信息输出:系统的用户信息表加工程序名称:登陆系统时的信息验证的处理逻辑编号:2.1输入内容:用户的名、密码输出:系统的用户信息表加工程序名称:个人信息查询的处理逻辑编号:2.2输入内容:用户的名输出:系统的用户信息表加工程序名称:审查商品信息的处理逻辑编号:3.1输入内容:商品的名称输出内容:系统的商品信息表加工程序名称:验证当前操作商品是否为新的逻辑编号:3.2输入内容:商品的名称输出:系统的库存信息表加工名:录入商品的处理逻辑编号:3.3输入:商品的信息输出内容:系统的库存信息表加工程序名称:查询商品的处理逻辑编号:4.2输入内容:商品的名称输出内容:系统的库存信息表3.软件总体设计对软件系统的进行设计的操作在实现软件的开发过程当中占据着相当大的比重。本章将主要介绍一下仓库管理系统的总体结构与系统的架构[2]。当前这一节的作用主要是用来介绍每一个应用数据模块之间因这个系统的业务交互从而产生关系,这些产生的关系像蜘蛛网一样的错综复杂,数据库的设计主要是用来说明了创建的不同表与数据保留之间的相干性。基于基础的、可复用的模块,我们设计了软件的架构,通过在前期的分析阶段得到的数据流向图,在这个基础上,我们设计了软件架构。分析人员要从提供的众多方案中选出几个不同的设计方案,然后再进行分析、筛查,选出一个合理的、大家都接受的方案。对于复大型系统而言,系统复杂必须要分解功能模块,为确定软件架构,把复杂的功能分解为简单容易处理、可量化、可逐步提交验证的功能点,然后再进行软件架构的设计。最终制定出测试计划,书写软件架构设计文档并提交复审。3.1软件架构设计原则软件总体设计的任务是对软件的架构体系进行设计与对软件进行模块化设计。3.1.1软件的架构体系软件系统中可以说打地基的是软件的体系架构,绝不为过。必须要做遵循的设计准则如下:架构抽象。在一定时间内维持稳定。普通、高效、稳定。3.1.2软件模块设计原则软件开发过程中,最关键的是对软件进行模块化式设计,要遵循下面这些总则:降低模块间的耦合性,提高模块内的内聚性。控制模块的作用范围。简单设计接口。功能可验证。合理划分,保持独立。3.1.3软件的模块化程序的基本构件是模块。模块作为软件架构的基础支点,作为一种软件元素,是能够单独命名的、能够独立完成一定功能的程序语句的集合。模块化,能够使得软件具备这样一种解决复杂问题的特点。模块化的使用是为了大幅度的降低软件在设计上和开发上的复杂性,从而对软件的进行设计、维护、以及测试更加简单。使用模块话技术还能够缩小错误蔓延的范围,借此可以来提升软件质量,使系统更具可靠性。3.2系统任务概述一个成功的网站应明确为什么要建立这个网站,确定网站所拥有的功能,明确网站所有的规模、投资花费的费用等[8],只有经过详细的策划,才能够免去在网站的建设中出现的很多问题网站的建设才会顺利[4]。在实现具体过程中,我们首先要考虑下面几点要求:安全性。在现代社会,用户信息是一切的重中之重,再怎么强调信息的安全性都不为过。软件系统的最需要具备的一点就是在任何情况下都要确保用户信息的绝对可靠安全。先进性。紧随当下最新的技术,开发的系统要符合用户的功能需求。可扩展性。模块化设计,提高了可扩展性,并可随具体使用,灵活对服务器进行增减。有效性。我们都知道的是,这其中包括有用性和可用性两个不同的方面。有用性,指系统能满足了用户潜在需求的功能,而可用性指的是通过对网站的操作,用户得到的系统的体验功能。所以,满足用户的需求,是我们在对系统的功能进行开发的出发点。3.2.1系统的功能设计库存管理系统主要分为主要是系统管理员与用户两个不同的用户角色,两个角色所拥有的权限和职责如下:1.管理员管理员可以通过帐号和密码进行登录,校验登录信息正确后,登录到系统后的功能主要是对用户信息和库存信息的管理,可以操作的功能主要包括如下:商品的出入库、库存产品的搜寻操作、搜索查看修改客户的信息等操作流程。2.普通用户普通用户可以通过注册登录成为系统会员,注册成功后可拥有包括系统首页显示、库存搜索、个人信息、退出系统等不同的功能点。3.2.2系统功能结构我们根据前面的详细探讨,得出的系统架构图如下图3-1所示。图3-1系统总体结构图3.3系统架构我们都知道这样一个事实,即B/S系统对客户机的改动做的优化和调整是十分巨大的,服务端来执行对数据库的访问和执行应用程序。基于这样一个共识,使用http浏览器技术是B/S架构的主要访问手段。因此,在B/S架构基础上,安装软件、修改软件与对软件进行维修,只需要在服务器端进行就可以了。用户在访问我们这个软件系统时,只需要任何一个能够联网的浏览器就可以了,鼠标点击就可以访问和操作我们这个系统所有的功能模块。我们可以在影响用户操作最小的情况下,将系统进行更新升级。B/S架构也有一个均质机,网上异构网络,异构应用服务的联机[10]。3.4系统主要子模块设计在分析了软件系统的功能的设计的基础之上,再根据实际使用按照功能区分将系统小模块分割,这就是系统的模块化。3.4.1用户登录子模块设计用户登录数据的验证在系统的操作上流程相对比较简单,可以这样来解释:用户在触发了登录流程时,在登陆界面,用户名与密码是要求输入的,点击提交后系统传送这些数据至服务端。服务端处理接收到的数据,首先将内容分离,然后再核对数据库中保存的信息是否与之匹配。如果两者完全对应则进入系统的登录首页;若数据对应失败则给出错误信息,提示用户进行修改信息。3.4.2商品入库子模块设计申请人向库存管理员提交入库申请单一份,该文件要求和实际货物匹配对应,库存管理员将进行对比。若存在差异,则不同意将货物进行入库操作;如果发现系统内有这个商品信息,还必须要考虑增加的数量与现存的数量之和是不是超过最大保有量,若超过则需要等待,暂时停止入库操作;若没有超过,管理员则执行入库。如果该库存中缺失,就要重新添加,并计算最大保有量,若实际入库量超过则暂时停止入库操作。存入仓库的操作完毕之后,库存管理员需要给申请人开具准确严谨的货物入库单。完成物品的入库流程。3.4.3商品出库子模块设计申请人向库存管理员提交产品出库申请单,用来出库。若申请单经确认后没有效力,则不能完成出库。对真实有效的出库单,库存管理员再查询该货物的信息和库存量。如果库存量无法达到所需要数量则取消出库操作。如果此货物的库存量达到或者超过所需要的数量,可以执行出库操作并进行记录。随后库存管理员给该申请人开具物品的出库单据,完成物品的出库流程。3.4.4用户注册子模块设计系统中用户登录验证相对简单容易:在用户注册时,需要在注册页面各框中输入用户名、密码等等一系列的信息,系统会将这些用户填写的信息提交到服务端程序进行验证。服务器端处理程序时,服务端会根据提交的内容将数据按照判断规则对数据进行校验。如果在现存的数据中没有记录所注册的用户名时,系统会将信息进行注册到表中;当提交用户的信息存在留空的情况系统将显示相应的错误信息。尤其是在进行注册邮箱时时,若输入的邮箱格式不符合规范时时,系统将给出相应的信息要求。当输入的信息完全符合系统设立的规则和要求时,则可以将当前数据注册成功。。还可以选择清空当前已填写的信息,重新注册用户信息。4.数据库设计在软件系统的开发过程中,数据库表的设计、数据如何存放的设计有着不可替代的作用,没有数据,系统也将不存在了。设计并反映出某个系统对数据应用和存储的要求作为数据库设计的主要目标。以前期做好的需求分析内容为基础,我们能非常方便的设计出数据库抽象概念模式。在普遍的应用场景下,E-R图是我们通常用来表示数据相关性的数据库表设计模型。在目前这个阶段,系统的终端用户可以参与进我们的设计中来,集中所有人的奇妙想法为数据库系统的设计出谋划策,这也就保证了数据库系统的设计是在满足了用户的基础上设计而来的。4.1数据库概念在用户指定的独特环境之下创建软件系统与数据之间的相关性,这是数据库设计的目的,在此基础上,设计软件的目的是提高操作人员的管理效率。一个网站中最不能缺少的就是数据库,原因在于用户访问网站的过程中都产生不同的数据,网站会保存这些数据,并存在一个文件里面。可是在实际的网站建设当中,这些文件所能保存的数据往往是不够的,无法满足各种数据的需求[5]。正因为如此网站的建设只有拥有了与之对应的数据库才算有了一个完美网站的雏形。在本文中,我们选择的数据库是ORACLE。它能够用表结构的方式将之前用文件保存的数据进行储存,并且保证同一权限下的不同用户也能访问到这些数据,减少了海量数据的拖沓和冗余,在数据存储、读取上的速度也与之前相比有很大层次的飞跃和提升。4.2数据库分析在数据库中用数据模型的形式存储数据的方式,我们常说,是它搭起了数据库的基础框架。数据模型的发展历程主要有一下3种:1、层次模型:这是使用最早的模型,它的数据的结构是被称为有方向的树。2、网状模型:通过一种类似渔网的构造来表示不同实体类的关系。3、关系型:二维表是组成的基本的数据构造。4.2.1数据库的完整性分析数据库的完整性,指数据能够包容般和准确的存在。在本系统中我们定义了表之间的相干性能够帮助我们实现系统的完整性,具体要怎么做,做哪些内容则要在具体的编码程序中完成。完整性约束能够一定程度上被存入一些不符合要求的数据,以此来保证所有保存的数据的有效合法。4.2.2数据库的安全性分析我们都知道,数据库安全性的指标是够在任何情况下都能保证数据的完整、合法还有安全有效。我们这个系统安全的重要性能指标是数据库和服务器在任何情况下的都要保证安全。在服务器端的数据库中通过校验管理员信息的方法实现安全。在登录数据库过程中,系统让管理员户选择当前身份,管理员角色不同权限也不同。服务器的安全也是通过判断用户在登录服务器时输入信息是否与数据库中的信息相匹配来验证的[3]。4.3数据库的设计4.3.1概念结构设计总所周知,我们一般都会采用E-R这一方法来在次级结构中使用。在次级结构设计中,以下几种方法较为常用:自下往上、自顶向下、逐步扩张、相互结合,以这种方式为模型然后分别实现各个结构更加详细的数据模型。在以实物为主的物理阶段设段我们要分成两步来走:确定数据库的物理结构,表明怎么保存数据。选择最合适当下系统的数据存储方式。以系统的需求作为出发点,并且把象用数据流的方式表现出一割完整的抽象类。E-R图为主要的工具,如下图4-1。图4-1系统E-R图4.3.2逻辑结构设计(1)系统操作员信息关系模式,里面的主键是操作员编号。系统操作员(操作员编号、用户名、email、密码、联系方式、姓名、联系地址、性别)(2)客户信息关系模式,里面的关系主键是客户编号。客户(客户编号、用户名、email、密码、联系方式、姓名、联系地址、性别)(3)商品信息关系模式,里面的关系主键是商品编号。商品(商品编号、商品价格、商品名、类别、生产产地、商品数量)表3-1管理员信息表列名数据类型可否为空说明idnumberNOTNULL管理员编号accountvarcharNOTNULL帐号PasswordvarcharNOTNULL密码namevarcharNOTNULL姓名sexvarcharNOTNULL性别agevarcharNOTNULL年龄phonevarcharNOTNULL联系方式emailvarcharNOTNULLE-mailaddressvarcharNOTNULL地址表3-2客户信息表列名数据类型可否为空说明idnumberNOTNULL客户编号accountvarcharNOTNULL帐号passwordvarcharNOTNULL密码namevarcharNOTNULL姓名sexvarcharNOTNULL性别agevarcharNOTNULL年龄phonevarcharNOTNULL联系方式emailvarcharNOTNULLE-mailaddressvarcharNOTNULL地址表3-3商品信息表列名数据类型可否为空说明idnumberNOTNULL库存编号nameVarcharNOTNULL商品名称goodsidvarcharNOTNULL商品编号pricevarcharNOTNULL商品价格sortvarcharNOTNULL商品分类numvarcharNOTNULL商品数量addressvarcharNOTNULL生产厂商4.4数据库的连接本库存管理系统使用Mybatis将系统和数据库进行链接,将大量废代码抽取出来,组成了一个方便开发人员进行实地开发的链接方式。在这种情况下也有利于仓库管理人员在运行本系统时,对数据库进行必要的增删改查操作。4.4.1连接工具本库存管理系统采用mybatis这一数据持久化层的开源框架与连接oracle。MyBatis在操作上方便快捷,在这个点出发,它才会开始流行起来。在Java应用程序中,将从数据库查询到的数据生成页面展示所需要的Java对象进行传递到前端;然后通过调用SQL语句把数据长久地保存下来。MyBatis通过把链接数据库代码进行精炼,实现了数据和系统的完美配合。Mybatis的使用带来了以下几点的优势:1.代码去重。2.操作简单容易上手。3.可搭配其他数据库。4.适配sql语句。5.支持其他框架。6.提供缓存支持。7.性能更佳。4.4.2工厂类配置文件主要内容<Configuration><settings><settingname="cacheEnabled"value="true"/></settings><typeAliases><packagename="com.briup.bean"/></typeAliases><environmentsdefault="develepment"><environmentid="develepment"><transactionManagertype="JDBC"></transactionManager><dataSourcetype="POOLED"><propertyname="driver"value="oracle.jdbc.driver.OracleDriver"/><propertyname="url"value="jdbc:oracle:thin:@localhost:1521:xe"/><propertyname="username"value="briup"/><propertyname="password"value="briup"/></dataSource></environment></environments></configuration>4.4.3Mapper类配置文件主要代码<mappernamespace="com.briup.bean.AdminMapper"><selectid="selectAdminByName"parameterType="String"resultType="Admin">select*fromadminwhereaccount=#{account}</select><selectid="selectAdminById"parameterType="int"resultType="Admin">select*fromadminwhereid=#{id}</select><insertid="insertAdmin"parameterType="Admin"><selectKeykeyColumn="id"keyProperty="id"order="BEFORE"resultType="int">selectadmin_seq.nextvalfromdual</selectKey>insertintoadminvalues(#{id},#{account},#{password},#{name},#{sex},#{age},#{phone},#{email},#{address})</insert><updateid="updateAdmin"parameterType="Admin">updateAdminsetaccount=#{account},password=#{password},name=#{name},sex=#{sex},age=#{age},phone=#{phone},address=#{address},email=#{email}whereaccount=#{account}</update></mapper>5.软件详细设计处在软件详细设计这一个阶段,作为作者我们要确定实现系统的方式是什么,这是当前最重要的,经由这个阶段的编码,我们就能够实现系统要我们实现的所有功能。在当下这个阶段中,一定要注意编写质量,程序的“读者”是人和计算机。在我们设计的这个库存软件的生存周期当中,出现的问题与诊断出的错误(bug)程序以及程序错误的修改等都必须要求我们先对程序能够读明白。我们大家都知道的是,衡量程序的质量不仅仅在于它的业务逻辑流程是不是准确,性能是不是满足程序的合理要求,更为重要的还是看它是否是能够读易理解。进行仓库管理的管理人员或者是客户在登录后可以进入系统进行相应的操作是我们这样一个库存管理系统中要必须完成的基本功能。5.1登录模块我们提供了两个不同的入口。管理人员必须要用用户名和密码成功登录系统,用户的登录所需的信息必须是存在系统内的,普通个人用户的信息可以自己注册或者提前交由管理员存入。有两个入口提供登录。如下面这张图,先进行验证用户信息是不是正确。管理员登录图片如下:图5-1管理员登录操作管理员登录功能的代码主要编写如下所示:AloginServlet.java文件主要代码如下:Stringaccount=request.getParameter("in_be");Stringpassword=request.getParameter("pass");HttpSessionsession=request.getSession();session.setAttribute("account",account);AdminServiceadminService=newAdminService();SqlSessionsqlSession=MybatisSessionFactory.getSession();AdminDaoImpaDaoImp=newAdminDaoImp();try{List<Admin>fadmin=aDaoImp.findAdminByName(account);sqlSession.clearCache();sqlSmit();//session.close();System.out.println("当前用户还未注册,注册ing"+fadmin);for(AdminfAdmin2:fadmin) {if(password.equals(fAdmin2.getPassword())){response.sendRedirect("AFirstLog.jsp");session.setAttribute("Admin",fAdmin2);//System.out.println("帐号密码正确!");find=true;}}if(fadmin.size()==0){System.out.println("当前用户还未注册,注册ing"+fadmin);response.sendRedirect("AloginFail.html");thrownewAdminServiceException("用户名不存在!");}else{if(find==false){response.sendRedirect("AloginFail.html");thrownewAdminServiceException("密码错误!");}}}catch(Exceptione){e.printStackTrace();}5.2入库模块我们提供两种不一样的入库方式可供操作员们进行选择,第一,录入已经存在的商品,或者录入不存在的商品,我们还支持添加最新商品。录入已存在的商品方式时候,可根据实际需要自由选择录入哪一个商品。己经录入的商品的信息会显示出来。此种方式便于管理员对商品的情况进行掌握。我们提供按商品的名进行搜索,可以在填写商品的名称后,查询某一次或多次商品的出库和进库的信息。添加已有上商品模块如图5-2所示:图5-2添加已有商品图片当有新的商品要存入仓库中的时候,仓库管理人员通过鼠标点“添加新商品”这一选项。当把新入库的商品的信息填写完毕之后,点击按钮提交,这样在“goods”中就能自动保存下一条记录。当管理员发现录入的信息与实际不相匹配时,可点击“清除”按钮,一键清除之前填写的信息并重新录入。添加新商品模块如图5-3所示:图5-3添加新商品模块5.3出库模块我们这个系统提供的出库方式的前提是库存表中已经有了。如果是在库存数量小于出库的量,系统会告知数量不足,不能出库。如果当前已经没产品了的情况,系统会报出出库商品出错。此时都不可以正常出库。在正常出库之后,库存中商品的数量也进行改变,以准确显示库存信息。图5-4出库管理模块图片在商品进行出库的操作的管理模块中的逻辑代码主要如下:GoodsDaoImpgoodsDaoImp=newGoodsDaoImp();OutGoodsDaoImpoutGoodsDaoImp=newOutGoodsDaoImp();for(Goodsgoods2:goods){StringGoodsNum=goods2.getNum();System.out.println("goods2值为:"+goods2);IntegerIntGoodsNum=Integer.valueOf(GoodsNum);Goodsgoods3=goods2;System.out.println("IntGoodsNum:"+IntGoodsNum);if(IntOutNum>IntGoodsNum){System.out.println("出库数量不足!");response.sendRedirect("OutStockFail.jsp");}else{goods2.setNum(String.valueOf(IntGoodsNum-IntOutNum));try{//goods3.setNum(String.valueOf(IntOutNum));goodsDaoImp.updateGoods(goods2);sqlSmit();goods3.setNum(String.valueOf(IntOutNum));outGoodsDaoImp.saveOutGoods(goods3);sqlSmit();}catch(Exceptione){e.printStackTrace();}response.sendRedirect("Goods.jsp");System.out.println("出库成功!");}}5.4用户注册模块登录时,用户需要填写登录名和密码等信息,提交后,后台服务器中会将她们与数据库中保存的数据进行比较分析。那么我们注册的功能就来了,用户在进入系统之前需要注册用户的信息。在注册的过程中需要输入用户名、密码、姓名、性别、年龄、联系方式、email地址、联系地址等一系列信息,在用户点击“注册”按钮后,服务端先接收信息,服务器端在对数据处理过程中,服务器会首先拿到提交的内容。如果是输入的用户名存在,那么系统会终止注册这一流程,与此同时系统会提示当前用信息被用掉了,请重新注册的提示。用户如果在注册的过程中漏填了一些信息,系统会做出此没有填写请重新填写的动作提示。若注册时填写的信息不满足要求时,可以点击“清除”按钮将信息清空再重新注册。图5-5用户注册系统用户注册的代码主要如下逻辑:Stringaccount=request.getParameter("in_be");Stringpassword=request.getParameter("pass");HttpSessionsession=request.getSession();session.setAttribute("account",account);//System.out.println("账户为:"+account);//System.out.println("密码为:"+password);AdminServiceadminService=newAdminService();SqlSessionsqlSession=MybatisSessionFactory.getSession();AdminDaoImpaDaoImp=newAdminDaoImp();try{List<Admin>fadmin=aDaoImp.findAdminByName(account);sqlSession.clearCache();sqlSmit();for(AdminfAdmin2:fadmin) {if(password.equals(fAdmin2.getPassword())){response.sendRedirect("AFirstLog.jsp");session.setAttribute("Admin",fAdmin2);find=true;}}if(fadmin.size()==0){System.out.println("当前用户不存在,注册ing"+fadmin);response.sendRedirect("AloginFail.html");thrownewAdminServiceException("用户名不存在!");}else{if(find==false){response.sendRedirect("AloginFail.html");thrownewAdminServiceException("密码错误!");}}}catch(Exceptione){e.printStackTrace();}、}5.5个人信息管理模块当管理员、用户进入到这个系统,管选择信息管理,进入到用户信息的管理模块,具有两项功能,第一个功能点是可以对信息进行搜索,可以查询到用户全部的个人信息。第二个功能点是对全部的用户管理其信息。当前操作用户在进入信息管理模块后可修改。在点击修改之后会将信息提交,并修改完成。管理员信息模块图片如图5-6所示:图5-6管理员信息此信息模块的主要逻辑代码如下:request.setCharacterEncoding("UTF-8")response.setCharacterEncoding("UTF-8");Stringaccount=request.getParameter("userid");Stringpassword=request.getParameter("password");Stringname=request.getParameter("name");Stringsex=request.getParameter("sex");Stringage=request.getParameter("age");Stringphone=request.getParameter("phone");Stringemail=request.getParameter("email");Stringaddress=request.getParameter("address");Adminadmin=newAdmin();admin.setAccount(account);admin.setPassword(password);admin.setName(name);admin.setSex(sex);admin.setAge(age);admin.setPhone(phone);admin.setEmail(email);admin.setAddress(address);System.out.println("AInfServlet获取的信息:"+admin);SqlSessionsqlSession=MybatisSessionFactory.getSession();HttpSessionsession=request.getSession();AdminDaoImpaDaoImp=newAdminDaoImp();try{aDaoImp.updateAdmin(admin);sqlSmit();session.setAttribute("admin",admin);response.sendRedirect("AInf.jsp");}catch(Exceptione){e.printStackTrace();}系统中全部的用户信息块如图5-7所示:图5-7管理员对客户信息管理实现此模块的主要逻辑代码如下:Stringpassword=request.getParameter("password");Stringname=request.getParameter("name");Stringsex=request.getParameter("sex");Stringage=request.getParameter("age");Stringphone=request.getParameter("phone");Stringemail=request.getParameter("email");Stringaddress=request.getParameter("address");Customercustomer=newCustomer();customer.setAccount(account);customer.setPassword(password);customer.setName(name);customer.setSex(sex);customer.setAge(age);customer.setPhone(phone);customer.setEmail(email);customer.setAddress(address);System.out.println("AInfServlet获取的信息:"+customer);SqlSessionsqlSession=MybatisSessionFactory.getSession();HttpSessionsession=request.getSession();CustomerDaoImpcustomerDaoImp=newCustomerDaoImp();try{customerDaoImp.updateCustomer(customer);sqlSmit();//response.sendRedirect("ACInf.jsp");session.setAttribute("customer",customer);response.sendRedirect("ACInf.jsp");}catch(Exceptione){e.printStackTrace();}6.系统的测试系统测试作为项目开发周期的最后一步,这是我们都知道的,检查功能、质量、性能、可靠性等是不是符合需求。软件测试过程就是用户希望能够通过软件测试这一操作流程寻找出软件当中存在的一些错误,我们都知道,这个阶段是用来测试这个产品是不是能被用户所接受。而软件测试者则是第一批使用我们系统的人员。而且在今天,人们也都知道了这样一个事实,我们将软件进行测试的最终的一个目的是呈现给客户一个最为满意的产品,在测试过程中必须要尽可能多的发现系统存在的问题,并且要极力进行修正,达到交付标准后才交付给最终客户进行使用。我们在测试的过程中需要核对软件是否达到了下面的要求:1)功能实现,并配有使用说明书,文档详细。2)满足性能需求。3)适应用户工作的环境。总之,找出系统中所存在的不稳定代码和逻辑漏洞,这是我们做软件测试的最终的目标,最终用来提高用户的操作体验,增加客户黏性。6.1测试简述软件测试,是这样一种描述,可以对软件完整性、安全性、正确性以及质量进行检验并提升的过程。软件测试的经典定义是:在满足一定的客户实际工作环境的条件之下来操作并使用软件,发现并且找出软件存在的错误,以此用来评价一个软件的质量是否达到要求。软件的测试工作在软件的整个开发的过程当中占有极其重大的一部分,这是我们都知道的一个事实。如果我们参与设计的系统与人们的安全息息相关,测试工作就会变的非常的重要,并且还需要有增加更多的工作量来验证软件,通过这种手段来说明程序能正确的执行功能,还要能够通过测试手段表明程序没有错误。如果存有这样的目的和态度进行测试的话,就比较不容易地发现错误,从而会选择一些不易暴露错误的测试案例来执行。6.1.1测试目的及重要性1.测试目的我们都知道在开发过程中进行软件测试是非常重要且有用的。我们在测试阶段将程序的错误找出来进行袖修正,并提升性能是在测试阶段的最主要任务,统的准确是当下阶段最主要的目的。GrenfordJ.Myers在很久前提出过软件测试的要求原则,可以参考如下几点:1.尽可能多地找出问题。2.设计出与系统完全匹配的测试方案。3.如果根据上面的方案能够找出新的错误,就算是设计出了能够满足要求的方案。4.测试不仅要单找出错误,还要通过分析错误,以此来找出错误的产生原因,从而来避免下一次发生同样的错误,帮助开发人员找到软件开发过程中的代码缺陷,以便使程序能够及时改正。2.测试重要性不管用什么样的技术,以及如何怎样的方法,我们都不可避免错误的产生。根据统计数据显示,在软件测试这一个阶段所用掉的成本大约占到百分之三十到百分之五十的软件开发总成本。要是同样把维护的阶段考虑进来,在软件开发的整个周期中,有所降低的也许仅仅是测试的成本比例,可是说起来维护的工作,实际上也是相当于对软件进行了二次开发,还有可能是非常多次,许多测试工作也一定包含在其中。6.1.2测试原则在软件测试中我们一般需要有经验的人,与此一样的测试心理也有着同等的地位。所以在做软件测试之前有以下几大要点需要遵守:测试用例要有合理的、不合理的输入和输出。合理与不合理的案例都要兼顾。走查程序,搞清程序逻辑。提早制定测试计划。测试文件长期封存,已备后患。二八原则,还是要遵守的。开发人员不要测试。6.2测试方法测试的过程是经由人来执行程序的过程,也就是说要求被测试的程序能够在各种不同的环境下运行。说实话,不运行程序也能够发现一些错误。为了方便我们区分,一般把被测程序在机器上运行称为动态化的测试,不在机器上运行的测试称为静态化的走查测试,但是在大的层面上来说都属于软件测试。动态化的测试方法从两个不同维度进行了区分:黑盒测试以及白盒测试。6.2.1黑盒测试众所周知,黑盒测试,也可以称之为功能测试,当下阶段的工作重点不是考虑程序的编写。在这个时间点,我们把要测试的程序看成一个黑盒子,只能在软件的入口处开始进行测试工作,测试同学根据之前制定以及评审过的需求说明,来对程序进行功能上的检查,确定是否满足功能要求。系统经过程序编写出来的功能,是否能够与用户所期望的想匹配,而且着还是要保证外部信息保存完整。这些错误是在黑盒测试中出现频率很高的:功能缺失。接口数据传输有误,结果偏差。性能上是否满足要求。界面的清晰、美观。6.2.2白盒测试白盒测试,也被称之为结构化的测试,主要是要用此种方法来测试程序的内部构成。白盒测试与黑盒测试法的不同点就在于,测试人员将程序视为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论