材料合肥师范学院_第1页
材料合肥师范学院_第2页
材料合肥师范学院_第3页
材料合肥师范学院_第4页
材料合肥师范学院_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、软通物流管理系统摘要近年来随着我国电子商务的起步腾飞物流公司业务量迅猛增加,怎样提高配送效率和服务水平成为物流公司的焦点话题。开发有市场前景的为配送服务提供支持,能快速、高效调度物流公司内的各种资源的物流管理系统成为必然。本文阐述了软通物流管理系统从收集需求、系统分析、系统设计到系统编码实现、测试发布的整个过程。系统基于 J2EE 体系架构,采用主流开源框架Struts2、Spring、MyBatis 进行开发实现。三个框架的无缝整合缩短了开发时间,规范了开发流程,提高了开发效率,使项目结构清晰,项目易于。由于物流管理系统数据量庞大,本系统数据库采用 Oracle11g 确保满足企业级应用对数

2、据安全、高效的需求。B/S 模式让系统数据更加易于共享。:物流管理系统 J2EE开源框架OracleABSTRACTIn recent years, with the initial take-off of Chinasmerce logistics businessvolume increases raly, how to improve distribution efficiency and service levelse the focal topic of the logistics company. Development of market prospects forthe del

3、ivery service provide quick support whiade logistics management systeme a nesity for efficient scheduling and logistics company resour.This psystemr describes a logistics management system from requirements gathering,ysis, system design and system coding, testing, release and the wholepros. System b

4、ased on J2EE architecture, using mainstream open-sourceframework for the Struts2, Spring, MyBatis to achieve its functions. The seamlessegration of the three framework shortened the development pros and improvedthe development efficiently, make the project a clear structure and easy to maain.Large a

5、mount of data of the logistics management system, this system use theOracle11g database to ensuret the system meet the entrise-class applications ondata security, efficient and demand. B / S mode make the system easier to share data.Key words: logistics management systemOracleJ2EEopen source framewo

6、rks目录第 1 章绪论11.1 背景11.2 国内外研究现状11.3 项目相关技术2第 2 章系统分析42.1 系统构建目标42.2 系统构建原则42.4 系统应具备特点52.5 系统需求52.5.1功能需求52.5.2角色说明72.5.3业务流程72.6 用例分析82.7 数据流102.7.1 货物流102.7.2 信息流112.7.3流12第 3 章 系统设计133.1 设计目标133.2 功能模块设计133.3 数据库设计133.3.1 数据库概念结构设计133.3.2 数据库逻辑结构设计143.4 系统安全设计183.4.1 防 183.4.2使用18防猜测跳转登录或3.4.3防 1

7、93.4.4数据安全193.5 系统架构设计193.6 系统类设计21第 4 章系统实现244.1 代码实现准则244.2 系统模块实现254.2.1 登录模块254.2.2 配送中心模块254.2.3中心模块31第 5 章系统测试325.1测试策略325.2测试准则325.3实施测试325.3.1 单元测试,集成测试325.3.2 确认测试35第 6 章结论37致谢38参考文献39第 1 章绪论1.1 背景进入新世纪以来,我国物流业顺应传统物流向现代物流的发展趋势,积业规模,提极制定物业发展规划,改善物流发展的环境和条件,提高物升物流服务水平,为进一步加快物业发展奠定坚实基础。软通公司是我国

8、一个大型电子商务服务提供商,客户从该公司后,公司负责从供应商采购商品,并将商品配送给客户。随着电子商务快速发展,公司近年来业务量飞速增长。商品的为了有效支撑公司业务量的增长,提高配送效率和服务水平,公司决定重新开发一套全新的物流管理系统。物流管理系统的主要目标是为公司开发有市场前景的配送服务提供支持;并快速、高效调度公司内的各种资源,使公司内的各部门协助合作为客户提供满意、高效的配送服务。物流管理系统能够促使企业全面、深入、准确地了解所提供的服务,有针对性地设计服务过程,更好地满足客户的需要。有助于企业建立完善的服务操作程序,明确服务职责,有针对性地开展员工的培训工作。有助于企业理解的角色和作

9、用,增进提供服务过程中的协调性。有助于企业有效滴引导顾客参与服务过程中并发挥积极作用,明确质量控制活动的重点,使服务提供过程更合理。有助于企业识别服务提供过程中点和薄弱环节,改进服务质量。1.2 国内外研究现状目前我国物流管理虽有一定的发展基础,但从总体上看,现代物流产业发展扔处于起步阶段。物流基础设施和物流技术,物流专业的缺乏都是当前亟需解决。加强现代企业物流管理从角度看,企业需要搭建网络,资源共享,企业资源是有限的,如何利用有限的资源,即以较少的人力、物力和财力的投入。生产出尽可能多的产品,是企业物流管理者必须考虑的问题、随着尤其是计算机网路技术的迅猛发展,的世界市场正在形成、要实现企业的

