项目报告
网上招聘系统的设计与实现
随着时代的发展,中国的互联网技术愈加成熟,已经有越来越多的社会群体开始学会使用互联网技术,整个社会正在朝着智能化、信息化的方向前进。有了互联网,用户便可以足不出户地利用互联网技术使得自己的生活更加便捷。因此,为了满足用户的庞大需求,网上招聘系统应运而生。
本系统整体基于B/S架构,采用MyBatis框架,运用Java中的Servlet、Jsp等关键技术,并结合Oracle数据库的使用,为招聘者和求职者搭建了一个高效、便利的网络平台。本系统分别为求职者和招聘者提供了信息注册功能,登录功能和信息维护功能。除此之外,求职者可以选择发布、撤销或打印自己的简历,也可以浏览到企业实时的招聘信息,从而选择合适的企业应聘。招聘者可以选择发布或撤销自己的招聘信息,也可以浏览到求职人员的信息,选择是否同意他的应聘请求,并向其发送通知。
Java;Servlet;Oracle;招聘系统
摘 要............................................................. i
Abstract.......................................................... ii
1 绪 论........................................................... 1
1.1 开发背景...................................................... 1
1.2 开发意义...................................................... 1
1.3 国内外研究现状................................................ 2
1.4 论文结构...................................................... 2
2 相关技术原理和开发工具.......................................... 4
2.1 程序语言的选择................................................ 4
2.1.1 Java概述................................................. 4
2.1.2 Java特点................................................. 4
2.1.3 Servlet简介.............................................. 5
2.2 Oracle数据库.................................................. 6
2.3 B/S模式...................................................... 6
2.3.1 B/S架构概述.............................................. 6
2.3.2 B/S架构的工作原理........................................ 7
2.3.3 B/S架构与C/S架构的比较.................................. 7
2.4 开发工具...................................................... 8
2.4.1 建模工具Microsoft Visio.................................. 8
2.4.2 编码工具Eclipse.......................................... 8
2.4.3 数据库连接工具Navicat.................................... 8
2.5 开发环境...................................................... 9
3 系统可行性研究................................................. 10
3.1系统可行性研究概述........................................... 10
3.2系统可行性研究的目的和流程................................... 10
3.3项目评估..................................................... 11
4 系统需求分析................................................... 12
4.1系统功能分析................................................. 12
4.1.1 用例图................................................... 12
4.1.2 数据流图................................................. 13
4.1.3 数据字典................................................. 14
4.2 系统数据库需求分析........................................... 16
5 系统设计....................................................... 18
5.1系统类图..................................................... 18
5.2系统功能模块划分............................................. 20
5.2.1 模块图................................................... 20
5.2.2 个人信息管理模块......................................... 21
5.2.3 简历管理模块............................................. 21
5.2.4 求职申请模块............................................. 22
5.2.5 企业信息管理模块......................................... 22
5.2.6 招聘管理模块............................................. 22
5.3系统总体设计................................................. 23
5.3.1 系统设计思想............................................. 23
5.3.2 系统体系架构............................................. 23
5.4 数据库逻辑结构设计........................................... 24
5.4.1 关系型数据模型........................................... 25
5.4.2 数据表设计............................................... 25
6 系统实现....................................................... 27
6.1 登录模块..................................................... 27
6.2 注册模块..................................................... 29
6.3 信息修改模块................................................. 32
6.4 查询模块..................................................... 34
6.5 简历管理模块................................................. 35
6.6 应聘者管理模块............................................... 36
6.7 安全退出..................................................... 37
7 系统测试....................................................... 38
7.1 测试方法..................................................... 38
7.2测试环境..................................................... 38
7.3测试结果..................................................... 38
7.4系统评价..................................................... 40
8 结束语......................................................... 41
8.1结论......................................................... 41
8.2展望......................................................... 41
参考文献.......................................................... 42
致 谢............................................................. 43
附 录:外文原文.................................................. 44
中文翻译.................................................. 52
1 绪 论
1.1 开发背景
伴随着中国经济的飞速发展,城市化进程的加快,求职者队伍的不断壮大,传统人才招聘的弊端初露端倪。首先,传统人才应聘的形式是求职者和企业的负责人面对面地交流。这就需要企业和求职者提前规划自己的时间,准备大量的纸质材料,并选好举办招聘会的地点,这一系列流程都需要双方把大量的精力投入到准备活动中去,使得应聘还未开始,成本就已大幅增加。其次,企业在筛选数以百计,甚至数以万计简历的时候,往往会由于阅读疲劳,漏掉一些真正有价值的简历,使得企业丧失掉一批有用的人才。对于求职者而言,也会错失掉良好的机会,令人惋惜。
随着国内互联网飞速的发展,用户已经越来越习惯于使用互联网传递信息,接收信息,利用互联网技术使得自己的生活更加便利,快捷。在这样一种大趋势下,网上人才招聘系统出现在了用户的眼前。网上人才招聘系统相对于传统的人才招聘,有以下几点优势:
1.方便快捷。对于求职者来说,只要在互联网上向有意向的企业投递了个人简历,便可等候企业的通知信息;对于企业来说,只要点一下鼠标便可同意求职者的申请。
2. 选择多。由于招聘信息量丰富、使用网络招聘的人数基数大,在大量的职位数据库中,求职者对于适合职位的选择也就越多。
3. 费用少。对于求职者来说,节省了不少成本,如:交通费、简历制作费、通讯费等不少费用。除此之外,还有效地避免了招聘会现场异常拥挤、交流效果不尽如人意、选择职位盲目性大的问题。对于企业来说,节省了办理招聘会的各种费用。
正是由于以上种种优势,越来越多的求职者选择网络求职成为自己的应聘方式。
1.2 开发意义
本系统开发的意义在于突破传统人才招聘的模式,给招聘者和求职者提供一个便利、高效、准确的网络招聘平台,使得双方可以在把成本降到最低的前提下,在更快的时间获得更加准确的信息,从而满足企业的用人需求,实现求职者的自身价值。
1.3 国内外研究现状
在国外,运用互联网进行人才招聘的企业和求职者不在少数,许多优秀的第三方人才招聘网站也脱颖而出。在美国,优秀的人才招聘网站主要有:
- Beyond.com:每月发布的职位达数十万个。
- Job.com:全美访问量最多的人才招聘网站。
- Monster.com:全球知名的第三方网络招聘服务公司。现在已经在全球
二十多个国家设立分部或办事处,并且建立了22种不同语言的招聘网站。其已具备国际领先的网路服务经验,以及庞大的个人简历数据库。
在国内,也有越来越多的网络平台兴起开来,著名的有前程无忧、智联招聘、58同城等。据数据统计,2016年中国互联网招聘市场份额正在逐步增加。其中前程无忧占比29.7%,智联招聘占比26.5%,58赶集合并后共同占比26.3%,其他厂商占比17.5%。与此同时,传统招聘网站的市场份额正在逐渐缩小,2016年,中国互联网招聘公司手机应用软件的使用用户规模达720万人之多,单日人均使用次数为5.5次,单日人均使用时长达15分钟,用户活跃度较去年同期有所增长,手机等移动端的发展趋势较好。
许多国家的用户已经对网络招聘的方式深谙其道。网络招聘已经成为当代大学毕业生和职员求职应聘的首选方式。在未来的几年里,网络招聘会进一步的发展和完善,受到更多人的青睐。
1.4 论文结构
本论文按照软件工程标准开发流程进行叙述。其主要由以下几个章节构成:
- 绪论:对课题的开发背景以及研究价值进行详细的介绍。
- 相关技术原理和开发工具:对本系统所用到的关键技术及工具进行概述,比如java、Oracle等。
- 系统可行性研究:主要从技术实现、功能要求方面探讨该系统成功实施的可能性。
- 系统需求分析:对用户对于本系统的需求进行描述、分析,主要包含用例图的设计、数据流图的设计、数据字典表的描述及数据表实体-关系图的设计。
- 系统设计:在需求分析的基础上,对系统进行概要设计,主要包系统含类图的设计、系统模块的划分、每个模块的功能概述及数据表的逻辑设计。
- 系统实现:将系统各个功能模块业务逻辑进行详细描述,再用代码将其具体地实现。
- 系统测试:通过等价类划分法,设计测试用例,考察系统的缺陷。
- 结束语:对本系统进行最后的描述以及对未来的展望。
- 附录:包含有关于网络招聘的外文资料及其翻译。
2 相关技术原理和开发工具
2.1 程序语言的选择
2.1.1 Java概述
Java是一种面向对象的、可以编写许多跨平台应用软件的第三代程序设计语言。在1995年5月,由美国的Sun公司推出。 Java不再像C语言那样是面向过程的语言,也不像C++拥有众多复杂的机制,难以理解。准确地说,Java是一种纯的面向对象的语言。在Java的世界里,万物皆对象。正是由于这一种思想,开拓了创程序员的思维,从而诞生出了更先进的编程技术。
2.1.2 Java特点
Java的应用范围很广,开发人员可以用Java开发C/S应用程序、B/S应用程序、手机应用软件以及部分小游戏等。它主要具有以下特点:
1.面向对象特性:在Java的概念里,任何事物都可看成对象,哪怕是类本身还是类里面的成员变量和成员方法都可以看成对象。Java编写的程序之所以能够轻而易举地扩展,正是由于它是基于对象模型的。在现实生活中,类就是物体共有属性和行为的抽象。而对象则是类的具体实例。比如:一个具体的苹果就是水果类的一个实例。
2.平台无关性:与许多其它编程语言不同的是,Java代码在被编译完成的时候,它会生成一种二进制的文件(.class文件),这种文件独立于平台,运行在虚拟机(JVM)中。程序不论是在Windows或Linux环境下,都可以被执行,只不过不同平台的虚拟机是不同的。
3.简单:Java设计的初衷便是简单易学。只要你能够准确、快速地掌握Java面向对象的特性,其他的概念便可以无师自通,遇到的大多数便可迎刃而解。从语言的难易程度看,Java要比 C++简单,C++中许多不容易掌握的概念如多继承、指针等概念都被Java所抛弃。这样的改进,不仅不会降低Java的实用性,反而大大增强了Java的体系架构,使得Java更加精简,可以应用于更广的领域。
4.安全:正是由于Java中不支持指针的概念,程序员没有机会去直接操作内存空间,这样就有效地防止了程序运行时堆栈溢出等问题,程序不会轻易地崩溃。
5.持久耐用:Java检测机制比较完善。有编译时错误检查和运行时检查两种方式,这样就能够检测出更多地错误,从而使得开发人员纠正错误,使程序长久稳定地运行。
6.多线程:所谓多线程,就是在同一段时间内,程序可以完成多个任务。Java的多线程功能,由JVM本身提供,开发人员只要利用JDK中提供的类和接口便可以轻松地实现多线程功能。多线程可以使程序高效地运行,在大型系统或网站中运用十分广泛。多线程的思想是优秀发人员必不可少的品质。
7.动态:类是Java 程序的基本构成单位。有些类是JDK提供的,有一些是从第三方框架中引入的,再者就是自己编写。又因为类是运行时被动态装载在JVM中的,这就使得 Java 可以在网络环境中动态地维护程序,实时地显示更新后的数据。
总地来说,Java是为了满足新时代开发人员的需要而诞生的。它在C++的基础上,取其精华,去其糟粕,并且高度抽象了现实生活中的物体,从而达到一种简单实用、面向对象、安全可靠、高性能和多线程的状态。
2.1.3 Servlet简介
在这个信息化时代,计算机对数据的处理显得尤为重要。传统的静态网页技术(HTML、CSS等)已经无法解决大数据发展所带来的问题,无法实时地处理上万条乃至上亿条信息。因此,动态网页技术应运而生。Servlet便是其中的佼佼者。
Servlet不是一个纯粹的新技术,它是在Java的基础上发展而来的。准确的说,Servlet就是使用Java里一些相关的类库开发出来的程序。开发者通过Servlet技术,便可搭建出一个基于B/S架构的系统,它可以动态地处理数据,并将数据返回到浏览器中,用户只需刷新一下网页便可浏览到实时地信息。
由于Servlet本质上就是Java程序,它具备Java语言的一切特点。除此之外,它还具备额外的一些优点:
- 可重用性高:Servlet中可以建立组件,这些组件都可以复用。
- 模块化:Servlet中把程序划分为许多模块,模块化的好处就在于简洁明了,各司其职,不论是在程序的理解上还是维护上,都显得快捷高效。
Serlvet的运行原理如图2-1所示。
图2-1 servlet原理图
2.2 Oracle数据库
Oracle全称是Oracle关系型数据库管理系统,是甲骨文公司旗下的一款产品。Oracle数据库已经成为世界上最为流行,被众多厂商广泛使用的关系型数据库产品。不论是在小型、中型还是大型计算机中,不论系统是基于客户机/服务器架构,还是基于浏览器/服务器架构,它都可以高效地运行。除此之外,Oracle还在已有的结构性查询语言(SQL)基础上,结合自身产品的特性,创造出了一套符合自身特点的数据库语言。
2.3 B/S模式
2.3.1 B/S架构概述
B/S架构(Browser/Server,浏览器/服务器架构),是当下最流行的一种网络架构模式。这种模式的客户端由浏览器充当,这样做的好处之一便是客户端简单易维护。因为浏览器的开发是由各个浏览器厂商负责的,系统开发人员并不需要参与其中,只需要负责服务器端系统的实现便可。除此之外,在服务器端并不需要运行大量的程序,这样做的好处在于可以释放服务器上的大量资源,也减轻了服务器端程序开发以及后期维护的成本。
对于用户来说使用起来也非常轻松,用户在电脑上只需要安装一个浏览器,如火狐、IE、谷歌等,不需要像QQ一样下载专门的客户端软件,便可轻松地访问需要的系统或网站。
2.3.2 B/S架构的工作原理
用户打开浏览器,在浏览器中的地址栏中输入要访问的地址,即向服务器发送请求。请求发送成功后,服务器对收到的请求进行处理。在处理过程中,主要是对其中的请求信息进行解析,如果这一过程需要访问数据库,服务器便会继续访问数据库从中得到需要的数据,结合服务器内部的逻辑处理程序最终定位到用户需要的资源,返回给用户一个响应。最后用户即可在显示器上看到呈现出来的页面。具体原理如图2-2所示。
图2-2 B/S架构原理图
2.3.3 B/S架构与C/S架构的比较
C/S架构软件(即客户机/服务器架构)分为客户端和服务器端软件两种。客户端不仅要像B/S架构中的浏览器具备数据接收以及效果呈现的功能,还需要具备一定的业务逻辑处理能力。这就容易导致客户端负载严重,功能复杂。开发的成本也要有所增加。客户端软件的安装更是对用户的电脑配置提出了要求,越先进的软件对软硬件的配置要求越高,很有可能因为用户电脑配置的问题,导致项目的取消。在后期的维护中,除了对服务器维护外,开发人员还要单独对客户端软件进行维护,对不同配置的电脑还要开发出不同的维护版本,复杂度可想而知。
B/S(浏览器/服务器模式)架构则是为了弥补C/S架构缺陷而产生的。它是对C/S架构的一种改进。在这种架构下,软件的业务逻辑功能完全放在WEB服务器端实现,开发人员不必开发出客户端软件,客户端也仅仅需要接收数据、展示页面即可。这是一种先进的开发理念和开发技术。这种架构已经成为当今软件开发的首选体系架构。企业的管理软件大多采用这种架构。社交功具或一些网络游戏大多采用C/S架构。
2.4 开发工具
2.4.1 建模工具Microsoft Visio
Microsoft Visio是微软旗下的一款具备图形绘制、图表绘制、模型构建等多种功能的大型软件。Visio最大的特点是它自身提供了许多模板供用户选择,而这些模板又涵盖了网络、工程、软件等众多应用领域,这就成为了很多开发人员的不二选择。在应用当中,开发人员只需选好自己需要的模板,将Visio中提供的部件拖拽到自己的项目中即可。
所谓“一图胜千言”,利用Visio就可以轻而易举的构建出许多一目了然的模型,这样就大大提高了开发效率,减小了项目失败的风险,用户也更加放心。
Microsoft Visio于2000年被微软收购,在这十几年当中,发布过将近17个版本。在该项目中,使用的是Visio 2013专业版。
2.4.2 编码工具Eclipse
Eclipse主要是为开发Java项目而搭建的开放平台。除此之外,它还支持C、C++、PHP等语言。Eclipse是一组集成开发环境(IDE),集众多插件于一身,使用起来十分灵活。开发人员可以对Eclipse中的一些插件进行取舍,使得软件高效运行;也可以在Eclipse中切换开发视图,配置一些参数,不必像以前再进行一些繁琐的操作。
Eclipse于1994年被IBM和OTI两家公司所创建。后来IBM提出Eclipse开源项目的概念,被后来大约150家公司共同开发,以宇宙中星球的名字作为它每一代的版本代号。在该项目中,使用的是Elipse Mars版本。
2.4.3 数据库连接工具Navicat
Navicat是一套数据库管理工具,它可以连接到SQL Server、MySql、Oracle等主流数据库管理系统,简化了数据库的管理,方便了开发人员的操作,降低了数据库管理的成本。
由于Navicat是基于图形用户界面的,开发人员直接可以通过Navicat提供的功能,不必在命令行中输入SQL语句,便可以直观的操作数据库,管理数据,实现增删改查等操作。Navicat在提供便利的同时,也对安全性加以保障,开发人员并不需要担心数据泄露的风险。
Navicat也有众多版本,比如Navicat for MySQL、Navicat for Oracle等等。在该项目中,使用的是Navicat Premium版本。
2.5 开发环境
电脑型号:惠普242 G1 64位笔记本电脑
操作系统:Windows10专业版
数据库版本:Oracle10g XE
JDK版本:JDK1.8
服务器版本:apache-tomcat-8.0.24-windows-x64
3 系统可行性研究
3.1系统可行性研究概述
开发者在开发一个项目前,往往要考虑以下几个问题:这个项目有没有做的价值;在现有的条件下以及规定时间内是否可以把它完成;以及在做成之后,这个项目带给整个团队的利益究竟有哪些等等。这一系列要考虑的问题就可以看做对这个项目的可行性研究。
3.2系统可行性研究的目的和流程
可行性研究的目的就是在确保符合团队利益的基础上,利用手上最精简的资源,探讨这个项目是否可以按规定去完成。除此之外,可行性研究的关键不是提出具体的开发方案,而是探讨解决问题的可能性。
在系统开发生命周期中,往往会因为系统开发人员对市场的了解不彻底,对技术的掌握不熟练,对项目的风险因素预估不足等原因,导致许多问题都不能在合理的情况下得到解决。如果开发人员能够提前预测到可能出现的问题,并且在经过探讨后,不能得出合理的应对办法,那么就应该取消项目的开发。这样就能够在人力、物力等方面避免不必要的损失。
系统可行性研究其主要流程为:分析人员对用户提出的项目方案进行简要的需求分析,在此基础上,利用一些作图工具或原型工具得到该系统的逻辑模型,接着利用逻辑模型探索出许多不同的解决办法,最后从这些解决方案中找出代价最小的去进行之后更深入的探讨。
可行性研究往往可以从经济、技术、操作、法律这四个角度去讨论项目的可行程度,也可以让用户一目了然地了解到项目的整体规范。下面将仔细从这四个方面解析:
1.经济可行性:主要从“成本-效益分析”的观点出发,通过对货币的时间价值、投资回收期、纯收入等方面的研究,考量项目成本与收益之间的关系。
2.技术可行性:从开发人员角度来说,考查的是其是否具备开发这个项目的技术和综合素质;从项目构成来说,考察的是该项目的架构是否合理,将来在开发以及运行的过程中不会出错;从项目运行的条件说,考查是否具备相应的软硬件环境。
3.操作可行性:项目的操作在其领域内是否行得通。
4.法律可行性:确保该项目的开发不会触犯政治上或社会上的侵权,不会违反任何一项法律条例。主要是从版权、专利等方面入手。
3.3项目评估
项目名称:网上招聘系统的设计与实现
主要用户:个人和企业
关键技术:java、servlet、oracle
运行环境:windows操作系统
前台功能:为用户呈现出操作界面,且界面美观、布局合理,具备一定的前台验证功能,要对用户的操作具有引导性和提示性。
后台功能:在用户管理方面,包括注册、登录、信息修改等基本功能。除此之外,其他功能围绕“招聘”这一活动行为展开,主要包括各种信息的浏览、简历的投递、简历的接收以及后续对简历的回应等等。
该项目在现有的人力、技术条件下,在符合法律规定的前提下,可以在规定时间内按照上述要求将其实现,并且有充足的时间对其进行测试、调试,保证项目的正确性。总体来看,该项目具备开发的可行性。
4 系统需求分析
需求分析就是在确定系统可以开发的基础上,将客户对系统的口头概述,经由开发人员的分析总结,抽象为具体的需求用例,再形成需求规格说明书的软件开发过程。可行性研究旨在探索目标系统是否值得利用现有的资源去开发,问题是否能够在现有的技术上去解决。而需求分析旨在回答"系统应该具备什么功能"的问题,以确保将来开发出来的系统能够让客户满意。
4.1系统功能分析
4.1.1 用例图
网上人才招聘系统的用户共分为两类:个人用户和企业用户。
个人用户的用例图如图4-1所示。
图4-1 个人用户用例图
个人用户可以管理自己的信息,管理自己的简历,也可以实时浏览企业发布的招聘信息,按自己的要求筛选出合适的企业从而决定报名,并可以在企业应答之后收到相应的回复。
企业用户的用例图如图4-2所示。
图4-2 企业用户用例图
企业用户可以管理本公司的登记信息,管理招聘公告,也可以实时浏览求职者的个人信息,决定是否录用,并向其发送回复。
4.1.2 数据流图
个人用户业务的流程如图4-3所示。
图4-3 个人用户业务流程的数据流图
个人用户在使用本系统时,会先进入到系统的登录界面进行登录,如果没有账户可用,则可以点击登录界面上的注册按钮注册信息。在成功登录后,则可以顺利地进入到主界面。个人用户可以在主界面的目录结构中选择相应的提示按钮进行操作。比如:修改人个信息、浏览各企业发布的信息、应聘心仪的企业、打印自己的简历等等。在完成操作后,用户可以点击退出按钮,安全地退出系统。
企业用户业务的流程如图4-4所示。
图4-4 企业用户业务流程的数据流图
企业用户在使用本系统时,同样也会先经过注册、登录等标准步骤。在成功登录后,企业用户会进入到与个人用户不同的主界面。企业用户可以在其主界面上浏览人才库信息、检索出自己想要的人才信息、管理自己的招聘信息。也可在求职者应聘之后,选择是否同意他的请求。在企业用户进行完一系列操作后,同样可以安全退出系统。
4.1.3 数据字典
数据字典是对数据流图中出现信息的详细描述。它的主要作用是供开发者查阅,并为之后系统的分析、设计以及维护阶段提供详细准确的文档说明。主要由数据流、数据存储、数据基本项和加工条目4部分组成。下面是有关个人业务数据流图的数据字典:
数据流条目如表4-1所示。
表4-1 数据流条目表
名称 | 组成 |
个人信息 | 账号+密码+姓名+性别+学校+生日+专业+电子邮件+薪资要求+联系方式+个人评价 |
新的个人信息 | 姓名+性别+学校+生日+专业+电子邮件+薪资要求+联系方式+个人评价 |
登录信息 | 账号+密码 |
检索信息 | 职位类别+薪资范围+截止时间 |
企业职位信息 | 公司名称+公司地址+职位需求+电子邮箱+联系方式+薪资待遇|+公司简介 |
应聘信息 | 个人信息+企业职位信息 |
数据项如表4-2所示。
表4-2 数据项表
名称 | 类型 | 长度 |
账号 | 字符型 | {字母}410 |
密码 | 数字型 | 不为零 |
数据存储条目如表4-3所示。
表4-3数据存储条目表
文件名 | 组成 | 组成方式 |
个人信息表 | id+账号+密码+姓名+性别+学校+生日+专业+电子邮件+薪资要求+联系方式 +个人评价 | 索引文件,以id为主键 |
雇佣表 | id+个人表的id+企业表的id | 索引文件,以id为主键 |
加工条目如表4-4所示。
表4-4 部分加工条目表
加工名 | 编号 | 输入 | 输出 | 加工逻辑 |
注册 | 1 | 个人信息 | 个人信息表 | IF信息合法 THEN录入数据库 ELSE 重新输入新的合法信息 ENDIF |
登录 | 2 | 登录信息 | IF账号、密码与数据库中的信息匹配 THEN准予登录,并跳转到主页面 ELSE重新输入合法信息 ENDIF | |
修改个人信息 | 3 | 新的个人信息 | 个人信息表 | IF信息合法 THEN录入数据库 ELSE 重新输入新的合法信息 ENDIF |
职位查询 | 4 | 检索信息 | 企业职位信息 | IF检索信息不为空 THEN按照相应的检索条件检索企业职位并返回给用户 ELSE按照默认方式排列企业职位信息并返回给用户 ENDIF |
下载简历 | 7 | 个人信息 | 返回当前用户的简历并下载 | |
向企业应聘 | 9 | 应聘信息 | 应聘表 | 根据求职者编号和企业编号录入信息 |
4.2 系统数据库需求分析
数据库需求分析是整个数据库设计的基础和起点,也是涉及数据库内容的软件进行系统开发工作的重要基础。在需求分析基础上,对新系统中数据的逻辑模型通常采用实体--联系图(ER图)来描述。系统的ER图如图4-5所示。
图4-5 系统ER图
该E-R图包括:个人实体、企业实体和雇佣联系这三个组成部分。其中,个人实体主要用来存储个人求职者的信息,包括个人基本资料和自我评价。其目的是在招聘过程中供企业浏览。企业实体则用来存储公司的信息,主要是为了让求职者对公司有详细的了解,从而决定是否应聘该公司。雇佣联系则阐明了二者之间多对多的关系,记录着求职者和企业之间发生过的的招聘行为。
5 系统设计
经过上一步需求分析阶段的工作,通过建立由数据流图,数据字典和一系列算法所描述并且定义的系统逻辑模型,系统必须拥有哪些功能的问题已经被解决了。现在将进入系统设计阶段,目的在于着手实现系统需求,就是要把逻辑模型转变为物理模型。
5.1系统类图
由于本系统后台使用java作为开发语言,所有的功能都是出现在类中的。在本系统中,类主要分为两种:实体类和业务类。
实体类如图5-1所示。
图5-1实体类图
实体类包括个人类、企业类和雇佣类。
其中,个人类(企业类)的作用是:将前台获取到的个人信息(公司信息)封装到该类中,再按相应的需求决定是否把这些信息录入数据库。此外,也可以将查询到的个人信息(公司信息)封装到该类中,发送给前端页面进行展示。雇佣类则是将每一个招聘行为记录在雇佣表内,p_id和c_id表明这一招聘是发生在哪个求职者和哪个企业之间的,并且也会随着企业用户的操作进行更新。
业务类如图5-2所示。
图5-2业务类图
业务类包括个人业务类、公司业务类和雇佣业务类。
个人业务类中包含的方法及其各自的作用如下所示:
- register():个人用户通过该方法注册个人信息
- login():个人用户通过该方法登录到系统的主界面,
- update():对个人信息进行更新操作
- publish():发布个人简历
- deleteResume():撤销个人简历
- listAllPersons():企业用户通过这一方法,可以浏览到所有已经发布的
个人简历
- listAllPersonsByParams():通过对该方法中传入参数的识别,可以按需求对个人简历进行筛选,如:专业类别、薪资范围、发布时间。
- query():企业用户通过该方法,可以了解某个求职者的具体个人信息
公司业务类中包含的方法及其各自的作用如下所示:
- register():企业用户通过该方法注册企业信息
- login():企业用户通过该方法登录到系统的主界面,这个界面与个人用户的主界面是不同的
- update():对企业信息进行更新操作
- publish():发布招聘信息
- deleteInfo():撤销招聘信息
- listAllComapnies():个人用户通过这一方法,可以浏览到所有已经发布的招聘信息
- listAllComapniesByParams():通过对该方法中传入参数的识别,可以按需求对企业发布的招聘信息进行筛选,如:职位类别、薪资范围、发布时间。
- query():个人用户通过该方法,可以了解某个企业的具体企业信息
雇佣业务类中包含的方法及其各自的作用如下所示:
- insert():个人用户通过该方法向企业投递简历,并将这一操作记录到雇佣表中
- update():企业用户在对向其投递的简历进行筛选时,会通过此方法将这一操作进行记录。如:同意、拒绝。
- candidateQuery():企业用户可以通过此方法,查看到有哪些求职者向其发出了申请
- companyQuery():个人用户可以通过此方法,查看到向不同企业投递的简历的状态。如:通过、未通过、等待中。
- query():罗列出所有的招聘记录及其状态。
5.2系统功能模块划分
5.2.1 模块图
结合需求分析阶段的数据流图及数据字典,得出了系统的功能模块图。该系统通过对用户类型的区分,分为个人用户管理和企业用户管理两大模块。系统功能的模块图如图5-3所示。
图5-3功能模块图
5.2.2 个人信息管理模块
信息管理模块是整个系统中最为基础,但也是最为重要的的一环。因为在之后的模块中,所有的操作都围绕着数据、信息进行。个人信息管理模块的功能就是确保个人用户在使用系统时,个人的信息是完整的、准确的。该模块又划分为以下几个子模块:
- 注册模块:个人用户在第一次使用该系统时,需要按照相应的约束填写自己的信息,从而进行注册。
- 登录模块:判断用户输入的登录信息正确与否,从而决定是否让用户进行后面的操作。除了注册功能外,该系统其他的功能都是建立在成功登录系统的前提下的。所以用户想要进行后续的操作,必须先按照之前注册的信息进行登录。
- 信息修改模块:该模块可以让用户对自己的个人信息进行更新、维护。
5.2.3 简历管理模块
简历管理模块包括个人用户对自己简历管理的所有操作。具体体现在以下几个方面:
- 简历发布:用户在成功发布简历后,自己的信息才能被相关企业所看到。每个用户只能发布一份简历。
- 简历撤销:用户如果由于某些原因,暂时不想参加招聘,则可以选择撤销掉自己的简历,个人信息就不会出现在人才库中,不会被别人所看到。用户如果还没有发布过简历,则不可以进行该操作。
- 简历下载:该功能可以让个人用户的将自己的简历信息从网页上下载到电脑上,以word格式进行永久保存或打印操作。
5.2.4 求职申请模块
求职申请模块是该系统的核心模块。个人用户只有通过使用该模块的一些功能,才能向企业发布求职申请,与企业之间建立联系;企业也才能收到求职者的信息进行后续的操作。个人用户在成功登录系统后,一般会按照下面的步骤进行操作:
- 浏览企业信息:在个人用户的主界面上,会显示出所有已被企业发布过的招聘信息的主要内容,如果需要深入了解企业,则可以点击后面附带的按钮查看详细信息。
- 检索企业信息:该功能可以让个人用户根据不同的检索条件,对企业进行筛选。比如:职位类别、薪资范围、发布时间。用户可以选择其中的一种进行筛选,也可以选择多种进行联合检索。
- 发出求职申请:个人用户在浏览完各种招聘信息后,可以向一个或多个心仪的企业发出求职申请。但对同一家企业,只能申请一次。
- 等候通知:用户在每次申请过后,便会生成一条相应的求职记录,它会显示求职者当前申请的状态,让求职者了解到简历是否通过。
5.2.5 企业信息管理模块
企业信息管理模块与个人信息管理模块功能类似,它管理的信息与企业相关,与个人无关。例如:公司名称、公司地点、职位需求等等。在该模块中,企业用户也可通过注册、登录、修改的功能,完善企业信息,进行后续操作。
5.2.6 招聘管理模块
企业用户通过该模块可以实现以下几个功能:
- 发布招聘信息:招聘信息只有发布,才能被求职者所看到,他们才能向相应的企业发送申请。一个企业只能发布一则招聘信息。
- 撤销招聘信息:企业如果不再需要招聘,则可以撤销掉招聘信息。其他人都不会浏览到该招聘信息。招聘信息已发布状态,才能被撤销。
- 筛选人才信息:企业用户成功登陆系统后,会看到所有被发布的求职信息。企业也可根据需要,对求职者的专业、薪资要求、简历发布时间、毕业学校条件进行检索,显示出满足条件的求职者。
- 发送通知:当有求职者向企业发送申请后,这条求职记录会被企业看到,企业可根据求职者的简历决定是否同意他的请求,从而向他发出通知。
5.3系统总体设计
5.3.1 系统设计思想
网上招聘系统的整体设计思想主要表现在以下几个方面:
- 整体以Windows环境、B/S架构为基础进行开发。
- 后台运用Java语言,结合Servlet、Jsp技术,进行主要功能的开发。
- 前台运用HTML+CSS技术,结合Jquery插件与Ajax技术,编写出用户体验良好的界面。
- 数据库采用Oracle语言进行建库、建表等操作;应用服务器端则利用MyBatis框架与数据库进行交互。
5.3.2 系统体系架构
本系统采用三层架构对其整体进行划分,这样做的好处是:一方面,可以使整个系统结构清晰,功能明确,从而使开发人员对特定功能模块的针对性得到提高,开发效率大大增加。另一方面,也可以大大增强系统后期的可维护性,可扩展性。该系统三层架构的划分如图5-4所示。
图5-4三层架构
表现层:本系统的表现层是通过serlvet、jsp技术实现的,个人用户和企业用户通过使用表现层,将请求发送到不同的serlvet,servlet接受到不同的请求调用不同的业务逻辑功能,将获取到的数据交给jsp呈现到用户的面前。
业务逻辑层:在本系统中,业务逻辑层为service层,其功能就是使用数据层得到的数据,实现功能模块图中所有的业务逻辑。
数据持久层:在本系统中,数据持久层为dao层。dao层通过MyBatis技术与数据库进行交互,实现对个人信息、企业信息-招聘信息的增、删、改、查操作。
这三层之间是从上到下、层层依赖的关系。表现层要依赖于业务逻辑层进行页面的跳转,业务逻辑层又要依赖于数据持久层得到的数据对业务逻辑进行判断。
5.4 数据库逻辑结构设计
数据库逻辑结构设计是在需求分析阶段得到的E-R图为基础进行的。这一阶段的主要任务就是把数据库概念结构设计阶段设计好的基本E-R图恰当的转换为与选用数据库管理系统(DBMS)所支持的数据模型相符合的逻辑结构。
5.4.1 关系型数据模型
通过E-R图转换后的关系数据模型如下所示。
个人表(ID,账号,密码,姓名,生日,性别,学校,专业,个人评价,薪资要求,联系方式,电子邮箱,发布时间)
企业表(ID,账号,密码,公司名称,公司地址,职位需求,联系方式,公司简介,薪资待遇,电子邮箱,发布时间)
雇佣表(ID,个人ID,企业ID,是否同意录用)
其中,雇佣表中个人ID对应的是个人表的ID字段;企业ID对应的是企业表中的ID字段。
5.4.2 数据表设计
个人数据表设计如表5-1所示。
表5-1 个人表
字段名 | 数据类型 | 长度 | 约束 | 描述 |
ID | NUMBER | 主键 | 个人ID | |
USERNAME | VARCHAR2 | 20 | 不可为空 | 账号 |
PASSWORD | VARCHAR2 | 20 | 不可为空 | 密码 |
NAME | VARCHAR2 | 20 | 不可为空 | 真实姓名 |
SEX | VARCHAR2 | 4 | 不可为空 | 性别 |
BIRTHDAY | VARCHAR2 | 20 | 不可为空 | 生日 |
SCHOOL | VARCHAR2 | 20 | 不可为空 | 学校 |
PHONE | VARCHAR2 | 20 | 不可为空 | 联系方式 |
| VARCHAR2 | 20 | 电子邮箱 | |
TRADE | VARCHAR2 | 20 | 不可为空 | 专业 |
SALARY | VARCHAR2 | 20 | 不可为空 | 薪资要求 |
TIP | VARCHAR2 | 200 | 个人评价 | |
PUBTIME | DATE | 发布时间 |
个人表用来存储个人用户的信息。其中,ID字段为该表的主键,是每个人身份的唯一标示。pubtime字段存储着个人用户简历发布的时间。其余字段则存储着个人用户的基本信息。
企业数据表设计如表5-2所示。
表5-2 企业表
字段名 | 数据类型 | 长度 | 约束 | 描述 |
ID | NUMBER | 主键 | 企业ID | |
USERNAME | VARCHAR2 | 20 | 不可为空 | 账号 |
PASSWORD | VARCHAR2 | 20 | 不可为空 | 密码 |
NAME | VARCHAR2 | 200 | 不可为空 | 公司名称 |
LOCATION | VARCHAR2 | 200 | 不可为空 | 公司地址 |
PHONE | VARCHAR2 | 20 | 不可为空 | 联系方式 |
| VARCHAR2 | 20 | 电子邮箱 | |
TRADE | VARCHAR2 | 20 | 不可为空 | 职位需求 |
TIP | VARCHAR2 | 500 | 公司简介 | |
SALARY | VARCHAR2 | 20 | 不可为空 | 薪资待遇 |
PUBTIME | DATE | 发布时间 |
企业表用来存储企业用户的信息。其中,ID字段为该表的主键,是每个企业身份的唯一标示。pubtime字段存储着企业用户招聘信息发布的时间。其余字段则存储着企业的基本信息。
雇佣表设计如表5-3所示。
表5-3 雇佣表
字段名 | 数据类型 | 约束 | 描述 |
ID | NUMBER | 主键 | 雇佣关系ID |
P_ID | NUMBER | 外键 | 个人ID |
C_ID | NUMBER | 外键 | 企业ID |
ISAGREED | NUMBER | 不可为空 | 是否同意录用 |
雇佣表用来记录个人用户与企业用户的发生过的招聘行为。其中,ID字段为该表的主键,标识着任何记录都是独立的、唯一的。p_id和c_id字段记录着这一行为发生的对象是哪位求职者和哪家公司。isagreed字段记录着招聘是否成功。该字段有三个选项:0、1和-1。0表明这一求职申请正在等待企业的审核,1表明该申请已经通过,-1表明该申请已被拒绝。
6 系统实现
6.1 登录模块
登录模块的作用是根据用户输入的登录信息,判断正确与否,并根据传给后台的值,判断是企业还是个人登录,从而跳转到相应的主界面。整个系统的功能都是在用户成功登录的条件下进行的,所以这个模块尤为重要。
用户按照用户界面提示的信息,输入自己的账号和密码,并勾选用户类型。用户点击提交后,系统会先判断用户勾选的类型,接着再根据用户名和密码进行检索,如果在该类型的用户表中存在这样的用户信息,系统会跳转到相应的主界面。否则,则重新跳转到登录界面,继续登录。
用户在登录成功后,后台还会添加一个session范围的属性,名为person(company)。这一举措可以保证每个用户对数据的操作只是针对于其个人的,而不影响别人的信息。
登录模块的活动图如图6-1所示。
图6-1 登录模块活动图
登录模块的关键代码如下所示:
1.PersonMapper配置文件:
<select id="findPersonByNameAndPassword" resultType="Person">
select * from person where username=#{0} and password=#{1}
</select>
2.Service层部分实现代码:
//调用DAO层的findPersonByNameAndPassword()方法判读登录信息是否正确,从而决定是否允许登录
public Person login(String username, String password) {
SqlSession session = MyBatisSqlSessionFactory.getSqlSessionFactory();
IPersonDao personDao = session.getMapper(IPersonDao.class);
Person p = personDao.findPersonByNameAndPassword(username, password);
if(p!=null){
return p;
}else{
return null;
}
}
3.Web层部分实现代码:
String username = request.getParameter("username");
String password = request.getParameter("password");
String type = request.getParameter("type");
HttpSession session = request.getSession();
//从前台获取type参数,判断是个人登录还是企业登录
if("个人".equals(type)){
//调用service层的login()方法进行登录
Person person = new IPersonServiceImp().login(username, password);
//登录失败跳转到登陆界面进行登录
if(person == null){
response.sendRedirect("login.jsp");
//登录成功跳转到主界面
}else {
session.setAttribute("person",person);
response.sendRedirect("index.jsp");
}
}
登录界面如图6-2所示。
图6-2 登录界面
6.2 注册模块
用户可以通过注册界面填写自己的信息。但是要遵循一定的规则。在用户填写注册信息的同时,系统前台会检查用户输入信息的合法性,比如必填信息是否填全,信息长度是否在规定范围内等。前台检查完毕后,后台会根据用户输入的用户名在数据库中检索,如果该用户名已存在,便让用户重新输入新的用户名;如果不存在,则注册成功,跳转到登陆界面。
注册模块的关键代码如下所示:
1.PersonMapper配置文件:
<select id="findPersonByName" parameterType="string" resultType="Person">
select * from person where username=#{username}
</select>
2.Service层部分实现代码:
//调用DAO层的findPersonByName()方法判断用户名是否存在;如不存在,则继续调用savePerson()进行注册
public boolean register(Person person) {
SqlSession session = MyBatisSqlSessionFactory.getSqlSessionFactory();
IPersonDao personDao = session.getMapper(IPersonDao.class);
Person p = personDao.findPersonByName(person.getUsername());
if(p==null){
personDao.savePerson(person);
session.commit();
return true;
}else{
return false;
}
}
3.Web层部分实现代码:
boolean bool = false;
PrintWriter out = response.getWriter();
//如果性别选项不为空,则判断是个人注册
if(sex!=null){
String birthday = request.getParameter("birthday");
String school = request.getParameter("school");
//将前台获取到的参数传入到person对象
Person person = new Person(username, password, name, sex, birthday, phone, email, school, trade, salary, tip);
IPersonServiceImp iPersonServiceImp = new IPersonServiceImp();
//调用service层的register()方法进行注册
bool = iPersonServiceImp.register(person);
if(bool == false){
out.write("该用户名已存在!");
}else{
if(isAuto!=null){
person.setPubtime(new Date());
iPersonServiceImp.publish(person);
}
}
}
注册模块的活动图如图6-3所示。
图6-3 注册模块活动图
个人信息注册界面如图6-4所示。
图6-4 个人信息注册界面
6.3 信息修改模块
如果用户对自己现在的信息不满意,则可以修改信息。想要成功修改信息,也需要满足几个条件。用户名必须通过前台验证,比如:不能为空、修改后的用户名不得与数据表的用户名重复等等。个别信息也不允许出现为空的现象。
信息修改模块的关键代码如图6-5所示。
图6-5 信息修改关键代码
如图6-6是个人信息修改的界面。
图6-6 个人信息修改界面
6.4 查询模块
用户成功登录系统后,自动跳转到主页。主页罗列出所有已经发布的简历信息(招聘信息)。个人用户可以在主界面浏览到企业已经发布的招聘信息并进行应聘,也可以根据相应的条件进行检索出自己心仪的企业应聘。
企业用户则可以浏览到求职者发布的应聘信息。
罗列出所有信息的关键代码如图6-7所示:
图6-7 信息罗列关键代码
个人用户主界面如图6-8所示。
图6-8个人用户主界面
企业用户主界面如图6-9所示。
图6-9企业用户主界面
6.5 简历管理模块
个人用户可以选择发布自己的简历,发布成功后,则可以被其他企业看到自己的求职信息。如果不想其他企业看到自己的求职信息,也可以选择撤销简历,但前提必须是自己的简历已经发布。如果需要导出自己的简历,则可以利用系统提供的模板进行下载。
简历下载界面如图6-10所示。
图6-10简历下载界面
6.6 应聘者管理模块
企业用户可以实时地看到有哪些申请者申请了职位,可以浏览到他们的详细信息,从而决定是否录用他们。在这之后,相应的应聘者也会得到是否被录用的信息。
企业应聘者名单如图6-11所示。
图6-11企业应聘者名单
个人通知的界面如图6-12所示。
图6-12 个人通知界面
6.7 安全退出
当用户操作完毕,需要退出系统时,用户可以点击页面右上角的图形按钮,安全退出系统。用户点击完这个按钮后,会弹出是否确定退出的选项。如果点击确定,系统后台会删除名为person(company)的session属性,以防别人登录自己的账户,保护用户的信息安全。退出界面如图6-13所示。
图6-13 退出界面
7 系统测试
由于软件自身是看不见、摸不着的逻辑产品,所以在开发过程中难免会出现一些难以预料的的错误。在系统开发的一系列过程中,为了保证系统运行的正确性和可靠性,需要对其进行测试,目的就在于发现这些潜在的错误,从而对其进行调试改正错误。
7.1 测试方法
系统测试的方法基本上可以分为静态测试和动态测试两种。
静态测试就是指只对程序源码进行分析的测试方法。这种测试方法并不要求程序在计算机上运行,而是采取人工检测和计算机辅助检测等手段进行测试。这种方法的缺点便是难以直观的找出错误,且工作量较大,效率较低。
动态测试则相反,它要求程序在计算机上运行,在运行的结果中发现错误。这种测试方法可以直观的找出错误,因此大多数测试都采用动态测试。动态测试又可以细分为白盒测试和黑盒测试两种。
本系统主要采用的是黑盒测试中的等价类划分法。
7.2测试环境
本系统在保证其核心功能完整的前提下,对其在服务器上的部署进行了一些简化操作。具体测试环境如下:
电脑型号:惠普242 G1 64位笔记本电脑
操作系统:Windows10专业版
数据库版本:Oracle10g XE
JDK版本:JDK1.8
服务器版本:apache-tomcat-8.0.24-windows-x64
浏览器版本:Mozilla FireFox 53.0.2
7.3测试结果
在本系统中,前台使用了Jquery技术来对用户输入数据的合法性进行判断。比如:账号密码的长度限制、个别选项输入不能为空等等。以下是一些等价类划分和测试结果。用户注册信息测试的部分等价类划分如表7-1所示。
表7-1 “个人用户注册”输入条件的等价类表
输入条件 | 有效等价类 | 无效等价类 |
账号 |
|
|
密码 |
|
|
测试数据如表7-2所示。
表7-2 “个人用户注册”测试数据
测试数据 | 预期结果 | 等价类覆盖 | |
账号 | 密码 | ||
wangjiawei | 123456 | 注册成功 |
|
Tom | 99163 | 注册失败 |
|
Sam3152896 | \ | 注册失败 |
|
测试结果如图7-1所示。
图7-1 测试结果
本系统除了需要对用户输入数据的合法性进行测试外,还需要对界面进行测试,界面测试是许多B/S系统开发中的重要一环。界面往往是用户对系统的第一印象,用户觉得界面越舒服、越美观,使用下去的可能性也就越大。可见,界面测试的重要性不言而喻。
界面测试主要考察系统界面布局是否合理、文字图片是否规范、操作起来是否符合用户的习惯、部分功能是否对用户具有引导性等等。界面测试的结果如表7-3所示。
表7-3 界面测试
指标 | 测试项 | 评价 |
正确性 | 文字描述正确与否? | 全部正确 |
超链接跳转正确与否? | 正确 | |
一致性 | 整个页面风格一致? | 所有页面元素布局、颜色搭配都一致 |
布局 | 界面布局合理? | 界面以左右结构为主,左边为目录,右边为内容显示,布局合理 |
颜色搭配舒适? | 整个页面以浅蓝色为基调,颜色柔和 | |
模块尺寸比例合理? | 尺寸合理,易于操作 | |
交互性 | 执行部分操作有提示? | 用户注册、用户退出时有相应的提示 |
7.4系统评价
总体来说,该系统已经达到了预期的目标。在设计方面,逻辑清晰;在编码方面,撰写规范,分层合理;在功能方面,并未检测出较大的错误,对于一些小的缺陷也已改进。整个系统运行后,表现良好,具有稳定性和可靠性。
8 结束语
8.1结论
在这个信息化时代,用户对互联网产品的需求达到了一个前所未有的高度。互联网产品方便快捷,经济高效,对用户生活质量的改善不言而喻。正是在这样的大背景下,形形色色的互联网软件正如雨后春笋般地涌向更多人的日常生活中去,网上人才系统正是其中之一。
本文对网上招聘系统的各个开发阶段进行了一个详细的介绍。在其开发过程中,我严格按照软件开发的标准流程,并结合Java、Oracle等先进技术,实现了该系统应具备的所有功能。除此之外,该系统编码规范,界面友好,易于后期维护及将来功能的扩展,特点十分鲜明。
但是由于时间及个人能力的问题,该系统在一些环节上存在缺陷。我希望通过今后不断的改进,能够真正做出一个科学、规范、满足用户实际需要的网上人才招聘系统。
8.2展望
本课题已经对网上招聘这一流程进行了详细的描述以及对应的实现,满足了应聘人员和招聘人员的一些基本需求。但是,这个项目仅仅是一个演示而已,想要真正正正的进入到用户生活中去还差得很远。
从功能上来说,整个招聘流程的核心功能功能实现还算完整。但是对于招聘人员和应聘人员来说,并没有为他们提供一个信息交流的功能,双方不能对一些细节方面进行沟通了解,信息传递不够及时,信息掌握不够完善。除此之外,该系统仅仅涵盖招聘过程的开始阶段,即应聘人员发出请求到招聘人员接受请求。对于招聘人员和应聘人员后续的需求并未实现。
从技术上来说,并没有对系统的安全性进行考虑,不当的操作可能会引起难以想象的后果。系统整个代码稍显冗余,部分设计不合理,导致后期维护起来较难。该系统在数据层方面,采用MyBatis框架,使得系统运行高效。但在web层,并未采用诸如SpringMVC这种框架,全局也并未使用Spring对项目进行管理,对于项目后期的管理更新不太有利。
随着互联网技术的发展,以及自身个人能力的提高,该系统在技术上、功能上、性能上等方面还会有很大的上升空间,在未来的某一天,争取将系统做到完美的地步,做到服务于人、服务于社会。
参考文献
[1] 张海藩.软件工程(第二版)[M].北京:人民邮电出版社,2006.
[2] 何玉洁,梁琦.数据库设计教程[M].北京:机械工业出版社,2003.
[3] 光军,胡波.JSP 应用开发高级教程.北京:北京航空航天出版社,2007.
[4] 王保罗.Java 面向对象程序设计[M].北京:清华大学出版社,2003.
[5] 蔡剑,景楠.Java Web 应用开发:J2EE 和 Tomcat[M].北京:清华大学出版社,2004.
[6] 孙更新,吕婕. Java 毕业设计指南与项目实践. 北京:科学出版社,2008.
[7] 张峋, 杨三成. 关键技术:JSP与JDBC应用详解[M].中国铁道出版社, 2010,11.
[8] Bruce Eckel. Thinking in Java[M]. Upper Saddle River, New Jersey, USA:Prentice Hall,2006.
[9] James Goodwill. Pure Java Server Pages .Indianapolis Ind: Sams, 2000.
[10] Zoya Ali. Designing Object Oriented Software Applications within the Context of Software Frameworks[D]. Ohio State University,2011
影响网络招聘的因素
摘要:
目的 — 互联网最初被预测为未来更受欢迎的的招聘方式,并将取代其他媒介,成为人们的首选招聘方法,但到目前为止网络招聘方式的采用并没有得到全面认可。此外,从公司的角度来看,网络招聘的实证性研究少之又少。本文旨在研究公司是否决定使用网络招聘背后的原因,并报告、制定影响这一行为的因素模型。
设计/方法/途径 — 本文通过深度访谈和对人力资源(HR)经理调查的方式对网络招聘进行探究。
结果 — 与采用公司网站招聘和商业网站招聘的因素被认为是不同的,通过公司网站招聘的情况相对优势并且出现了积极的响应,通过商业网站招聘则相对劣势,较不规范。
原创性/价值 — 本文针对学术研究不足的重要领域,为进一步研究组织如何成功实施在线招聘提供依据。
关键词:在线业务,招聘,人力资源管理,互联网
简 介
过去十年来,网络招聘的使用用户急剧上升。 但是,这种招聘方式还没有被许多研究人员和从业者深入的研究过。 正因如此,有关公司机构还未把网络招聘作为首选招聘方式。 本文考察了究竟是什么原因导致公司还未使用网络招聘这一先进的招聘方式,并开发了影响采用因素的模型。
背 景
招聘是由公司组织开展的行为和活动。其主要目的是为公司确定和吸引潜在雇员(Breaugh和Starke,2000),它是人力资源管理的重要组成部分。Lievens等人(2002)认为,现在许多公司的竞争是关于“人才的战争”。这意味着公司的重点从选择员工转向吸引员工,劳动力市场短缺和招聘困难导致招聘市场竞争异常激烈。人力资源前景研究(2003)发现招聘是人力资源从业者的第二高的优先选择。尽管招聘的重要性不言而喻,但令人惊讶的是,很少有研究探究出了完善的雇主招聘策略。
在20世纪90年代中期,一些媒体作为“招聘革命”背后的驱动因素,互联网首次成为招聘工具,受到人们的欢迎。并且人们预测未来招聘行业的发展趋势会受到互联网的影响,互联网会“彻底改变企业招聘”(Cappelli,2001)这一传统招聘方式。不出所料,网络招聘在过去十年中确实增长迅速,现在被全球招聘人员和求职者广泛使用。在美国,Cober和Brown(2006)发现,50%的新员工来自于网络招聘,并且预测这一数字会逐渐增长。 Crispin和Mehler(2006)发现,20%的外部雇员来自公司网站,另有13%来自第三方网站。在英国,经统计(2004)显示,英国三分之二的公司使用独立网站,这一方式通常通过广告这一媒介招将招聘人员与招聘人员进行匹配。截至2004年7月,互联网招聘是大多数公司的第一选择。
为了实现本文的目标,我们将结合Breaugh和Starke(2000)有关于招聘方面的文献,会将网络招聘定义为:通过使用互联网来识别和吸引潜在员工的新型招聘形式。 我们会使用互联网这一媒介,一旦人们通过互联网或其他方式与公司联系,就算是成功的案例,但我们在此之前很少这样做过。相比而言,这在英国(CIPD,2006年)更常见,却一直也是较少的实证研究的主题。 网络招聘将分为使用公司内部的网站进行招聘和使用商业工作委员会(如monster.com)发布招聘广告这两种形式。
鉴于网络招聘尚未得到详细的研究,因此我们需要将此领域的文献转化为理论框架。虽然我们有兴趣组织人们使用网络招聘,但是,采用这种方法的决定主要因素是由个人决定的,如资源负责人。因此,参考关于个人决策的文献可能会有所帮助。用于解释个人以特定方式行事的决定的模式是计划行为理论(TPB)(Ajzen,1991),其被视为理性行为理论的延伸(Ajzen和Fishbein,1980 )。这种模式提出,决定是否执行特定行为的因素是由对这种行为的态度和信念构成的。对某一特定行为持有良好态度的个人对执行该行为将持有有利的态度,而对行为持有负面态度的人将对执行行为抱有消极的态度。此外,个人持有的信念也会被当做决定他们应该或不应该执行该行为的因素,这是一种有关于特定行为的主观规范。这种信念会给当事人造成心理压力。因此,一个人必须执行任何行动的意图是由他们对这种行为的态度和规范信念共同影响的。 Ajzen和Fishbein提出,通过个人意图的执行特定行为,可以通过衡量态度和主观规范来预测其可能性大小。 TPB是为了证明:任何行动的执行不完全取决于执行该动作的意图,而且还取决于个人对行为的行为控制的观点。因此,TPB认为行为是基于行为态度,主观规范和感知行为控制这三点的。
英国仍然有很大一部分公司尚未完全接受网络招聘,他们通常会将网络招聘、印刷广告和招聘机构等其他方式相结合。招聘信息指数(1999-2006年管理学院)统计了网络招聘的使用时间,并显示其使用已经约占40%的公司网站和25%的商业公司工作板。这与CIPD(2006)的统计如出一致,64%的组织正在使用网络招聘。 RCI还表明,更加传统的招聘方式,如国家报纸(29%),区域报纸(33%)和就业机构(44%)仍然与网络招聘方式不相上下。虽然网络招聘更加成熟,但是,与当初许多人预测的结果比较,并没有产达到预期的影响。
关于网络招聘的研究很少,特别是从雇主的角度来看。 Lievens等人(2002)指出,网络招聘的研究是“非常稀缺“的,”我们检索出的所有研究都集中在申请人的反应“。从候选人的角度来看待网络招聘的文献为数不多。例如,Dineen等人专注于使用在线信息来促进人员公司的发展(Dineen et al,2002,2007; Dineen,2003);Cober等人(2004)解决了网站特征对申请人吸引力的影响;Zusman和Landis(2002)研究了基于网络和传统招聘广告的申请人偏好。有关于研究公司为何使用网络招聘原因的文献很少受到重视。但是这里有两个例外。一个是Williamson和Cable(2003)的研究,其中提出招聘来源主要是由于模拟过程。另一个是Chapman和Webster(2003)在美国进行的调查研究,发现大多数公司都采用基于技术的招聘和选择工具来提高效率,实现新的评估工具,降低成本,规范系统并扩大申请人的数量。然而,查普曼和韦伯斯特的研究主要侧重于申请人的管理和评估,而不是吸引力。
采 访
最初,我们对负责招聘工作的英国人力资源经理进行了14次半结构化访谈,初步探讨了影响网络招聘的假设因素。为了引出所有相关因素,我们选择了一些样本以获得一些相关维度的扩散(Wilson,2004)。首先,有10名受访者为使用网络招聘的公司工作人员,其余的4人则没有使用。其次,前者包括公司网站和商业工作板,第三,这种使用范围涵盖各个职位的综合用户和高度选择性的用户。
被访者被要求描述他们网络招聘的使用情况,他们为什么使用或不使用每种方法的原因以及他们每个人的态度。然后,对被调查者的任何未被提及的假设列表的部分进行探查。使用NVivo(一种用于定性数据分析的计算机包)记录,转录和分析采访。每个采访都是根据假设模型的因素进行编码的,并且增加了面试过程中出现的任何新因素。以下是得到的一些因素:
1.候选人池的大小:使用网络招聘的人基数大,这一特征被视为网络招聘的主要优势
2.国际性:能接触到国际求职者的功能被认为是积极的信号,但是网络招聘中海外申请者的数量没有达到预期的估算
3.被动求职者:对于网络招聘中能否接触到被动求职者是一种潜在的担忧
4.多元化:在网络招聘中,对于申请人的多样性有一些担忧
5.针对正确的人群:利用小众职位和公司网站容易针对特定的求职者
6.电脑素养:在线申请人需要有一定程度的电脑知识,这是使用网络招聘的一个门槛
7.易于筛选的回应:一些受访者使用他们公司网络招聘是因为在电脑上可以轻而易举地筛选出候选人
8.不合适的应用:一些公司被迫放弃使用网络招聘,是因为市场上有太多不成熟的招聘网站
9.方便性:使用网络招聘方式的受访者,大多数认为使用起来更方便
10.人才数据库:一些公司创建了一个有关于候选人的数据库,这样他们可以很快、很方便地了解到候选人的信息
11.个人感觉:一些被采访者认为互联网的使用是固定的,意味着他们失去了个人更详细的信息
12.公司形象:部分公司把在线招聘当做是保持他们先进形象的手段
13.雇主品牌:一些受访者认为使用他们的企业网站可以大力地宣传他们的公司品牌
14.相对成本:所有受访者都将节省成本作为主要的理念之一
15.聘请速度:受访者认为使用互联网招聘的速度比传统招聘方式要快得多
16.复杂性:有人认为设立企业招聘网站的过程可能很困难
17.人力资源报告和工作实践:一些公司报告说,网络招聘达到的成效令人满意,而另一些公司则没有实现预期的目标,从而受到管理者的抵制
18.技术系统:对于那些已经拥有网站并通过电子方式进行交流的公司中,使用网络招聘似乎是一个自然而然的过程,而对于那些尚未使用过网络的公司中,这是一个未知的领域
19.可审核性:受访者认为,网络招聘本身实现起来比较容易,但是对招聘人员的审核比较麻烦;网络招聘,特别是通过公司网站,可能更适合于批量招聘
20.竞争性采用:由于竞争对手使用网络招聘,一些受访者为了保持公司的竞争性从而决定使用网络招聘
21.求职者被采用的程度:有些受访者认为通过网络招聘方式雇佣的人员没有达到预期的目标
结 论
这项研究提供了一些观点,有关于招聘人员如何决定使用哪些招聘方法。研究之前,我们推测,公司会根据各种招聘方式好处的对比选择招聘方式,但我们的结果表明招聘人员对于招聘渠道的选择,主要是依据主观观点,他们可能对某种招聘方式持有消极观念,从而选择另一种自己认为好的招聘方式,而不是选择客观上最成功,最具成本效益和效率的招聘方式。
这项研究旨在作为研究公司使用网络招聘原因的第一步。通过对这些原因的探究,可以为进一步发展不同的招聘方法提供依据,因此可能对网络招聘供应商和招聘人员都是有价值的。接下来的步骤将是深入探究公司能够成功使用网络招聘的因素,样的研究将有助于网络招聘充分发挥招聘市场的潜力,对招聘人员和互联网招聘工具的提供者将具有重大的实际意义。
参考资料:
基于jsp的网上招聘系统毕业设计(项目报告+答辩PPT+源代码+数据库+截图+部署视频)https://download.csdn.net/download/dwf1354046363/87813536Java毕业设计174例,包含部署视频_易小侠的博客-CSDN博客
https://cv2022.blog.csdn.net/article/details/124463185?spm=1001.2014.3001.5502