- 584.32 KB
- 2022-05-17 13:20:13 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
学号:200421240123本科生毕业论文论文题目:考勤管理自动化系统设计作者:院系:数学与信息科学学院专业:信息与计算科学班级:信息200401班指导教师:
目录摘要及关键词··········································································································Ⅰ1引言·······················································································································11.1考勤管理自动化系统的概述·········································································11.2课题来源·········································································································21.3课题的目的和意义·························································································22总体设计思想····································································································32.1开发技术简介·································································································32.1.1JSP+Servlet技术····················································································32.1.2JavaBeans技术·······················································································42.1.3Struts框架技术·······················································································42.1.4Hibernate框架技术················································································52.2系统调研及可行性分析·················································································52.2.1系统调研·································································································52.2.2可行性分析概述····················································································62.2.3技术可行性分析····················································································72.3系统开发简介································································································72.3.1数据库应用系统简介············································································82.4考勤自动化管理系统分析与设计································································82.4.1考勤自动化管理系统功能需求简介·····················································92.4.2功能需求描述·······················································································103系统需求规格说明书·····················································································11
3.1架构分析与设计···························································································113.1.1逻辑架构······························································································113.1.2物理架构·······························································································123.2业务逻辑分析·······························································································123.2.1后台逻辑架构······················································································123.2.2前台逻辑架构······················································································124系统概要设计图······························································································124.1功能层次图···································································································124.2顶层用例图···································································································134.2.1普通员工用例图··················································································134.2.2组长用例图···························································································134.2.3部门经理用例图···················································································144.2.4人事经理用例图··················································································144.2.5副总用例图···························································································154.3顶层状态图···································································································155相关功能模块演示·························································································155.1用户登录·······································································································165.2修改密码·······································································································185.3申请请假·······································································································205.4领导审批·······································································································225.5查看信息·······································································································245.6维护信息·······································································································26
5.7内部公告·······································································································286数据库详细设计······························································································296.0表汇总··········································································································306.1员工表···········································································································306.2小组表···········································································································316.3部门表···········································································································316.4请假表···········································································································316.5权限表···········································································································326.6职务表···········································································································336.7审核状态表···································································································336.8职务权限表···································································································336.9节假日表······································································································337总结·····················································································································34致谢·························································································································34参考文献·················································································································348附录···················································································································35
摘要考勤管理自动化系统是现代社会企业实施信息管理的重要环节,对于企业科学正规化信息管理具有积极的意义和重要的作用.本文应用系统调研及可行性分析和技术可行性分析实践进行多因素评价,并用考勤自动化管理系统的分析与设计,在功能需求的描述上最后计划出系统需求的规格说明书和概要设计图和数据库的详细设计.利用当前JAVA技术中最新的JSP+Servlet技术,Struts框架技术和Hibernate框架技术,克服了系统开发后不符企业需求和系统开发后不符技术要求,从而提高了考勤管理自动化系统的可用性.关键词:系统调研,可行性分析,JSP+Servlet技术,Struts框架技术,Hibernate框架技术AbstractsAttendancemanagementautomationsystemisamodernsocialenterprisestoimplementanimportantlinkininformationmanagement,forenterpriseinformationmanagementscienceandregularizationofpositivesignificanceandimportantrole.Thispaperapplicationsresearchandfeasibilityanalysisandtechnicalfeasibilityofamorepracticalassessmentfactors,attendanceanduseofautomatedmanagementsystemsanalysisanddesign,describedinthefunctionalneedsofthelastplantothesystemrequirementsspecificationandoutlinedesignanddatabaseDetaileddesign.JAVAtechnologyincurrentuseofthelatestJSP+Servlettechnology,StrutsframeworkHibernatetechnologyandtechnicalframeworktoovercomethedevelopmentofthesystemaftersystemdoesnotmatchbusinessneedsandnotafterthedevelopmentoftechnicalrequirements,increasingattendancemanagementautomationsystemavailability.Keywords:systemresearch,feasibilityanalysis,JSP+Servlettechnology,StrutsFramework,Hibernateframeworktechnology
1引言1.1考勤管理自动化系统的概述考勤管理自动化系统就是我们常说的MIS(ManagementinformationSystem),在强调管理,强调信息的现代社会中它变得越来越普及.MIS是一门新的学科,它跨越了若干个领域,比如管理科学、系统科学、运筹学、统计学以及计算机科学.在这些学科的基础上,形成信息收集和加工的方法,从而形成一个纵横交织的系统.下面对研究本课题所参考的一些文献资料有关内容做简要说明.为了解决项目中的技术问题,我参考了许多的文献知识,譬如在文献[10]中,Struts是基于当前的一些相关标准的开发技术(Servlet,Xml)基础之上,提供了一个开发框架的开放源码项目,由于我们开发Web应用的复杂度随着系统的复杂度的要求越来越来复杂.特别是在代码重用、代码移植、代马可插入等问题上出现了许多重复开发、维护困难等.Struts这个框架鼓励我们应用Model2的MVC开发模型.其实Struts框架完全是基于J2EE相关技术和标准之上的.Struts提供一个Servlet来作为控制器对客户端的相应请求进行转接给后台的模型.它为了使各个部分能够分离,提供相应的配置文件(Struts-config.xml)进行请求和处理类的映射.整个类的映射完全来自java技术的类反射和相应的请求过滤技术.通过标记扩展来实现相应的视图和模型的联系.譬如在文献[22]中有关Hibernate的描述,构建Hibernate基础代码通常有以下途径:1.手工编写.2.直接从数据库中导出表结构,并生成对应的ORM文件和Java代码,这是实际开发中最常用的方式,也是这里所推荐的方式,通过直接从目标数据库中导出数据结构,最小化了手工编码和调整的可能性,从而最大程度上保证了ORM文件和Java代码与实际数据库结构相一致.3.根据现有的Java代码生成对应的映射文件,将Java代码与数据库表相绑定.通过预先编写好的POJO生成映射文件,这种方式在实际开发中也经常使用,特别是结合了Xdoclet之后显得尤为灵活,其潜在问题就是与实际数据库结构之间可能出现的同步上的障碍,由于需要手工调整代码,往往调整的过程中由于手工操作的疏漏,导致最后生成的配置文件错误,这点需要在开发中特别注意.譬如在文献[2]中有关设计模式的介绍,实际情况是,通常我们都要在创建Sample实例时做点初始化的工作,比如赋值查询数据库等.首先,我们想到的是,可第1页共36页
以使用Sample的构造函数,这样生成实例就写成::Samplesample=newSample(参数).但是,如果创建Sample实例时所做的初始化工作不是象赋值这样简单的事,可能是很长一段代码,如果也写入构造函数中,那你的代码很难看(就需要Refactor重整).首先,我们需要将创建实例的工作与使用实例的工作分开,,也就是说,让创建实例所需要的大量初始化工作从Sample的构造函数中分离出去这时我们就需要Factory工厂模式来生成对象了,不能再用上面简单newSample(参数).还有,如果Sample有个继承如MySample,,按照面向接口编程,我们需要将Sample抽象成一个接口.现在Sample是接口,有两个子类MySample和HisSample.我们要实例化他们时,如下:Samplemysample=newMySample();Samplehissample=newHisSample().1.2课题来源现在我国大部分企事业单位信息的管理水平还停留在人工的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代.因此,为了适应现代企业管理的要求,进一步完善企业管理信息辅助计算机实现自动化管理,我作为一个信息与计算科学的本科生,开发这样一套管理软件成为很有必要的事情,在下面的各章中我将以开发一套企业考勤自动化管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法.考勤自动化管理系统是一个企业不可缺少的部分,它的内容对于决策者和管理者来说都比较重要,所以考勤自动化管理系统应该能够为用户提供充足的信息和快捷的查询手段.但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难.1.3课题的目的和意义考勤自动化管理系统是一种人事管理,是对企业员工及员工与其所从事的工作的关系的管理.具体而言,它是以员工和员工与其所从事的工作的关系为对象,通过组织、协调、控制等手段,谋求员工与其从事工作之间以及共事的员工之间的相互适应,实现充分发挥员工的潜能、把握员工工作做得更好这一目标所进行的管理活动.为了更好地进行员工管理工作,就需要借助计算机技术.我选择了开发一个考勤自动化管理系统,对员工的基本信息进行管理,同时掌握员工的信息,以减轻第2页共36页
管理人员的工作负担.通过本管理系统,实现员工信息管理的电子化,真正为员工管理提供一个电子平台.一切从企业的实际出发,充分考虑了企业在内部管理、资源共享、信息交流等方面的复杂需求,丰富使用的功能和强大的权限体系确保有效地解决实际工作中的各类问题.2总体设计思想2.1开发技术简介2.1.1JSP+Servlet技术Java是一种简单易用、完全面向对象、具有平台无关性且安全可靠的主要面向Internet的开发工具.自从1995年正式问世以来,Java的快速发展已经让整个Web世界发生了翻天覆地的变化.在早期,Java比较多的用在浏览器上,插入到网页中(即是JavaApplet程序),成为最灵活、最强大的网页多媒体的载体,但由于Java虚拟机相对于个人电脑而言,有占用资源大,安全性相对较差等缺点,Applet逐渐的被后起之秀Flash所替代,但随着JSP的推出,Java在电子商务方面开始崭露头角,最新的JSP(JavaServerPage)技术的推出,更是让Java成为基于Web的应用程序的首选开发工具,目前的Java技术已成为所有大型电子商务项目的必然选择.JavaServlet是JSP技术的基础,JSP本身就是预先被编译成Servlet,然后再运行的,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成,Servlet这个名称大概源于Applet,现在国内的翻译方式很多,本文为了避免误会,本文直接采用Servlet这个名称而不做任何翻译,读者如果愿意,可以称之为“小服务程序”.Servlet其实和传统的CGI程序和ISAPI、NSAPI等Web程序开发工具的作用是相同的,在使用JavaServlet以后,用户不必再使用效率低下的CGI方式,也不必使用只能在某个固定Web服务器平台运行的API方式来动态生成Web页面.许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器也可以通过附加的应用服务器和模块来支持Servlet.得益于Java的跨平台的特性,Servlet也是平台无关的,实际上,只要符合JavaServlet规范,Servlet是完全平台无关且是Web服务器无关的.由于JavaServlet内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此JavaServlet效率非常高.但JavaServlet也不是没有缺点,和传统的CGI、ISAPI、NSAPI方式相同,JavaServlet是利用输出HTML语句来实现动态网页的,如果用JavaServlet来开发整个网站,动态部分和静态页面的整合过程简直就是一第3页共36页
场噩梦.这就是为什么SUN还要推出JavaServerPages的原因.2.1.2JavaBeans技术什么是JavaBeans?JavaBeans就是Java的可重用组件技术.ASP通过COM来扩充复杂的功能,如文件上载、发送email以及将业务处理或复杂计算分离出来成为独立可重复利用的模块.JSP通过JavaBeans实现了同样的功能扩充.JSP对于在Web应用中集成JavaBeans组件提供了完善的支持.这种支持不仅能缩短开发时间(可以直接利用经测试和可信任的已有组件,避免了重复开发),也为JSP应用带来了更多的可伸缩性.JavaBeans组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据提取等.在实际的JSP开发过程中,读者将会发现,和传统的ASP或PHP页面相比,JSP页面将会是非常简洁的,由于JavaBeans开发起来简单,又可以利用Java语言的强大功能,许多动态页面处理过程实际上被封装到了JavaBeans中.2.1.3Struts框架技术Struts有一组相互协作的类、Serlvet以及JSPTagLib组成.基于Struts构架的Web应用程序基本上符合JSPModel2的设计标准,可以说是MVC设计模式的一种变化类型.根据上面对framework的描述,我们很容易理解为什么说Struts是一个Webframwork,而不仅仅是一些标记库的组合.但Struts也包含了丰富的标记库和独立于该框架工作的实用程序类.Struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View).在模型层,Struts可以很容易的与数据访问技术相结合,包括EJB,JDBC和ObjectRelationBridge在视图层,Struts能够与JSP,VelocityTemplates,XSL等等这些表示层组件相结合.我们说Strutsframework是MVC模式的体现,下面我们就从分别从模型、视图、控制来看看Struts的体系结构(Architecture).下图显示了Strutsframework的体系结构响应客户请求时候,各个部分工作的原理.第4页共36页
图12.1.4Hibernate框架技术在今日的企业环境中,把面向对象的软件和关系数据库一起使用可能是相当麻烦、浪费时间的.Hibernate是一个面向Java环境的对象/关系数据库映射工具.对象/关系数据库映射(object/relationalmapping(ORM))这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去,Hibernate不仅仅管理Java类到数据库表的映射(包括Java数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间.Hibernate的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的95%.对于以数据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑,Hiberna可能不是最好的解决方案;对于那些在基于Java的中间层应用中,它们实现面向对象的业务模型和商业逻辑的应用,Hibernate是最有用的.不管怎样,Hibernate一定可以帮助你消除或者包装那些针对特定厂商的SQL代码,并且帮你把结果集从表格式的表示形式转换到一系列的对象去.2.2系统调研及可行性分析2.2.1系统调研正式开发考勤自动化管理之前进行调研是非常必要的,其必要性主要表现在以下几个方面:(1)明确用户的要求,以根据调查结果进行可行性分析,确认系统的开发是否可行.(2)提出新系统的人员并不都是系统研究人员,有些人对于其功能和处理数据第5页共36页
的方法没有明确的认识.它们只是根据自己业务工作的需要提出了要求,系统开发人员要对此进行详细的调查和分析,确认用户的要求可以通过现有的计算机技术实现,保证开发的考勤管理功能与用户提出的要求相吻.(3)企业的现行系统可能是手工系统,也可能是使用和计算机的系统,无论是何种情况,都要详细地调查现行系统中信息处理的具体情况,系统内部功能结构,以便设计出一个合理的、好的新系统逻辑模型,为新系统的设计工作打好基础,保证整个系统开发的质量.总之,必要对现行系统进行详细的调查,明确用户需求,保证开发的新系统的功能与用户的要求相吻合,避免耗费大量的人力、物力、财力,新系统的开发却失败的悲剧发生.2.2.2可行性分析概述可行性分析是在用户的要求和系统调研的基础上进行的,对新系统的开发从社会、技术、经济、管理等方面进行分析,并得出新系统的开发工作可行、不可行、需要修改、追加投资、暂缓开发、分步实施等方案和结论,最后完成可行性分析.一般可定义为:可行性分析是在建设的前期对工程项目的一种考察和鉴定,对拟议中的项目进行全面与综合的技术、经济能力的调查,判断它是否可行.(1)可行性分析阶段的主要工作包括以下几个方面:①社会可行性分析:社会可行性分析主要是指管理信息系统的开发是否符合国家法律、下策,是否能够与社会大系统实现良好的对接.②技术可行性分析:技术可行性分析是根据新系统的目标来衡量是否具备所需要的技术,包括系统开发人员数量和水平,硬件方面,软件方面及其它应用技术.④经济可行性分析:经济可行性分析主要是对开发新系统所投入的资金与系统投入使用后所带来的经济效益进行比较,确认新系统是否会给企业带来一定的经济效益.⑤管理可行性分析:管理可行性分析主要是分析企业现行的管理体制和企业领导是否具有现代第6页共36页
化的管理意识和管理水平.2.2.3技术可行性分析技术可行性分析主要包括四个方面:目前有关的技术能否支持所开发的新系统;新系统开发人员的数量和水平,即人力资源;硬件和软件资源.(1)技术支持:首先根据新系统的目标,考虑目前有关的技术能否支持所开发的新系统.这里讨论的技术必须是已经普遍使用的,而不是待研究的或正在研究的.(2)硬件资源:开发考勤自动化管理系统所需的硬件资源包含以下两个方面:系统开发人员在管理信息系统的开发过程中所需要的计算机设备及其有的外部设备;管理信息系统开发成功投入使用后,使用单位所应具备的计算机设备及其有关的外围设备.对硬件资源进行可行性分析时主要考虑计算机的主机内存、类型、功能、联网能力、安全保护措施以及输入/输出设备,外存储器和联网数据通信设备的配置、功能、效率等指标是否符合系统方案设计要求,同时还要考虑计算机的性能/价格比.(3)软件资源:软件资源的可行性分析主要考虑以下几点是否满足用户的要求:①操作系统的选择;②编译系统的选择;③数据库管理系统的选择;④高级编程语言的选择;⑤汉字处理系统的选择;⑥应用软件包的选择;本系统在开发前,与中心的领导和有关的操作人员密切沟通,认真听取他们的意见,并吸收他们的积极观点,使本系统的开发在相当大的程度上具有一定的先进性和合理性.2.3系统开发简介考勤自动化管理系统在企业中的应用存在三个要素,这就是人,计算机和数据.计算机技术是MIS得已实施的主要技术.在这些技术中,软件开发是MIS开发的重点.在计算机软件技术中,人机界面已经发展成为一个重要的分支,MIS人机第7页共36页
界面设计一般遵循以下一些基本原则:1.以通信功能作为界面设计的核心,人机界面设计的关键是使人与计算机之间能够准确地交流信息.2.界面必须使用户随时掌握任务的进展情况.3.界面必须能够提供帮助.4.界面友好、使用方便.5.输入画面尽可能接近实际.2.3.1数据库应用系统简介在数据库应用系统开发之前,对开发数据库的基本概念应当了解,对数据库的结构、开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认识.数据库应用系统开发的目标是建立一个满足用户长期需求的产品.开发的主要过程为:理解用户的需求,然后,把它们转变为有效的数据库设计.把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用.数据库技术在计算机软件领域研究中一直是非常重要的主题,产生于60年代,30多年来数据库技术得到了迅速发展,并已形成较为完整的理论体系和一大批实用系统.并且,近年来,随着WorldWideWeb(WWW)的猛增及Internet技术的迅速发展,使得数据库技术之时成为最热门技术之一.数据库由DBMS(数据库管理系统)处理,DBMS则由开发人员和用户通过应用程序直接或间接地使用.它主要包括四个要素:用户数据、元数据、索引和应用元数据.2.4考勤自动化管理系统分析与设计系统分析是开发管理信息系统的关键性阶段,是一个从不断认识和逐步细化的过程,是下一阶段的工作基础,是为下一阶段进行物理方案设计、解决“怎么做”提供依据,基关键性主要体现在“理解需求”和“表达需求”两方面.通过对现行系统的详细调研,主要是从系统的角度理解用户的需要,确定新系统的综合要求,并提出这些需求的实现条件以及需求应达到的标准,也就是确定新系统要做什么,做到什么程度.这些需求包括:(1)功能需求:确定新系统应做什么,这是最主要的需求.(2)性能需求:给出所开发的新系统的技术性能指标,包括存储容量限制、运第8页共36页
行时间限制、安全保密性等.(3)环境需求:这是对系统运行以及所处环境的要求.例如,在硬件方面采用什么机型、有什么硬件设备等;在软件方面,采用什么支持系统运行的系统软件(指操作系统、数据库管理系统).(4)未来需求:这类要求是指目前不属于系统开发的范围,但将来随着外界环境的变化以及系统的发展可能会提出的要求.了解这类要求的目的是在开发过程中,可对系统将来可能的扩展与修改做准备.一旦需要时,就比较容易进行补充和修改了.多平台支持.支持中西文Windows9X、WindowsNT,Windows2000(XP)在业务模型上则考虑突出体现管理、控制、决策支持功能;适用于企发展的不同阶段的需求.操作人员的计算机知识普遍较差,要求有良好的人机界面.(1)由于该系统的使用对象多,要求有较好的权限管理.(2)数据计算自动完成,尽量减少人工干预,数据稳定性好.2.4.1考勤自动化管理系统功能需求简介考勤自动化管理系统对学校加强员工信息管理有着极其重要的作用.由于各个企业都在持续发展,企业需要管理的信息日益庞大,传统的手工企业管理信息不仅工作量大,而且容易出现问题.另外,企业管理信息要用到企业管理的各个方面,所以一旦企业信息管理出现了错误,后果往往是非常严重的.就一所信息量较大的企业来说,它的设计内容非常复杂而且繁多,比如拥有员工录入管理、员工权限管理、员工信息的查询和修改等等.由于本软件主要是为企业考勤管理自动化定制开发的,因此针对企业信息管理和考勤自动化管理的实际工作而言,我们经过了反复地论证,最终确定了企业管理自动化系统的设计方案.该企业管理系统的主要功能为:(1)掌握企业里每个员工的基本情况.其中包括员工编号、员工姓名、员工所属部门编号、员工所属部门名称、性别、年龄、职位、住址、电话等.(2)掌握企业里每个部门的基本情况,其中包括部门编号、部门名称、部门简介.(3)要求在系统中能够对员工信息进行灵活的浏览,能够将员工信息按照员工编号和员工名称进行模糊查询,查询出员工的基本信息.第9页共36页
(4)要求在系统中能够对员工所属小组信息进行灵活的浏览,能够将小组信息按照小组编号和小组名称进行模糊查询,查询出小组的基本信息.(5)要求在系统中能够对员工所属部门信息进行灵活的浏览,能够将部门信息按照部门编号和部门名称进行查询,查询出部门的基本信息.(6)可以对员工基本信息进行变动管理和相关的维护,对员工信息进行添加、删除和修改等操作.(7)可以对小组基本信息进行变动管理和相关的维护,对小组信息进行添加、删除和修改等操作(8)可以对部门基本信息进行变动管理和相关的维护,对部门信息进行添加、删除和修改等操作.(9)查询内部公告和发布内部公告,及时的发布和查询企业的内部的公告.(10)查看和维护日历,保持日历和系统的时间一致,制定相关的节假日.(11)领导可以对员工的相关申请进行审批,同意后打印相关的申请报表.2.4.2功能需求描述表1员工登录管理员工登陆刷新页面退出系统修改密码员工申请管理申请请假申请出差申请调休信息检验员工申请审核员工申请的有效性确认信息汇总出勤汇总汇总情况提交生成相应申请报表信息查询个人信息查询小组信息查询部门信息查询基本信息录入员工信息录入第10页共36页
员工信息修改员工信息删除部门信息录入部门信息修改部门信息删除员工权限分配系统备份日历管理日历维护日历查询考勤信息的录入正常考勤信息录入请假信息录入调休信息录入出差信息录入报表管理请假统计表考勤统计表用户登录修改密码申请请假领导审批查看信息维护信息生成报表(扩展模块)内部公告日历维护模块3系统需求规格说明书3.1架构分析与设计3.1.1逻辑架构逻辑架构总体分三部分,如下图,其中用jsp来设计前台,javabean为业务逻辑层,hibernate连接数据库.系统采用JSP+SERVLET+JDBC的技术架构,对系统进行分层,SERVLET的doPost和doGet方法调用业务层的JavaBean获取业务数据,并通过jsp页面(视图)把数据呈现出来;JDBC主要负责业务层的事务管理,DAO通过JDBC的把对象持久化到数据库中各个框架.模块间的关系如下:第11页共36页
1.请求浏SERVLET(控制器)览器2.实例化DAOJAVABEAN(模型)3JDBC5.响应JSP(视图)DB数据库图23.1.2物理架构表2操作系统WindowsXP开发工具MyEclipes5.5服务器Tomcat6.0数据库服务器SQLServer2000/Oracledb10g使用技术JSP,Servlet,JavaBean,Struts,Hibernate等项目名称考勤管理自动化系统项目类型基于B/S架构3.2业务逻辑分析3.2.1后台逻辑架构系统后台:基本信息录入,员工权限分配,系统备份,考勤信息录入,基本信息维护,内部公告,日历管理和维护3.2.2前台逻辑架构系统前台:员工登录管理,员工申请管理,基本信息验证,基本信息汇总,基本信息查询,报表管理4系统概要设计图第12页共36页
4.1功能层次图图34.2顶层用例图4.2.1普通员工用例图登录查看公告修改密码发布公告填写请假申请<>查看部门信息员工查看是否批准查看本人信息查看小组信息图44.2.2组长用例图第13页共36页
查看公告登录发布公告修改密码查看部门信息填写请假申请组长查看小组信息查看是否批准查看本人信息审批组内申请图54.2.3部门经理用例图查看公告登录发布公告修改密码查看部门信息填写请假申请部门经理查看小组信息查看是否批准查看本人信息审批部门申请图64.2.4人事经理用例图第14页共36页
维护部门信息登录维护小组信息修改密码维护员工信息填写请假申请查看公告查看是否批准发布公告人事部经理审批部门申请查看部门信息查看小组信息查看本人信息图74.2.5总经理用例图登录修改密码查看公告审批发布公告查看本人信息总经理查看部门信息查看小组信息图84.3顶层状态图查看信息登录生成报表申请请假开始结束图95相关功能模块演示第15页共36页
5.1用户登录用例描述用户登录系统主要参与者所有员工前置条件用户的帐号、密码已经存在后置条件成功登录主要成功场景参与者动作系统职责1.打开首页,输入帐号和密码2.验证帐号是否存在及帐号密码是否一致,若无误则提示成功登录,否则提示是否重新登录;同一帐号连续输入5次密码还不正确则提示退出登录3.成功登录后进入主页面关键代码:publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){LoginFormloginForm=(LoginForm)form;//TODOAuto-generatedmethodstubStringempNo=loginForm.getEmpNo();Stringpassword=loginForm.getPassword();DisplayMesgdm=newDisplayMesg(response,"./login.jsp");LoginDAOlogin=newLoginDAO();intlog=login.queryEmp(empNo,password);if(log==1){dm.displayMesg("对不起,不存在此员工,请重新输入员工编号");returnnull;}elseif(log==2){dm.displayMesg("对不起,密码输入错误,请重新输入密码");returnnull;}elseif(log==3){第16页共36页
dm.displayMesg("对不起,数据库查询不正常");returnnull;}else{Employeeemployee=login.findIdByEid(empNo);Listlist=null;if(employee.getRole()!=null){list=newRolepopedomDAO().findByProperty("role.roleid",employee.getRole().getRoleid());request.getSession().setAttribute("dutypopedom",list);request.getSession().setAttribute("emp",employee);returnmapping.findForward("main");}dm.displayMesg("对不起,您不能登陆系统");returnnull;}登录界面:登录后成功进入界面:第17页共36页
5.2修改密码用例描述修改用户密码主要参与者所有员工前置条件用户已经成功登录后置条件密码修改成功主要成功场景参与者动作系统职责1.点击修改密码2.跳转到修改密码页面3.输入老密码、新密码、确认密码后点击提4.验证所输入老密码是否正确,错误则提示重交新输入7.点击返回5.验证确认密码是否与新密码一致,错误则提示新密码与确认密码不一致6.全部正确则将新密码保存到数据库并提示密码修改成功8.返回主页面关键代码:/***@paramempId员工编号*@paramoldPassword原始密码第18页共36页
*@paramnewPassword新密码*@return0密码修改成功1原始密码错误2两次密码输入不一致3异常*/publicintupdateEmp(LongempId,StringoldPassword,StringnewPassword,StringnewPassword2){Sessionsession=null;Transactiontx=null;try{session=HibernateSessionFactory.getSession();tx=session.beginTransaction();Queryquery=session.createQuery("fromEmployeeasempwhereemp.id=?");query.setLong(0,empId);Employeeemp=(Employee)query.uniqueResult();if(emp.getPassword().equals(oldPassword)==false)return1;else{if(newPassword.equals(newPassword2)==false)return2;else{emp.setPassword(newPassword);session.update(emp);tx.commit();session.clear();return0;}}修改密码界面:第19页共36页
5.3申请请假用例描述申请请假主要参与者所有员工前置条件员工登陆系统,进入申请页面后置条件用户退出申请请假模块主要成功场景参与者动作系统职责1、进入员工请假申请页面1、当员工输入请假信息,并提交申请后,申2、输入员工姓、项目组、部门,申请类型(年请状态为未审核,并将内容记录在请假表中休假、事假、其它假)、申请起止时间、申请2、在申请提交后显示提示信息,表明申请已天数、联系电话以及备注(及请假原因)提交,请等待批准3、员工核实自己的输入内容后,点击提交按钮关键代码:/***1、查询出来的请假信息开始时间设为start,那么要满足如下关系:start_timelist=newArrayList();while(ite.hasNext()){n=(Notice)ite.next();Stringname=n.getNoticename();if(name.length()>=30){n.setNoticename(name.substring(0,29));}list.add(n);}request.getSession().setAttribute("v",list);//数据总行数第28页共36页
request.getSession().setAttribute("maxrow",""+list.size());//每页显示两行request.getSession().setAttribute("perpage",""+10);//总页数request.getSession().setAttribute("pages",""+(int)(Math.ceil(list.size()/10.0)));Stringst=(String)request.getSession().getAttribute("pp");inti=1;if(st==null){i=1;request.getSession().setAttribute("pp",i+"");}returnmapping.findForward("noticeshow");}内部公告界面:6数据库详细设计第29页共36页
6.0表汇总表名功能说明员工表(employee)存储员工详细信息小组表(group)存储小组详细信息部门表(department)存储部门详细信息请假表(leave)记录员工请假信息权限表(popedom)存储分配给不同职位员工的权限等信息节假日表(holiday)存储公司规定的节假日职务表(duty)存储不同员工的职务审核状态表(auditingstate)存储请假的审核状态职务权限表(dutypopedom)存储不同职务所对应的权限6.1员工表表名employee(员工表)列名数据类型(精度范围)空/非空约束条件id(序号)number(5)notnullunique,primarykeyeid(员工编号)number(5)notnullename(员工姓名)varchar2(20)notnulldeptid(所在部门编号)number(5)notnullforeignkeygroupid(小组编号)number(5)notnullforeignkeydutyid(职务编号)number(5)notnullforeignkeybegindd(入职时间)varchar2(15)notnullbeginwd(参加工作时间)varchar2(15)notnullITTime(IT工作时间)number(2)notnullworkTime(工作年限)number(2)notnullresumeid(简历编号)number(5)notnullsex(性别)varchar2(2)notnullnativePlace(籍贯)varchar2(30)notnullbirthday(出生年月)varchar2(15)notnullmarriage(婚姻状况)varchar2(5)notnullidCard(身份证号码)number(18)notnulllocal(户口所在地)varchar2(50)notnulladdress(现家庭住址)varchar2(50)notnullschool(毕业学校)varchar2(50)notnulldegree(学历)varchar2(10)notnullgrade(测试成绩)number(5)notnullsic(社保卡号)number(20)notnullbeginPact(合同开始时间)varchar2(15)notnullendPact(合同结束时间)varchar2(15)notnullmtel(移动电话)number(11)notnullotel(办公电话)number(12)notnulloEmail(办公邮箱)varchar2(30)notnull第30页共36页
email(邮箱)varchar2(30)notnullremarks(备注)varchar2(200)补充说明根据需求,将序号id作为主键,而非员工编号eid作为主键6.2小组表表名groups(小组表)列名数据类型(精度范围)空/非空约束条件groupid(小组编号)number(5)notnullunique,primarykeygroupname(小组名称)varchar2(20)notnulldeptid(所属部门)number(5)notnullforeignkeygroupleader(组长)varchar2(20)notnullgroupcount(小组人数)number(3)notnullgroupoffice(小组职责)varchar2(200)notnullgroupinto(小组介绍)varchar2(200)notnullremarks(备注)varchar2(200)6.3部门表表名department(部门表)列名数据类型(精度范围)空/非空约束条件deptid(部门编号)number(5)notnullunique,primarykeydeptname(部门名称)varchar2(20)notnulldeptmanager(部门经理)varchar2(20)notnulldeptcount(部门人数)number(3)notnulldeptoffice(部门职责)varchar2(200)notnulldeptinto(部门介绍)varchar2(200)notnullremarks(备注)varchar2(200)6.4请假表表名leave(请假表)列名数据类型(精度范围)空/非空约束条件leaveid(请假编号)Number(5)notnullunique,primarykeyename(姓名)Varchar2(20)notnullgroupname(小组名称)Varchar2(20)notnulldeptname(部门名称)Varchar2(20)notnullleavetype(假期类型)Varchar2(10)notnullbeginleavetime(开始时Varchar2(15)notnull间)endleavetime(结束时间)Varchar2(15)notnullleavecount(请假天数)Number(2)notnullmtel(联系电话)number(11)notnullremark(备注)varchar(200)applytime(申请时间)Varchar2(15)notnull第31页共36页
groupleader(组长)Varchar2(20)notnullleadertime(组长审批时Varchar2(15)notnull间)leaderstate(组长审批状Char(4)notnull态)deptmanager(部门经理)Varchar2(20)notnullmanagertimeVarchar2(15)notnull(经理审批时间)managerstateChar(4)notnull(经理审批状态)chiefname(副总姓名)Varchar2(20)notnullchieftime(副总审批时Varchar2(15)notnull间)chiefstate(副总审批状Char(4)notnull态)补充说明暂无6.5权限表表名popedom(权限表)列名数据类型(精度范围)非空约束主外键约束popedomid(权限编Number(5)notnullunique,primarykey号)popedomnameVarchar2(20)notnull(权限名称)补充说明暂无6.6职务表表名duty(职务表)列名数据类型(精度范围)约束条件主外键约束dutyid(职务编号)Number(5)notnullunique,primarykeydutyname(职务名称)Varchar2(30)notnull补充说明暂无6.7审核状态表表名auditingstate(审核状态表)列名数据类型(精度范围)约束条件主外键约束auditingstateidNumber(5)notnullunique,primarykey(审核状态编号)auditingstatenameVarchar2(20)notnull第32页共36页
(审核状态名称)补充说明暂无6.8职务权限表表名dutypopedom(职务权限表)列名数据类型(精度范围)约束条件主外键约束dutypopedomidNumber(5)notnullunique,primarykey(职务权限分配编号)dutyid(职务编号)Number(5)notnullforergnkeypopedomid(权限编Number(5)notnullforergnkey号)补充说明暂无6.9节假日表表名holiday(节假日表)列名数据类型(精度范围)约束条件主外键约束HolidayidNumber(5)notnullunique,primarykey(节假日编号)holidaynameVarchar2(20)notnull(节假日名称)补充说明此节假日表存储公司规定的节假日,不包括双休日若求双休日则另外判断7总结随着毕业时间一天天的逼近,这个毕业设计才接近了尾声.在这次毕业设计里,可以说是全身心地投入,――正式开始动工之前,有很多关于项目架设的想法,觉得项目无非就是数据库+标签+编码,真正下手后,深刻体会到了其中的艰辛,特别是编码完成后的调试阶段,通过老师的认真辅导,还有同学的帮助,最终出来了结果,感觉很有成就感,更有点苦尽甘来的味道.这次的毕业设计,有两个方面的收获,一个是心态,一个是技术.在心态上,端正了之前的心浮气躁、眼高手高,更加磨练了韧劲,提高了对软件开发中的工程设计思路的认识和理解.技术上,对Java这门引导主流的强大语言的基础编码部分J2SE和应用于企业级开发的框架部分J2EE积累了实战经验,对Java有了新的认识,对系统项目的开发有了新的认识,对软件开发有了新的认识,在JSP动态网站开发方面积累了第33页共36页
实践经验.提高了对HTML的熟练程度及使用技巧,尤其是与Javascript联手打造客户端的一些方法和思路.致谢:参考文献[1]王克宏.主编JAVA技术教程.清华大学出版社,2001.[2]林邦杰.彻底研究JAVA2.电子工业出版社,2002.[3]周政宏.JAVA程序设计方法与案例.科学出版社,,2002.[4]董士海.计算机软件工程环境与软件工程[M].北京科学出版社,1990.[5]孙一林.JAVA语言高级教程.清华大学出版社,2002.[6]黄嘉辉.JAVA网络程序设计.清华大学出版社,2002.[7]MikeJasnowski,盖江南,王勇等译.AVA,XML和Web服务宝典.电子工业出版社,2002.[8]BillBrogden,ChrisMinnick,邱中幡等译.JAVA开发指南.电子工业出版社,2001.[9]JeffFriessen,钟萍,张玉峰等译.用实例学JAVA2.电子工业出版社,2002.[10]彭晨阳.Java实用系统开发指南.机械工业出版社,2004.[11]刘亚滨,杨红等译.精通Eclipse.电子工业出版社,2004.[12]飞思科技产品研发中心.JSP应用开发详解[M].电子工业出版社,2004.[13]郑人杰,殷人昆,陶永雷.实用软件工程[M].清华大学出版社,2001.[14]王能斌.数据库系统原理.电子工业出版社,1998.[15]RicherJ.Windows.核心编程[M].机械工业出版社,2000.[16]孙卫琴.Tomcat与JavaWeb开发技术详解.电子工业出版社,2004.[17]JSP数据库系统开发完全手册.人民邮电出版社,2006.[18]Delphi数据库系统开发完全手册.人民邮电出版社,2006.[19]王国辉,牛强,李南南等.JSP信息系统开发实例精选.机械工业出版社,2005.[20]宋昆,李严等.SQLServer数据库开发实例解析.机械工业出版社,2006.[21]李严,于亚芳,王国辉.ASP数据库开发实例解析.机械工业出版社,2004.[22]陈威,白伟明,李楠.JSP工程应用与项目实践.机械工业出版社,2005.[23]王国辉,牛强,李南南.ASP工程应用与项目实践.机械工业出版社,2005.[24]王国辉,牛强,李南南等.ASP信息系统开发实例精选.机械工业出版社,2005.[25]周桓,张雨,王国辉.Visualfoxpro数据库开发关键技术与实例应用.人民邮电出版社,2004.[26]刘志铭,张振坤,冯文萃.PoweBuilder数据库开发关键技术与实例应用.人民邮电出版社,2004.[27]高春艳,李艳.Visualbasic数据库开发关键技术与实例应用.人民邮电出版社,2004.[28]刘志铭,高春艳等.VisualBasic数据库开发实例解析.机械工业出版,2003.附录逻辑设计:第34页共36页
employeeauditingstateleavePKidPKauditingstateidgroupPKleaveideidauditingstatenamePKgroupidenameenamegroupnameFK2deptidgroupnamedeptnameFK1groupidgroupleaderleavetypeFK3dutyidgroupcountbeginleavetimebegindddutypopedomgroupofficeendleavetimebeginwdgroupintoPKdutypopedomidleavecountITTimeremarkmtelworkTimedytyidremarkresumeidFK1popedomidapplytimesexFK2dutyidgroupleadernativePlacedepartmentleadertimebirthdayPKdeptidleaderstatemarriagedeptmanageridCarddeptnamemanagertimelocaldeptmanagermanagerstateaddressdeptcountchiefnameschooldeptofficechieftimedegreeholidaydeptintochiefstategradesicremarkPKholidayidbeginPactendPactholidaynamepopedommteldutyotelPKpopedomidPKdutyidoEmailEmailpopedomnamedutynameremark物理设计:第35页共36页
leaveemployeeauditingstatePKleaveidPKidPKauditingstateidgroupenameeidPKgroupidauditingstatenamegroupnameenamedeptnameFK2deptidgroupnameleavetypeFK1groupidgroupleaderbeginleavetimeFK3dutyidgroupcountendleavetimebegindddutypopedomgroupofficeleavecountbeginwdITTimegroupintoPKdutypopedomidmtelremarkremarkworkTimedytyidapplytimeresumeidsexFK1popedomidgroupleadernativePlacedepartmentFK2dutyidleadertimeleaderstatebirthdayPKdeptiddeptmanagermarriagemanagertimeidCarddeptnamemanagerstatelocaldeptmanagerchiefnameaddressdeptcountchieftimeschooldeptofficechiefstatedegreeholidaygradedeptintosicremarkPKholidayidbeginPactendPactholidaynamedutypopedommtelotelPKdutyidPKpopedomidoEmailEmaildutynamepopedomnameremark述语与缩写解释:缩写、术语解释J2EEJava2enterpriseedition,一种开发平台Servlet一种应用于JavaWeb开发中的业务流程控制和处理的Java技术JavaBean负责JavaWeb开发中的业务逻辑控制的一种Java技术JSPJavaScriptPage一种Java技术,用于编写动态页面StrutsStruts是一种对用户层进行操作的框架,它主要针对用户的显示层进行各种JavaBean的操作.HibernateHibernate是一种对数据库进行操作的框架,它主要针对数据库中的表进行各种操作.第36页共36页