10、价值,充分反映企业在竞争发展中的低位,就必须对物流、资金流、信息流这三种资源进行全面集成管理。国外随着科技进步和经济发展步伐加快,以及世界经济的趋势,国际贸易量大大增加,为了降低成本,不少企业纷纷把工厂转移到劳动力便宜的国家和地区,热衷于建设自身的全球信息网络,国际物流量增加,这促使国外物流管理向信息化、自动化、智能化方向发展。国外物流现已形成物流、服务形式多样化、能够快速反应。物流信息系统和电子技术、ernent、二维码、定位、无线电射频技术在物流领域中得到愈来愈广的应用。1.3 项目相关技术随着ernet 和企业计算从 90 年代以来的逐步发展,HTTP、XML 和 Java逐渐演变成为针

11、对客户机计算的标准,这些新兴技术推动了在服务器端封装商业逻辑的应用设计以及电子商务的推广。由众多知名厂商共同制定的 J2EE(Java2PlatformEnt的标准。riseEdition规范则为企业开发新应用提供了J2EE 是各厂商共同发起的,并得到广泛认可的一个工业标准。它利用了Java2的技术优势,为企业提供解决开发、部署和管理等相关问题的系统整体的解决方案。J2EE 技术的基础就是 Java2,J2EE 不仅加强了该中的许多优点,如:“编写一次、到处运行的特性、存取数据库的 JDBCAPI、CORBA技术的支持等之外,还提供了对业务逻辑封装的 EJB(EntriseJavaBeans)

12、组件技术、支持 HTTP的 Servlets 和 JSP,以及 XML 的全面支持,另外它还定义了关于事务管理的 JTA 和 JTS 接口,及保证消息传递的 JMS 服务等。服务器端采用流行的 JAVA 技术,同时使用 Struts2 + SpringMybatis 等开源框架来缩短开发时间,规范项目开发,提高开发效率。使项目结构清晰,项目易于。Struts2 是以 WebWork 优秀的设计,吸收了 Struts1 的部分优点,建立了一个兼容 WebWork 和 Struts1 的 MVC 框架。Spring 是一个开源框架,它由 Rod Johnson 创建。它是为了解决企业应用开发的复杂

13、性而创建的。Spring 使用基本的 JavaBean 来完成以前只可能由 EJB完成的事情。然而,Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。Spring 是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。MyBatis 的前身是 iBatis。是一个数据持久层(ORM)框架。MyBatis 支持普通 SQL 查询,过程和高级的优秀持久层框架。MyBatis 消除了几乎所有的 JDBC 代码和参数或注解用于配置和原始普通的 Java 对象)工设置以及结果集的检索。MyBatis 使用简单的

