Java全真案例4信息管理系统设计文档.doc
编号版本V0.1密级信息管理系统东方标准人才服务有限公司2008.32设计文档修改历史版本日期摘要作者V0.12008.3.22初稿耿因志目 录1 前言11.1 目的11.2 预期读者11.3 适用范围11.4 环境与工具11.5 引用标准21.6 术语定义21.7 参考文献22 模块分布图33 系统总体架构设计43.1 设计目标43.2 系统架构43.3 WEB层设计63.4 业务组件层设计63.5 持久层设计73.6 包结构设计83.7 接口调用序列104 模块设计124.1 登录模块124.2 人员管理144.3 部门管理144.4 机房管理144.5 字典管理144.6 日志管理144.7 权限管理1414内部资料1 前言1.1 目的总体架构必须符合公司的总体战略,适应产品的销售策略和模式。设计时,需要从产品的整个寿命周期来综合权衡开发成本、销售成本、施工成本和维护成本,以及整个项目管理过程中可能出现的各种管理及技术风险。同时,还要考虑技术人员的可获得性和成本。软件的分析和设计是企业开发过程中非常重要的两个步骤,它对于系统的整个开发过程有着重要的指导意义,也是后续开发的重要依据。分析着重于对问题的阐述,而设计着重于在分析的基础上,对问题所给出的解决方案,本文档将主要从这三个方面给出相关说明,使开发人员,售前人员,质量管理人员,项目实施人员,项目管理人员及其他相关人员对本系统有一个共同的理解和认识。1.2 预期读者v 软件开发人员v 系统分析人员v 系统设计人员v 质量保证人员v 项目管理人员v 售前人员v 项目实施人员1.3 适用范围v 分析v 设计v 开发1.4 环境与工具v MyEclipse5.5v Tomcat5.5v Rose1.5 引用标准v UML2.01.6 术语定义1.7 技术选型StrutsSpringHibernateAjaxAntLog4jJunitOracle1.8 参考文献2 模块分布图v 人员管理:提供人员信息的管理入口,包括人员信息的添加,修改,删除和检索等服务.v 部门管理:部门信息的管理入口,包括人员所在部门信息的添加,修改,删除和检索等服务.v 机房管理:机房信息的管理入口,包括机房信息的添加,修改,删除和检索等服务.v 字典管理:管理系统中使用到的相关”码表类型”及”码表项”,主要功能包括字典表类型的维护和字典项数据的维护.v 权限管理:为系统相关角色配置管理权限,主要功能包括新增角色,配置角色,删除角色,配置用户权限等信息.v 日志管理:为系统的相关操作提供日志记录操作,主要功能包括日志信息的记录,检索等服务,在本系统中,建议采用log4j组件来记录日志信息.3 系统总体架构设计系统总体架构对于整个项目的设计有着非常重要的意义,系统架构从总体上确立了系统开发所采用的技术框架和相关逻辑的处理。3.1 设计目标l 可伸缩性和扩展性l 松散耦合l 可重用性l 组件化3.2 系统架构本系统采用多层架构,共分为:l Web层l 业务处理层l 数据访问层Web层细分为界面展现层、界面控制层和界面模型层,使用MVC2模型,由Servlet、JSP、JavaBean组成.用户提交访问请求,由Struts Action类进行请求分发,并执行相关的业务处理.然后将控制权交给JSP.读出数据,生成页面。Web层将采用成熟的开源框架:Struts 1.2框架业务组件层主要由Service接口类和实现类组成.业务组件层采用成熟的开源框架Spring来管理.持久层负责与数据库的交互.主要由Dao接口类和实现类组成,本系统通过Spring DAO实现数据访问操作.Spring DAO封装了Hibernate3持久层框架以下就系统开发框架中各实现层面作分别描述:3.3 WEB层设计本系统采用Struts 1.2作为Web应用框架。Struts是开源的基于MVC 2的Web应用框架,已得到广泛应用。使用Struts DispatchAction进行请求的分发处理.Struts框架中的ActionServlet充当前端控制器的角色.DispatchAction接受客户端发送的请求,并执行相关的业务处理,然后转发到相关JSP页面来显示结果.3.4 业务组件层设计业务组件层采用开源的项目Spring来管理. 使用版本为1.2业务服务对象执行应用逻辑,执行向持久曾的调用,获得从用户接口层的请求,处理事务,处理异常.为了将这写连接起来并易于管理,我们将使用Spring框架的bean管理方面. Spring是一种非侵入式的轻量级容器.它使用”控制反转”,或者setter依赖注入来把这些对象连接好, 这些接口允许对象的松散定义的实现,这些对象将被设置或者注入.这些对象在一个外部的XML文件中被引用.”控制反转”允许对象接受其他的在一个高一些的层次被创建.使用这种方法,对象从必须创建其他对象中解放出来并降低对象耦合.提高系统的可扩展性.3.5 持久层设计持久层采用开源的项目Hibernate来管理.使用版本为3.Hibernate在XML文件里映射领域对象到关系数据库.它允许你把数据库信息读进领域对象的一个对象图,这样就可以在连接断开的情况下把这些数据保存起来.3.6 包结构设计包结构定义如下:包结构说明如下:com.cmcc.emgr.login登录模块com.cmcc.emgr.staff人员管理模块com.cmcc.emgr.department部门管理模块com.cmcc.emgr.pcroom机房管理模块com.cmcc.emgr.dictionary字典管理模块com.cmcc.emgr.log日志管理模块com.cmcc.emgr.privilege权限管理模块以上模块属于业务模块,在每个模块下,根据职责的不同,又可分为:v web:控制转发v service:业务逻辑处理v dao:数据库访问操作mon包用来保存系统中使用到的公用类com.cmcc.emgr.utils包用来保存系统中使用到的工具类com.cmcc.emgr.domain包用来保存Hibernate Mapping后产生的POJO类3.7 接口调用序列所有的业务操作请求,直接提交到Action类,由Action类执行请求的分发操作.最后forward到相关页面4 模块设计4.1 登录模块主要功能包括:1. 登录用户输入用户名,密码和验证码等信息并提交登录,在本系统中,要求对用户输入的相关信息进行合法性和有效性验证其中合法性校验使用判断该用户是否存在,有效性校验需要判断用户的输入是否为有效字符,特殊的字符需要使用正则表达式校验.2. 注销用户退出本系统,系统完成session的注销,以销毁用户在登录时保留在session中的消息.类图序列图4.2 人员管理4.3 部门管理4.4 机房管理4.5 字典管理4.6 日志管理4.7 权限管理