物流管理系统详细设计说明书天津大学国家示范性软件学院IT_MOB项目组第1页共70页编写:周柯屹日期:2009-09-01审核:日期:批准:日期:受控状态:是发布版次:1.0日期:2009-09-01编号:物流管理系统详细设计说明书物流管理系统详细设计说明书内部文档天津大学国家示范性软件学院IT_MOB项目组第2页共70页变更记录日期版本变更说明作者2009-09-011.0初始版本周柯屹签字确认系统模块对应章节对应部门负责人签字物流管理系统详细设计说明书内部文档天津大学国家示范性软件学院IT_MOB项目组第3页共70页1引言1.1编写目的本说明书目的在于明确说明系统各功能的实现方式,指导开发员进行编码。主要为本公司以几份承包方的阅读者,如设计人员、开发人员等。有时可以包括客户方的阅读者,如:业务人员、系统管理人员等。1.2背景:待开发软件系统的名称:物流管理系统此软件系统任务提出者:天津大学国家示范性软件学院&&中软国际此软件系统任务开发者:天津大学IT_MOB项目组此软件系统任务用户:暂无1.3基线物流管理系统业务分析报告v1.0物流管理系统需求分析说明书v1.0物流管理系统概要设计说明书v1.0物流管理系统详细设计说明书v1.01.4特殊名词定义缩写、术语解释SPP精简并行过程,SimplifiedParallelProcessSD系统设计,SystemDesignCURD创建(Create)、读取(Read)更新(Update)和删除(Delete)1.5参考资料物流管理系统业务分析报告v1.0物流管理系统需求分析说明书v1.0物流管理系统概要设计说明书v1.0Java开发规范物流管理系统详细设计说明书内部文档天津大学国家示范性软件学院IT_MOB项目组第4页共70页2模块命名规则包名命名规则pojo以hibernate为准例子:User.javadto一个有意义的名字+Dto例子:UserDto.javaaction模块名+Action例子:LogonAction.javaform模块名+ActionForm例子:LogonActionForm.javaservice接口:I+一个有意义的名字+Service例子:IUserService.java实现类:一个有意义的名字+Service+Impl例子:UserServiceImpl.javadao接口:I+一个有意义的名字+Dao例子:IUserDao.javahibernate实现类:一个有意义的名字+HibernateDao+Impl例子:UserHibernateDaoImpl.java3模块汇总3.1模块汇总表总公司:系统管理模块名称功能简述后台用户管理用户的CURD权限分配角色权限的CURD车辆管理模块名称功能简述车辆管理对车辆信息进行增删改查班次管理模块名称功能简述班次设置对班次信息的CURD处理加急班次对来自配送点的加急班次申请进行处理线路管理模块名称功能简述基本线路管理对基本路线的CURD运输线路管理对运输线路的CURD物流管理系统详细设计说明书内部文档天津大学国家示范性软件学院IT_MOB项目组第5页共70页配送点管理模块名称功能简述配送点基本信息管理对配送点和现有对应班次的CURD审查配送费方案审查各个配送点提交的配送费计算方案费用管理模块名称功能简述运费计算方案管理设置或修改以公斤或者体积为标准的运费方案利润分配方案管理调整总公司和各个的配送点收益分配比率收益统计管理统计总公司以及各个配送点的收益情况分公司:订单管理模块名称功能简述订单管理对订单的CURD订单审核对网上下单以及本地下单进行审核库存订单查询对库存订单进行查询,方便交接单生成订单确认对货物配送的订单进行确认等相关操作交接单管理模块名称功能简述交接单管理对交接单的CURD紧急订单的查询对紧急订单或者待发订单进行查询,方便交接单生成班次查询及加急班次设置查询班次,绑定交接单,申请加急班次,处理紧急订单异常订单管理模块名称功能简述异常订单登记登记异常订单的相关信息,方便后期处理异常订单查询查询异常订单的处理情况本地信息设置模块名称功能简述配送价格设置对配送价格进行设置并进行申报设置中转线路对中转线路进行设置,提供查询功能,给出中转选择意见财务管理模块名称功能简述财务统计统计一段时间的收益,方便后期申报财务汇报定时向总公司申报财务系统管理模块名称功能简述后台用户管理对本地后台用户信息的CURD注册顾客管理对网上注册顾客信息的CURD权限管理对所有系统用户的权限以及角色的分配公司前台注册管理物流管理系统详细设计说明书内部文档天津大学国家示范性软件学院IT_MOB项目组第6页共70页模块名称功能简述顾客管理提供注册、登陆功能,方便顾客网上下单查询管理模块名称功能简述查询运费价格向顾客提供运费查询功能,是顾客对费用有预先的了解查询订单进度向顾客提供订单查询功能,方便顾客查询进度以及个人订单历史记录3.2系统架构设计3.2.1系统架构基本功能实现1.代码包结构及关系如图例所示。包结构及关系(图例1)代码共分成六个包:base包专门用来存放连接数据库的类contrl包存放action类即各种业务跳转的控制类contrservicedaoutilbasevo调用依赖物流管理系统详细设计说明书内部文档天津大学国家示范性软件学院IT_MOB项目组第7页共70页service包存放服务类文件dao包存放数据持久化类util包存放一些帮助类文件vo存放数据封装类3.3系统模块功能详细设计3.3.1订单管理模块功能实现订单管理模块详细类图:物流管理系统详细设计说明书内部文档天津大学国家示范性软件学院IT_MOB项目组第8页共70页订单管理模块时序图:物流管理系统详细设计说明书内部文档天津大学国家示范性软件学院IT_MOB项目组第9页共70页时序图展示内容说明:1,OrderManager通过JSP页面进行CURD操作。2,JSP页面通过post方式和控制器Servlet交互,提交订单查询请求。3,OrderService类通过DBConnection类建立和数据库的连接。4,OrderServlet调用OrderService类的queryOrder()函数进行查询。5,OrderService类调用OrderDAO类的quryOrder()函数完成查询。物流管理系统详细设计说明书内部文档天津大学国家示范性软件学院IT_MOB项目组第10页共70页6,OrderDAO类通过OrderVO类获得Order类的数据封装。7,OrderDAO类调用PageHelp完成分页请求。8,OrderDAO类将PageHelp对象返回给OrderService类。9,OrderService类将PageHelp对象返回给OrderServlet类。10,OrderServlet调用disPatch()函数,将response返回给JSP页面。11,JSP页面通过post方式和控制器Servlet交互,提交订单添加请求。12,OrderService类通过DBConnection类建立和数据库的连接。13,OrderServlet调用OrderService类的addOrder()函数进行添加。14,OrderService类调用OrderDAO类的addOrder()函数完成添加。15,OrderDAO类通过OrderVO类获得Order类的数据封装。16,OrderDAO类将Interger值(代表添加成功与否的判断条件)返回给OrderService类。17,OrderService类将Interger值(代表添加成功与否的判断条件)返回给OrderServlet类。18,OrderServlet调用disPatch()函数,将response返回给JSP页面。19,JSP页面通过post方式和控制器Servlet交互,提交订单删除请求。20,OrderService类通过DBConnection类建立和数据库的连接。21,OrderServlet调用OrderService类的delOrder()函数进行删除。22,OrderService类调用OrderDAO类的delOrder()函数完成删除。23,OrderDAO类通过OrderVO类获得Order类的数据封装。24,OrderDAO类将Interger值(代表删除成功与否的判断条件)返回给OrderService类。25,OrderService类将Interger值(代表删除成功与否的判断条件)返回给OrderServlet类。26,OrderServlet调用disPatch()函数,将response返回给JSP页面。附加说明:本时序图中并没有画出详细类图中的updateOrder()、querystoreOrder()、queryconfirmOrder()这三个功能,因其具体流程和上面描述的过程基本一致。updateOrder()功能的流程可以复用addOrder()功能的物流管理系统详细设计说明书内部文档天津大学国家示范性软件学院IT_MOB项目组第11页共70页基本流程;querystoreOrder()、queryconfirmOrder()功能的流程都可以复用queryOrder()功能的流程。3.3.2会员管理模块功能实现会员管理模块详细类图:会员管理模块时序图:物流管理系统详细设计说明书内部文档天津大学国家示范性软件学院IT_MOB项目组第12页共70页时序图展示内容说明:1,User通过JSP页面进行CURD操作。2,JSP页面通过post方式和控制器Servlet交互,提交登录请求。3,MemberService类通过DBConnection类建立和数据库的连接。4,MemberServlet调用MemberService类的loginValidate()函数进行登录验证。5,MemberService类调用MemberDAO类的loginValidate()函数完成登录验证。6,MemberDAO类通过MemberVO类获得Member类的数据封装。7,MemberDAO类将Interger值(代表登录成功与否的判断条件)返回给MemberService类。8,MemberService类将Interger值(代表登录成功与否的判断条件)返回给MemberServlet类。9,MemberServlet调用disPatch()函数,将response返回给JSP页面。10,JSP页面通过post方式和控制器Servlet交互,提交费用查询请求。物流管理系统详细设计说明书内部文档天津大学国家示范性软件学院IT_MOB项目组第13页共70页11,MemberService类通过DBConnection类建立和数据库的连接。12,MemberServlet调用MemberService类的queryCost()函数进行登录验证。13,MemberService类调用MemberDAO类的queryCost()函数完成登录验证。14,MemberDAO类通过MemberVO类获得Member类的数据封装。15,MemberDAO类通过CitylistVO类获得Citylist类的数据封装。16,MemberDAO类通过CityListVO类获得Citylist类的数据封装。17,MemberDAO类将Double值(代表费用总计)返回给MemberService类。18,MemberService类将Double值(代表费用总计)返回给MemberServlet类。19,MemberServlet调用disPatch()函数,将response返回给JSP页面。附加说明:本时序图并没有画出regMember()、queryorderState()这两个功能,因其具体流程和Order类的时序图的某些功能基本的流程类似:regMember()功能的具体流程可以复用Order类的addOrder()功能的具体流程;queryord