14、 XML,将接口和 Java 的 POJOs(Plain Old Java Objects,成数据库中的。J2EE是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共同的标准及规格,让各种依循 J2EE 架构的不同之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,企业或外部难以互通的窘境。J2EE 体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供的开发,J2EE 降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持 Entrise JavaBeans,有良好的向导支持打

15、包和部署应用,添加目录支持,增强了安全机制,提高了性能。Web 客户端的主要任务是展现信息内容。Web 客户端设计技术主要包括:HTML语言、Java Applets、程序、CSS、DHTML、插件技术以及 VRML 技术。在本项目中,客户端主要使用到了 HTML 语言,JavaScript语言,CSS 级联样式表,AJAX 技术,同时使用 JSP 页面将它们融合在一起,以支持客户端的。本项目采用 Oracle11g 数据库。Oracle 应用服务器 11g 是 J2EE 认证的、最轻、最快、最具伸缩性的应用服务器,提供了企业门户、无线支持、高速缓存、轻量级 J2EE 引擎、商务智能、快速应用

16、开发、应用与业务集成、Web 服务等多种应用开发功能,形成完整的电子商务应用开发和部署环境。使用 Oracle应用服务器 11g 可以通过升级本花费。来取代升级硬件,大大的节省了基础设施的成中间件采用Tomcat6.0.30。Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。它是 Apache的 Jakarta 项目中的一个项目,由 Apache,Sun 和其它一些公司及个人共同开发而成。由于有了 Sun 的参与和支持,的Servlet 和 Jsp 规范总能在 Tomcat 中得到体现。Tomcat 被 JavaWo

17、rld 杂志的编辑选为 2001 年度最具创新的 java 产品,可见其在业界的地位。本项目中使用的主要开发工具有Myeclipse 8.6 和 PL/SQLDeveloperMyEclipse 企业级工作(MyEclipse Entrise Workbench ,简称MyEclipse)是对 EclipseIDE 的扩展,利用它可以在数据库和 JavaEE 的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE 集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hi

18、bernate 等。PL/SQL Developer 是一个集成开发环境,专门面向 Oracle 数据库程序单元的开发。如今,有越来越多的商业逻辑和应用逻辑转向了 Oracle Server,因此,PL/SQL 编程也成了整个开发过程的一个重要组成部分。PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥 Oracle 应用程序开发过程中的主要优势。第 2 章系统分析2.1 系统构建目标(1) 实现数据共享,基本解决信息孤岛问题。不同业务的基础数据做到一次录入跨部门重复使用;(2) 打破时空及地域限制,实现无纸化办公,办公,异地办公,移动办公;(3) 提供完善的信息交流机制

19、,方便本部、下级和员工之间日常办公及业务信息的交流和管理,实现业务办理互联互通,信息数据共享;(4) 充分利用现有建设好的网络环境及已有的网络配置资源,充分的利用已有的信息化投资。2.2 系统构建原则(1) 先进性:采用目前最先进而且成计算机软硬件技术,既要考虑应用和工具的先进,更要考虑技术发展变化。(2) 可扩展性结构和应用设计的先进性,使建立的系统能够适应今后 IT该是一个不断发张中的,在设计时要考虑到新技术、新产品出现时对本系统的兼容性;当业务需求,外部环境发生变化时,可以扩展的功能和性能。设计要简明,各功能模块耦合度小,以适应业务发展需要,以便系统的继承和扩张。(3) 安全性系统建立的

20、用户认证及权限控制,并对关键数据进行加密,有效地保证系统数据的安全。(4) 实用性根据业务需求和业务流程,从方便用户使用的角度进行设计、功能和模块划分。工作流程设计要求简捷流畅,能适应工作流不稳定和突发事件等各种显示情况。(5) 易用性本系统采用了简单、友好的页面设计,确保具有不同的计算机应用水平的所有员工均能够对本系统快速地掌握并进行方便地使用。(6) 可本系统性具有良好的结构,各个部分应有明确和完整的定义,局部的修改不影响全局和其他部分的结构和运行。2.4 系统应具备特点B/S 结构,简单、易用只要通过浏览器或者其它的网络设备就能使用本考评系统,设置简单,操作简单。功能强大、全面整合、快速

21、实施物流管理系统针对软通需求为基础,以业务管理为延伸,充分考虑了其需求可变性的,并对其现有资源进行全面整合,迭代式开发及组件服务化架构保证了系统的快速实施。经济、实用、高性价比物流管理系统针对各类资源综合管理,充分考虑降低系统对于硬件的要求,提供了较高的实效性和性能价格比。功能模块化体系结构、标准兼容性、易于扩展系统采用开放式体系结构,各模块之间采用服务组件接口进行通信,易于扩展,并对第开发商提供接口2.5 系统需求2.5.1 功能需求(1) 货物订购能够支持货到付款、先交款后送货两种模型。货物订购(货到付款)是指客户在收到货物时付款的配送方式,其操作流程中需要特别注意:客户下订、检查库房是否

22、缺货,如果缺货则配送中心进货管理做进货;配送货物给用户时需要携带货物对应、信息由客户管理信息中获取,(一般会通知客户后配送)、配送单据需打印 4 联(财务存根、库房存根、客户存根、配送中心存根)、打印 2 联(财务存根、客户存根)。货物订购(先交款后送货)是指客户先付款,后送货的的配送方式,其特别需要注意:客户下订、扣取客户对应货物佣金(可从客户账户中扣去、也可以由客户网上支付,考虑大赛实际情况所以可不实现网上支付)、如果客户余额不足则不能进行订货。(2) 换货服务换货是指客户在收到货物后,由于货物的质量问题,在一定的时间段内客户要求换货。其工作流程如下:换货时先确认库房是否缺货,如果缺货先和

23、客户确认是否继续换货(只能相同产品换货),客户继续换货则通知配送中心进货,如果客户不换货则做退货处理。待缺货的商品入库后由配送中心通知分配站发货。退货服务退货是指客户在收到货物后,由于货物的质量问题,客户要求退货。其工作流程即:客户退回物资、调度中心确认是否可以退货、如果可以则由分站做退货登记、然后退回原所属库房入库。客户服务中心客户服务中心的主要职责是与客户进行交互,根据客户的配送要求生成订单,能为客户提供订货、换货、退货、退订服务。同时完成必要的查询。主要功能应该包括:客户管理、新订、退订、换货、退货、订单信息查询、操作员工作量查询等。(5) 客户管理完成和客户相关的功能,包括新客户登记、

24、修改客户以往订购信息等。(6) 订单管理、删除客户、查看完成和订单相关的功能,包括新订、退订、换货、退货及订单信息查询等。(7) 调度中心调度中心的主要职责是对生成的配送订单进行调度处理,以及对由于缺货原因产生的缺货订单,在来货后,修改定单状态。调度中心是配送系统的协调中心,是信息流在的起点。主要功能有:手工调度、自动调度、缺货订单状态修改、任务单查询。(8) 分站管理分站的主要工作是直接面向客户,为客户提供服务。功能包括:任务单查询、任务分配、打印配送单、回执录入、缴款查询、(9) 库存管理管理等。对货物进行出库、入库、货物存放进行管理。主要业务包括:中心库房购货入库、中心库房调拨出库、分站

25、库房调拨入库、领货管理、退货管理。(10)配送中心管理配送中心的主要职责是对配送业务进行管理,如商品管理、库房管理、量管理、进货管理、公司经润分析等。(11)供应商管理对供应商基本信息、进货及退货进行管理。从业务的角度上看,进货管理处理的业务有:供应商设置、进货安排、退货安排等。(12)业务统计查询业务管理主要是对配送业务进行统计分析,出一些报表。主要功能有:订购榜查询、客户满意度分析、分站配送情况分析。2.5.2 角色说明在整个业务流程会涉及到的角色有:客户、调度中心管理员、分站管理员、中心库房管理员、分站库房管理员、配送中心管理员、财务中心管理员、配送员、供应商。2.5.3 业务流程整个货

26、物配送体系以客户为中心,组织公司内、合作伙伴(公司及供应商)的各种可以利用的资源及配送员,为客户提供配送服务。物流管理系统要能够实现对货物配送中的信息流、业务流程如下:流及物流的合理有效的管理。图 2-1 系统配送业务与流的处理图业务流程简要描述:(1)接收客户的配送要求生成订单。(2) 调度中心根据订单生成任务单,同时生成货物调拨单(退货不生成货物调拨单)。(3) 中心库房接到货物调拨,将货物出库到相应的分站库房;(4) 分站接到任务可将任务分配给相关配送员;打印配送单,若非退货情况,则配送员到相应库房领货;配送员完成配送任务后,分站根据完成情况录入回执。系统的业务流程图如下:图 2-2 系

27、统业务流程图2.6 用例分析系统用例图:图 2-3 客户、调度中心管理员用例图客户:通过第完成用户,订购货物,退换货物申请,预存账户佣金。调度中心管理员:处理订单调度,修改缺货订单状态,查询任务单。图 2-4用例图客户:为客户提供订货,换货,退货,退订服务,查询订单相关信息,查询操作员工作量,管理。图 2-5 中心库房管理员、分站库房管理员用例图中心库房管理员:管理购货入库,管理货物调拨出库。分站库房管理员:管理调拨入库,管理领货,管理退货。图 2-6 配送中心管理员、分站管理员用例图配送中心管理员:管理商品,管理供应商分站管理员:查询任务单,分配任务,打印配送单,录入回执,查询缴款,管理。图

28、 2-7 财务中心管理员用例图财务中心管理员:查询订购榜,分析客户满意度,分析分站配送情况。2.7 数据流2.7.1 货物流系统的货物流主要体现在供应商,中心库房,分站库房,配送员与客户之间。配送中心联系供应商开发新业务。并将新业务货物数据交由中心库心库房核实供应商提供的货物是否与货物数据匹配。若核实则进行货物入库操作。中心库房在客户订单通过调度中心审核后,根据调拨货物由分站分配配送员将货物配送到客户手中。货物出库到分站库房,接着图 2-8 货物流2.7.2 信息流系统的信息流主要体现在订单状态上。系统对货物的实时就是建立在各部门对订单信息数据共享的基础上。客户在购物或通过客户下新订单,此时若

29、客户所订商品缺货,系统为客户生成的新订是缺货状态。此时客户可以选择退订或等待配送中心进货。若客户所订商品数量足够,则客户订单进入等待审核状态。接着调度中心对订单进行审核,审核通过的订单状态变为通过审核。通过审核的订单就可以由中心库房进行出库发货了,此时订单状态变为中心库房出库。当货物到达分站时由分站库房出库,订单状态做相应改变为分站库房入库。然后分站分配配送员对货物进行配送,当货物到达客户手中时,客户满意则整个交易完成,订单状态也变为完成。若客户因货物质量不满意申请换货,退货,则订单状态相应变为申请换货,申请退货状态。申请退货的订单由调度中心进行确认,确认退货后,订单状态变为可以退货状态。当订

30、单状态变为换货状态时,系统会为客户的换货物流自动生成一个新的订单以便新一轮的实时。图 2-9 信息流2.7.3流系统的流,最终以财务中心汇总统计体现的。一种流的方式是客户货到付款-配送员收取客户钱款-分站管理员暂时保管钱款-财务中心定时汇总统计各分站上缴的钱款。另式是客户先付款后到货。此时流打破传统的汇总统计方式。流可以立即在本系统与系统中体现。图 2-10流第 3 章 系统设计3.1 设计目标系统正确运行,操作简便。系统运行稳定,效率高。系统安全,可靠。(4) 系统可性强。3.2 功能模块设计配送中心功能模块包括商品管理、供应商管理。商品管理包括对商品信息的添加,修改,删除,查询,其中查询可

31、以由用户按任何条件查询。对供应商的管理包括对供应商信息的添加、修改、删除、查询,其中查询可以由用户按任何条件进行查询。中心管理模块包括订单管理,客户管理。订单管理包括帮助客户生成新订单,完成客户退货,换货申请,查询订单信息,其中查询条件提供多种由用户选择查询条件进行查询。客户管理包括客户查询。、相关信息修改、调度中心功能模块包括订单审核,审核生成的订单,生成任务单和货物调拨单。中心库房功能某块包括购货入库、货物调拨出库。分站库房功能模块包括分站货物入库、配送员领货、管理退换商品。分站管理中心功能模块包括查询任务单、分配配送员、打印配送单、录入回执、查询订单是否已付款。财务中心功能模块包括查询订

32、购榜、查询公司营业额、营业利润。3.3 数据库设计3.3.1 数据库概念结构设计本系统涉及到的实体有:系统使用者、客户、供应商、商品、进货信息、订单、分站信息。各实体定义的属性如下:系统使用者:员工,号码,所属部门,电子邮箱,权限是否可用客户:用户名,号码,电子邮箱,账户可用金额,时间供应商:供应商,供应商名称,地址,商品:商品,商品名称,商品类别,商品描述,商品,进价,售价,量,供应商,是否已入库,仓库进货信息:商品,进货数量,进货时间,是否已入库订单:订单号,订购者用户名,订购商品是否付款,创建时间,签收地址,签收者,分站,订购数量,总价,订单状态,客户评价分站信息:分站,分站一级地址,分

33、站二级地址,分站三级地址3.3.2 数据库逻辑结构设计(1) 地址信息表表 3-1t_address 数据库表(2) 分站信息表表 3-2t_subsion 数据库表字段类型说明默认值限制sion_novarchar2(20)分站主键not nuliqueaddress1_idnumber分站一级地址外键参照t_address 表中字段 id字段类型说明默认值限制idnumber自动增加主键is_leafnumber(1)是否是叶子节点1 表示是叶子节点0 表示不是叶子节点not nulllevelsnumber(1)地址级别如:省、直辖市为1 级;地方市为 2级;区为 3 级。not nul

34、lnamevarchar2(40)地址名称not nullparent_idnumber父节点 id如:合肥市的父节点为省not null(3)系统使用者信息表表 3-3t_system_user 数据库表(4)表表 3-4t_custom 数据库表字段类型说明默认值限制namevarchar2(20)用户名用户时获得主键not nuliquepasswordvarchar2(20)not nullid_card_nonvarchar2(18)号码not null_namevarchar2(20)not nullsexvarchar2(6)not null字段类型说明默认值限制employee

35、_novarchar2(20)员工作为登陆系统用户名主键not nuliquepasswordvarchar2(40)通过加密算法 MD5 或 SHA 计算采用not nullid_card_nonvarchar2(18)号码not null_namevarchar2(20)not nullsexvarchar2(6)not nulldepartmentvarchar2(40)所属部门:a. 中心 b.调度中心 c.中心库房 d.分站库房 e.配送中心f.分站管理中心 g.财务中心not nullvarchar2(30)电子邮箱not nullvarchar2(15)not nullis_us

36、eableNumber(1)权限是否可用1 表示可使用0 表示不可使用1not nulladdress2_idnumber分站二级地址外键参照t_address 表中字段 idaddress3_idnumber分站三级地址外键参照t_address 表中字段 id(5) 供应商信息表表 3-5t_provider 数据库表(6) 商品信息表表 3-6t_goods 数据库表字段类型说明默认值限制goods_novarchar2(20)商品主键not nuliquenamevarchar2(50)商品名称not nullcategoryvarchar2(40)商品类别外 键 参 照 t_good

37、s_category中字段 category not nulldescriptionvarchar2(200)商品描述image_pathvarchar2(100)商品in_pricenumber(9,2)进价not nullout_pricenumber(9,2)售价not nullstoragenumber(10)量not nullprovider_novarchar2(20)供应商外键参照 t_provider表 中 字 段 provider_nois_storechar(1)是否已入库表示未入库表示已入库 由中心库房管理员进行操作0not nullstore_roomvarchar2(

38、50)室not null字段类型说明默认值限制provider_novarchar2(20)供应商主键not nuliquenamevarchar2(50)供应商名称not nulladdressvarcha2(100)地址not nullvarcha2(15)not nullvarchar2(30)电子邮箱not nullvarchar2(15)not nulluseable_moneynumber(9,2)可用金额900,000.0not nullreg_timevarchar2(14)时间not null(7) 订单表表 3-7 t_order 数据库表字段类型说明默认值限制order_

39、novarchar2(16)订单号生成规律:当前日期+8 位自增长订单号如:2012031200000002主键not nuliquecustom_namevarchar2(20)订购者用户名外键参照 t_custom表中字段 namegoods_novarchar2(20)商品外键参照 t_goods 表中 字 段 goods_nosion_novarchar2(20)分站外键参照t_subsion表中 sion_nocountnumber(10)订购数量not nulltotal_pricenumber(9,2)总价not nullis_paynumber(1)是否付款not nullcr

40、eate_timevarchar2(14)订单创建时间not nullarrive_addressvarchar2(200)货物签收到达地址not nullvarchar2(15)接受货物者not nullsusnumber(2)订单状态缺货等待审核退订通过审核中心库房出库分站库房入库分站出库申请换货可以换货申请退货可以退货换货退货完成not nullvaluationnumber(1)客户评价表示好评表示中评表示差评(8)订单号生成表表 3-8 t_generate_order_no 数据库表(9)进货表表 3-9 t_stock 数据库表(10) 商品类别表(此表由数据库管理员通过刷库的方

41、式初始化数据)表 3-9 t_goods_category 数据库表3.4 系统安全设计3.4.1 防系统对用户登录除基本的权限鉴别之外须加上了校验,校验能够很有效的防止用户通过程序,枚举尝试登录。3.4.2 防猜测跳转登录或使用系统对客户端的每次数据提交都进行鉴别。防治通过猜测程序员命名规则尝试使用系统。字段类型说明默认值限制idnumber自动增加主键 not nullcategoryvarchar2(40)商品类别not nulique字段类型说明默认值限制goods_novarchar2(20)进货商品not nullcountsNumber(10)进货数量not nullstock_

42、timevarchar2(14)进货时间not nullis_storechar(1)是否已入库表示未入库表示已入库 由中心库房管理员进行操作0not null字段类型说明默认值限制tfixnumber(8)订单号的后缀not nulllast_order_datevarchar2(8)上个订单生成日期not null3.4.3 防的重要性毋庸置疑,本系统涉及流。更是重中之重。拥有绝对权。系统对要做到绝对,即只有客户自己对个人信息数据库管理员也不可获知客户及系统使用者的信息。这点可通过对进行单向加密的方式以保存信息来做到保障。3.4.4 数据安全系统必须做到用户输入的任何数据,确保进入数据库中

43、的数据都是正确有效的这一点可以通过客户端前台校验对用户的误操作进行。但还是不可以处心积虑想向系统中写入数据的们,他们可以想尽办法绕过前台校验。这时就需要系统的代码不仅仅是完成功能需求,需要对客户端提交过来的数据再一次进行校验。遇到数据保系统的数据安全有效。继续操作,返回。这样便能够确3.5 系统架构设计系统采用 SSI 架构,典型的 J2EE 三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据及校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。表现层是传统的 JSP 技术,自 1999 年问世以来,经过多年的

44、发展,其广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础。中间层和数据服务层采用的是流行的 Spring+ Mybatis,为了将控制层与业务逻辑层分离,又细分为以下几种。web 层,就是 MVC 模式里面的“C”(controller),负责控制业务逻辑层与表现层的交用业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的MVC 框架采用 Struts2。service 层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以层为基础,通过对组件的正面模式包装,完成系统所要求的业务逻辑。层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。,持久化对象。通过实体关系工具将关

45、系型数据库的数据成对象,很方便地实现以面框架。象方式操作数据库,该系统采用 Mybatis 作为 ORMSpring 的作用贯穿了整个中间层,将 web 层、service 层无缝整合,其数据服务层用来存放数据。系统项目开发工程结构:层及 doamin图 3-1 工程结构系统行为序列图:系统的中用户的每次操作都是从客户端触发提交到服务器端由服务器端逐层处理数据,最后将处理的结果返回给客户端。图 3-2 系统行为序列图3.6 系统类设计系统中的主要类分为处理类、实体类、辅助类其中处理类包括多个 Action 类、ervice 接口、erviceImpl 类、接口、Impl 类类关系图如下:图 3

46、-3 类关系图实体类如下:Address、Custom、Goods、Order、OrderNo、Provider、Stock、SystemUser辅助工具类如下:EncryptPassword 类:主要完成对系统中安全性要求高的数据进行加理,本系统要求对使用 SHA-1 单向加密算法进行加密。引入加密类后系统使用在登录鉴权时需要对用户的同样使用单向加密算法加密一次后再与数据库中加密后的进行匹配。此步骤未添加任何业务逻辑,编程容易实现。图 3-4 EncryptPassword 类图xception 类:封装系统异常类。系统操作状态的返回采取的是异常机制。异常从底层常处理。层到 Service

47、层再到 Web 层逐层抛出,最后在 Web 层进行异图 3-5xception 类图GenerateOrderNo 类:根据数据库中当前订单,生成唯一的新订单,此类设计的目的是为了提高生成订单号的效率,该类中方法生成订单号的方法中避免了查询当前数据库中所有订单信后再生成当前需要的订单号,因为当数据库中订单数量很大时这种生成方式效率会很低。采用的是每次生成订单时按规则下当前订单在当天的订缀,这样生成下一个订单时只要查询所生成的订单与上一个订单是否是同一天生成,若是同一天生成订单号后缀在上一个订单的后缀基础上加一。若不是同一天生成的订单则当前订单号后缀为 1。图 3-6 GenerateOrder

48、No 类图SimplePage 类:封装了 jsp 页面分页需要使用的属性,以对象的形式进行分页操作,提高开发和的效率。图 3-7 SimplePage 类图Validation 类:主要对系统的数据进行校验和数据规整。图 3-8 Validation 类图VerifyCodeServlet 类:生成图像,将数据信息放入 Ses中以便与客户输入的进行比较鉴权。图 3-9 VerifyCodeServlet 类图第 4 章系统实现4.1 代码实现准则提高方法的内聚一个方法应该只完成单个功能。如果某个方法涉及两个或多个不相关的功能,则应该把它分解成几个更小的方法。保持方法的一致性保持方法的一致性,

49、有助于实现代码重用。一般来说,功能相似的方法应该有一致的名字,参数特征(包括参数个数、类型和次序)、返回值类型、使用条件、出错条件等。策略与实现分开为了提高可重用性,在编程时策略放在同一个方法中,应该把算法的部分放在一个单独的具体实现方法中。为此需要从策略方法中提取出具体参数,作为调用实现方法的变元。全面覆盖一个方法不应该只能处理正常值,对空值,极限值及界外值等异常情况都应能够做出有意义的响应。尽量不使用全局信息应该尽量降低方法与外界的耦合度,不使用全局信息是降低耦合度的一项主要措施。封装实现测略把类的实现策略(包括表述属性的数据结构、修改属性的算法等)封装起来,对外只提供公有接口,否则会降低

50、今后修改数据结构和算法的(7) 包容用户的操作错误度。系统必须具有处理用户操作错误的能力。当用户输入数据时发生错误,不应该引起程序的运行中断。任何一个接收用户输入数据的方法,对其接收到的数据必须进行检查,即使发现了非常严重的错误,也应该给出恰当的提示信息,并准备再次接收用户输入。(8) 检查参数的对公有方法,需要着重检查参数的参数的约束条件。,因为用户在使用公有方法时可能4.2 系统模块实现4.2.1 登录模块系统登录界面 login.jsp,提供了本系统合法用户的唯一,这也是系统登录页面存在的意义。登录页面对用户进行权限的验证,合法用户可以通过登录页面跳转到与其对应的部门功能模块。为了增强系

51、统的安全性系统采用常见。登录界面如下:,的方式,防止输入:用户名,输出:权限检查通过,跳转到对应登录完成欢迎首页。权限检查未通过,跳转到登录出错页面,可允许用户再次完成输入操作进行登录。图 4-1 登录界面4.2.2 配送中心模块配送中心管理员通过登录页面登录成功后跳转到配送中心管理模块。(1) 商品管理. 查询商品输入:商品,商品名称,商品类别,供应商组合,可每页显示条数。进行显示输出:按用户指定条件查询出商品信息按指定要求每页显示多少条图 4-2 查询界面. 新品上架输入:商品。,商品名称,商品类别,供应商,进价,售价,数量,描述,输出:页面异步校验用户输入数据,对错误数据页面进行提示,期

52、望用户给予正确修改,最后单击增加按钮,完成商品基本信息添加。若用户对页面数据错误不予理会,继续单击增加按钮,则校验数据入库。跳转到新品上架错误页面,并给出引起错误的原因。用户添加商品基本信息后可以继续添加本商品对应的。添加商品信息界面:图 4-3 新品上架界面添加商品界面:图 4-4 添加商品界面. 商品详细信息输入:用户选择查看某商品详细信息。输出:跳转到某商品详细页面并显示此商品详细信息。图 4-5 商品详细信息界面. 修改商品信息输入:商品名称,商品类别,供应商,进价,售价,数量,描述。输出:修改状态,成功或失败跳转到对应页面,失败给出失败原因。图 4-6 修改商品信息界面. 下架某商品

53、输入:选品输出:提示用户是否确定下架该商品,防止用户误操作。若用户确定下架则执行商品下架操作,并及时刷新当前页面,让用户看到操作结果。若用户在提示下选择取消则返回不执行下架操作。. 进货输入:选品,输入进货数量。输出:输出进货状态是否成功。图 4-7 进货界面(2) 供应商管理. 查询供应商输入:供应商,供应商名称,地址,。输出:按用户指定条件查询出供应商信息并按指定要求每页显示多少条显示。进行图 4-8 查询供应商界面. 新增供应商输入:供应商,供应商名称,地址,。输出:页面异步校验用户输入数据,对错误数据页面进行提示,期望用户给予正确修改,最后单击增加按钮,完成商品基本信息添加。若用户对页

54、面数据错误不予理会,继续单击增加按钮,则校验面,并给出引起错误的原因。数据入库。跳转到新品上架错误页图 4-9 新增供应商界面. 供应商详细信息输入:用户选择查看某供应商详细信息。输出:跳转到某供应商详细页面并显示此供应商详细信息。图 4-10 供应商详细信息界面. 修改供应商信息输入:供应商名称,地址,。输出:修改状态,成功或失败跳转到对应页面,失败给出失败原因。图 4-11 修改供应商信息界面. 删除某供应商输入:选中供应商输出:提示用户是否确定删除此供应商,防止用户误操作。若用户确定删除则执行删除供应商操作,并及时刷新当前页面,让用户看到操作结果。若用户在提示下选择取消则返回不执行删除供

55、应商。4.2.3中心模块. 查询订单信息输入:订单,收货人组合。输出:符合组合查询条件的订单信息。图 4-12 查询订单信息界面. 新订单输入:客户收货人名,订购商品,定购数量,付款方式,分站地址,详细地址,。输出:新订单。用户接收到的输出信息是订单是否生成成功,生成成功跳转到订单生成成功提示界面。失败跳转到订单生成失败界面,界面显示生成失败原因。图 4-13 新订单界面第 5 章系统测试5.1 测试策略测试的经典策略,是从“小型测试”开始,逐步过渡到“大型测试”。从单元测试开始,逐步进入集成测试,最后进行确认测试和系统测试。对于传统的系统来说,单元测试集中测试最小的可编译的程序单元,此步骤一

56、般由编写代码的程序员自己编写单元测试代码对自己所编写的代码块进试。单元测试通过之后,就可以把通过的代码块集成到程序结构中去。与此同时,应该进行一些列的回归测试,以发现模块接口错误和新单元加入到程序中所带来的副作用。最后把系统作为一个整体来测试,以便发现功能需求中的错误。5.2 测试准则所有的测试都应该追溯到用户需求。在测试之前相当长时间,就指定测试计划。(3) 把Pareto 原理应用于测试。(4) 穷举测试是不可能的。即使一个中等规模的程序,其路径排列数也是非常大的。由于受时间人力资源的限制,在测试过程中不可能执行路径的每一种组合。测试只能证明程序中有错误,不能证明程序中没有错误。(5) 为

57、了达到最佳的测试效果,应该由独立的第来从事测试工作。5.3 实施测试由于系统规模较大,本文档难以涵盖所有功能模块的测试描述。下面以对登录模块的测试为例说明本系统的测试流程。5.3.1 单元测试,集成测试本系统单元测试采用的是 JUnit4,是一个开源的 java 测试框架。用于编写和运行可重复的测试。是用于单元测试框架体系 XUnit 的一个实例。主要用于白盒测试和回归测试。以下为用户登录数据库层检查用户是否存在单元测试. 用户存在测试测试代码:package .hftc.impl;import import import import import import importpublicja

58、va.security.NoSuchAlgorithmException; .junit.Test;edu.hftc. edu.hftc. .hftc.;.impl.Impl;.SystemUser;.util.EncryptPassword;.junit.Assert.*; ImplTest sicclassTestpublic voidtestSystemUserExist()SystemUser systemUser = new SystemUser();/数据库中已存在的信息systemUser.setEmployeeNo(53090001); String p

59、assword = admin;String needPassword = ;try needPassword = EncryptPassword.doEncryption(password); catch (NoSuchAlgorithmException e) e.prStackTrace();systemUser.setPassword(needPassword);systemUser.setDepartment(中心);= newSystemUser returnUser =Impl();.queryCertainSystemUser(systemUser);assertEquals(

60、systemUser.getEmployeeNo(),returnUser.getEmployeeNo();:成功图 5-1 用户存在在 JUnit 测试中有一句经典的程序员共勉的语句是:“keeps the bar green tokeeps the code clean”。当程序员们看到这个绿色的 bar 那么这次测试便顺利通过了。. 用户不存在测试测试代码:package .hftc.impl;import import import import import import importpublicjava.security.NoSuchAlgorithmException;.juni

温馨提示

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

评论

0/150

提交评论