1、概要设计报告1 引言1.1系统设计目标能够自主设计一个仓库管理系统,具备仓库的入库、出库、货物退货给提供商、货物退库、还可以通过一定的形式对仓库的库存情况进行查询,能够生成报表,帮助决策者进行决策,并且可以打印输出上述信息报表。1.2系统设计原则 此次系统的开发,首先要严格遵守的是软件开发过程的各项规范,建立健全各种辅助文档,并且用统一建模语言(UML)来严格控制实施。其次,本系统的设计还要遵循的一系列原则是:1、系统安全性原则;2、系统数据的可靠性原则;3、系统安装的方便、快捷原则;4、系统的易学、易用、使用简洁的原则;5、系统处理效率最大化的原则;6、系统的可扩展性原则2 系统及环境设计2
2、.1总体设计系统采用C/S系统采用结构,作为开发工具连接数据库。开发过程中采用了原型法即以少量代价快速地构造一个可执行的软件系统模型。使用户和开发人员可以较快地确定需求,然后采用循环进化的开发方式,对系统模型作连续的精化,将系统需具备的性质逐渐增加上去,直到所有的性质全部满足,即得到了现有的软件系统。系统为仓库管理,实现了入库、出库、基础数据、仓库预警、辅助功能、表单、查询等功能。2.2系统设计仓库管理系统采用的是网络结构,即客户机服务器结构,是根据仓库信息系统的特点和目前大多系统的使用情况而定的。客户机服务器结构既是硬件结构又是软件结构。即数据放在服务器上,程序在客户机上。进行数据访问时,由
3、客户机提出请求一般是语句,服务器执行并给出结果。客户机服务器结构优化了网络,提高了系统的利用率,合理均衡事务处理,充分保证数据的完整性和一致性。客户机服务器体系结构的发展经历了从二级体系结构模式到三级体系结构模式。2.3体系结构风格选择通过对客户需求分析,结合体系结构风格特性,现将仓库管理系统体系结构选择如下。(1)系统拟采用B/S结构。(2)系统采用J2EE多层结构。(3)系统在表示层拟采用Structs框架实现用户界面实现和用户界面跳转设计。业务逻辑采用JavaBean实现业务逻辑。数据库采用SQL Server,若后期数据量大,可低成本无缝迁移到DB2等大型关系数据库上。图2-1 系统体
4、系结构3库位管理设计模式及框架选择(1) 业务逻辑层设计模式选择在仓库管理系统中多个部门协同工作,每个员工对同一行为动作的理解和所需结果不同,所以需要考虑它的扩展性和可维护性。库位管理中,包括库位信息设置、库位查询,所以这块作为独立模块设计,拟采用工厂方法模式。同时,业务逻辑层与数据库连接和数据操作方面采用外观模式。(2) 表示层设计模式选择系统中流程控制、逻辑校验等运用频繁,所以采用MVC设计模式。表示层功能实现拟采用Struts 2。(3) 业务逻辑层采用EJB 3.0。(4) 数据库设计拟采用JDBC数据库连接方式。3.1软件环境组件图描述了仓库系统运行时组件关系。设计思路是将Web服务
5、器、应用服务器多层结构分开部署。应用系统软件采用Oracle公司系统系列产品。图3-1 库位管理组件图表3-1 系统运行时组件表组件名称组件全名称用途采购业务系统采购业务系统组件采购部采购业务Windows系统维护与运行操作系统操作系统库位管理系统库位管理系统组件库位设置、分配查询质检系统质检业务系统组件质量检验出入库系统出入库系统程序包出、入库统计报表统计系统组件盘点、统计报表等系统维护系统维护程序包系统维护信息管理系统信息管理系统程序包信息管理Oracle Weblogic ServerOracle Weblogic WebServer服务器Web服务器软件Oracle Weblogic
6、ServerOracle Weblogic Server业务逻辑服务器EJB服务器软件Oracle 11g for windowsOracle 11g for windows数据库Oracle数据库3.2硬件环境硬件配置表如表3-2所示。表3-2 硬件配置表节点名称配置要求内部IP 地址用途VPN中心路由器思科12816/1280-4AC192.168.0.1完成与下属企业之间的联网提高信心中心内部数据交换应用服务主服务器IBM BladeCenter HX5192.168.0.4业务应用主服务器应用服务备份服务器IBM BladeCenter HX5192.168.0.5业务应用备份服务器w
7、eb 主服务器IBM BladeCenter HX5192.168.0.6业务web主服务器web 备服务器IBM BladeCenter HX5192.168.0.7业务web备服务器数据库管理服务器IBM System x3200 M3192.168.0.8负责对数据中心设备的监控和性能检测交换机华为三层交换机S5300负责内部数据交换数据库冗余服务器IBM System x3200 M3192.168.0.9为了防止意外而设计的冗余数据备份数据库主服务器IBM System x3200 M3192.168.0.10负责处理来自应用服务器和web服务器的说一句处理数据库备服务器IBM Sy
8、stem x3200 M3192.168.0.11专门负责数据备份管理,包括非磁盘阵列,磁带机,光盘的管理3.3部署图图3-2 部署图4 系统功能结构描述4.1功能结构图系统功能结构图如图4-1所示。图4-1 系统功能结构图(1)采购采购业务是仓库管理系统的入口流程,通过制定采购计划启动了仓库管理系统的全部管理流程。采购系统主要有五个功能模块:供应商管理(包括供应商的注册信息审核和供应商信息的增加、删除、更新和查询)、采购需求订单处理、制定采购计划、物资和设备的采购、质检入库问题件处理。(2)质检质检系统是仓库存储的重要一环,货物入库前均需要进行质检,保证合格的货物才能入库存储。其主要功能是从
9、采购部获取采购单及采购的货物,按照质检流程进行质检,合格货物交由收货部门处理,不合格货物退回采购部。 (3)入库管理入库管理的主要业务包括三个部分,第一部分主要是核对到货单信息,确定信息是否有误,以进行下一步工作;第二部分业务流程是在确保信息无误后,交由仓库主管验收,然后交给质检员验货,货物合格则填写入库登记表,入库,不合格则由质检员退货;第三部分是由仓库主管核对入库登记表,若果表格信息有误,需收货管理员进行修改,直到信息无误为止。(4)库位管理库位管理是仓库合理高效利用的重要内容。库位管理主要包括了库位信息设置,设置货位及货位信息,进行库位查询,定位货物位置,方便捡货人员,提高出库效率,同时
10、为库存统计、盘点等提供服务。(5)盘点管理盘点是企业经常要做的重要工作之一,它的最终目的是为了保持商品的账存数量与实际库存数量的一致。主要包括了解物资的库存量,检验进出货单据是否准确,做到账、物相符;根据出入货量反馈产品的热销与滞销;根据是否有货损量及大小分辨仓库管理是否有漏洞,及时反馈给仓库主管;配合其他部门完成相应统计等工作。因此,仓库盘点主要功能是对照盘点单和在库物资清单,做到账物相符,生成打印盘点清单。(6)调度管理调度是仓库管理系统的中间流程,通过严格执行调度标准,对货物库存进行清点核对,汇总各级订单;检验库存情况,即使提交报告,进入调度程序; 出入库单的收集、汇总、统计及保管; 优
11、化所有物资的调度作业流程,不断提高工作效率; 准时向财务提交每日总计;配合其他部门完成相应工作(7)库存预警管理库存预警管理按照库存情况预告预警,及时反映库存实存量,避免积压或缺货,系统自动报警超上限,低下限的库存明细。建立预警系统正是提前对各种可能影响之因素进行分析、预测,并提出对策,既不能使库房物料、产品积压,也不能造成缺货,影响生产、销售的正常进行(8)出库管理出库管理是仓库管理系统的中间流程,通过根据出库订单对库存进行查询,拣货,打包等一系列工作,最终完成物品的出库工作,并与物流做好对接工作。(9)退库管理退库主要功能就是出库时经过质检合格的产品出现供大于需的情况时进行退库或者有客户要
12、求退货时进行退库处理。(10)统计报表管理报表统计管理主要负责对仓库的总库存信息进行汇总和分析,为其它部门提供相应的报表。(11)安全管理负责仓库的安全,防火、防潮、防盗等安全性工作(12)信息管理1.权限管理功能:权限管理是仓库内信息管理的重要功能项之一,是所有信息管理用例的启动项。只有完成对员工信息的匹配,才能让员工进入仓库完成相应的工作,并收集仓库内的信息。权限管理还包括了对员工权限的分配,以及在录入信息时对员工的职能权限反馈,方便员工了解自己的工作内容。2.系统维护功能: 该模块除了收集参数信息,进行信息的管理和备份等基本功能外,最主要的功能是对这些信息进行统计和分析,并将分析的结果用
13、于系统的维护和升级4.2功能结构描述库位管理库位管理是仓库合理高效利用的重要内容。库位管理主要包括了库位基本信息的设置以及库位查询。库位基本信息的设置包括:库位编号、名称、库位类别、货物基本信息、仓库容量等;库位查询即库位基本信息的查询,定位货物位置,方便入库、捡货等人员,提高出、入库效率,同时为库存统计、盘点等提供服务。图4-2 系统功能结构图5 库位管理概要设计5.1库位管理用例与类对应关系1. 库位信息设置表5-1 库位信息设置用例表示层类库位信息设置页面(V_ Storage locationInfo SettingPage)调用Action或调用页面功能说明类名方法参数/类型返回值输
14、入仓库名称SaveStorageNameImplement StorageItemSaveActionSaveStringSuccess or fail / String保存库位信息仓库名称部分输入仓库编号SaveStorageNumberImplement StorageItemSaveActionSaveStringSuccess or fail / String保存库位信息仓库编号部分选择仓库类别SelectStorageTypeImplement StorageItemSaveActionSelectStringSuccess or fail / String保存库位信息仓库类别部分输
15、入库位编号Save StorageLocationNumberImplement StorageLocationItemSaveActionSaveStringSuccess or fail / String保存库位信息库位编号部分输入库位名称Save StorageLocationNameImplement StorageLocationItemSaveActionSaveStringSuccess or fail / String保存库位信息库位名称部分输入货物基本信息Save ProductsBaseInfoImplement ProductsBaseInfo SaveActionSav
16、eStringSuccess or fail / String保存库位货物基本信息输入库位容量SaveStorageLocationCapacityImplement StorageLocationCapacitySaveActionSaveStringSuccess or fail / String保存库位信息库位容量部分2. 库位查询表5-2 库位查询用例表示层类库位管理页面(V_ Storage locationPage)调用Action或调用页面功能说明类名方法参数/类型返回值按仓库名称查询QuaryByStorageNameImplement StorageInfoActionQua
17、ryByStorageNameStorageName/StringResultList/List按仓库名称查询库存情况按货物名称查询QuaryByProductNameImplement ProductsInfoActionQuaryBy ProductNameProduct Name/ StringResultList/List按货物名称查询库存按编号查询QuaryByProductIDImplement StorageInfoActionQuaryBy Product IDProduct ID/StringResultList/List按编号查询仓库使用情况或者库存情况选择日期查询Quar
18、yByDateImplement DateActionQuaryByDateStorageDate/StringResultList/List选择日期查询库存量5.2 库位管理类图设计1. 库位信息设置实现类图设计库位信息设置页面方法、参数及返回值说明表事件类名称方法名称参数/类型返回值/类型说明输入仓库编号Implement StorageItemActionStorageNumberSaveStorageNumber/StringSuccess or fail / String保存库位信息输入仓库名称Implement StorageItemActionStorageNameSaveSto
19、rageName/StringSuccess or fail / String选择仓库类别Implement StorageItemActionStorageTypeSelectStorageType /StringSuccess or fail / String输入库位编号Implement StorageItemActionStorageLocationNumberSaveSLNumber/StringSuccess or fail / String输入库位名称Implement StorageItemActionStorageLocationNameSaveSLName /StringS
20、uccess or fail / String输入货物基本信息Implement ProductsBaseInfo SaveActionProductsBaseInfo SaveProductsBaseInfo Success or fail / String保存库位货物基本信息2. 库位查询实现类图设计库位查询页面方法、参数及返回值说明表查询产品编号Implement StorageInfoActionQuaryBy Product IDProduct ID/StringResultList/List按编号查询仓库使用情况或者库存情况按仓库名称查询Implement StorageInfoA
21、ctionQuaryByStorageNameStorageName/StringResultList/List按仓库名称查询库存情况按产品名称查询Implement StorageInfoActionQuaryBy ProductNameProduct Name/ StringResultList/List按货物名称查询库存按入库日期查询Implement StorageInfoActionQuaryByDateStorageDate/StringResultList/List按入库日期查询库存量图5-1 库位管理类图5.3 库位管理时序图时序图筛选表仓库库位管理部分用例名步骤对象数用例系统
22、数是否选择库位信息设置1061是库位查询741是时序图:1)库位信息设置时序图2)库位查询时序图时序图中的校验说明1)库位信息设置时序图校验说明序号消息说明业务算法3校验(仓库编号)编号位数符合8位(已固定好要求)且不重复,则符合;若编号位数不足、超位数或者重复,则不符合。7校验(库位编号、货物编号)编号位数符合8位(已固定好要求)且不重复,则符合;若编号位数不足、超位数或者重复,则不符合。2)库位查询时序图校验说明序号消息说明业务算法4校验(仓库编号、名称等)1. 名称在系统中已存在,则符合; 否则,不符合。2. 编号位数符合8位(已固定好要求)且不重复,则符合;若编号位数不足、超位数或者重
23、复,则不符合。5.3 库位管理活动图 在库位管理活动图中,所有的对象、消息、参数的英文命名都以数据字典定义为准。5.3.1 活动图筛选表用例编号用例名称主事件流步骤其他事件流数/步骤分支判断分叉判断对象数选择否101库位信息设置102301是102库位查询60001是5.3.2 活动图绘制1)库位信息设置活动图2)库位查询活动图5.3.3 描述活动图中的活动说明活动参数或对象流说明保存仓库设置信息仓库名称,仓库编号,仓库类别=原料库、包装材料库、成品库、半成品库、废品库、工装库等名称、编号已按统一规则编制好保存库位设置信息库位名称,库位编号,货物名称,货物可存数量名称、编号已按统一规则编制好显
24、示查询结果显示仓库名称,库位名称,货物名称,数量,出入库日期等根据筛选条件显示不同5.4 库位管理状态图3.1状态图分析表用例编号用例名称主事件流步骤其他时间流数/步骤分支判断分叉判断状态数选择否101库位信息设置102/8301是102库位查询60001否3.2状态图3.2.1 库位设置状态图3.2.2 库位查询状态图6 程序代码组织方式1)页面层包源程序列表如表6-1所示表6-1 页面层包源程序列表中文标识父包包名称说明仓库管理总包无SM仓库管理总包ActionSMAction为Action层包ActionImplements.Operation定义包文件中所有实现Implements.O
25、perationInputer录入Action实现System系统维护Action实现StorageLocation库位管理Action实现Procurement采购系统Action实现quality assurance质检系统Action实现Public公共信息Action实现DataMaintence数据维护Action实现Product库存信息Action实现报表生成ActionImplements.report报表生成Action实现Implements.ReportInputer录入系统报表生成Action实现System系统维护报表生成Action实现StorageLocation
26、库位管理生成Action实现Procurement采购系统生成Action实现quality assurance质检系统生成Action实现Public公共信息生成Action实现DataMaintence数据维护报表生成Action实现Product库存信息报表生成Action实现JSP包WebrootJSP为JSP层包JSPInputer输入JSP界面System系统维护JSP界面StorageLocation库位管理JSP界面Procurement采购系统JSP界面quality assurance质检系统JSP界面Public公共信息JSP界面DataMaintence数据维护JSP界
27、面Product库存信息JSP界面ActionInterface.Operation定义包文件中所有接口Interface.OperationInputer录入Action接口System系统维护Action接口StorageLocation库位管理Action接口Procurement采购系统Action接口quality assurance质检系统Action接口Public公共信息Action接口DataMaintence数据维护Action接口Product库存信息Action接口ActionAction.Validate数据校验Action包Inputer录入数据校验Action接口
28、System系统维护数据校验Action接口StorageLocation库位管理数据校验Action接口Procurement采购系统数据校验Action接口quality assurance质检系统数据校验Action接口Public公共信息数据校验Action接口DataMaintence数据维护数据校验Action接口Product库存信息数据校验Action接口2)业务逻辑包如表6-2所示表6-2 业务逻辑包仓库管理总包无SM仓库管理总包业务逻辑包SMBusinessLogic业务逻辑包BusinessLogicBusinessBean业务Bean实现包BusinessBeanInp
29、uter录入JavaBeanSystem系统维护JavaBeanStorageLocation库位管理JavaBeanProcurement采购系统JavaBeanquality assurance质检系统JavaBeanPublic公共信息JavaBeanDataMaintence数据维护JavaBeanProduct库存信息JavaBean业务逻辑接口SMBusinessLogic.Interface业务逻辑接口BusinessLogic.InterfaceInputer录入业务逻辑接口System系统维护逻辑接口StorageLocation库位管理逻辑接口Procurement采购系统
30、逻辑接口quality assurance质检系统逻辑接口Public公共信息逻辑接口DataMaintence数据维护逻辑接口Product库存信息逻辑接口BusinessLogic.Implements业务逻辑接口业务逻辑实现BusinessLogic.ImplementsInputer录入业务逻辑实现System系统维护业务逻辑实现StorageLocation库位管理业务逻辑实现Procurement采购系统业务逻辑实现quality assurance质检系统业务逻辑实现Public公共信息业务逻辑实现DataMaintence数据维护业务逻辑实现Product库存信息业务逻辑实现3
31、)EJB包如表6-3所示表6-3 EJB包中文标识父包包名称说明仓库管理总包无SM仓库管理总包业务EJB包SM.BOBEAN.JAVABEANJavaBean层包BEAN.JAVABEANInputer录入业务数据结构System系统维护业务数据结构StorageLocation库位管理业务数据结构Procurement采购系统业务数据结构quality assurance质检系统业务数据结构Public公共信息业务数据结构DataMaintence数据维护业务数据结构Product库存信息业务数据结构业务EJB包SM.BOSessionBeanSessionBean包SessionBeanI
32、nputer录入SessionBean包System系统维护SessionBean包StorageLocation库位管理SessionBean包Procurement采购系统SessionBean包quality assurance质检系统SessionBean包Public公共信息SessionBean包DataMaintence数据维护SessionBean包Product库存信息SessionBean包数据操作包SM.BODataOperation数据操作包DataOperationInputer录入数据操作实现包System系统维护数据操作实现包StorageLocation库位管理
33、数据操作实现包Procurement采购系统数据操作实现包quality assurance质检系统数据操作实现包Public公共信息数据操作实现包DataMaintence数据维护数据操作实现包仓库管理系统包结构说明如表6-4所示表6-4 仓库管理系统包结构说明包名文件名或类名SM.JSP.StorageV_ StorageName.jspV _ StorageNumber.jspV _ StorageLocationNumber.jspV _ StorageLocationName.jspV _ StorageLocationType.jspV _StorageJobID.jspV _St
34、orageCapacity.jspSM.JSP.InStorageV _InStorageProductBaseInfo.jspV _InStorageDate.jspV _ InStorageJobID.jspV _ InStorageLocation.jspSM.JSP.OutStorageV _OutStorageProductBaseInfo.jspV _OutStorageDate.jspV _ OutStorageJobID.jspV _ OutStorageLocation.jspSM.JSP.ExceptionV _ ExceptionProcess.jspV _ Except
35、ionDisplay.jspAction层包源程序列表:包名文件名或类名SM.Action.Implements.StorageV_ StorageNameAction.javaV _ StorageNumberAction.javaV _ StorageLocationNumberAction.javaV _ StorageLocationNameAction.javaV _ StorageLocationTypeAction.javaV _StorageJobIDAction.javaV _StorageCapacityAction.javaSM.Action.Implements.InS
36、torageV _InStorageProductBaseInfoAction.javaV _InStorageDateAction.javaV _ InStorageJobIDAction.javaV _ InStorageLocationAction.javaSM.Action.Implements.OutStorageV _OutStorageProductBaseInfoAction.javaV _OutStorageDateAction.javaV _ OutStorageJobIDAction.javaV _ OutStorageLocationAction.javaSM. Act
37、ion.Implements.ExceptionV _ ExceptionProcessAction.javaV _ ExceptionDisplayAction.java业务逻辑层实现包:包名文件名或类名SM.BO.ImplementImplementsStorageBean.javaImplementsInStorageBean.javaImplementsOutStorageBean.javaImplementsChaxunBean.javaImplementsShenheBean.javaImplementsPublicBean.javaImplementsManageBean.jav
38、aImplementsExceptionProcessBean.javaImplementsExceptionDisplayBean.java7 外部接口描述库位管理部分的接口主要包括以下部分:(1)数据库接口:系统拟采用SQL Server数据作为数据存储软件。本系统与数据库接口是采用JDBC方式完成连接的。(2)条形码读取:仓库出、入库的产品相关信息读取使用条形码方式读取,所以需要安装第三方驱动程序读取条形码号。(3)库位信息模块接口:仓库库位信息模块为其他部门提供库位信息情况,供其他部门查询等,需及时更新库位信息。8 异常设计8.1 程序异常处理流程ExceptionDetail类是其他
39、类公用类,程序异常采用try-catch-finally捕获异常,将捕获的异常作为一个独立对象保存到异常表中。具体处理流程是,捕获完成后,将实例化该类,且调用Save方法保存异常到异常数据表中,同时将异常信息显示在页面上。图8-1异常处理体系表8-1异常说明表属性名称属性说明说明ExceptionID异常编号异常类型+JobId+datetimeDatetime1表示程序异常2表示业务异常采用try/catch或try/catch/finallyExceptionDateTime捕获异常事件ExceptionDetail异常详细信息ExceptionType异常类型ExceptionThrow
40、n抛出方式ExceptionSLInfosetting库位信息设置异常ExceptionSLquery库位查询异常JobID工号Name姓名Department部门8.2业务异常处理方法一种是通过Structs中验证机制进行校验,严格按照数据字典确定的数据类型、数据长度和相关数据规范完成数据属性设置。页面层输入数据项只要不符合业务规范,就显示异常详细信息,而不保存信息。另一种是由于数据库操作引起的异常,通过if-else语句捕获异常,处理方式同上程序异常处理相同,但是需保存信息到数据库备份。表8-2 业务异常描述表异常ID异常类型提示语异常处理SL101非字符型数据类型必须是字符型表示层SL1
41、02非char(n)数据类型必须是定长度类型字符类型表示层SL103非double数据类型必须是双精度表示层SL104非日期类型数据类型必须是日期类型,请重新输入表示层SL105非varchar(n)数据类型为最大长度字符类型表示层SL201数据长度不等于数据长度必须是8位表示层SL202数据不大于数据长度不能大于20位表示层SL203数据不能为空值数据不能为空表示层SL301数据重复输入数据已重复业务层SL302查无此值查询不存在业务层SL303数据错误输入数据异常业务层SL304保存类型错误保存类型错误业务层SL305不知异常未明确异常业务层1. 基于C8051F单片机直流电动机反馈控制系
42、统的设计与研究2. 基于单片机的嵌入式Web服务器的研究 3. MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究 4. 基于模糊控制的电阻钎焊单片机温度控制系统的研制 5. 基于MCS-51系列单片机的通用控制模块的研究 6. 基于单片机实现的供暖系统最佳启停自校正(STR)调节器7. 单片机控制的二级倒立摆系统的研究8. 基于增强型51系列单片机的TCP/IP协议栈的实现 9. 基于单片机的蓄电池自动监测系统 10. 基于32位嵌入式单片机系统的图像采集与处理技术的研究11. 基于单片机的作物营养诊断专家系统的研究 12. 基于单片机的
43、交流伺服电机运动控制系统研究与开发 13. 基于单片机的泵管内壁硬度测试仪的研制 14. 基于单片机的自动找平控制系统研究 15. 基于C8051F040单片机的嵌入式系统开发 16. 基于单片机的液压动力系统状态监测仪开发 17. 模糊Smith智能控制方法的研究及其单片机实现 18. 一种基于单片机的轴快流CO,2激光器的手持控制面板的研制 19. 基于双单片机冲床数控系统的研究 20. 基于CYGNAL单片机的在线间歇式浊度仪的研制 21. 基于单片机的喷油泵试验台控制器的研制 22. 基于单片机的软起动器的研究和设计 23. 基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究 24. 基于单片机的机电产品控制系统开发 25. 基于PIC单片机的智能手机充电器 26. 基于单片机的实时内核设计及其应用研究 27. 基于单片机的远程抄表系