乡土人才管理系统网络版设计与实现.doc_第1页
乡土人才管理系统网络版设计与实现.doc_第2页
乡土人才管理系统网络版设计与实现.doc_第3页
乡土人才管理系统网络版设计与实现.doc_第4页
乡土人才管理系统网络版设计与实现.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

乡土人才管理系统网络版的设计与实现郭志勇、彭长根、汪学明摘 要:乡土人才是农村重要的人力资源,他们对农村的经济发展有着举足轻重的作用。为了对乡土人才进行规范化的计算机管理,我们开发了“贵州省乡土人才管理系统”软件,利用该软件能方便收集全省各地县的乡土人才数据,建立乡土人才数据库,选拔优秀的乡土人才,查询全省乡土人才的基本情况、分布结构情况等,以便及时调整和培养人才队伍,促进乡土人才智力和技术的交流,引导人才到需要的地方去发挥作用。关键词;乡土人才,管理系统,软件,开发,数据库,Java1 问题背景为了对贵州省乡土人才进行规范化的计算机管理,我们完成开发了“贵州省乡土人才管理系统网络版”软件,通过该软件能够对全省乡土人才信息进行收集、管理、查询和统计。将乡土人才纳入信息化管理,贵州省起步较早,为此我们以本文来阐述该系统的分析、设计和实现的过程。2 需求分析2.1任务概述2.1.1目标贵州省乡土人才管理系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的人才管理系统,人事管理部门的人才管理的自动化的计算机系统,为人事管理部门的决策层提供准确、精细、迅速的人才信息。开发要实现的具体目标为:1、 升级人才数据库,实现数据集中:升级foxpro数据库为Oracle数据库,原本的foxpro数据库为桌面类型数据库,已经不适应现网络状况比较发达的现状,升级为Oracle数据库后数据的安全性和可靠性大大提高,同时实现数据集中,无需再在系统中导入导出数据,使得数据安全性得到进一步提升。2、 实现综合条件查询和模糊搜索查询:能够根据用户给定的综合条件进行精确查询,也能够根据主要专长信息和主要业绩信息进行模糊查询,便于人事部门查询到急需的人才,促进乡土人才智力和技术的交流,最大限度发挥乡土人才的作用。3、 实现乡土人才结构分布统计:通过统计功能,掌握全省乡土人才结构分布情况,包括学历结构、专业结构、职业分布结构、行业分布结构、地域分布结构等,以此为依据,制定乡土人才培训计划,优化乡土人才队伍结构,引导人才合理流动。4、 实现优秀乡土人才选拔:通过评价指标体系,选拔拔尖乡土人才,并由各级人事部门对他们进行表彰。2.2需求规定 2.2.1对功能的规定功能1: 安全登录功能2:新增操作员功能3:操作人员维护功能4:新增用户组功能5:用户组维护功能6:添加人才数据功能7:人才数据维护功能8:全部人才信息浏览功能9:模糊查询功能10:基本情况统计功能11:专业结构统计2.2.2 对性能的规定为了保证系统能够长期、安全、稳定、可靠、高效的运行,机票预定系统应该满足以下的性能需求:2.2.2.1系统处理的准确性和及时性系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足企业对信息处理的需求。由于乡土人才管理系统系统的查询功能对于整个系统的功能和性能完成举足轻重。作为系统的很多数据来源,而人才数据数量和时间又影响决策活动,其准确性很大程度上决定了乡土人才管理系统的成败。在系统开发过程中,必须采用一定的方法保证系统的准确性。2.2.2.2系统的开放性和系统的可扩充性乡土人才管理系统在开发过程中,应该充分考虑以后的可扩充性。例如用户查询和察看报表的需求也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。2.2.2.3系统的易用性和易维护性乡土人才管理系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。乡土人才管理系统中涉及到的数据是人事管理部门的相当重要的信息,系统要提供方便的手段供系统维护人员进行数据的备份,日常的安全管理,系统意外崩溃时数据的恢复等工作。2.2.2.4系统的标准性系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。所有这些都要符合主流国际、国家和行业标准。例如在开发中使用的操作系统、网络系统、开发工具都必须符合通用标准。如规范的数据库操纵界面、作为业界标准的TCP/IP网络协议及ISO9002标准所要求的质量规范等;同时,在自主开发本系统时,要进行良好的设计工作,制订行之有效的软件工程规范,保证代码的易读性、可操作性和可移植性。2.2.2.5系统的先进性目前计算系统的技术发展相当快,作为人事管理系统工程,应该保证系统在几年内仍旧是先进的,在系统的生命周期尽量做到系统的先进,充分完成用户信息处理的要求而不至于落后。这一方面通过系统的开放性和可扩充性,不断改善系统的功能完成。另一方面,在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并先进且有良好发展前途的产品。2.2.2.6系统的响应速度乡土人才管理系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。在进行统计分析时,根据所需数据量的不同而从秒级到分钟级,原则是保证操作人员不会因为速度问题而影响工作效率。2.2.3 对数据的规定乡土人才管理系统的数据需求包括如下几点:2.2.3.1数据录入和处理的准确性和实时性数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。数据的输入来源是手工输入。手工输入要通过系统界面上的安排系统具有容错性,并且对操作人员要进行系统的培训。在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。2.2.3.2数据的一致性与完整性由于系统的数据是共享的,在不同的人事机关中,人才信息是共享数据,所以如何保证这些数据的一致性,是系统必须解决的问题。要解决这一问题,要有一定的人员维护数据的一致性,在数据录入处控制数据的去向,并且要求对数据库的数据完整性进行严格的约束。对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,系统应该拒绝该数据。2.2.3.3数据的共享与独立性整个乡土人才管理系统的数据是共享的。然而,从系统开发的角度上看,共享会给设计和调试带来困难。因此,应该提供灵活的配置,使各个分系统能够独立运行,而通过人工干预的手段进行系统数据的交换。这样,也能提供系统的强壮性。3 概要设计3.1结构设计3.1.1、系统整体架构图 表示层 业务层 数据层EJBJSP数据库(oracle8.1)JAVABeanServletJSPBrowserJAVAControlJSP浏览器 应用服务器3.1.2系统功能结构图贵州省乡土人才管理系统系统安全系统维护人才数据管理人才数据查询人才情况统计安全登陆添加操作员操作员维护添加权限组用户组维护人才数据维护 添加人才数据培训及获证情况统计职业结构统计职称情况统计行业结构统计获奖情况统计专业结构统计学历情况统计年龄结构统计基本情况统计综合条件查询基本情况查询修改删除将乡土人才管理系统划分为5个模块:系统维护、人才数据管理、人才数据查询、人才情况统计和公用的系统安全模块。下面对各模块进行功能说明:1 系统安全模块本模块是公用模块,要被其它模块使用到,包括以下用例 安全登录2系统维护模块本模块包括以下用例 新增操作员 操作人员维护 新增用户组 用户组维护3人才数据管理本模块包括以下用例 添加人才数据 人才数据维护4人才数据查询本模块包括以下用例 全部人才信息浏览 模糊查询5人才情况统计本模块包括以下用例 基本情况统计 专业结构统计6人才情况统计第二部分 学历情况统计 职业结构统计3.1.3人工处理过程手动把foxpro数据库中的结构和数据迁移到Oracle数据库中3.2 接口设计3.2.1外部接口3.2.1.1 用户界面在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。外观上也要做到合理化,尽量使用css文件控制系统的整体布局和风格。总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用3.2.2 软件接口服务器程序可使用中间件服务器提供的对oracle服务器的接口,进行对数据库的所有访问。JDBC驱动程序应用程序oracle数据库中间件服务器接口数据库驱动服务器程序上可使用oracle的对数据库的备分命令,以做到对数据的保存。3.3运行设计3.3.1运行模块组合用户通过浏览器来调用执行各个功能模块,各功能模块接收用户的命令后,调用相应的Action对用户的输入进行验证和处理,该Action处理过程中调用相应的模型组件执行具体的业务逻辑并把执行的结果返回给用户。3.3.2运行控制运行控制将严格按照各个模块中的struts配置文件和Action来执行。在各Action和struts配置文件中,需对运行控制进行正确的判断,选择正确的运行控制路径。3.4数据库设计DBMS 的使用上系统采用 Oracle8i。3.4.1 数据库的概念设计根据乡土人才数据流程,构建出如下的概念模型(不含属性框的E-R模型):隶属行业人才居住地域人才获得奖项参加培训 n m 1 n n 1 m n 3.4.2 数据库的物理结构见下页3.4.3 数据库关系表的设计根据如上的E-R模型,建立如下的关系模式及表:(1)、人才关系人才(人才编号,姓名,性别,出生日期,民族,政治面貌,学历,专业,职业,职务,职称,工作单位,通信住址,联系电话,主要专长,主要业绩,是否行业带头人,资格证年度,备注,地域编码,行业编码)此处人才编号是主索引,地域编码、行业编码是外键。为了节约存储空间和方便数据扩展,学历、专业、职业、职务、职称、行业带头人用编码表示。由此得人才数据表如下:列名数据类型宽度小数位数可否为空说明人才编号字符型10NOT NULL人才编号(主键),以该字段建立主索引,标记为“人才编号”。人才编号由10个字符构成:第1位为地区编码,用字母表示,第2-3位为县编码,由数字构成,第4-5为预留的乡编码,若不设乡,为“00”,第6-10位为个人序号。姓名字符型8NOT NULL性别字符型2NOT NULL出生日期日期型8NULL民族字符型10NOT NULL政治面貌字符型2NOT NULL学历编码字符型2NOT NULL二位数字。建立普通索引专业编码字符型6NOT NULL第1-2位为大类编码;第3-4位为小类编码;第5-6位为小类编码,各位数字。建立普通索引。职业编码字符型4NOT NULL第1位为大类编码,1个字母;第2-3位为中类编码,2位数字;第4位为小类编码。建立普通索引。职务编码字符型3NOT NULL第1位为大类编码,1个字母;第2-3位为小类编码。建立普通索引。职称编码字符型4NOT NULL第1位为大类编码,1个字母;第2-3位为小类编码,2位数字;第4位为级别,1:正高,2:副高;3:中级,4:初级;5:其它。建立普通索引。工作单位字符型30NULL通信地址字符型37NULL含邮编联系电话字符型46NULL主要专长备注型4NULL主要业绩备注型4NULL行业带头码字符型2NULL资格证年度备注备注型4NULL地域编码字符型3NOT NUL3位编码(地区1位字母、县2位数字),该编码与人才编号不能矛盾,建立普通索引。行业编码字符型3NOT NULL3位编码(一级行业1个字母、二级行业2位数字),建立普通索引(2)、行业关系行业( 行业编号,行业名称)由此行业表定义如下:列名数据类型宽度小数位数可否为空说明行业编码字符型3NOT NULL行业编码由3个字符构成:第1位为一级行业编码,用字母表示,第2-3位为二级行业编码,用数字表示,以该字段建立主索引,标记为“行业编码”。行业名称字符型32NOT NULL(3)、地域关系地域(地域编码,地域名称) 由此行业表定义如下:列名数据类型宽度小数位数可否为空说明地域编码字符型3NOT NULL地区编码由3位字符构成;第1位为地区编码,用字母表示,第2-3位为该地的县(市、区)编码用数字表示,以该字段建立主索引,标记为“地域编码”。地域名称字符型10NOT NULL(4)、获奖关系获奖(获奖序号,获奖年度,获奖名称,获奖级别,人才编号) 由此获奖表定义如下:列名数据类型宽度小数位数可否为空说明ID数字型NOT NULL以该字段建立主索引,标记为“获奖序号”。YEAR日期型NOT NULLNAME字符型20NOT NULLLEVEL_CODE字符型2NOT NULL分国家级、省部级、地州级、县级PERSONNEL_CODE字符型10NOT NULL外键,用于表示参加获奖的人才该关系表是用于实现乡土人才获相关嘉奖情况。(5)、培训关系培训(培训序号,培训年度,培训名称,获奖级别,人才编号) 由此培训表定义如下:列名数据类型宽度小数位数可否为空说明ID数字型NOT NULL以该字段建立主索引,标记为“培训序号”。YEAR日期型NOT NULLNAME字符型20NOT NULLLEVEL_CODE字符型2NOT NULL分国家级、省部级、地州级、县级PERSONNEL_CODE字符型10NOT NULL外键,用于表示参加培训的人才此关系表是用于存储乡土人才参加培训情况的。(6)、另外建立如下表A. 操作员信息表User_Info该表用于存储系统操作员的权限,表结构如下:列名数据类型宽度小数位数可否为空说明ID字符型6NOT NULL主键,用于区别操作员LOGIN_NAME字符型10NOT NULL用户登陆名NAME字符型20NOT NULL操作员姓名PASSWORD字符型10NOT NULL操作员口令GROUP_CODE字符型2NOT NULL外键,引用UserGroup组,操作员组REGION_CODE字符型3NOT NULL外键,引用地域字典表,操作员人事机关B. 用户组信息表Group_Info列名数据类型宽度小数位数可否为空说明ID字符型2NOT NULLID自动增加NAME字符型20NOT NULL组名称MOD_SYS_ADMIN字符型1NOT NULL是否拥有系统维护权限,取值为y或n,默认为nMOD_DATA_ADMIN字符型1NOT NULL是否拥有数据管理模块权限,取值为y或n,默认为nMOD_DATA_QUERY字符型1NOT NULL是否拥有数据查询模块权限,取值为y或n,默认为nMOD_DATA_STAT字符型1NOT NULL是否拥有数据统计模块权限,取值为y或n,默认为n3.5系统出错处理设计3.5.1出错信息程序在运行时主要会出现两种错误:1、由于输入信息,或无法满足要求时产生的错误,称为软错误。2、由于其他问题,如网络传输超时等,产生的问题,称为硬错误。对于软错误,须在定票/领票操作成功判断及输入数据验证模块由数据进行数据分析,判断错误类型,再生成相应的错误提示语句。对与硬错误,可在出错的相应模块中输出简单的出错语句,并将程序重置。返回输入阶段。出错信息必须给出相应的出错原因,例:“用户名和密码不能为空”等。3.5.2补救措施所有的客户机及服务器都必须安装不间断电源以防止停电或电压不稳造成的数据丢失的损失。若真断电时,客户机上将不会有太大的影响,主要是服务器上:在断电后恢复过程可采用Oracle的日志文件,对其进行ROLLBACK 处理,对数据进行恢复。在网络传输方面,可考虑建立一条成本较低的后备网络,以保证当主网络断路时数据的通信。在硬件方面要选择较可靠、稳定的服务器机种,保证系统运行时的可靠性。3.5.3系统维护设计维护方面主要为对服务器上的数据库数据进行维护。可使用Oracle的数据库维护功能机制。例如,定期为数据库进行Backup,维护管理数据库死锁问题和维护数据库内数据的一致性等。4 详细设计4.1 系统的结构4.1.1 系统整体结构图系统整体上使用MVC设计模式,View和Controller使用Struts实现,Model层使用业务代理设计模式,业务代理接口访问持久化层中的DAO接口,处理实际的业务逻辑。而本应用的控制层中的Action类可以使用这个业务代理接口,而不必直接和持久化框架交互。这种做法有助于削弱上层Web应用和持久化框架之间的关系,提高持久化框架的相对独立性。另外在持久化层使用DAO设计模式来削弱应用的业务逻辑和数据库访问逻辑的关系,在持久化层使用Hibernate这个ORM持久化框架。联合使用DAO模式和业务代理模式,可以提高持久化层、模型层和Web应用层的相互独立性。JSP页面:DisplayTag标签、客户标签、Struts Menu标签、Struts标签 视图层(View)Struts Action类:各子模块actions包下各类Web应用层 控制层(Controller)业务代理接口:service包下IxtrcService接口业务代理接口实现类:service包下XtrcServiceImpl类业务层(Model)业务对象(BO):bo包下各类DAO接口:dao包下IxtrcDao接口持久化层DAO(Hibernate):dao.hibernate包下各类乡土人才数据库(oracle8i)信息层4.1.2 系统目录结构personnel|- src| |- org| |- jls.xtrc/.(详见2.3系统包图)| |- WebRoot| |- security/.| |- logon.jsp| |- resource/.| |- sysadmin/.| |- dataadmin/.| |- dataquery/.| |- datastat/.| |- mainFrame.jsp| |- top.jsp| |- left.jsp| |- welcome.jsp| |- WEB-INF/.| |- lib/.| |- struts-config.xml(struts配置文件)| |- struts-config-sysadmin.xml(系统维护模块配置文件)| |- struts-config-dataadmin.xml(数据维护模块配置文件)| |- struts-config-dataquery.xml(信息查询模块配置文件)| |- struts-config-datastat.xml(数据统计模块配置文件)| |- menu-config.xml(struts menu配置文件)4.1.3 系统包图4.1.3.1系统功能划分包结构图4.1.3.2 系统各层次包关系图4.2 系统持久化层设计4.2.1模块描述通过统一的DAO接口IXtrcDao向上层(模型层)提供访问数据库的操作。4.2.2设计方法4.2.2.1 设计DAO接口:IxtrcDao此接口声明了getUserInfoDao()、getGroupInfoDao()等方法获得某业务对象的Dao接口的实现类。4.2.2.2 设计DAO接口实现类:XtrcDaoImpl此类实现了IxtrcDao接口声明的各个方法。4.2.2.3 设计各个业务对象的DAO接口其中,所有接口都继承自IBaseDao接口,该接口声明了增、删(delete)、改、load等方法,增加和修改的方法和为一个方法:store。子接口都是使用MyEclipse自动生成。4.2.2.4 设计各个业务对象的DAO接口实现类其中,所有接口都继承自BaseDaImpl类,该类实现了IBaseDao接口中声明的各个方法,子类都是使用MyEclipse的Hibernate工具自动生成,它们都实现了自身对应的接口中的方法。如UserInfoDAO类继承BaseDaoImpl类,同时实现了IUserInfoDAO接口。这些子类继承了基类BaseDaoImpl中的load(),store()等方法,同时实现了针对本业务对象的特殊方法,如下图的UserInfoDAO类4.3 系统业务(Model)层设计说明4.3.1模块描述通过统一的业务代理接口IxtrcService向上层(Web应用层中的控制层,具体说是Struts框架中的Action)提供服务(即封装了业务操作,返回结果给Web应用层)。4.3.2设计方法4.3.2.1 创建业务对象本应用中的业务对象和数据库中的各个表一一对应,通过XML文件来映射业务对象和数据库中的表。业务对象类和映射XML文件位于org.jls.xtrc.bo包下。这些业务对象除了基类BaseBo其他都是使用MyEclipse的Hibernate工具自动生成。各个业务对象的UML类图如下4.3.2.2 使用业务代理设计模式下图为本应用中业务代理设计模式的各类UML类图4.3.2.2.1 设计业务代理接口IXtrcService本接口定义了所有被Web应用层调用的方法。IXtrcService用来削弱服务和客户程序的关系,即使是其他类型的非Web客户程序也可以使用同样的服务。4.3.2.2.2 设计业务代理接口实现类XtrcServiceImplXtrcServiceImpl提供了IXtrcService接口的一种实现。也可以采用其他方式来实现这一接口,这不会影响客户程序,因为客户程序调用的是接口,而不是实现。XtrcServiceImpl调用IXtrcDao接口来操作数据库4.3.2.2.3 设计业务代理工厂类XtrcServiceFactory 本应用使用一个工厂类,它同时也是一个Struts插件(PlugIn),它决定初始化哪个业务代理实现类。 XtrcServiceFactory类从web.xml文件中读取初始化参数,该参数指明需要实例化的IXtrcService实现类的类名。如果不存在这个初始化参数,就使用默认的实现类(本应用为XtrcServiceImpl)。web.xml中配置如下:web-app 。 。 xtrc-service-class org.jls.xtrc.service.XtrcServiceImpl 。 由于工厂类实现了Struts插件接口,因此Struts应用启动时将加载该插件类(struts-config.xml中定义了该插件),创建它的实例,并调用它的init()方法进行初始化。该init()方法把服务工厂类本身的实例保存到application范围中,在需要的时候可以再把它取出来。4.3.2.2.4 使用业务代理接口的方法为了创建服务实现的实例,客户程序(如Action类)需要从ServletContext中取出工厂类实例,然后调用它的createService()方法。CreateService()方法将调用服务实现类的不带参数的构造方法来创建服务实现类的一个实例。然后Action类就可以访问该实例的业务方法。下图为Action类调用Xtrc业务代理接口的时序图具体调用方法请查看org.jls.xtrc.security.actions.LogonAction.java例如在LogonAction中调用服务的例子如下边代码中黑体部分。if (form != null) userName = (LogonForm) form).getUserName();password = (LogonForm) form).getPassword();IXtrcService serviceImpl = getXtrcService();user = serviceImpl.validate(userName,password);if (user = null)errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(error.password.mismatch);。其中getXtrcService()方法是在LogonAction类的父类org.jls.xtrc.framework. XtrcBaseAction类中定义的,该方法代码如下:protected IXtrcService getXtrcService() IxtrcServiceFactory factory=(IXtrcServiceFactory) getApplicationObject(Constants.SERVICE_FACTORY_KEY);IXtrcService service = null;try service = factory.createService(); catch (Exception ex) log.error(Problem creating the Xtrc Service, ex);return service;5 具体开发实现过程5.1 信息层5.1.1 把数据库从Foxpro迁移到Oracle8i数据库5.1.2 对导入的表结构和数据进行维护5.1.3 导出数据库安装脚本5.1.4

温馨提示

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

评论

0/150

提交评论