毕业设计(论文)1稿:勤工俭学管理信息系统的设计与实现_第1页
毕业设计(论文)1稿:勤工俭学管理信息系统的设计与实现_第2页
毕业设计(论文)1稿:勤工俭学管理信息系统的设计与实现_第3页
毕业设计(论文)1稿:勤工俭学管理信息系统的设计与实现_第4页
毕业设计(论文)1稿:勤工俭学管理信息系统的设计与实现_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

编号毕业设计(论文)题目勤工俭学管理信息系统的设计与实现二级学院计算机科学与工程学院专业软件工程班级学生姓名学号指导教师职称时间目录摘要 5Abstract 51绪论 61.1引言 61.2背景和意义 61.3系统特点 61.4系统目标 71.5系统可行性分析 72系统环境介绍 82.1概述 82.1.1MyEclipse基本概述 82.1.2MySqL基本概述 82.2技术支持简介 92.2.1UML介绍 92.2.2TCP协议简单介绍 112.2.3Spring介绍 122.2.4Struts2介绍 142.2.5Hibernate介绍 152.2.6JavaScript开发技术介绍 173系统分析 203.1系统总需求 203.1.1需求描述与分析 203.1.2系统总功能 213.2系统需求分析 233.2.1系统活动者与用例模型 233.2.2用例图 243.2.3用例文档描述 264勤工俭学系统设计 324.1系统中包含实体类及相互关系 324.1.1由前面文档描述,得出以下类图: 324.1.2确定类与类之间的关系 324.2时序图 334.2.1用例“注册”的时序图 334.2.2用例“登录”的时序图 344.2.3用例“审核”的时序图 354.2.4用例“报名”的时序图 364.2.5用例“录用”的时序图 374.2.6用例“解雇”的时序图 384.2.7用例“发放工资”的时序图 394.3数据库设计 404.3.1CDM(ConceptualDataModel) 404.3.2PDM(PhysicalDataModel) 414.3.3数据库表对应实体说明 425系统实现 475.1登录 475.2注册 485.3主页面 495.4功能列表页 505.5详细信息页面 505.6新增/修改页面 516系统测试 526.1功能性测试 526.1.1系统登录测试 526.1.2用户管理模块 526.2非功能性测试 536.2.1UI测试 536.2.2性能测试 536.2.3安全性测试 54参考文献 55摘要 随着各大高校勤工助学不断扩大,如何有效地帮助勤工俭学的学生,管理勤工助学所产生的信息,成为各大高校的一个难题,传统手工管理模式已经不适应时代发展。由于信息化快速发展,开发适应当前工作需要的办公管理软件已经成为必然。本文基于UML建模,结合JAVA编程语言和MySQL数据库管理服务技术,设计并实现了大学生勤工俭学管理信息系统的运行管理。整个管理系统的开发包括分析、设计、实现三个主要过程。该系统有机结合了勤工助学的现实情况,运用信息化技术来完成任务,减轻勤工助学日常工作的成本,提高勤工助学的工作效率。关键词:勤工助学JAVAMySQLAbstractWithconstantlyexpandingofthenumberofwork-studystudents,ithasbecomeaproblemofmajorcollegesanduniversitiestoeffectivelyhelpthework-studystudentsandmanagetheirinformation.Thetraditionalmanualmanagementmodelhasbeenoutdated.DuetotheWiththerapiddevelopmentofinformationitisurgenttodevelopanofficemanagementsoftwaretoadapttothecurrentwork.ThisarticlebasedonUMLmodeling,combinedwithJAVAprogramminglanguageandMySQLdatabasemanagementservicestotechnologytodesignandrealizetherunningandmanagementofthecollegework-studyprogramsystem.Thedevelopmentofentiremanagementsystemincludingthreemainprocesses--analysis,designandimplementation.Thesystemorganicallycombinestherealityofwork-studytousetheinformationtechnologytoaccomplishthetask,reducingthecostofwork-studydailywork,eventuallytoachievethepurposeofimprovingtheefficiencyofwork-study.Keywords:Work-studyJavaMySQL1绪论1.1引言 在当今信息高度发达的时代,勤工助学管理涉及的各环节已经不再仅仅是传统的勤工管理,助学管理,而是更广泛、更全面的系统服务,利用计算机管理及时了解各个环节中信息的变更,有利于提高管理的效率。同时,勤工助学工作对解决贫困生的经济问题,锻炼学生的工作能力、沟通能力、理解能力和自立能力等方面都起着重要作用。做好学生勤工助学管理工作对提高勤工助学管理系统的服务水平和勤工助学学生的综合能力,实现双赢有着重要的意义。因此为能够实现校方管理学生勤工助学而开发本系统,学生能够自主选择勤工助学项目的功能,为学生提供一个自主选择的平台。1.2背景和意义 勤工俭学是社会主义教育的一个不可缺少的组成部分,是培养四有新人的重要途径。近几年来,学校的勤工俭学活动越来越引起人们的重视,经济效益有了较大幅度的提高,机构和队伍得到充实和加强,有利地促进了社会主义一代新人的健康成长。所以,这项活动不仅有利于学生德、智、体、美全面发展,而且可以使学生通过参加劳动取得相应报酬。这是对广大学生,特别是家庭经济困难学生的有效资助办法,是对他们安心完成在校学业的有力支持 随着勤工俭学者的增多,如何合理管理,有效帮助勤工俭学者成为一个难题,本系统旨在帮助勤工学生、公司、以及管理者之间进行快速通信,合理安排工作,合理利用人力资源,提高人员效率,降低劳动成本和差错发生的概率。1.3系统特点安装部署简单、灵活,无需安装客户端界面简洁美观并且具有较强的交互能力数据统一管理分析,便于查询统计丰富的辅助工具,具有较强的管理功能大量采用设计模式,扩展灵活1.4系统目标 学生能查看公司的招聘信息以及报名职位,对工作安排以及工资发放情况能一目了然;勤工俭学组织能发布招聘信息、添加职位、对学生工作数据进行管理,能轻松的进行用工分配,以及学生信息的查询、管理、统计,管理员能对审核信息进行管理、发放工资。1.5系统可行性分析 1)技术可行性: 为了确定现有技术能否实现目标系统,Eclipse自带的工具和空间、SQL拥有的表操作(建立、修改、删除等)以及它协调操作完全可以实现本系统要求达到的功能,因此技术上可行操作可行性: 勤工俭学管理系统的建设是基于java平台开发的,java是被广泛应用与数据库开发和操作的一套成熟的软件平台,而且它对于一个大型的数据库处理具有不可比拟的优点和简单方便。所以操作可行性方面是可行的。经济可行性: 勤工俭学工作如果光靠完全人工来操作执行,不仅存在信息延后的问题,而且需要花费大量的人力物力,通讯费,各类表格通知打印费等一笔不小的长期开资,而且这笔开销还将一直无限的扩大下去,所以一次性的投入建设勤工俭学管理系统不仅方便管理而且可以节约大笔费用。显然,从长远考虑在软件有效期内预期经济效益大于开发成本,经济性收益明显,有广阔市场前景。有以上分析我们可以确定本系统在经济可行性上行得通。2系统环境介绍2.1概述2.1.1MyEclipse基本概述 MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。MyEclipse是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。[1]根据官方最新消息,MyEclipse2013已经正式发布!MyEclipse2013[2]支持HTML5、JQuery和主流的Javascript库。随着MyEclipse2013支持Html5,你可以添加音频、视频和API元素到你的项目,从而为移动设备创建复杂的Web应用程序。你甚至还可以通过HTML5可视化设计器设计令人难以置信的用户界面。同时,随着MyEclipse2013支持JQuery,你可以通过插件提升性能,并添加动画效果到设计中。2.1.2MySqL基本概述MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司。Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem:关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQLAB公司。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。2.2技术支持简介2.2.1UML介绍UML全称是UML-UnifiedModelLanguage统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义包括UML语义和UML表示法两个元素。UML是在开发阶段,说明,可视化,构建和书写一个面向对象软件密集系统的制品的开放方法。最佳的应用是工程实践,对大规模,复杂系统进行建模方面,特别是在软件架构层次,已经被验证有效。统一建模语言(UML)是一种模型化语言。模型大多以图表的方式表现出来。一份典型的建模图表通常包含几个块或框,连接线和作为模型附加信息之用的文本。这些虽简单却非常重要,在UML规则中相互联系和扩展。UML作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现。当模型建立之后,模型可以被UML工具转化成指定的程序语言代码。公认的面向对象建模语言出现于70年代中期。从1989年到1994年,其数量从不到十种增加到了五十多种。在众多的建模语言中,语言的创造者努力推崇自己的产品,并在实践中不断完善。但是,OO方法的用户并不了解不同建模语言的优缺点及相互之间的差异,因而很难根据应用特点选择合适的建模语言,于是爆发了一场“方法大战”。90年代中,一批新方法出现了,其中最引人注目的是Booch1993、OOSE和OMT-2等。Booch是面向对象方法最早的倡导者之一,他提出了面向对象软件工程的概念。1991年,他将以前面向Ada的工作扩展到整个面向对象设计领域。Booch1993比较适合于系统的设计和构造。Rumbaugh等人提出了面向对象的建模技术(OMT)方法,采用了面向对象的概念,并引入各种独立于语言的表示符。这种方法用对象模型、动态模型、功能模型和用例模型,共同完成对整个系统的建模,所定义的概念和符号可用于软件开发的分析、设计和实现的全过程,软件开发人员不必在开发过程的不同阶段进行概念和符号的转换。OMT-2特别适用于分析和描述以数据为中心的信息系统。Jacobson于1994年提出了OOSE方法,其最大特点是面向用例(Use-Case),并在用例的描述中引入了外部角色的概念。用例的概念是精确描述需求的重要武器,但用例贯穿于整个开发过程,包括对系统的测试和验证。OOSE比较适合支持商业工程和需求分析。此外,还有Coad/Yourdon方法,即著名的OOA/OOD,它是最早的面向对象的分析和设计方法之一。该方法简单、易学,适合于面向对象技术的初学者使用,但由于该方法在处理能力方面的局限,目前已很少使用。概括起来,首先,面对众多的建模语言,用户由于没有能力区别不同语言之间的差别,因此很难找到一种比较适合其应用特点的语言;其次,众多的建模语言实际上各有千秋;第三,虽然不同的建模语言大多雷同,但仍存在某些细微的差别,极大地妨碍了用户之间的交流。因此在客观上,极有必要在精心比较不同的建模语言优缺点及总结面向对象技术应用实践的基础上,组织联合设计小组,根据应用需求,取其精华,去其糟粕,求同存异,统一建模语言。1994年10月,GradyBooch和JimRumbaugh开始致力于这一工作。他们首先将Booch93和OMT-2统一起来,并于1995年10月发布了第一个公开版本,称之为统一方法UM0.8(UnitiedMethod)。1995年秋,OOSE的创始人IvarJacobson加盟到这一工作。经过Booch、Rumbaugh和Jacobson三人的共同努力,于1996年6月和10月分别发布了两个新的版本,即UML0.9和UML0.91,并将UM重新命名为UML(UnifiedModelingLanguage)。1996年,一些机构将UML作为其商业策略已日趋明显。UML的开发者得到了来自公众的正面反应,并倡议成立了UML成员协会,以完善、加强和促进UML的定义工作。当时的成员有DEC、HP、I-Logix、Itellicorp、IBM、ICONComputing、MCISystemhouse、Microsoft、Oracle、RationalSoftware、TI以及Unisys。这一机构对UML1.0(1997年1月)及UML1.1(1997年11月17日)的定义和发布起了重要的促进作用。UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。面向对象技术和UML的发展过程可用图形来表示,标准建模语言的出现是其重要成果。在美国,截止1996年10月,UML获得了工业界、科技界和应用界的广泛支持,已有700多个公司表示支持采用UML作为建模语言。1996年底,UML已稳占面向对象技术市场的85%,成为可视化建模语言事实上的工业标准。1997年11月17日,OMG采纳UML1.1作为基于面向对象技术的标准建模语言。UML代表了面向对象方法的软件开发技术的发展方向,具有巨大的市场前景,也具有重大的经济价值和国防价值。2.2.2TCP协议简单介绍TCP的全称是TransmissionControlProtocol/InternetProtocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台电脑规定一个地址。TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:

应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。

传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。

互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。

网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、SerialLine等)来传送数据。2.2.3Spring介绍Spring是一个开源框架,它由RodJohnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。Spring框架是一个分层架构,由7个定义良好的模块组成。Spring模块构建在核心容器之上,核心容器定义了创建、配置和管理bean的方式。组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:

核心容器:核心容器提供Spring框架的基本功能。核心容器的主要组件是BeanFactory,它是工厂模式的实现。BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。Spring上下文:Spring上下文是一个配置文件,向Spring框架提供上下文信息。Spring上下文包括企业服务,例如JNDI、EJB、电子邮件、国际化、校验和调度功能。SpringAOP:通过配置管理特性,SpringAOP模块直接将面向方面的编程功能集成到了Spring框架中。所以,可以很容易地使Spring框架管理的任何对象支持AOP。SpringAOP模块为基于Spring的应用程序中的对象提供了事务管理服务。通过使用SpringAOP,不用依赖EJB组件,就可以将声明性事务管理集成到应用程序中。SpringDAO:JDBCDAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。SpringDAO的面向JDBC的异常遵从通用的DAO异常层次结构。SpringORM:Spring框架插入了若干个ORM框架,从而提供了ORM的对象关系工具,其中包括JDO、Hibernate和iBatisSQLMap。所有这些都遵从Spring的通用事务和DAO异常层次结构。SpringWeb模块:Web上下文模块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文。所以,Spring框架支持与JakartaStruts的集成。Web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。SpringMVC框架:MVC框架是一个全功能的构建Web应用程序的MVC实现。通过策略接口,MVC框架变成为高度可配置的,MVC容纳了大量视图技术,其中包括JSP、Velocity、Tiles、iText和POI。2.2.4Struts2介绍Struts2是Struts的下一代产品,是在struts1和WebWork的技术基础上进行了合并的全新的Struts2框架。其全新的Struts2的体系结构与Struts1的体系结构差别巨大。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。虽然从Struts1到Struts2有着太大的变化,但是相对于WebWork,Struts2的变化很小。在Struts2体系结构中当Web容器收到请求(HttpServletRequest)它将请求传递给一个标准的的过滤链包括(ActionContextCleanUp)过滤器,然后经过Otherfilters(SiteMesh,etc),接下来需要调用FilterDispatcher核心控制器,然后它调用ActionMapper确定请求那个Action,ActionMapper返回一个收集Action详细信息的ActionMaping对象。接下来FilterDispatcher将控制权委派给ActionProxy,ActionProxy调用配置管理器(ConfigurationManager)从配置文件中读取配置信息(struts.xml),然后创建ActionInvocation对象,ActionInvocation在调用Action之前会依次的调用所用配置拦截器(InterceptorN)一旦执行结果返回结果字符串ActionInvocation负责查找结果字符串对应的(Result)然后执行这个ResultResult会调用一些模版(JSP)来呈现页面,之后拦截器(InterceptorN)会在被执行(顺序和Action执行之前相反)最后响应(HttpServletResponse)被返回在web.xml中配置的那些过滤器和(核心控制器)(FilterDispatcher)。Struts2的拦截器在在AOP(Aspect-OrientedProgramming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。在Webwork的中文文档的解释为——拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。同时也是提供了一种可以提取action中可重用的部分的方式。大部分时候,拦截器方法都是通过代理的方式来调用的。Struts2的拦截器实现相对简单。当请求到达Struts2的ServletDispatcher时,Struts2会查找配置文件,并根据其配置实例化相对的拦截器对象,然后串成一个列表(list),最后一个一个地调用列表中的拦截器Struts2已经为您提供丰富多样的,功能齐全的拦截器实现。因此可以至struts2的jar包内的struts-default.xml查看关于默认的拦截器与拦截器链的配置。2.2.5Hibernate介绍Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate的核心接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。这6个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这6个核心接口分别加以介绍。 1)SessionSession接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为用户session。 2)SessionFactorySessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。 3)TransactionTransaction接口是一个可选的API,可以选择不使用这个接口,取而代之的是Hibernate的设计者自己写的底层事务处理代码。Transaction接口是对实际事务实现的一个抽象,这些实现包括JDBC的事务、JTA中的UserTransaction、甚至可以是CORBA事务。之所以这样设计是能让开发者能够使用一个统一事务的操作界面,使得自己的项目可以在不同的环境和容器之间方便地移值。 4)QueryQuery接口让你方便地对数据库及持久对象进行查询,它可以有两种表达方式:HQL语言或本地数据库的SQL语句。Query经常被用来绑定查询参数、限制查询记录数量,并最终执行查询操作。 5)CriteriaCriteria接口与Query接口非常类似,允许创建并执行面向对象的标准化查询。值得注意的是Query接口也是轻量级的,它不能在Session之外使用。 6)ConfigurationConfiguration接口的作用是对Hibernate进行配置,以及对它进行启动。在Hibernate的启动过程中,Configuration类的实例首先定位映射文档的位置,读取这些配置,然后创建一个SessionFactory对象。虽然Configuration接口在整个Hibernate项目中只扮演着一个很小的角色,但它是启动hibernate时所遇到的每一个对象。hibernate优点:1、封装了jdbc,简化了很多重复性代码。2、简化了DAO层编码工作,使开发更对象化了。3、移植性好,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变hibernate代码。4、支持透明持久化,因为hibernate操作的是纯粹的(pojo)java类,没有实现任何接口,没有侵入性。所以说它是一个轻量级框架。2.2.6JavaScript开发技术介绍JavaScript是一种基于对象(Object)和事件驱动(EventDriven)并具有安全性能的脚本语言。它可以嵌入到HTML文档中使网页更加生动活泼,并具有交互性。HTML语言是网页设计普遍采取的一种超文本标记语言,但HTML自身不能为网页提供很多动态支持,它只能创建超链接以允许用户浏览不同的HTML文档。HTML也不能接受用户输入,更不能对用户请求作出反应。JavaScript的出现弥补了HTML语言的缺陷,是Web上新的、强大的编程语言。一种编程语言通常是由另外一种编程语言演变而来的,JavaScript的发展历史还得从Java谈起。Java最初是SunMicrosystems公司为了在实时嵌入式系统中使用而开发的。最初只有HotJava支持Java,而HotJava正是Sun公司为支持Java而开发的一种实验性Web浏览器。当Netscape公司在认识到Java的巨大潜力后,便把它和自己开发的Web浏览器——NetscapeNavigator结合到一起。Netscape公司最初开发了一个LiveScript语言,在Navigator和Web服务器产品中加进了基本的脚本功能。当Navigator2.0中加进了Java小程序支持后,Netscape公司便把最初的LiveScript更名成了JavaScript。接着,Microsoft公司的浏览器InternetExplorer3.0也开始支持JavaScript。此后,许多公司相继宣布承认JavaScript为Internet上的开放式脚本编写标准,并且把它添加到了自己的产品中。因此,目前流行的浏览器都支持JavaScript。JavaScript因而也日益流行起来。JavaScript是一种简单的脚本编程语言,主要适用于简单、小型的程序。它可以与HTML超文本标记语言、Java脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用,从而开发出客户端的应用程序等。它是通过嵌入或调入到标准的HTML语言中实现的,它的出现弥补了HTML语言的缺陷。JavaScript语言有以下特点。1.JavaScript是一种脚本编写语言脚本(Script)是一种能够完成某些特殊功能的指令序列(小程序段)。这些指令序列不像一般程序那样需要被编译才能执行,而是在程序运行过程中被逐行地解释。在脚本中所使用的命令与语句集称为脚本语言。JavaScript是一种脚本语言,它采用小程序段的方式实现编程。像其他脚本语言一样,JavaScript同样也是一种解释性语言,它提供了一个开发过程,它的基本结构形式与C、C++、VB十分类似,但它不像这些语言那样,需要先编译,而是在程序运行过程中被逐行地解释。它通过与HTML标识结合在一起来方便用户的使用操作。2.JavaScript是一种基于对象的语言JavaScript是一种基于对象的语言,这意味着它能运用已经创建的对象,但不能派生新的对象,也就是没有面向对象程序设计语言(如Java就是一种面向对象的程序设计语言)所具有的继承、多态等特点,这使JavaScript更容易学习。3.简单性JavaScript的简单性主要体现在:第一,它是一种基于Java基本语句和控制流之上的简单而紧凑的设计,从而对学习Java是一种非常好的过渡;第二,它的变量类型采用弱类型,并未使用严格的数据类型;第三,JavaScript可以用很小的程序做大量的事,如创建交互式网页、控制浏览器的行为等。用户无须有高性能的电脑,也无须安装复杂的软件,仅需一个字处理软件及一个浏览器,即可使用JavaScript进行程序设计。JavaScript不需要耗时的编译过程,从而使脚本程序的开发周期比较短。JavaScript的大多数界面特征,均由浏览器和HTML代码处理,因此更加提高了开发速度。4.安全性JavaScript是一种安全性语言,它不允许访问本地的硬盘,更不能将数据存入到服务器上,也不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互,从而可以有效地防止数据丢失。5.动态性JavaScript是动态的,它可以直接对用户或客户输入作出响应,无须经过Web服务程序。它对用户反映的响应是采用事件驱动的方式进行的。在主页(HomePage)中执行了某种操作所产生的动作,就称为“事件”(Event)。如按下鼠标、移动窗口、选择菜单等都可以视为事件。当事件发生后,就可能会引起相应的事件响应。6.跨平台性JavaScript是依赖于浏览器本身的,与操作环境无关,只要能运行浏览器的计算机,并有支持JavaScript的浏览器就可以正确执行,从而实现了“编写一次,走遍天下”的梦想。正是以上的这些JavaScript的特点,使JavaScript在Web编程领域中得到了广泛的普及和运用,具有广阔的发展前景。为了能够让浏览器识别HTML文档中的脚本代码行,每个脚本必须包含在Script容器标识符(也称为标签)内,换言之,要用打开标签<script>开始脚本,用关闭标签</script>来结束脚本。无论是表单或者段落,在HTML中,都要使用首尾标记对标记内容进行封装。在HTML文件中嵌入JavaScript的方法,可以通过<script>标签的属性来决定。<script>…</script>标签对的位置并不是固定的,可以出现在HTML文档的<head>…</head>或者<boda>…</body>标签对之间,也可以出现在文档的多个位置。通过<script>…</script>标签对来嵌入多段JavaScript代码,该<script>标签有两个可选属性,这两个属性决定着正在使用的JavaScript是以哪种方式并入HTML文件的。利用<script>标签及其属性最终能够用两种不同的方法将JavaScript程序集成到HTML文件中。如果src属性生效,开发者就能够把存储到某个单独文件中的某段JavaScript代码引用过来,并简单地将这些文件加载到单独的Web页面中。如果将language属性设置为JavaScript,则表示文档中的脚本语言是JavaScript,而不是其他脚本语言,开发者就可以直接在HTML文档中编写JavaScript脚本程序。这两种属性可以单独使用,也可以并用。用上述两种方法在HTML文档中嵌入的JavaScript脚本都是在文档载入时开始运行的。这种在页面载入时就运行的脚本称为实时脚本。如果JavaScript脚本是在文档载入后或者响应用户动作时才运行,这种方式称为延时脚本。延时脚本是通过将JavaScript代码定义在函数中实现的。3系统分析3.1系统总需求3.1.1需求描述与分析 1)需求描述 勤工俭学勤工俭学管理信息系统的系统需求主要来自勤工俭学者和勤工俭学工作相关的工作人员,用以实现学生用户和数据管理、用工分配、查询、统计分析等功能。学生用户的主要需求是能够注册自己的账户,填充自己的申请信息,浏览自己的信息,修改自己的信息。勤工助学相关工作人员需要能够通过信息系统实现核实、审查、安排、核算、反馈等工作,以达到高效准确完成勤工助学工作的目的。勤工俭学管理信息系统需要保证信息的安全,系统的用户应具有部门权限和操作权限。系统中的用户具有不同的部门角色,处于不同部门的用户只能进行本部门职能范围内的操作。系统中的用户具有不同的权限,用户只能进行自己权限相对应的操作。 2)需求分析 从提出的需求来看,勤工俭学管理信息系统的参与者有三大类:学生用户、工作人员用户、管理员用户,因此系统需要为三类用户提供用户接口,设计不同的操作权限。 系统需求描述中提出的操作要求需要通过功能模块来实现,由此可以确定管理信息系统的功能模块,如图3.1所示。图3.1系统功能模块图3.1.2系统总功能学生注册 学生登录系统进行注册,同时填写学生自身信息(包括学号、登录密码、用户姓名、身份证号、性别、年龄、专业、地址、电话、电子邮件、银行卡号、备注等)。管理员审核后,即可报名勤工助学。学生登录学生登录系统进行登录,在填写完学号、密码后,如果账号密码正确则登录成功,否则登录失败。学生查询个人信息学生登录系统后,可以查询自身信息。学生更改个人信息学生登录系统后,查看自身信息,如需修改个人信息,进行修改个人信息。学生查询用人单位信息学生登录系统后,可以查看所有已审核的公司的信息。学生查询招聘信息学生登录系统后,可以查看管理员发布的招聘信息。学生报名勤工俭学学生登录系统后,查看岗位信息,根据查看到的岗位信息选择合适的职位。学生查看状态学生登录系统后,查看报名单信息,可以根据报名单查看自身是否被录用。被录用的可以查看工作开始时间,并且查看自身的工作状态。如果已经离职,可以查看离职时间。确认收到工资学生登录系统后,查看工资单信息,如果已经收到工资,点击收到工资按钮,确认已收到工资。公司注册 公司登录系统进行注册,同时填写公司自身信息(包括登录账户、登录密码、公司名称、公司地址、电话、电子邮件、联系人、公司简介等)。管理员审核后,即可发布勤工职位信息。公司登录公司登录系统进行登录,在填写完账号、密码后,如果账号密码正确则登录成功,否则登录失败。公司查询本公司信息 公司登录系统后,可以查看到本公司的详细信息。公司更改本公司信息公司登录系统后,查看本公司信息,如需修改信息,进行修改信息。公司查看职位信息 公司登录系统后,可以查看已经本公司已经发布的职位信息。公司发布职位信息 公司登录系统后,可以发布职位信息(包括标题、职位名称、简介、申请截止日期、面试地点、面试时间、预计工资、备注等)。管理员审核后,成功发布该职位。公司修改职位信息 公司登录系统后,可以修改职位信息。修改后管理员审核该职位。公司删除职位信息 公司登录系统后,可以删除本公司发布的信息。公司录用招聘者 公司登录系统后,查看报名表信息,可以录用招聘者,开始。公司录用招聘者 公司而登陆系统后,查看报名表信息,可以解雇招聘者。管理员注册 管理员登录系统进行注册,同时填写管理员信息(包括登录账户、登录密码、管理员名称、备注等)。管理员登录管理员登录系统进行登录,在填写完账号、密码后,如果账号密码正确则登录成功,否则登录失败。查询用人单位信息 管理员登录系统后,可以查看所以用人单位信息。审核用人单位信息 管理员登录系统后,可以查看用人单位信息,审核单位信息。查看学生信息 管理员登录系统后,可以查看所以学生信息。审核学生信息 管理员登录系统后,可以查看学生信息,审核学生信息。发布招聘信息 管理员登录系统后,可以发布招聘信息。发放工资 理员登录系统后,查看工资表信息,发放工资。3.2系统需求分析3.2.1系统活动者与用例模型 1)活动者:系统的活动者是用户作用于系统的一个角色。活动者通过与系统交互达到目标。活动者是用来建立系统外部用户的,活动者直接与系统交互作用。活动者是系统外边界之外的对象的描述。活动者不一定是人,也可能是一个外部系统,该系统与本系统相互通信。 根据系统的需求描述和分析,可以分析出活动者,系统活动者分为三类,分别为勤工俭学学生、公司、管理员。 2)用例:在不展现一个系统或子系统内部结构的情况下,对系统或子系统的某个连贯的功能单元的定义和描述。用例是系统单元提供外部可感知的功能单元,表达成系统单位和与之相交互的一个或多个活动者的消息序列。用例的目的是定义清晰的行为块而不解释系统的内部结构。 3)用例模型主要由以下模型元素构成:参与者是指存在于被定义系统外部并与该系统发生交互的人或其他系统,他们代表的是系统的使用者或使用环境。用例用于表示系统所提供的服务,它定义了系统是如何被参与者所使用的,它描述的是参与者为了使用系统所提供的某一完整功能而与系统之间发生的一段对话。 系统分为三个子系统,分别是勤工学生信息管理子系统、用人单位信息管理子系统、和管理机构信息子系统。3.2.2用例图 用例图定义:由参与者(Actor)、用例(UseCase)以及它们之间的关系构成的用于描述系统功能的静态视图称为用例图。用例图(UserCase)是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。用例图用于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些元素。将每个系统中的用户分出工作状态的属性和工作内容,方便建模,防止功能重复和多余的类。用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。 1)勤工学生参与根据用例,分析参与者得到顶层初始用例图。图系统顶层用例图用例图(简略图)图用例图简略图3.2.3用例文档描述 根据需求分析,建立的用例模型和确定了功能模块。下面是几个比较重要的用例注册用例用例名称注册用例描述勤工学生注册执行者勤工学生前置条件这个用例打开登录页面后置条件登录成功后跳转到主页面基本流勤工学生打开勤工中心主页点击勤工学生注册填写注册信息用例终止扩展流业务规则:注册时默认学号等不能为空。备注:登录用例用例名称登录用例描述勤工学生登录系统执行者勤工学生前置条件在这个用例开始前,申请者必须进入系统登录页面。后置条件登录成功则跳转到主页面,否则返回登录界面基本流用人单位打开勤工中心登录界面点击学生登录输入用户名密码用例终止扩展流业务规则:账号密码默认不能为空备注:审核勤工学生用例用例名称审核勤工学生用例用例描述管理员对勤工学生信息进行审核执行者管理员前置条件在这个用例开始前,申请者必须登录后置条件审核成功,勤工学生状态改变,否则不变。基本流管理员登录系统,点击审核勤工学生列表查看所有学生信息点击相应的审核按钮用例终止扩展流业务规则:审核成功后将勤工学生状态改为已审核,并将当前管理员名字填入。备注:申请勤工助学用例用例名称申请勤工助学用例描述勤工学生申请勤工助学职位执行者勤工学生前置条件在这个用例开始前,申请者必须登录到系统中后置条件如果勤工学生申请勤工俭学,公司选择是否录用基本流勤工学生进入登录系统学生点击查询职位信息,选择合适的职位学生报名职位,申请勤工俭学扩展流业务规则:申请职位默认填写申请职位编号,当前学生,工资,当前时间,状态,工作状态。备注:录用用例用例名称录用用例描述用人单位登录系统进行录用操作执行者用人单位前置条件在这个用例开始前,勤工学生已经报名。后置条件用人单位雇佣学生后,学生开始勤工俭学。基本流用人单位进入系统后,点击申请表信息。点击相对应的申请表,进行雇佣勤工学生。用例终止扩展流业务规则:离职默认将填写当前时间,对应职位的金额,并且修改状态为录用。备注:离岗用例用例名称离岗用例描述用人单位登录系统进行离岗操作执行者用人单位前置条件在这个用例开始前,勤工学生已经被雇佣。后置条件用人单位解雇学生后,管理员进行发放工资。基本流用人单位进入系统后,点击申请表信息。点击相对应的申请表,进行解雇勤工学生。用例终止扩展流业务规则:离职默认将填写当前时间,并且修改状态为离职。备注:发放工资用例用例名称发放工资用例描述管理员登录系统发放勤工学生所选择职位对应工资执行者管理员前置条件在这个用例开始前,勤工学生已经离职,已经建立相应的工资表信息后置条件发放成功后,勤工学生登录系统确认收到工资基本流管理员登录系统,点击工资单列表。点击相对应的发放工资按钮用例终止扩展流业务规则:发放工资默认将申请表的工资填入工资单,并且将当前时间、发放人信息写入工资表。备注:确认收到工资用例名称确认收到工资用例描述勤工学生登录系统进行确认收到工资操作执行者勤工学生前置条件在这个用例开始前,管理员已经发放工资。后置条件勤工学生确认收到工资,否则未收到。基本流勤工学生登录系统,点击工资单列表。点击相对应的工资单,确认收到工资用例终止扩展流业务规则:确认工资默认更改是否收到状态为已收到。备注:4勤工俭学系统设计4.1系统中包含实体类及相互关系4.1.1由前面文档描述,得出以下类图: 1)确认类:类是一类具有相同特征的对象的描述,类的特征包括行为和属性。对象是类的实例。面向对象的核心思想就是用类的概念来划分问题中设计的各种对象,并且组织结构。 2)根据以上分析,得到以下类图有: 工资信息类(PaySheet) 新闻信息类(NewS) 管理信息类(Manager) 公司信息类(Company) 勤工学生类(Student) 职位信息类(Position) 报名/工资信息类(Application)4.1.2确定类与类之间的关系图4.1.2系统类图4.2时序图 时序图(SequenceDiagram)描述了一组交互对象间的交互方式,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。一般情况,使用时序图来描述一个用例的事件流,标识参与这个用例的对象,并以服务的形式将用例的行为分配到对象上。通过对用例进行时序图建模,对用例的流程进行细化,以便发现更多的对象和服务。 时序图包含4个元素,分别是对象(Object)、生命线(Lifeline)、消息(Message)和激活(Activation)。4.2.1用例“注册”的时序图图4.2.1注册时序图 备注:register():注册学生add():添加学生save():新增学生4.2.2用例“登录”的时序图图4.2.2登录时序图 备注:myLogin():学生登录isExists():判断学生是否存在checkStudentExists():判断是否存在学生find():查询数据库4.2.3用例“审核”的时序图图4.2.3审核时序图 备注:auditCompany():审核公司queryCompanyByName():根据公司名称查询公司find():查询数据库4.2.4用例“报名”的时序图图4.2.4报名时序图 备注:addApplication():新增报名表add():新增报名表save():保存报名表4.2.5用例“录用”的时序图 图4.2.5录用时序图 备注:hireStudent():雇佣学生updateApplication():更新报名表update():更新报名表4.2.6用例“解雇”的时序图 图4.2.6解雇时序图 备注:fireStudent():解雇学生updateApplication():更新报名表update():更新报名表addPosition():新增工资表add():新增工资表save():新增工资表4.2.7用例“发放工资”的时序图图4.2.6发放工资时序图 备注:givePaySheet():发放工资queryPaySheetsByIdAndCode():根据学号和职位号查询工资表queryPaySheet():查询工资表find():查询数据库4.3数据库设计4.3.1CDM(ConceptualDataModel) CDM表达的是数据库的整体逻辑结构,该结构独立于任何软件和数据库存储结构,即它只是系统分析人员、应用程序设计人员、维护人员和用户之间相互理解的共同语言,并不是针对具体的数据库平台和工具。 下面是PowerDesigner类图生成的CDM图。图4.3.1系统CDM图4.3.2PDM(PhysicalDataModel) 物理数据模型(PhysicalDataModel)PDM,提供了系统初始设计所需要的基础元素,以及相关元素之间的关系。即用于存储结构和访问机制的更高层描述,描述数据是如何在计算机中存储的,如何表达记录结构、记录顺序和访问路径等信息。使用物理数据模型,可以在系统层实现数据库。数据库的物理设计阶段必须在此基础上进行详细的后台设计,包括数据库的存储过程、操作、触发、视图和索引表等。 下图由Powerdesigner的CDM转换生成的PDM图4.2.1系统PDM图4.3.3数据库表对应实体说明1)勤工助学者表:Student(学生表)字段编号字段名称字段类型中文名称约束关系备注1idLongid主键自增长2studentStudent学生Id(学号)外键唯一3passwordString密码4nameString学生姓名5idCardString身份证6sexString性别男,女7ageInt年龄8professionString专业9addressStri

温馨提示

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

评论

0/150

提交评论