还剩66页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
中文题目基于Web的中讯计算机系统(北京)有限公司员工考勤系统的设计与实现英文题目THEDESIGNINGANDIMPLEMENTATIONOFTHESINOCOMCOMPUTERSYSTEMBEIJINGCO..LTDEMPLOYEEATTENDANCESYSTEMTHATBASEDONWEB毕业设计(论文)共62页(其中外文文献及译文7页)图纸共0张完成日期2015年6月答辩日期2015年6月摘要中讯计算机系统(北京)有限公司随着时代的发展,将计算机技术大量应用到各种信息管理的系统中,考勤管理系统是将计算机信息技术引入人力资源管理之中,利用计算机对人力资源进行管理的一种信息管理系统,它是企业信息化中的一个重要组成部分介于在公司实习期间遇到的种种问题,本文主要针对目前公司的在线请假管理而设计的信息管理系统文中对项目的一些相应的技术背景和软硬件环境都做了简要的描述,利用OracleDatabase10gExpressEdition数据库管理系统进行数据存储,使用MyEclipse
8.5集成开发环境进行开发;重点在于描述考勤系统业务流程的分析过程,和软件项目的实施过程,并对关键代码的实现进行必要的描述中讯计算机系统(北京)有限公司员工考勤系统通过计算机实现对员工的请假和加班的在线管理,员工利用本系统进行请假和加班申请,管理人员可以用系统对其申请做审核简化了人工申请审批的过程,同时响应了无纸化办公的绿色环保理念关键字考勤单;考勤管理;在线请假ABSTRACTWiththedevelopmentofthetimesSinocomcomputersystemBeijingco.LTDhasapplythecomputertechnologytovariouskindsofinformationmanagementsystem.AttendanceManagementSystemputsthecomputerinformationtechnologyandthehumanresourcemanagementtogether,whichisaninformationmanagementsystemusingcomputertomanagehumanresourceshasbecameanimportantcomponentpartofenterpriseinformatization.TaketheproblemsImetinmyinternshipintoconsiderationthisismainlyaimedatthepresentsituationofthecompanyonlineleavemanagement.Somecorrespondingtechnicalbackgroundoftheprojectthehardwareandsoftwareenvironmentaredescribedbrieflyinthispaper.OracleDatabase10gExpressEditionisusedasDBMS.MyEclipse
8.5integrateddevelopmentenvironmentisusedasthedevelopmenttool.Theimplementationofthekeycodeswhicharenecessaryaredescribedaswell.EmployeeattendancesystemofSinocomcomputersystemBeijingco.LTDhasaccomplishtheonlinemanagementofstaffleaveandovertimethoughcomputer.UsingthissystemstaffcanapllyforleaveorovertimeandManagerscanapplyforreview.Ithassimplifiedtheprocessofartificialapplicationforexaminationandapprovalrespondtothepaperlessofficeinthegreenenvironmentalprotectionideaaswell.KEYWORDS:AttendancesheetAttendanceManagementOnlineForLeaving目录TOC\o1-3\h\z\u1项目概述
11.1现系统概述
11.2公司组织机构
11.3系统业务流程
21.4系统功能模块42系统需求分析
52.1需求陈述
52.2UseCase建模
62.
2.1定义活动者
62.
2.2UseCase图73系统架构设计
153.1架构设计目标
153.2系统架构设计
163.3系统架构类图204系统详细设计
224.1系统交互图
224.
1.1系统架构类交互图
224.
1.2活动者与模块间的交互
2214.
1.3系统协作图
254.
1.4系统状态图
284.
1.5系统活动图
294.2业务逻辑对象类设计
304.
2.1发现业务逻辑类
304.
2.2业务逻辑对象类图
304.3数据库设计
334.
3.1ER图
334.
3.2物理表结构图
344.4开发环境的选择
354.
4.1系统开发工具
354.
4.2数据库的选择
364.
4.3系统网络架构设计365编码
385.1概述开发工具及编程脚本
385.2脚本习惯说明
385.3脚本396系统测试
406.1测试原则及测试方法概述
406.2测试项目测试用例
416.3软件测试结论
446.
3.1软件能力
446.
3.2缺陷和限制
446.
3.3建议
446.
3.4测试结论44结论45致谢46参考文献47附录A中文译文48附录B英文原文51附录C源程序代码551项目概述
1.1现系统概述中讯软件集团股份有限公司(以下简称中讯),自1995年成立以来,中讯以成为中国最有价值的软件开发公司为目标而自强不息时至今日,中讯已成为以信息技术为核心专门从事外包软件开发、技术服务支持等业务的高科技企业中讯的外包业务涉及证券、金融、保险、通信、流通、电子商务等应用领域在长期的对外软件开发活动中,与客户建立了良好的合作关系,取得了客户的高度信任在企业成长过程中,中讯采取了强化自己在特定领域的优势,稳健成长的企业战略,使其在天时、地利、人和的大环境下,迅速崛起几年来,中讯承接了来自日本为主的海外软件开发项目上百个,其中包括银行、证券、电子商务交易等规模庞大、要求严谨的核心业务开发在承接海外软件开发项目方面,中讯在项目管理与质量控制、安全保密管理等方面独有心得,从而在技术,品质等方面处于竞争的优势中讯作为大型集团化企业,在北京、上海、大连、成都、杭州、无锡、吉林等地设有大型研发中心,在日本东京、香港设有分支机构创业以来,公司的业绩及员工数都保持着良好的增长趋势,一跃成为中国首屈一指的独立外包软件开发公司中讯公司作为一个日趋成熟的对日软件外包公司,在员工的管理上已经逐渐形成自己的体系,但是由于经济危机期间公司的组织机构曾经进行过重组,所以在最普通的考勤管理上,虽然制度趋于完善,但是员工的请假、加班等过程仍需要员工手动填写纸质的申请表,管理人员还要一张表、一张表的向计算机里录入对各种申请的审批,也需要员工亲自找每一个相关人员签字由于公司规模的扩大,办公场地也在扩增,在不同场地工作的员工通常要找同一个人签字第一,各个办公场地相距甚远;第二,审批人的工作地点有时也不固定,这就导致有时员工的申请得不到及时的反馈,这给平日企业员工的管理带来很多的不便因此作为进入中讯实习的实习生,在被考勤相关的申请审批折磨了无数次后,逐渐产生实现一个与考勤管理相关系统的想法
1.2公司组织机构公司实行董事长监管下的总经理负责制,总经理和办公室负责协调开发部门、系统部门、质量部门、销售部门、人事部门和财务部门之间相互合作完成整个公司的业务流程的运作中讯能集中超过100人,同时开发大型机上的应用软件,充分体现在大型软件开发管理中的优势中讯经过多年的努力,建成了一支以大批具备海外软件开发经验的技术人员为主的管理队伍,并制定了完整的项目管理与质量控制体系图1-1公司组织机构图Fig1-1DiagramoftheCompanysOrganizationalStructure
1.3系统业务流程中讯软件公司作为一家大型软件公司,每个工作场地外都设有门禁,每个员工都配有门禁卡,一是为了公司的信息安全,二可以做员工的考勤平日员工考勤信息由此收集,当员工因为某些原因未能正常进行考勤,则需要向公司提出申请,比如实习生为了毕业答辩返校而不能继续工作时,需先至自己所在工作场地的前台处,领取请假申请用表称为考勤单,按需要填写,考勤单上需要填写员工的工号、姓名、所在部门,开始请假的日期时间,填写好后交予部门负责人审批签字后,再交予前台录入电脑经过前期调研分析和综合其它各方面的相关理论知识,给出整个考勤系统的业务流程图如下图1-2所示整个考勤系统的开发主要围绕上述业务流程,侧重考勤单的管理进行开发,开发过程采用面向对象的开发技术,具体开发过程见下面的章节标题�职能�阶段�#0;#0;#0;图1-2考勤系统流程Fig1-2theWorkflowofAttendanceSystem
1.4系统功能模块根据上述业务流程,整个考勤系统抽象出以下几个功能模块,如图1-3下面模块划分只是抽象意义上的划分,各模块之间需要共享数据,相互协作,完成整个系统流程,单一事物功能模块间是相互独立的图1-3系统功能模块Fig1-3FunctionModelsofSystem2系统需求分析
2.1需求陈述通常,需求陈述的内容包括问题范围,功能需求,性能需求,应用环境及假设条件等指出哪些是系统必要的性质,哪些是任选的性质应该避免对设计策略施加过多的约束,也不要描述系统的内部结构,因为这样做将限制实现的灵活性对系统性能及系统与外界环境交互协议的描述,是合适的需求此外,对采用的软件工程标准、模块构造准则、将来可能做的扩充以及可维护性要求等方面的描述,也都是适当的需求根据前期调研和分析,可得知在整个考勤系统的差假管理模块及部分考勤管理模块的需求如下所述1)系统登录模块提供员工登录功能,员工输入自己的工号和密码,系统做登录验证,决定是否可以访问系统实现提供登录页面,输入员工号和密码,系统从数据库中验证是否有匹配数据,根据查询结果输出,若输入的工号和密码正确,进入系统的操作界面,不正确输出错误信息并重新返回登录页面2)考勤信息采集模块考勤信息采集模块主要用于签到签退等平日考勤信息的取得用,由于签到签退功能不是本次系统的实装重点,所以不做细致的需求分析3)差假管理模块差假管理模块大致分为员工申请和领导审批两大模块而员工申请模块中又可分为员工的请假申请和加班申请两种所以又将差假管理模块分为3个小模块员工申请请假实现填写、保存、提交请假单,可以实现手工填入请假申请表中的内容,并能保持请假信息的持久化(将请假的信息保存到数据库),输入请假单中的内容,包括请假人的信息,请假的起止时间,请假的类型等,系统对填写内容做出处理,对其内容进行格式验证,之后保存,等待员工确认申请4)加班申请模块实现填写、保存、提交加班申请表,可以实现手工填入申请表中的内容,并能保持加班申请信息的持久化(将加班的信息保存到数据库),输入加班申请表中的内容,包括加班人的信息,加班的起止时间等,系统对填写内容做出处理,对其内容进行格式验证,之后保存,等待员工确认申请5)审核模块为有审批权限的人提供审批页面,如部门经理,可以看到等待他审批的该部门的考勤单,并根据考勤的明细信息对其进行审核,输入审核意见,系统将审核结果反馈给申请人,系统可以将审批完成的考勤单持久化(将审批结果存入数据库)6)考勤查询模块查看请假信息为员工提供请假单的查看功能,系统将按申请人列出其考勤申请,员工可以查看考勤单的明细,以确认提交7)人事管理模块人事管理是各种信息管理系统的基础,所以考勤系统中也必然涉及公司的员工的管理大致分三个模块密码修改因为每一个新员工入社时由人事部提供信息再由系统部统一将新员工加入系统并提供初始密码,所以要为员工提供密码修改页面,让员工可以修改自己的登录密码,输入新密码和旧密码,系统根据新密码修改数据库数据,修改成功后系统返回登录页面,此时员工需重新登录系统添加员工向系统中添加员工,并能将增添的员工信息持久化,输入员工的基本信息,如员工的工号、姓名、入职时间等等基本信息,然后提交,可以将员工信息保存起来,以备在其他模块使用查询员工按给定的条件查询相应员工,输入查询条件,可以按员工编号和部门编号两种条件查询员工,提交查询条件,系统按条件从列表中查询,并返回查询结果给用户
2.2UseCase建模
2.
2.1定义活动者根据以上的管理需求可以确定3个活动者,即企业员工、部门经理和公司的人事,企业员工利用考勤申请模块填写请假信息,如请假的时间、类型等,提交考勤单等待审核,并可以查看审核结果管理者使用审核模块,可以查看待相关人员审核的考勤单信息,并对其进行审核公司的人事主要使用系统的人事管理模块,系统中的所有活动都源自于企业员工,所以员工的管理是各种管理模块的基础
2.
2.2UseCase图UseCase(用例)就是对系统功能的描述根据系统的需求分析并结合以上系统的活动者的定义得到主要的用例如下员工申请加班、申请请假、审批考勤单、查询考勤申请等等;图2-1考勤管理UseCase图Fig2-1UseCaseforAttendanceManagement依据以上对系统的用例分析,对各用例做进一步分析得到以下对用例的描述
(1)登录系统用例是所有用例的前置用例,只有先以合法身份登录系统,才可以再进行各种操作表2-1员工登录的用例规约Table2-1TheUseCaseSpecificationofemployeelogin用例名称登录系统用例编号Sino_EAMS_001用例描述用例主要功能是实现登录,起始于普通员工的登录参与者企业员工前置条件访问网页,进入登录界面后置条件登录成功基本操作流程参与者动作系统响应
1.用户输入基本信息(员工号和密码),点击登录按钮
2.系统查找数据库,看该用户在数据库表中是否存在,若存在则进入操作页面,若不存在,则进入
2.2,若未输入则进入
2.1可选操作流程参与者动作系统响应
2.
1.1未输入用户名
2.1提示用户名或密码没输入
2.
2.1用户名不存在
2.2提示用户名或密码不正确
2.
1.2未输入密码
2.
2.2密码不正确
(2)修改密码为员工提供修改密码的功能,通过此功能修改初始密码表2-2修改密码的用例规约Table2-2TheUseCaseSpecificationofchangethepassword用例名称修改密码用例编号Sino_EAMS_002用例描述用例主要功能是实现登录密码的修改参与者企业员工前置条件登录成功后,进入密码修改页面后置条件修改成功基本操作流程参与者动作系统响应
1.填写旧密码和新密码,单击修改按钮
2.系统去数据库查相应的登录员工的员工信息,修改密码,若新密码为空则进入
2.1可选操作流程参与者动作系统响应
2.1未填写新密码
2.1提示密码不能为空
(3)请假申请请假是本系统主要需要实装的功能,员工通过该功能可以填写考勤单,提交或保存,以达到申请请假的目的下表是请假申请的用例描述表2-3申请请假的用例规约Table2-3TheUseCaseSpecificationofApplyforBusinesstrip用例名称申请请假用例编号Sino_EAMS_003用例描述用例主要功能是实现员工的请假申请参与者企业员工前置条件成功登录系统后,进入请假申请页面后置条件申请完成基本操作流程参与者动作系统响应
1.进入主界面,点击添加考勤单的连接
2.系统响应点击事件,进入考勤单的添加界面
3.员工填写考勤单中的相应信息后,可点击“保存”或“提交”按钮
4.判断用户输入是否合法,判断为合法时,若点击“保存”按钮,将填写的信息存入数据库不提交给部门经理,若点击“提交”按钮,将填写的考勤单提交给部门经理;判断不合法时,若有信息为空则进入
4.1,若有格式错误则进入
4.2可选操作流程参与者动作系统响应
4.
1.
1.1未输入考勤起始日期
4.
1.1提示未输入考勤起止日期
4.
1.
1.2未输入考勤结束日期
4.
1.
2.1未输入考勤起始时间
4.
1.2提示未输入考勤起止时间
4.
1.
2.2未输入考勤结束时间
4.
1.
3.1未输入折合小时数
4.
1.
3.2提示折合小时数不能为空
4.
2.1输入的考勤起始时间晚于考勤结束的时间
4.
2.2提示考勤开始日期不能大于考勤截止日期
(4)申请加班申请加班是员工在规定的正常工作时间以外的时间继续工作时提出的申请,该用例还可以为外部系统,如企业的财务管理提供一定的信息加班申请的用例描述如表2-4表2-4申请加班的用例规约Table2-4TheUseCaseSpecificationofOvertimeNotice用例名称申请加班用例编号Sino_EAMS_004用例描述用例的主要功能是实现员工的加班申请参与者企业员工前置条件登录系统后,进入加班申请页面后置条件完成申请基本操作流程参与者动作系统响应
1.进入主页面,点击加班申请中的添加申请的连接
2.系统响应点击事件,进入加班申请的添加页面
3.员工添写加班信息,然后单击“保存”或“提交”按钮
4.判断用户输入是否合法,判断为合法时,若点击“保存”按钮,将填写的信息存入数据库不提交给部门经理,若点击“提交”按钮,将填写的加班申请提交给部门经理;判断不合法时,若有信息为空则进入
4.1,若有格式错误则进入
4.2可选操作流程参与者动作系统响应
4.
1.
1.1未输入加班日期
4.
1.
1.2提示加班日期不能为空
4.
1.
2.1未输入加班起始时间
4.
1.2提示加班起始时间不能为空
4.
1.
2.2未输入加班结束时间
4.
1.
3.1未输入加班事由
4.
1.
3.2提示加班事由不能为空
4.
2.1加班开始时间晚于结束时间
4.
2.2提示加班开始时间不能大于截止时间
(5)审核考勤审核考勤是本系统实装的另一重点功能,在员工提交考勤申请后,相应的部门负责人需要审核员工的申请,以确定是否批准其申请因为不论是请假申请还是加班申请都要做审批,所以考勤审核用例还分为请假申请的审核,和加班申请的审核分析以上两个用例得到表2-5和表2-6的用例描述表2-5审核请假申请的用例规约Table2-5TheUseCaseSpecificationofTheAuditofAskingforLeave用例名称审核请假申请用例编号Sino_EAMS_005用例描述用例主要功能是实现请假申请的审核参与者企业员工,部门经理前置条件有员工体提交请假申请后置条件考勤单查询基本操作流程参与者动作系统响应
1.部门经理登录系统
2.系统从数据库查询待其处理的考勤单
3.若有待处理的考勤单,单击审批按钮
4.显示考勤单详情
5.进行审批,审核通过进入
5.1,审核拒绝进入
5.
26.将相应结果存入数据库,显示考勤单的查询页面可选操作流程参与者动作系统响应
5.
1.1单击“审核通过”按钮
5.
1.2保存结果,返回查询页面显示
5.
2.1单击“审核拒绝”按钮
5.
2.2保存结果,返回查询页面显示表2-6审核加班申请的用例规约Table2-6TheUseCaseSpecificationofTheAuditofWorkingOvertime用例名称审核加班申请用例编号Sino_EAMS_006用例描述用例主要功能是实现员工的加班申请的审核参与者企业员工,部门经理前置条件有本部门的员工体提交加班申请后置条件加班申请的查询基本操作流程参与者动作系统响应
1.部门经理登录系统
2.系统从数据库查询待其处理的加班申请
3.若有待处理的加班申请,单击审批按钮
4.显示考勤单详情
5.进行审批,审核通过进入
5.1,审核拒绝进入
5.
26.将相应结果存入数据库,显示加班申请的查询页面可选操作流程参与者动作系统响应
5.
1.1单击“审核通过”按钮
5.
1.2保存结果,返回查询页面显示
5.
2.1单击“审核拒绝”按钮
5.
2.2保存结果,返回查询页面显示
(6)查询考勤申请信息考勤申请信息的查询,是部门经理对部门员工的请假申请和加班申请的前置条件用例,对员工的申请做审批前,可以查看到本部门的员工的申请信息以下为查询考勤申请信息的用例描述表2-7查询考勤申请信息的用例规约Table2-7TheUseCaseSpecificationofSelectTheApplicationforBusinesstrip用例名称查询考勤申请信息用例编号Sino_EAMS_007用例描述用例主要功能是实现查看员工的申请参与者企业员工,部门经理前置条件有本部门的员工体提交申请后置条件 基本操作流程参与者动作系统响应
1.员工或部门经理登录系统,进入考勤申请的查询页面
2.系统从数据库查询待其处理的申请,若有申请则进入
2.1,若无记录则进入
2.2可选操作流程参与者动作系统响应
2.1显示相关申请列表
2.2提示没有相关记录
(7)员工管理无论是企业的考勤管理系统,还是财务管理系统,管理的对象都是企业员工,所以只要与企业管理相关系统,必然要存在对员工的管理一是员工管理是企业各种管理的基础,二是员工也是各种系统的主要使用者员工管理主要涉及四个用例,即员工的增加、删除、修改、查询四个用例描述如下表2-
8、表2-
9、表2-
10、表2-11表2-8增加员工的用例规约Table2-8TheUseCaseSpecificationofAddEmployee用例名称增加员工用例编号Sino_EAMS_008用例描述用例主要功能是实现员工的添加参与者公司人事前置条件有新进员工需要添加时,登录系统进入员工的添加页面后置条件添加成功基本操作流程参与者动作系统响应
1.公司的人事管理人员登录系统,点击添加员工的连接
2.系统响应点击事件,进入添加页面
3.人事管理人员填写要添加的员工信息,单击“提交员工信息”按钮
4.判断提交信息是否合法,若合法,返回原页面,若不合法,则进入
4.1可选操作流程参与者动作系统响应
4.
1.
1.1未输入员工工号
4.
1.
1.2提示员工编号不能为空
4.
1.
2.1未输入员工姓名
4.
1.
2.2提示请填写员工姓名
4.
1.
3.1未输入员工入职时间
4.
1.
3.2提示请填写员工的入职时间
4.
1.
4.1未选择部门
4.
1.
4.2提示请选择员工所在部门当企业中有员工离职时,需要删除该员工,此删除是逻辑删除而不是物理删除,只是填写员工的离职时间,用来表示该员工已经离职,并不把该员工从员工表中物理的删除掉表2-9删除员工的用例规约Table2-9TheUseCaseSpecificationofDeleteEmployee用例名称删除员工用例编号Sino_EAMS_009用例描述用例主要功能是实现员工的删除参与者公司人事前置条件有员工离职时,登录系统进入相应员工的删除页面后置条件删除成功基本操作流程参与者动作系统响应
1.公司的人事管理人员登录系统,找到员工单击删除按钮
2.系统响应点击事件,进入员工的删除页面
3.人事管理人员填写要离职的员工离职时间,单击“提交员工信息”按钮
4.判断提交信息是否合法,若合法,返回原页面,若不合法,则进入
4.1可选操作流程参与者动作系统响应
4.
1.1未输入离职时间
4.
1.2提示请填写离职时间修改员工信息用例可以完成对员工的信息修改的功能,可修改项里包括密码,所以该用例同时也可以重置员工的登录密码表2-10修改员工信息的用例规约Table2-10TheUseCaseSpecificationofUpdateEmployeeInformation用例名称修改员工信息用例编号Sino_EAMS_010用例描述用例主要功能是实现对员工信息的修改参与者公司人事前置条件登录系统进入相应员工的信息修改页面后置条件修改成功基本操作流程参与者动作系统响应
1.公司的人事管理人员登录系统,找到员工单击删除按钮
2.系统响应点击事件,进入员工的修改页面
3.人事管理人员填写员工需要修改的信息,单击“提交员工信息”按钮
4.判断提交信息是否合法,若合法,返回原页面,若不合法,则进入
4.1可选操作流程参与者动作系统响应
4.
1.
1.1未输入员工工号
4.
1.
1.2提示员工编号不能为空
4.
1.
2.1未输入员工姓名
4.
1.
2.2提示请填写员工姓名
4.
1.
3.1未输入员工入职时间
4.
1.
3.2提示请填写员工的入职时间
4.
1.
4.1未选择部门
4.
1.
4.2提示请选择员工所在部门
4.
1.
5.1未选择职位
4.
1.
5.2提示请选择职位
4.
1.
6.1未输入密码
4.
1.
6.2提示请输入密码查看员工可以完成对员工的查看功能,该用例可以说是删除和修改两个用例的前置条件用例,因为要查询到员工后才能对其做修改或删除操作因为查看员工包含于删除操作的过程中,所以在做用例分析时容易漏掉表2-11查看员工的用例规约Table2-11TheUseCaseSpecificationofSelectEmployee用例名称查看员工用例编号Sino_EAMS_011用例描述用例主要功能是从列表中查看员工,起始于点击查找的连接参与者公司人事前置条件登录系统进入主页面后置条件查找成功基本操作流程参与者动作系统响应
1.公司的人事管理人员登录系统,点击查看员工的连接
2.系统响应点击事件,进入员工的查询页面
3.人事管理人员可以按照工号或部门查询员工,输入查询条件后单击“提交员工信息”按钮
4.判断提交信息是否合法,若合法,系统去数据库中查询数据,若存在则返回结果到原页面,若无结果则提示没有相应结果;若不合法,则进入
4.1可选操作流程参与者动作系统响应
4.
1.
1.1未输入要查询的员工工号
4.
1.
1.2提示请填写要查询的员工工号
4.
1.
2.1未选择要查询的部门
4.
1.
2.2请选择要查询的员工部门3系统架构设计软件的系统架构是指使用某种特定的技术平台,从而完成软件系统的整体功能的开发过程也可以大致理解为总体设计和总体结构布局就一般而言,软件系统架构有两个要素1它是一个软件系统从整体到部分的最高层次的划分2建造一个系统所做出的最高层次的,以后难以更改的,商业和技术的决定
3.1架构设计目标软件架构设计要达到如下的目标1可行性(Feasible)系统的架构具有可行性是架构设计的基石本系统运用B/S(浏览器/服务器)模式主要采用面向对象的开发方法,前台使用JSP网络编程语言,JSP语言出台已十余年的时间,技术已经比较成熟,非常适合开发B/S构架的WEB应用,而且关于JSP技术的参考书籍和网络资料丰富,可为开发提供很大的帮助此次以Oracle10gXE版作为后台数据库,Oracle10gExpressEdition简称OracleXE是真正免费的,不需要购买许可就可免费分发和使用OracleXE建立在Oracle数据库10g第二版的代码库之上,与Oracle数据库产品系列完全兼容,并可以用于32位的Windows系统中,由于是免费版,所以虽然在某些方面存在一定的限制,但已经可以满足一般中小型企业的需求,又可以和Oracle数据库产品系列兼容,所以也能比较容易应用于大型公司2可靠性(Reliable)软件系统对于用户的商业经营和管理来说极为重要,因此软件系统必须非常可靠JSP具有健壮的存储管理和有效的安全性,而Oracle数据库也是目前世界上使用最为广泛的数据库管理系统,它拥有完整的数据管理功能,是一个完备关系的产品所以系统初步具有一定的可靠性3安全性(Secure)软件系统所承担的交易的商业价值极高,系统的安全性非常重要因为公司电脑不连外网,所以在一定程度上保证了其网络的安全性系统的使用需要口令的验证,并且按照身份权限的不同进行不同的操作,使系统具有一定的信息安全性4可定制化(Customizable)同样的一套软件,可以根据客户群的不同和市场需求的变化进行调整5可扩展性(Extensible)在新技术出现的时候,一个软件系统应当允许导入新技术,从而对现有系统进行功能和性能的扩展6可维护性(Maintainable)软件系统的维护包括两方面,一是排除现有的错误,二是将新的软件需求反映到现有系统中去一个易于维护的系统可以有效地降低技术支持的花费7可升级性(Scalable)软件必须能够在用户的使用率、用户的数目增加很快的情况下,保持合理的性能只有这样,才能适应用户的市场扩展得可能性8客户体验(CustomerExperience)软件系统必须易于使用软件的最终用户很可能是不具有计算机专业技术的人员系统能提供友好的界面供用户使用
3.2系统架构设计下面我们将根据架构设计原则和信息系统原理来建立系统的架构设计模型将信息系统中比较关心的对象分层,可分为四层用户界面层、请求控制层、业务层、数据访问层(如下图3-1所示)图3-1系统体系架构图Fig3-1TheDiagramofSystemArchitecture根据系统架构得到系统包图如下图3-2考勤管理模块包图Fig3-2PackageDiagramofAttendanceModel
(1)用户界面包用户界面包负责以下几项1)与用户的交互,接收用户的各种输入以及输出各种提示信息或处理结果2)对于输入的数据进行数据校验,过滤非法数据3)向业务处理对象发送处理请求图3-3用户界面包展开图Fig3-3PackageDiagramofUsersInterface用户界面包包含的类见图3-4图3-4用户界面类图Fig3-4ClassDiagramofUsersInterface
(2)请求控制包请求控制包的职责是1)接收界面传来的请求2)根据不同的请求向业务逻辑处理对象发送业务处理请求3)向用户界面层返回处理结果请求控制包图展开如图3-5所示图3-5请求控制包图展开Fig3-5PackageDiagramofAction请求控制包包含的类见图3-6图3-6请求控制类图Fig3-6ClassDiagramofAction
(3)业务逻辑包业务逻辑包的职责是1)实现各种业务处理逻辑或处理算法2)验证请求者的权限3)向数据访问对象发送数据持久化操作的请求业务逻辑包图展开如图3-7所示图3-7业务逻辑包图展开Fig3-7PackageDiagramofBusiness业务逻辑包包含的类见图3-8图3-8业务逻辑类图Fig3-8ClassDiagramofBusiness
(4)数据访问包数据访问层的职责是1)实现数据的持久化操作2)实现事务处理数据访问包图展开如图3-9所示图3-9数据访问包图展开Fig3-9PackageDiagramofDataAccess数据访问包包含的类见图3-10图3-10数据访问类图Fig3-10ClassDiagramofDataAccess对于每一个业务处理中需要持久化操作的对象都可以对应为一个数据库访问对象,在很多业务处理中需要请求多个数据库访问对象来进行数据的读写操作,而这些操作又必须在同一个事务中,这时需要用同一个数据库连接对象来进行统一的事务处理
(5)权限管理包权限管理并不单一的指对登录人员的权限管理,最基本的是对系统合法人员和非系统合法用户的权限管理权限管理的主要职责是1)验证请求者的请求权限2)提供请求者的权限列表权限管理包图展开如图3-11所示图3-11权限管理包图展开Fig3-11PackageDiagramofAccessAuthorization操作员提供自己的验证信息(例如,用户名、密码等),通过权限管理类获取权限列表,做权限验证从而判断请求者是否可以使用系统,若可以使用系统,则对其使用的身份做判断权限管理包包含的类见图3-12图3-12权限管理类图Fig3-12ClassDiagramofAccessAuthorization
3.3系统架构类图将包图展开,得到类图,该类图是架构的静态结构图,表达了各个类之间的静态联系图3-13系统架构类图Fig3-13ClassDiagramofSystemArchitecture4系统详细设计本部分设计主要涉及软件系统的动态建模和系统类图的详细设计,是对概要设计方案做完善和细化软件系统的动态模型分为交互模型和活动状态模型,顺序图和协作图构成其中的交互模型,活动状态模型主要包括活动图和状态图通过为软件系统项目建立动态模型,从而产生体现系统动态行为的可视化分析结果——包括对象的时间特性和对象为完成目标任务而相互进行通信的机制、对象行为的改变和状态变化情况,以及对象可能出现的各种活动状况等信息
[2]
4.1系统交互图交互图(interactiondiagram)是用来描述对象之间以及对象与参与者之间的动态协作关系之际协作过程中行为次序的图形文档它通常用来描述一个用例的行为,显示该用例中所涉及的对象和这些对象之间的消息传递情况
4.
1.1系统架构类交互图系统架构类的工作流程
(1)用户界面对象在接收了用户的输入请求后,向请求控制对象发送用户请求
(2)请求控制对象将请求发送给向业务代理对象
(3)业务代理对象接收到请求后,向权限管理对象发送验证权限请求
(4)权限管理对象验证权限后将验证结果返回给业务代理对象
(5)业务代理对象根据验证结果进行以下处理对于不符合权限的请求则返回提示信息;对于符合权限的请求,则将请求转发给业务对象
(6)业务对象进行业务处理对于业务处理中的数据持久化操作,通过访问数据库访问对象进行操作,期间的任何异常都交给异常处理对象处理最后返回处理结果信息给业务代理对象
(7)业务代理对象将处理结果信息返回给用户界面系统架构类的交互图如图4-1所示
4.
1.2活动者与模块间的交互对象之间的交互用时序图来描述,时序图也称为顺序图这些对象时按时间顺序排列的,时序图中显示的是参与交互的对象以及对象之间消息交互的顺序图4-1系统架构类的交互图Fig4-1InteractiveDiagramofSystemArchitectureClass系统登录用例的顺序图如下,其中的参与者是企业员工图4-2系统登录顺序图Fig4-2InteractiveDiagramofLoginSystem系统的密码修改用例的顺序图如下所示,员工在密码修改页面输入新密码,然后提交业务请求,由密码修改处理的类对数据库做更新操作,修改密码后返回登录界面重新登录图4-3修改密码的顺序图Fig4-3InteractiveDiagramofPasswordChange系统的请假申请的顺序图如下,员工需要请假时,先打开考勤单页面,输入对应考勤信息,然后提交考勤单,系统将考勤单存入数据库,考勤管理类的业务逻辑处理会将员工的考勤单提交给相应的部门经理图4-4请假申请顺序图Fig4-4InteractiveDiagramofApplyforBusinesstrip系统关于考勤审核的顺序图如下所示,当员工提交考勤单后由系统交给相应的部门经理做审批,经理首先要能查看等待自己处理的考勤单,然后根据情况决定审核通过或打回,然后系统将保存审批的结果,并将审批结果反馈给申请者,使申请者能查看自己的考勤单是否申请成功图4-5考勤审核顺序图Fig4-5InteractiveDiagramofCheckforBusinesstrip
14.
1.3系统协作图协作图是交互图的另一种表现形式,是用于描述系统的行为是如何由系统的成分协作实现的图协作图与顺序图同属于交互图,都用于描述系统中对象之间的动态关系两者可以相互转换,虽然两者在语义上是等价的,但并不能完全相互替代根据上一节的各功能的时序图可以得到相应的协作图如下系统登录用例的协作图图4-6系统登录协作图Fig4-6TimingDiagramofLoginSystem密码修改用例的协作图图4-7修改密码的协作图Fig4-7TimingDiagramofPasswordChange请假申请的协作图图4-8请假申请协作图Fig4-8TimingDiagramofApplyforBusinesstrip考勤审核的协作图图4-9考勤审核协作图Fig4-9TimingDiagramofCheckforBusinesstrip
4.
1.4系统状态图UML中的状态图(statechartdiagram)主要用于描述一个对象在其生存期间的动态行为,表现一个对象所经历的状态序列,引起状态转移的时间,以及因状态转移而伴随的动作员工对象的状态图中,员工有申请请假、等待审批结果、得到结果几种状态,得出状态图如下图4-10员工的状态图Fig4-10StateDiagramforEmployee部门经理的状态图图4-11部门经理的状态图Fig4-11StateDiagramforDeploymentManager考勤单的状态图如下,考勤单开始时被创建,填写后可以提交或保存,则状态变为被保存或被提交,状态为被提交的报销单可以进行审批,审批后变成被审批的状态图4-12考勤单的状态图Fig4-12StateDiagramforAttendancesheet
4.
1.5系统活动图活动图是对系统的动态行为建模的5个图之一用于描述系统的工作流程和并发行为,可以看作是状态图的特殊形式当一个操作必须完成一系列事情,而又无法确定以什么样的顺序来完成这些事情时,活动图可以更清晰地描述这些事情在差假管理的模块中,主要涉及员工和部门经理的活动这里的部门经理指具有一定权限的相应负责人员工需要先登录系统,若失败则需要重新登录,若成功则可以进入差假管理模块进入后有需要请假的员工可以填写考勤单,曾经申请过请假的员工可以查看考勤单考勤单可以提交或者保存,保存的考勤单可以再提交,提交后的考勤单将由部门经理进行审批员工可以查看审批结果图4-13请假管理的活动图Fig4-13ActivityDiagramforBusinessTrip
4.2业务逻辑对象类设计
4.
2.1发现业务逻辑类本小节的主要任务是对系统架构类图中的业务逻辑类进行设计,由系统分析中的UseCase交互图我们可以发现业务逻辑类包括员工类,部门类,考勤单类等实体类;还有审批处理、请假处理、加班处理等控制类;以及相应的边界类根据UseCase交互图中的消息找到对象类相应的方法
4.
2.2业务逻辑对象类图系统业务逻辑对象类图如下图4-14所示图4-14差假管理对象类图Fig4-14ObjectClassDiagramforBusinessTripManagement从上面的对象类图中我们发现,这些对象类中都有相似的方法,尽管参数或返回值不同,这样我们就可以把这些方法抽象出来做成接口优化后的对象类图见图4-15图4-15优化的销售管理对象类图Fig4-15OptimalObjectClassDiagramforBusinessTripManagement
4.3数据库设计关系型数据库是目前应用最广泛的数据库设计数据库的目的是要考虑如何把对象高效的持久化虽然系统采用的面向对象的设计方法,但是面向对象设计是解决业务执行逻辑的问题,数据库设计是解决数据高效持久化的问题,它们从本质上是两个领域的设计现在数据库的设计要考虑如何对对象进行持久化操作依据数据库的三大范式以及性能要求来把对象持久化
[7]目前可以采用数据库建模工具来实现,像PowerDesigner、Rose等
4.
3.1ER图E-R图也称实体-联系图EntityRelationshipDiagram,提供表示实体类型、属性和联系的方法,用来描述现实世界中的概念模型
[6]本系统涉及的实体有员工、部门、考勤单、加班申请表四个图4-16差假管理模块ER图Fig4-16E-RDiagramofBusinessTripManagement
4.
3.2物理表结构图将ER模型中的实体转换为物理表,转换中首先满足关系型数据库,表中无重复列,在此基础上实体的属性完全依赖于主键,并且不依赖与其他非主属性依据以上原则,得到物理表结构如下tb_emp(员工表)用于记录员工信息,如工号、姓名、职位等表4-1员工信息表Table4-1Tableofemployeeinformation字段名称数据类型大小说明主键emp_nochar5员工编号是emp_namevarchar220员工姓名jobvarchar220职位hiredatechar8入职时间dept_nochar6所在部门passwordvarchar220登录密码retiredatechat8离职时间tb_dept(部门表)用于存储公司内的部门信息,包括部门编号、部门名称和该部门的部门经理的员工编号表4-2部门信息表Table4-2Tableofdepartmentinformation字段名称数据类型大小说明主键dept_nochar6部门编号是dept_namevarchar220部门名称dmanagerchar5部门经理员工表和部门表示系统的基础表,表中数据是系统的基础数据,所以尽管考勤系统本不应涉及员工的管理,但是从系统功能的完善的角度,还需要相应的物理表来存储对应的信息tb_attendance(考勤单),该表用于存储考勤单信息,其中包括考勤单的编号、申请人的员工编号及申请人所在部门,申请时间是指考勤单的创建时间,考勤起始日期、考勤终止日期是指请假的起止日期,考勤起始时间和考勤终止时间是指考勤的起止时间,折合小时数是请假的总时间,考勤类型,待处理人和处理状态表4-3考勤单表Table4-3Tableofattendancesheet字段名称数据类型大小说明主键att_noint4考勤单编号是emp_nochar5申请人的员工编号dept_nochar6申请人所在部门insert_datevarchar28申请时间att_date_fromvarchar28考勤起始日期att_date_tovarchar28考勤终止日期att_time_fromvarchar26考勤起始时间att_time_tovarchar26考勤终止时间att_hoursint4折合小时数att_typevarchar210考勤类型reviewerschar6待处理人statuschar1处理状态tb_overwork(加班申请表)用于存储员工的加班信息表4-4加班申请表Table4-4TableofOvertimeNotice字段名称数据类型大小说明主键ow_noint4加班申请编号是applicantschar5申请者dept_nochar6所在部门app_datechar8申请时间workvarchar2100加班工作ovdatechar8加班日期ovtime_fromchar6加班开始时间ovtime_tochar6加班结束时间reviewerschar5待处理人statuschar1处理状态resultchar8处理结果
4.4开发环境的选择
4.
4.1系统开发工具本系统使用MyEclipse作为系统的开发工具MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率MyEclipse,是一个十分优秀的用于开发JavaJ2EE的Eclipse插件集合,是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能;MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate
4.
4.2数据库的选择Oracle是当今最大的数据库公司Oracle(甲骨文)的数据库产品其采用标准的SQL(结构化查询语言),支持多种数据类型,可在LINUX、WindowsNT/2000/XP等多种操作系统平台上,支持客户/服务器工作模式Oracle产品早在1986年就进入了中国市场,国内许多行业和部门的管理信息系统所用的数据库管理系统都是Oracle本系统使用的数据库管理系统——OracleDatabase10gExpressEdition(以下简称OracleXE)是Oracle公司于2006年推出的一款基于OracleDatabase10g第2版代码库的一种入门级、小体积的数据库服务器产品它是Oracle公司的第一个免费产品,基于OracleXE的开发、部署均是免费的虽然由于免费而使其在硬件上受到了一定的限制,如·至多使用1个CPU或1个双核CPU的处理能力;·最多可使用1GB内存;·每个服务器只限于一个CPU;·最多存储4GB的用户数据每个OracleXE数据库例程但是一般来说,可以满足多数中小型企业5年以上的需求而对于大型企业,OracleXE也能与Oracle数据库产品系列完全兼容,有很好的可移植性
4.
4.3系统网络架构设计本系统运用到了B/S网络架构B/S结构(Browser/Server结构)结构即浏览器和服务器结构它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构在这种结构下,用户工作界面是通过浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,这样就大大减轻了客户端电脑载荷,使系统维护与升级的成本和工作量也大量减少,从而降低了用户的总体成本在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、速度快、效果优本系统的B/S系统架构图如图4-18所示���������������图4-17系统网络架构图Fig4-17NetArchitectureDiagramofSystem5编码
5.1概述开发工具及编程脚本开发工具RationalRose2003RationalRose是一个完全的、具有能满足所有建模环境(Web开发,数据建模,VisualStudio和C)灵活性需求的一套解决方案Rose允许开发人员,项目经理,系统工程师和分析人员在软件开发周期内在将需求和系统的体系架构转换成代码,消除浪费的消耗,对需求和系统的体系架构进行可视化,理解和精练通过在软件开发周期内使用同一种建模工具可以确保更快更好的创建满足客户需求的可扩展的、灵活的并且可靠的应用系统MyEclipse
8.5MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是一个十分优秀的用于开发JavaJ2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错Tomcat
6.0Tomcat服务器是一个免费的开放源代码的Web应用服务器Tomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat5支持最新的Servlet
2.4和JSP
2.0规范因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器在汲取Tomcat
5.
5.x优点的基础上,
6.x实现了Servlet
2.5和JSP
2.1等特性的支持PowerDesigner15PowerDesigner是一款强大的数据库设计软件,使用它可以方便地对管理信息系统进行分析设计,是人们常使用的数据库建模工具在数据库建模的过程中,运用PowerDesigner进行数据库设计,不但可以让人更直观的理解模型,而且还能充分的利用数据库技术,优化数据库的设计
5.2脚本习惯说明如变量的取名规则,全局变量说明等脚本是一条条的文字命令,这些文字命令是可见的,脚本程序在执行时,由系统的一个解释器,将其一条条地翻译成机器可识别的指令,并按程序顺序执行脚本的命名规范如下1.类类名只包含字符和数字,数字是允许的但不被鼓励使用,除非它确实需要或者出于技术目的不使用下划线,破折线,或者其他非字母和数字的字符2.源文件类名应该和文件路径互相映射,每个类必须保证单独存放在一个文件中3.方法与变量方法和变量名只包含普通字母和数字,不使用下划线,破折线,或者其他非字母和数字的字符4.属性类的属性命名参照方法与变量的规则,除了静态成员变量之外,静态成员变量应当使用全大写模式
5.3脚本见附录C6系统测试
6.1测试原则及测试方法概述软件测试就是在软件交付用户使用或投入运行前,对软件需求规格说明、设计规格说明和编码的最终复审,是软件质量保证的关键步骤软件测试是为了发现错误而执行程序的过程软件测试在软件生命周期中横跨两个阶段通常在编写完每一个模块之后就需要对它做必要的测试(称为单元测试)编码和单元测试属于软件生命周期中的同一个阶段在结束这个阶段后对软件系统还要进行各种综合测试,如集成测试、系统测试、性能测试和配置测试等,这是软件生命周期的另一个独立阶段,即测试阶段软件测试过程应该遵循如下的原则1.尽早地和不断地进行软件测试在软件开发的各工程阶段的每个环节都可能产生错误,所以不应把软件测试仅仅看作是软件开发的一个独立阶段,而应当把它贯穿到软件开发的各个阶段中坚持在软件开发的各个阶段的技术评审,尽早发现和预防开发过程中的错误,把出现的错误克服在早期,杜绝某些发生错误的隐患2.测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成测试以前应当根据测试的要求选择测试用例(Testcase),用来检验程序员编制的程序,因此不但需要测试的输入数据,而且需要针对这些输入数据的预期输出结果3.程序员应避免检查自己的程序程序员应尽可能避免测试自己编写的程序,程序开发小组也应尽可能避免测试本小组开发的程序如果条件允许,最好建立独立的软件测试小组或测试机构这点不能与程序的调试(debuging)相混淆调试由程序员自己来做可能更有效4.在设计测试用例时,应当包括合理的输入条件和不合理的输入条件合理的输入条件是指能验证程序正确的输入条件,不合理的输入条件是指异常的,临界的,可能引起问题异变的输入条件软件系统处理非法命令的能力必须在测试时受到检验用不合理的输入条件测试程序时,往往比用合理的输入条件进行测试能发现更多的错误5.充分注意测试中的群集现象在被测程序段中,若发现错误数目多,则残存错误数目也比较多这种错误群集性现象,已为许多程序的测试实践所证实根据这个规律,应当对错误群集的程序段进行重点测试,以提高测试投资的效益6.严格执行测试计划,排除测试的随意性测试之前应仔细考虑测试的项目,对每一项测试做出周密的计划,包括被测程序的功能、输入和输出、测试内容、进度安排、资源要求、测试用例的选择、测试的控制方式和过程等,还要包括系统的组装方式、跟踪规程、调试规程,回归测试的规定,以及评价标准等对于测试计划,要明确规定,不要随意解释7.应当对每一个测试结果做全面检查有些错误的征兆在输出实测结果时已经明显地出现了,但是如果不仔细地全面地检查测试结果,就会使这些错误被遗漏掉所以必须对预期的输出结果明确定义,对实测的结果仔细分析检查,抓住征候,暴露错误软件测试的种类大致可以分为人工测试和基于计算机的测试而基于计算机的测试由可以分为白盒测试和黑盒测试1.黑盒测试根据软件产品的功能设计规格,在计算机上进行测试,以证实每个实现了的功能是否符合要求这种测试方法就是黑盒测试黑盒测试意味着测试要在软件的接口处进行就是说,这种方法是把测试对象看作一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求分析规格说明,检查程序的功能是否符合它的功能说明用黑盒测试发现程序中的错误,必须在所有可能的输入条件和输出条件中确定测试数据,来检查程序是否都能产生正确的输出2.白盒测试根据软件产品的内部工作过程,在计算机上进行测试,以证实每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查这种测试方法就是白盒测试白盒测试把测试对象看作一个打开的盒子,允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致
[4]
6.2测试项目测试用例登录模块测试,主要测试系统的登录功能表6-1登录测试用例Table6-1logintestscase编号模块用例描述操作过程及数据预期结果实际结果No.1登录登录界面进入登录界面登录界面正常打开,有可输入的员工编号和密码的输入框OK画面登录身份验证进入登录界面,在员工编号输入中文输入失败OK界面校验进入登录界面,员工编号框中不输入弹出提示框,提示输入OK界面校验进入登录界面,密码框中不输入弹出提示框,提示输入OK界面校验进入登录界面,员工编号框中输入“aaa”密码框输入“test”界面提示“用户名密码不对,请重填”OK功能点进入登录界面,员工编号框中输入“S0201”密码框输入“aaa”界面提示“用户名密码不对,请重填”OK功能点进入登录界面,员工编号框中输入“S0201”密码框输入“test”登录验证成功进入系统OK功能点修改密码模块的测试,测试系统可以正常显示修改页面,可以校验新密码格式,可以成功修改密码表6-2密码修改测试用例Table6-2changethepasswordtestscase编号模块用例描述操作过程及数据预期结果实际结果用例类别No.2修改密码修改密码界面进入密码修改界面密码修改界面正常显示OK画面密码修改在密码修改界面原密码框里输入登录密码,新密码不输入弹出提示框,提示输入OK界面校验在密码修改界面原密码框里输入登录密码,新密码输入“test”密码修改成功,跳转到登录页面OK功能点添加考勤单的测试,主要测试系统可以正常添加考勤单,对考勤单信息做判断是否为空等等表6-3添加考勤单测试用例Table6-3addattendancesheettestscase编号模块用例描述操作过程及数据预期结果实际结果用例类别No.3添加考勤单页面测试成功登录系统,进入考勤单添加页面正常显示添加考勤单的页面OK画面正常添加考勤单在添加考勤单信息界面添加合法数据,然后保存添加成功OK关联正常添加考勤单信息但是不保存在添加考勤单信息界面添加合法数据,然后关闭界面添加不成功OK关联添加考勤单信息添加一份考勤单,输入对应信息,但对“考勤起始日期”不做输入弹出提示框,提示为空添加不成功OK界面校验添加一份考勤单,输入对应信息,但对“考勤终止日期”不做输入弹出提示框,提示为空添加不成功OK界面校验添加一份考勤单,输入对应信息,但对“考勤起始时间”不做输入弹出提示框,提示为空添加不成功OK界面校验添加一份考勤单,输入对应信息,但对“考勤起始时间”不做输入弹出提示框,提示为空添加不成功OK界面校验添加一份考勤单,输入对应信息,“考勤起始日期”输入“20150527”;“考勤终止日期”输入“20150301”弹出提示框,提示考勤终止日期不能大于起始日期添加不成功OK界面校验考勤单的审核测试用例如下主要对审核功能进行测试表6-3考勤单审批测试用例Table6-3checktheattendancesheettestscase编号模块用例描述操作过程及数据预期结果实际结果用例类别No.4考勤单审核页面测试成功登录系统,进入考勤单审核页面正常显示审核考勤单的页面OK画面考勤单审核点击审核通过考勤单状态更新为审批通过OK关联点击审核拒绝考勤单状态更新为审批拒绝OK关联
6.3软件测试结论
6.
3.1软件能力经过测试此次实装的系统可以实现企业中员工和实习生的考勤申请,其提出的申请可以被审批,并得到审批结果
6.
3.2缺陷和限制经过测试,发现了系统中的存在的不少问题,比如,考勤类型开始时是手动输入汉字,虽然在此次系统运行中没有影响,因为实习生不能用加班时间做倒休,但是如果在需要完成倒休功能的时候,做汉字判断则会出现例如编码格式等等诸多问题,而且手工输入比较繁琐由于数据库、不同浏览器、前台页面和后台代码的编码格式的配置问题,使汉字的传递变成一个急需解决的大问题在后期的代码实现的过程中发现需求分析的重要性,由于对系统的分析不充分,导致物理表结构在编写业务逻辑代码时,还反复进行修改,所以系统中的实体类还存在问题,有待改进而且在最初设计数据库表的时候陷入误区,一直在考虑各表间的关系是否要级联、以及如何关联外键之类而其实设计数据库要解决的问题是“对象数据高效持久化”,而不是业务逻辑,它不是从需求中推导出来的同时,本系统的美观度还不够,将在以后的设计中努力完善
6.
3.3建议修改考勤单的添加页面,将考勤类型由手动输入变为单选框,可以省去手动输入的繁复,还能将考勤单标准化,不会出现错填乱填的现象关于传值的问题,经过多次探索,将如考勤类型等数据进行map化,每一个类型都有一个key和一个value,value用于页面显示,key用于传值,做判断等随后为了解决前后台传值时中文的乱码问题,增加一个编码的过滤器,在数据提交前将提交内容重新编码
6.
3.4测试结论经过测试证明,本系统完成了系统预期的所有功能,可以投入运行结论随着时代的发展,现代科技的进步,企业管理趋于标准化、国际化利用计算机来帮助企业的管理成为了现代化企业运作必不可少的一部分现在利用计算机来管理考勤工作,大大降低了工作人员的工作量,提高了工作效率,使原本复杂枯燥无味的工作变的简单而轻松作为实习生进入公司后,实习生作为公司的一员,其人事管理也是员工管理的一部分,但实习生因为其特殊性,在一些具体的情况中又不能按照公司正式的员工标准进行管理比如考勤方面,实习生的倒休不能用平日的加班时间倒休,等等而公司现有的考勤制度,不但各种信息需要人工录入,而且实习生的考勤和正式员工的考勤都没有很好的区分除了相应人员需要做大量数据的录入外,每个人都要自己核实自己的考勤信息,极大的影响了企业对员工的管理因此本系统将考勤管理的使用计算机技术实现本毕业设计展示了本系统的关键技术、系统分析、系统设计、系统实现、系统测试等方面,对系统的每个模块都进行了详尽地分析,并结合时序图、协作图、状态图、活动图、E-R图等设计出了完备的系统最后,经过测试,证明了每个模块的可行性以及可用性,从而完成了整个系统本系统基本完成了针对企业中实习生的企业员工考勤过程,员工可以利用本系统进行网上的请假申请,管理人员可以对申请做审批可以提高管理效率,相比于现行使用纸质考勤单更环保当然由于技术和经验方面等问题,系统还有很多不足之处,例如业务逻辑上的一些约束并没有很好的实现,还有待改进致谢美好的大学时光即将过去,这四年时间已经成为了我人生中成长的重要阶段我用这几个月的时间完成了我的毕业设计——中讯计算机系统(北京)有限公司员工考勤系统的设计与实现,在这个过程中曾遇到很多困难,但最终被我一一解决了但最终能够取得成功不止是因为我自身的努力,老师和同学们也给予了我很多帮助在整个毕业设计的过程中,点点滴滴都离不开刘老师的指导与帮助,所以,我要感谢我的指导老师,从对我的毕业设计从毕业论文题目的选择,到开题报告以及最后毕业论文的修改和最终的定稿都给予了悉心地指导与耐心地引导,老师不厌其烦的帮助我进行论文的修改和改进从而使我最终能够圆满的完成本次毕业设计,让我很感动老师渊博的专业知识,严谨的治学态度,精益求精的工作作风,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远在此,我要由衷的感谢老师对我在学业上的教诲和修养上的熏陶同时还要感谢软件学院的其他老师对我的指导与帮助,正是有着这些老师的指导,才提高了我在学习研究中的理论性,打开了我的研究思维老师们的严谨的治学态度、丰富渊博的知识、敏锐的学术思维、精益求精的工作态度以及诲人不倦的师者风范是我终生学习的楷模我还要感谢同学和公司同事给我的帮助,在我对学习上有疑问的时候,他们都会帮助我解决我的迷惑,细致的讲解我的每个问题,在编码出现错误的时候,他们也会第一时间过来帮我查找原因一直到程序成功地运行,在我写论文的过程中给我很多素材并毫无怨言不求回报地给我提供了热情的帮助,本次毕业设计的圆满完成,同样离不开他们的耐心地帮助,所以在此,我也要衷心的对帮助过我的同学和朋友说一声谢谢最后,我要感谢学校学院给了我一个这么好的学习环境和设计环境,正是有了学校的良好的环境,才促使我的毕业论文圆满完成,同时,也要感谢学校给了我一个这么棒的指导老师,正是这次的毕业设计,使我重温了很多知识,使四年的学习得到了巩固,不论是技术上的还是项目运作上的抑或是为人处事上的,都将成为我永生的回忆,并将会对我未来的学习工作产生深远的影响,我还要感谢辽宁工程技术大学对我的大力栽培参考文献
[1]王永贵郭伟冯永安.java高级框架应用开发案例教程Struts2+Spring+Hibernate[M].第1版北京:北京清华大学出版社
2012.4
[2]王少锋.面向对象技术UML教程[M].第1版北京:清华大学出版社
2012.7
[3]刘万军郑少京王松波.Java6程序设计[M].第1版清华大学出版社2009
[4]郑人杰马素霞麻志毅.软件工程[M].第1版北京:人民邮电出版社2009
[5]夏昕曹晓钢唐勇.深入浅出Hibernate[M].第1版北京:电子工业出版社
2005.6
[6]王珊萨师煊.数据库系统概论[M].第4版北京:高等教育出版社
2011.12(重印)
[7]王永贵.Oracle数据库管理与应用[M].第1版徐州:中国矿业大学出版社
2009.8
[8]360百科.考勤管理系统:http://baike.so.com/doc/
4827389.html
[9]360问答.企业考勤系统研究现状:http://wenda.so.com/q/1382775466067159
[10](美)汉弗莱(Humphrey.W.S).个体软件过程[M].第2版北京:人民邮电出版社
2010.8附录A中文译文一种基于Hibernate、Struts和Spring的J2EE应用开发框架随着Java技术的逐渐成熟与完善作为建立企业级应用的标准平台J2EE平台得到了长足的发展借助于J2EE规范中包含的多项技术EnterpriseJavaBeanEJB、JavaServletsServlet、JavaServerPagesJSP、JavaMessageServiceJMS等,开发出了许多应用系统但是,在传统J2EE应用的开发过程中也出现了一些问题1数据模型和逻辑模型之间的矛盾目前使用的数据库基本上都是关系型数据库,而Java本质上是一种面向对象的语言,对象在存储和读取时使用SQL和JDBC进行数据库操作,降低了编程的效率以及系统的可维护性;2传统的J2EE应用多采用基于EJB的重量级框架,这种框架适合于开发大型企业应用,但是使用EJB容器进行开发和调试需要耗费大量时间为了降低代码的耦合性,提高系统的开发效率,本文提出了一种基于Struts框架、Hibernate框架和Spring框架的J2EE应用开发策略Hibernate框架Hibernate是一个数据持久层框架,是一种实现对象和关系之间映射(O/RMapping)的工具,它对JDBC进行了轻量级的对象封装,使程序员可以使用对象编程思想来操作数据库它不仅提供了从Java类到数据表的映射,也提供了数据查询和恢复机制相对于使用JDBC和SQL来操作数据库,使用Hibernate能大大的提高实现的效率Hibernate框架用配置文件的形式来定义Java对象和数据表之间的映射关系,同时在更深的层面将数据表之间的关系解释为Java对象之间的继承及包含等关系通过使用HQL语句将复杂的关系算法用对象的方式描述,在很大程度上简化了对数据的查询,加快了开发的效率在Hibernate中有一个简单而直观的API,用于对数据库所表示的对象执行查询要创建或修改这些对象,只需在程序中与它们进行交互,然后告诉Hibernate保存即可这样,大量封装持久化操作的业务逻辑不再需要编写烦琐的JDBC语句,从而使数据持久层得到了极大的简化用Struts实现MVC架构MVC(Model-View-Controller)由TrygveReenskaug提出,首先被应用在SmallTalk-80环境中,是许多交互和界面系统的构成基础根据界面设计可变性的需求,MVC把交互系统的组成分解成模型、视图、控制器三部分模型(Model)是软件所处理问题逻辑在独立于外在显示内容和形式情况下的内在抽象,封装了问题的核心数据、逻辑和功能的计算关系,独立于具体的界面表达和I/O操作视图(View)把表示模型数据及逻辑关系和状态的信息及特定形式展示给用户它从模型获得显示信息,对于相同的信息可以有多个不同的显示形式或视图控制器(Controller)是处理用户与软件的交互操作的,其职责是控制提供模型中任何变化的传播,确保用户界面于模型间的对应联系;它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制,是使模型和视图协调工作的部件通常一个视图对应一个控制器模型、视图与控制器的分离,使得一个模型可以具有多个显示视图如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新这实际上是一种模型的变化-传播机制Struts框架Struts框架最早是作为ApacheJakarta项目的组成部分问世运做,它继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展Struts框架很好的结合了Jsp,JavaServlet,JavaBean,Taglib等技术在Struts中,承担MVC中控制器角色的是ActionServletActionServlet是一个通用的控制组件这个控制组件提供了处理所有发送到Struts的HTTP请求的入口点,它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)另外控制组件也负责用相应的请求参数填充ActionForm(FromBean),并传给动作类(ActionBean)动作类访问核心商业逻辑,即访问JavaBean或调用EJB最后动作类把控制权传给后续的JSP文件,由JSP文件生成视图所有这些控制逻辑利用Struts-config.xml文件来配置在Struts框架中,视图主要由JSP生成页面完成,Struts提供丰富的JSP标签库,这有利于分开表现逻辑和程序逻辑模型以一个或多个JavaBean的形式存在在Struts中,主要存在三种Bean,分别是Action,ActionForm,EJB或者JavaBeanStruts框架没有具体定义模型层的实现,在实际开发中,模型层通常是和业务逻辑紧密相连的,并且要对底层数据进行操作下面介绍一种开发策略,将Hibernate引入到Struts框架的模型层中,使用它来进行数据封装和映射,提供持久化的支持Spring框架Spring明显区别于其他轻量级applicationframework它将专注于web的支持,与struts和webwork有着明显的区别在与struts、webwork的对比上Spring是一个服务于所有层面的applicationframework:提供了bean的配置基础,AOP的支持,JDBC的提取框架,抽象事务支持等等它有一个非常显著的特点在某个层面上如果你不需要Spring的支持,你就可以不使用Spring的class,只使用它的某一部分的功能从它的设计理念,你可以看到Spring帮助你实现了真正的逻辑层和web层的分离例如一个校验应用将不用依靠controllers就可以实现这样的目标更好的重用和易测过分依靠不必要的容器和框架将不能实现这一点当然Spring有自己的web支持和通常框架模式细致完整然而,Spring替换struts、webwork或者其他的web方案非常容易对于Spring的web支持或者不同的地方,Spring允许你在web容器里面建立一个中间层,在测试环境或者标准独立的应用里面来设置重用你的商务逻辑.还有在J2EE环境里面,你的商务逻辑不必依靠容器提供的服务,像JTAEJB的支持良好的构架的web应用可以运行在任何容器上,如,Tomcat或者Resin值得注意的是,Spring不是和已经存在的解决方案进行竞争.我们鼓励结合标准的技术,如,ServletJSPJTAJNDIJDBCandJDO和非常匹配的工具,如,HibernateVelocityLog4JandCauchosHessian/Burlap这个框架的的设计思想是在你的应用需要改良的时候,你将会做一些技术的选择,例如如果你需要分布式事务处理,你可能需要用Spring的JtaTransactionManager来实现JTA服务或者用DataSourceTransactionManagerorHibernateTransactionManager来实现的单个数据库交换附录B英文原文ADevelopmentFrameApplicationBasedontheHibernate、theStrutsandtheSpringJ2EEOneprefacealongwiththeJavatechniqueofgradualmatureandperfect.BeestablishmentbusinessenterpriseclassapplicationofstandardterracetheJ2EEterracegotsubstantialofdevelopment.SeveraltechniqueaskedforhelpfromtoincludeintheJ2EEnorm:EnterpriseJavaBeanEJBJavaServletsServletJavaServerPagesJSPJavaMessageServiceJMSetc.developmentmanyapplicationsystem.ButalsoappearedsomeprobleminthetraditionJ2theEEtheapplicationofthedevelopmenttheprocess:1theantinomyofofdatamodelandlogicmodel.CurrentlythedatabaseofusagebasicallyandallisrelationtypedatabasebuttheJavabeessentiallyakindofthelanguagewhichfacetoobjectobjectatsavingwithreadusageSQLandJDBCcarryonadatabaseoperationandloweredplaitdistanceofefficiencyandsystemofcanmaintenance;2traditionofJ2EEapplicationmuchtheadoptionisaccordingtotheEJBheavyweightframethiskindofframesuitablefordevelopalargebusinessenterpriseapplicationbutusagetheEJBcontainercarryondevelopmentandadjusttotrytoneedtobewasteagreatdealoftime.ForloweringtheOuofcodetomatchsexexaltationsystemofdevelopmentefficiencythistextputforwardonekindEEaccordingtotheJ2oftheStrutsframe、theHibernateframeandtheSpringframeapplicationdevelopmentstrategy.TheHibernateFrameDatasholdingoutforlongtimelayerandHibernateisonepieceaccordingtoholdoutforlongtimelayerframeisakindofrealizationobjectandrelationofthetoolwhichreflecttoshootO/RMappingitcarriedontheobjectofthelightweighttopacktotheJDBCandmakeproceduremembercanusageobjectplaitdistancethoughttooperationdatabase.ItnotonlyprovidedtoshootfromJavatoreflectofdataformbutalsoprovidedadataasearchandinstaurationmechanism.OppositeinusageJDBCandSQLtooperationdatabaseuseHibernateabilityconsumedlyofexaltationrealizationofefficiency.TheHibernateframeuseallocationdocumentoftheformcometothereflectofthedefinitionJavaobjectanddataformtoshootrelationinthemeantimeatmoredeepoflevelofdataformofrelationexplanationfortherelationssuchasinheritofandcontainmentetc.ofJavaobject.PasstheusageHQLlanguagesentencecomplicationsofrelationthecalculatewayusethewayofobjectdescriptiontoalargeextentsimplificationlogarithmsaccordingtoofsearchspeeddevelopmentofefficiency.HaveintheHibernateasimplebutkeeptheAPIofviewusedfortothedatabasemeanofobjectperformancesearch.WanttoestablishorthemodificationbetheseobjectsneedintheprocedurecarryonwiththemtohandoverwitheachotherthentellHibernatetokeep.SoagreatdealofpackholdoutforlongtimeturnoperationofbusinesslogicnolongerdemandwriteatrivialJDBClanguagesentencemakedatalastlongthusthelayergotbiggestofsimplification.UsetheStrutsrealizationMVCstructureMVCModel-View-ControllerisputforwardbytheTrygveReenskaugfirstdriveapplicationintheenvironmentSmallTalk-80ismanytohandoverwitheachotherwithinterfacesystemofconstitutefoundation.AccordingtotheneedofvariableoftheinterfacedesignMVChandoverwitheachotherconstituteofsystemtoresolveintomodelandseediagramcontrollerthreepart.ModelModelissoftwareprocessingproblemlogicatindependenceinoutsidemanifestationundercontentsandformcircumstanceofinsideabstractpackedthecoredatalogicofproblemandfunctionofcalculationrelationindependenceinconcreteofinterfaceexpressionandI/Ooperation.SeediagramViewmeaninformationandparticularformdemonstrationofmodeldataandlogicrelationandappearancetothecustomer.Itacquireamanifestationinformationfromthemodeltherecanbemanyforhomologyofinformationdissimilarityofmanifestationformorseediagram.ThecontrollerControllerisaprocessingthecustomerhandoverwithsoftwarewitheachotheroperationofitsjobiscontrolprovidemodelinanyvarietyofdisseminationinsureacustomerinterfaceamongthemodelofrightnessshouldcontact;Itacceptacustomerofimportationgive°theimportationfeedbackmodelthenrealizationcomputemodelcontrolismakemodelandseediagramtomoderateworkofparts.Usually1seeadiagramrightnessshouldacontroller.Modelseeseparateofdiagramandcontrollermakeamodelbeabletohavemanymanifestationtoseediagram.Ifthecustomerpassacertainseethecontrollerofdiagramchangethedataofmodelallotherdependenceintheseseeofdatadiagramallshouldreflectionarrivethesevariety.Whenthereforeandregardlessoccurrencewhatdatavarietycontrollerallwouldvarietynoticeallyseediagramcausemanifestationofrenewal.Thisisactuallyakindofvarietyofmodel-disseminationmechanism.TheStrutsFrameTheStrutsframeistobetheitemofApacheJakartatoconstituteparttopublishlucktodoattheearlieststageitinheritedMVCofeachitemcharacteristicanddidaccordingtothecharacteristicsofJ2EEcorrespondofvarietywithexpand.TheStrutsframewasgoodtocombineJspJavaServletJavaBeanTaliaetc.technique.IntheStrutswhattoundertakethecontrollerroleintheMVCbeanActionServlet.TheActionServletisaningeneralusecontrolmodule.ThiscontrolmoduleprovidedaprocessingallHTTPclaimwhichsendoutStrutsofentrancepoint.Itsinterceptionwithdistributetheseclaimtoarrivecorrespondofactiontype.theseactionalloftypeisActionsontypeMoreoverthecontrolmoduleisalsoresponsibleforusingtocorrespondofclaimtheparameterfillActionFormFromBeanandpassactiontypeActionBean.ActiontypethebusinesslogicoftheinterviewcoretheninterviewJavaBeanoradjusttouseEJB.Endactiontypecontrolthepowerpassfollow-upofJSPdocumentfromJSPdocumentbornseediagram.AllthesecontrollogicmakeuseofStruts-config.xmlthedocumentcometoallocation.SeediagramintheStrutsframemainfromJSPbornpagecompletiontheStrutsprovideabundantofJSPlabeldatabasethisisadvantageoustoseparatingperformancelogicandprocedurelogic.Themodeliswith1ortheformexistenceofseveralJavaBean.IntheStrutsmainexistencethreekindsofBeanrespectivelyBE:ActionActionFormEJBperhapsJavaBean.TheStrutsframehavenoconcretedefinitionmodellayerofrealizationinactuallythedevelopmentmodellayerusuallyisclosewithbusinesslogicconnectwitheachotherandwanttocarryonoperationtothefirstfloordata.TheunderneathsintroductionisakindofdevelopmentstrategyleadtheHibernateintothemodellayerofStrutsframeusageittocarryonadatatopackwithreflecttoshootprovideholdoutforlongtimeturnofsupport.4usageHibernateandtheStrutsdevelopmentJ2EEapplication
4.1systemstructurediagram3manifestationaccordingtoHibernateandStrutsdevelopmentstrategyofsystemstructurediagram.theSpringFrameSpringisntparticularlyawebframeworkbutagenericlightweightapplicationframeworkwithdedicatedwebsupportandshowthearchitecturaldifferencestoStrutsandWebWorkIncontrasttoStrutsorWebWorkSpringisanapplicationframeworkforalllayers:ItoffersabeanconfigurationfoundationAOPsupportJDBCabstractionframeworkabstracttransactionsupportetc.Itisaverynon-intrusiveeffort:YourapplicationclassesdonotneedtodependonanySpringclassesifnotnecessaryandyoucanreuseeverypartonitsownifyouliketo.Fromitsverydesigntheframeworkencouragescleanseparationoftiersmostimportantlywebtierandbusinesslogic.e.g:thevalidationframeworkdoesnotdependonwebcontrollers.Majorgoalsarereusabilityandtestability:Unnecessarycontainerorframeworkdependenciescanbeconsideredavoidableevils.OfcourseSpringsownwebsupportisnicelyintegratedwiththeframeworksgeneralpatterns.NeverthelessreplacingthewebsolutionwithStrutsWebWorkorthelikeiseasy.BothwithSpringswebsupportoradifferentoneSpringallowsforbuildingatruededicatedmiddletierinthewebcontainerwiththeoptiontoreuseexactlythesamebusinesslogicintestenvironmentsorstandaloneapplications.AndwithinJ2EEyourbusinesslogicwillnotunnecessarilydependoncontainerserviceslikeJTAorEJB-allowingcomplexwell-architectedwebapplicationstoruninasimplecontainerlikeTomcatorResin.NotethatSpringdoesntgenerallyaimtocompetewithexistingsolutions.ItratherfostersseamlessintegrationwithstandardslikeServletJSPJTAJNDIJDBCandJDOandwell-suitedtoolslikeHibernateVelocityLog4JandCauchosHessian/Burlap.Theframeworkisdesignedtogrowwiththeneedsofyourapplicationsintermsoftechnologychoice:ForexampleyouwillprobablyuseJTAviaSpringsJtaTransactionManagerifyouneeddistributedtransactions-butonlythenasthereareperfectreplacementsforsingledatabaseslikeDataSourceTransactionManagerorHibernateTransactionManager.附录C源程序代码//连接数据库配置文件xmlversion=
1.0encoding=UTF-8!DOCTYPEhibernate-configurationPUBLIC-//Hibernate/HibernateConfigurationDTD
3.0//ENhttp://hibernate.sourceforge.net/hibernate-configuration-
3.
0.dtd!--GeneratedbyMyEclipseHibernateTools.--hibernate-configurationsession-factory!--方言--propertyname=dialectorg.hibernate.dialect.Oracle9Dialect/property!--数据库连接URL--propertyname=connection.urljdbc:oracle:thin:@localhost:1521:XE/property!--用户名密码--propertyname=connection.usernamesystem/propertypropertyname=connection.passwordmanager/property!--驱动--propertyname=connection.driver_classoracle.jdbc.driver.OracleDriver/property!--连接对象名--propertyname=myeclipse.connection.profilemiao/property!--数据库连接池的大小--propertyname=connection.pool_size35/property!--显示SQL语句--propertyname=show_sqltrue/propertymappingresource=pojo/TbAttendance.hbm.xml/mappingresource=pojo/TbEmp.hbm.xml/mappingresource=pojo/TbDept.hbm.xml/mappingresource=pojo/TbQita.hbm.xml/mappingresource=pojo/TbOverwork.hbm.xml//session-factory/hibernate-configurationStruts配置文件xmlversion=
1.0encoding=UTF-8!DOCTYPEstrutsPUBLIC-//ApacheSoftwareFoundation//DTDStrutsConfiguration
2.0//ENhttp://struts.apache.org/dtds/struts-
2.
0.dtdstrutspackagename=defaultextends=struts-default!--登录操作Action配置--actionname=loginclass=empActionmethod=loginresultname=input/login.jsp/resultresultname=stafftype=redirectActionsearchAttendance/resultresultname=deptManagertype=redirectActionsearchAttendance/resultresultname=managertype=redirectActionsearchAttendance/resultresultname=hrtype=redirectActionsearchAttendance/resultresultname=traineetype=redirectActionsearchAttendance/result/action!--按员工编号查询员工--actionname=selectEmpByIdclass=empActionmethod=selectEmpByIdresultname=success/empviewlist.jsp/result/action!--按部门查询员工--actionname=selectEmpByDeptclass=empActionmethod=selectEmpByDeptresultname=success/empviewlist.jsp/result/action!--修改密码--actionname=changeclass=empActionmethod=changepasswordresultname=change/login.jsp/result/action!--查询部门--actionname=searchDepartmentclass=empActionmethod=searchDepartmentresultname=success/empviewlist.jsp/result/action!--查询部门--actionname=searchDepartment2class=empActionmethod=searchDepartmentresultname=success/empinsert.jsp/result/action!--插入员工--actionname=insertEmpclass=empActionmethod=insertEmpresultname=success/empinsertlist.jsp/result/action!--员工信息修改--!--按员工编号查询员工--actionname=selectEmpById2class=empActionmethod=selectEmpByIdresultname=success/empupdate.jsp/result/actionactionname=updateEmpclass=empActionmethod=updateEmpresultname=success/empinsertlist.jsp/result/action!--员工提交后调用,部门经理,总经理,人事登录后调用--actionname=searchAttendanceclass=attendanceActionmethod=searchAttendanceresultname=success/list.jsp/resultresultname=input/login.jsp/result/actionactionname=saveclass=attendanceActionmethod=saveresultname=successtype=redirectAction/searchAttendance/result/action!--将表单中的报销单信息保存--actionname=*class=attendanceActionmethod={1}resultname=successtype=redirectAction/searchAttendance/resultresultname=addPage/ok.jsp/resultresultname=detailSuccess/ok.jsp/resultresultname=showinfo/view.jsp/resultresultname=check/check.jsp/resultresultname=selectatt/viewlist.jsp/result/action!--审核通过处理--actionname=passAttendanceclass=checkResultActionmethod=passAttendanceresultname=successtype=redirectAction/searchAttendance/result/actionactionname=passOverworkclass=checkResultActionmethod=passOverworkresultname=successtype=redirectAction/searchOverwork/result/action!--审核拒绝--actionname=refuseAttendanceclass=checkResultActionmethod=refuseAttendanceresultname=successtype=redirectAction/searchAttendance/result/actionactionname=refuseOverworkclass=checkResultActionmethod=refuseOverworkresultname=successtype=redirectAction/searchOverwork/result/action!--员工提交加班申请后调用,部门经理,总经理,人事查看時调用--actionname=searchOverworkclass=overworkActionmethod=searchOverworkresultname=success/owlist.jsp/resultresultname=input/login.jsp/result/action!--加班申請前处理--actionname=initOverworkclass=overworkActionmethod=initOverworkresultname=addPage/overworked.jsp/result/action!--保存加班申請--actionname=saveOverworkclass=overworkActionmethod=saveOverworkresultname=successtype=redirectAction/searchOverwork/result/action!--提交加班申請--actionname=submitOverworkclass=overworkActionmethod=submitOverworkresultname=successtype=redirectAction/searchOverwork/result/action!--查询加班申請--actionname=querySingleOverworkclass=overworkActionmethod=querySingleOverworkresultname=showinfo/owview.jsp/resultresultname=check/owcheck.jsp/result/actionactionname=owlistSubmitclass=overworkActionmethod=owlistSubmitresultname=successtype=redirectAction/searchOverwork/result/action!--删除加班申請--actionname=deleteOverworkclass=overworkActionmethod=deleteOverworkresultname=successtype=redirectAction/searchOverwork/result/action/package/strutsSpring配置文件xmlversion=
1.0encoding=UTF-8beansxmlns=http://www.springframework.org/schema/beansxmlns:xsi=http://www.w
3.org/2001/XMLSchema-instancexmlns:p=http://www.springframework.org/schema/pxmlns:context=http://www.springframework.org/schema/contextxmlns:tx=http://www.springframework.org/schema/txxmlns:util=http://www.springframework.org/schema/utilxmlns:aop=http://www.springframework.org/schema/aopxsi:schemaLocation=http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-
2.
5.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-
2.
5.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-
2.
5.xsdhttp://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-
2.
5.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-
2.
5.xsdbeanid=sessionFactoryclass=org.springframework.orm.hibernate
3.LocalSessionFactoryBeanpropertyname=configLocationvalue=classpath:hibernate.cfg.xml/property/bean!--员工的dao层--beanid=empDaoclass=dao.impl.EmployeeDaoHibImplpropertyname=sessionFactoryref=sessionFactory//bean!--员工的service层--beanid=empServiceclass=service.impl.EmployeeServiceImplpropertyname=empDaoref=empDao//bean!--员工的action--beanid=empActionclass=action.EmployeeActionscope=prototypepropertyname=empServiceref=empService//bean!--考勤单的dao层--beanid=attendanceDaoclass=dao.impl.AttendanceDaoImplpropertyname=sessionFactoryref=sessionFactory//bean!--考勤单处理的service层--beanid=attendanceServiceclass=service.impl.AttendanceServiceImplpropertyname=attendanceDaoref=attendanceDao//bean!--考勤单处理的action--beanid=attendanceActionclass=action.AttendanceActionscope=prototypepropertyname=attendanceServiceref=attendanceService//bean!--考勤单审核的dao层--beanid=checkResultDaoclass=dao.impl.CheckResultDaoImplpropertyname=sessionFactoryref=sessionFactory//bean!--考勤单审核的service层--beanid=checkResultServiceclass=service.impl.CheckResultServiceImplpropertyname=checkResultDaoref=checkResultDao//bean!--考勤单审核处理的action--beanid=checkResultActionclass=action.CheckResultActionscope=prototypepropertyname=checkResultServiceref=checkResultService//bean!--加班表的dao层--beanid=overworkDaoclass=dao.impl.OverworkDaoImplpropertyname=sessionFactoryref=sessionFactory//bean!--加班处理的service层--beanid=overworkServiceclass=service.impl.OverworkServiceImplpropertyname=overworkDaoref=overworkDao//bean!--加班处理的action--beanid=overworkActionclass=action.OverworkActionscope=prototypepropertyname=overworkServiceref=overworkService//bean/beans中讯计算机系统(北京)有限公司事业部系统部总务部人力资源部销售部品质监理部中讯员工考勤系统差假管理模块考勤查询模块人事管理模块考勤信息采集模块开发部第一开发部第二开发部第三开发部第四开发部数据库备份模块日志管理模块公告管理模块员工申请管理领导审核管理修改密码系统登录模块查看员工增加员工II。