流程管理开发系统的全流程Word文档格式.docx
《流程管理开发系统的全流程Word文档格式.docx》由会员分享,可在线阅读,更多相关《流程管理开发系统的全流程Word文档格式.docx(43页珍藏版)》请在冰豆网上搜索。
第六章系统页面的设计36
6.1系统主页面的设计36
6.2求职者用户主页面的设计36
6.3企业用户主页面的设计37
6.4系统管理员主页面的设计37
第七章系统安全38
第八章系统测试39
第九章项目总结40
9.1系统开发过程中用到的工具40
9.2系统开发中体现的思想40
9.3系统开发数据统计41
致谢42
附件一MySQL脚本43
附件二清河一班项目开发分工明细表56
第一章需求分析
需求分析师系统开发的源头,一个系统的开发起源于系统的需求分析也最终回到需求分析。
做好需求分析就等于做好了系统开发的一半。
因此我们在需求分析上做了很多的工作。
首先我们对招聘网站的业务进行了熟悉,然后分组分模块进行了需求分析,最后通过团队讨论一起确定了需求。
1.1熟悉招聘网站的主要业务
在熟悉业务流程的过程中,我们对几个大型招聘网站进行了各个角度、各个方面的分析,最终使用Visio做出求职者、企业用户、管理员三个模块的主要功能
1、主页显示内容如图1-1所示:
图1-1GoodJob招聘网主页内容图
2、简历包含的内容如图1-2所示:
图1-2GoodJob招聘网简历页内容图
3、求职者操作流程如图1-3所示:
图1-3求职者操作流程图
4、企业模块主要功能如图1-4所示:
图1-4企业模块功能图
5、后台管理模块功能图如图1-5所示
图1-5后台管理模块
1.2系统功能需求初步分析
从个人、企业、管理员三个模块对系统功能进行分析,主要分析出三个角色都有哪些功能,以模块的形式展示出来。
1.2.1个人模块需求分析
☞搜索职位、申请职位、职位收藏
☞个人简历管理
☞个人基本信息管理
☞查看申请记录、查看职位详细信息、人事消息
☞查看职场资讯、面试技巧等信息
1.2.2企业模块
☞职位发布:
职位管理、职位搜索、职位模版
☞简历管理:
搜索简历、暂存文件夹、回收站
☞招聘管理:
收件箱、公司人才库、面试夹、回收站
☞数据报表:
简历投递统计报表、职位发布统计报表、用户使用统计表
☞系统设置:
公司信息管理、用户管理、邮件模版、简历过滤器
1.2.3后台管理模块
☞管理一般用户
☞管理企业用户
☞招聘信息
☞紧急招聘信息
☞热门招聘信息
☞搜索未授权企业,给企业授权
1.3确定系统的需求,完成用例图
在确定系统功能需求后,使用RationalRose工具对系统需求做用例图。
1、个人用户用例图如图1-6所示:
图1-6个人用户用例图
2、企业用户用例图如图1-7所示:
图1-7企业用户用例图
3、后台管理员用例如图1-8所示:
图1-8后台管理员用例图
第二章数据库的设计
数据库分析与设计是系统开发的重要的步骤之一,本系统开发过程中是先分析出系统所依赖的实体,然后挖掘实体间的关系,之后对数据库进行概念模型、物理模型设计,最终生成sql语句,创建数据库。
2.1数据库实体分析
·
个人用户:
个人信息+ID+用户名+密码
简历:
浏览次数、完成度、照片
·
个人信息:
姓名、性别、出生日期、工作年限、证件类型、证件号、居住地、Email、手机号码、求职状态、国家或地区、籍贯、身高、婚姻状况、联系地址、邮编、MSN
教育经历:
时间、学校、专业、学历、专业描述、海外学习经历
学生奖励:
时间、奖项、级别
校内职务:
时间、职务名称、职务描述
在校实践经验:
时间、实践名称、实践描述
工作经验:
时间、公司、行业、公司规模、公司性质、部门、职位、工作描述、海外工作经历
求职意向:
工作类型、地区、行业、职能、期望薪水、到岗时间、自我评价
培训经历:
时间、培训机构、培训课程、详细描述、培训地点、获得证书。
语言能力:
外语语种、掌握程度、听说能力、读写能力
英语等级(四六专四八)、TOEFL:
、GRE:
日语等级、GMAT、IELTS
技能:
技能、使用时间、掌握程度、技能类别
项目经验:
时间、项目名称、项目描述、角色
证书:
获得时间、证书名称、成绩、
附加信息:
标题、内容
职位收藏夹:
收藏日期、申请状态、
站内信箱:
fromtocontent
职位搜索器:
关键字、工作地点、职位类别、行业类别、发布日期、工作年限、月薪范围、公司性质、学历要求、工作类型、搜索器名称。
企业用户:
用户名、密码、公司简介、用户状态
职位详情:
职位名称、工作地点、职位类别、行业类别、发布日期、工作年限、月薪范围、学历要求、工作类型、职位描述、职位状态
站内信模板:
内容、
简历搜索器:
性别、年龄、工作年限、籍贯、身高、学历、专业、工作经验、求职意向、期望薪水、语言能力、搜索范围等
后台管理员:
账号、密码、等权限
职位类别:
职位名称、职位状态
企业性质:
企业性质名称
行业类别:
行业名称
工作地点:
地点名称
系统消息:
种类、内容
广告
2.2数据库设计
在数据库设计阶段使用工具powerdesigner进行概念模型的设计,先是画出实体并建立起实体间的关系,然后向实体中加入属性,再生成物理模型。
2.2.1概念模型设计
(1)实体关系图如图2-1所示:
图2-1实体关系图
(2)实体中加入属性后的概念模型如图2-2所示:
图2-2数据库概念模型图
2.2.2物理模型的设计
数据库设计物理模型图是由概念模型直接生成的,它直接体现着数据库中的表。
本系统物理模型如图2-3所示:
图2-3数据库物理模型图
2.2.3生成的sql语句
见附件一
第三章系统的环境的搭配
系统环境的搭配是系统开发的启示,搭配好一个系统环境对之后的开发过程都有很大的溢出。
本系统开发的是在开始的时候就对系统环境做好了分析并进行了搭建
1、数据库的配置
(1)设置数据库服务器的MySQL的访问用户名和密码
(2)在数据库服务器上,用MySQL创建数据库goodjob在数据库中导入附件一中的sql脚本,生成数据库。
2、CVS的配置
(1)安装CVS:
如果有旧版本则需要清除干净所有有关CVS的文件包括注册表
(2)添加用户:
d:
\server\cvsnt\cvs-de:
/GoodJobpasswd-radministrator-ajob
3、Tomcat的配置:
Tomcat中导入连接数据库驱动包
4、包的导入:
将要用的包导入到lib文件中,以便在团队开发过程中不用每个人都自己进行导包的操作。
导入的包共42个,如下所示:
antlr-2.7.6.jar、aspectjrt.jar、aspectjweaver.jar、c3p0-0.9.1.2.jar、commons-attributes-api.jar、common-beanutils.jar、commons-codec.jar、commons-collections.jar、commons-collections-3.1.jar、commons-dbcp.jar、commons-digester.jar、commons-discovery.jar、commons-fileupload.jar、commons-fileupload-1.2.1.jar、commons-httpclient.jar、commons-io.jar、common-lang.jar、commons-logging.jar、commonl-logging-1.0.4.jar、commons-pool.jar、commons-validator.jar、dom4j-1.6.1.jar、freemarker-2.3.13.jar、hibernate3.jar、javassist-3.9.0.GA.jar、jstl.jar、jta-1.1.jar、log4j-1.2.15.jar、mysql-connector-java-5.1.6-bin.jar、ongl-2.6.11.jar、slf4j-api-1.5.8.jar、slf4j-log4j12-1.5.8.jar、spring.jar、spring-aop.jar、spring-rom.jar、spring-webmvc.jar、spring-webmvc-struts.jar、standard.jar、structs2-core-2.1.6.jar、structs2-spring-plugin-2.1.6.jar、xwork-2.1.2.jar。
第四章Hibernate持久层的设计与实现
通过使用Hibernate持久层,可以避免使用传统的JDBC方式来操纵数据库,通过利用Hibernate提供的O/RMapping支持,从而允许程序使用面向对象的方式来操作关系数据库,保证了整个软件开发过程以面向对象的方式进行,即面向对象分析、面向对象设计、面向对象编程。
4.1设计持久化对象
根据需求分析和数据库的设计可以从中提取出相应的32个对象,从而设计了32个持久化类,这些持久化类下所示:
☆Ad:
对应广告,包括广告标题、广告内容等。
☆Admins:
对应管理员,包括管理员姓名、性别等。
☆Applications:
对应职位申请记录,用来保存求职者的职位申请记录,包括申请日期、申请职位、处理状态等。
☆Certificates:
对应求职者获得证书,包括获得日期、证书名称、证书等级等。
☆Compaies:
对应企业用户,包括企业的名称、联系方式、地址等。
☆Duty:
对应求职者在学校期间担任的职位。
☆Educations:
对应教育背景,包括开始/结束时间、学校名称、专业、学历等。
☆Experiences:
对应工作经验,包括开始/结束时间、工作单位、职位、工作描述等。
☆Favorites:
对应职位收藏夹,有收藏时间。
☆HrLibs:
对应公司人才库,公司可以对满意的人才进行统一管理。
☆Industry:
对应公司所属行业。
☆JobObjective:
对应求职者的求职目标,包括期望薪水、期望工作地、自我评价等。
☆Languages:
对应求职者掌握语言,包括语言种类,掌握程度等。
☆MailBox:
对应站内信箱,内有收发者、发送时间、标题、内容等。
☆MailTemplate:
对应站内信模板,提供给企业用,方便企业发送面试通知。
☆Others:
对应求职者添加的附件信息,包括标题和内容。
☆Persons:
对应求职者,包括求职者的姓名、性别、联系方式等个人信息。
☆Pictures:
对应发布广告时的图片。
☆PositionSort:
对应职位种类,可提供企业发布职位时的参考。
☆PositionInfo:
对应企业发布的职位信息,包括所要求的工作年限、职位名称等。
☆PositionSearcher:
对应职位搜索器,提供给求职者以方便进行职位的搜索。
☆PracticeAtSchool:
对应在校实践,包括开始/结束时间、实践名称、详细描述等。
☆Profession:
对应职业名称,提供给企业添加职位时和求职者搜索时的参考。
☆ProjectExperience:
对应项目经验,包括开始/结束时间、项目名称、详细描述等。
☆Resume:
对应个人求职简历,内有创建时间、简历名称、浏览次数等。
☆ResumeSearcher:
对应简历搜索器,提供给企业对简历进行搜索。
☆Rewords:
对应在学校或工作期间获得的奖励,包括奖励名称、获得时间等。
☆Roles:
对应角色,这是系统进行安全的主要依据。
☆SystemInfo:
对应系统消息,提供给管理员发布系统消息的模板。
☆Trainings:
对应求职者曾经受到过的专业培训,包括培训时间、地点、内容等。
☆Users:
对应系统用户,包括用户名、密码、邮箱等。
☆WorkSpaceInfo:
对应系统提供给客户的职场资讯,包括标题、内容等。
本系统采用的是贫血模式来设计的,所以没有为它们提供任何业务逻辑方法,而是将所有的业务逻辑方法放到业务逻辑组件中实现。
本系统一共涉及到32个持久化对象,这32个POJO类不是孤立存在的,它们之间存在着复杂的关联关系。
分析关联关系既是面向对象分析的必要步骤,更是Hibernate进行持久化操作的必经之路。
这些POJO的关联关系如下:
●Users是Persons、Admins和Companies的父类,同时父类和子类又是1—N的关系,即一个Users可以有多个子类,但一个子类有且只能有一个父类。
●Users和MailBox是1—N的关系,邮箱中存放的是邮件,一个人可以有多个邮件,反过来一封邮件只能由一个人接收。
●Users和Roles是N—N的关系,一个用户可以有多个角色,一个角色可以有多个用户。
●Persons和PositionSearcher是1—N的关系,一个求职者可以有多个职位搜索器,每个职位搜索器必须属于一个求职者。
●Persons和Resume是1—N的关系,一个人可以有多个简历,反过来,一个简历也必须属于一个人。
●Resume和简历所属的十一个实体包括都是1—N的关系。
●Persons和PositionInfo之间是N—N的关系,一个求职者可以收藏多个职位,一个职位也可以被多个人收藏。
两者之间因为收藏而产生一个收藏夹,这个收藏夹是二者之间的关系实体。
●Resume和PositionInfo之间是N—N的关系,一个简历可以投到多个职位上去,一个职位也可以被多个简历投。
两者之间因为发送简历而产生一个申请记录,这个申请记录是二者之间的关系实体。
●Resume和Companies之间是N—N的关系,一个企业可以把多个简历加入人才库,而一个简历也可以被多个企业加入人才库中。
二者之间又因为加入人才库的操作而产生了一个人才库的关系实体。
●Companies和ResumeSearcher、MailTemplate都是1—N的关系,即一个企业可以有多个简历搜索器和多个邮件模板。
●Ad和Pictures是1—N的关系,即一个广告可以有多个图片,而一个图片只能对应一个广告。
●Professions、Industry、PositionSorts、WorkSpaceInfo、SystemInfo五个实体之间都是系统中相对独立的,它们没有和其他实体有任何关系,只是为了方便用户操作而给出的参考性的选择。
4.2创建持久化类
从类之间的关系可以看出,持久化对象之间的关联关系以属性的方式表现出来,当然这些属性也同样需要setter和getter方法的支持,持久化类之间的关联关系通常对应数据库里的主外键约束。
除此以外,持久化对象还有自己的普通属性,这些属性通常对应数据库中表的字段。
创建持久化类本系统做到了以下几点:
首先,根据Hibernate对持久化对象的要求,即要求持久化对象提供无参构造器,本系统没有在POJO中写任何构造器,这样就有个默认的无参构造器了。
其次,每个持久化对象都有个标识属性,用于标识该实例。
第三,本系统根据业务的需要对部分持久化类的equals()和hashCode()方法进行了重写,当然这个重写并不是根据标识属性来写的,从而避免了在持久化对象为瞬态时的标识属性为null的问题。
下面给出部分持久化类的类图如图4-1所示:
图4-1持久化类图
4.3映射持久化类
在映射持久化类的过程中,本系统用到了继承,一对多,一对一,多对多等多种映射情况,下面就给出系统中用到的部分映射代码。
4.3.1Users和它的三个子类的映射代码
Users是Persons、Admins和Companies的父类,同时父类和子类又是1—N的关系,即一个Users可以有多个子类,但一个子类有且只能有一个父类。
根据这种关系,在本系统中这四个类的部分映射代码如下所示:
4.3.2Resumes和属于Resumes的类的映射代码
在本系统中Resumes内除了求职者的个人信息外还包含了11个实体,简历和它们的关系都是一对多的关系。
1、Resumes的部分映射代码如下:
<
hibernate-mappingpackage="
com.goodjob.entity"
>
<
classname="
Educations"
table="
idname="
educId"
column="
EDUC_ID"
generatorclass="
native"
/generator>
/id>
propertyname="
educBeginTime"
EDUC_BEGIN_TIME"
type="
date"
/property>
educEndTime"
EDUC_END_TIME"
educSchoolname"
EDUC_SCHOOLNAME"
string"
educAbroad"
EDUC_ABROAD"
boolean"
/class>
/hibernate-mapping>
2、Education的映射代码如下:
3、Languages的映射代码如下:
其它几个Resumes所属的持久化对象的映射文件与上面的类似,这里不做赘述。
4.3.3Users和Roles的映射代码
Users和Roles是N—N的关系,一个用户可以有多个角色,一个角色可以有多个用户。
1、Users的映射代码如下:
2、Roles的映射代码如下:
Roles"
ROLES"
<
roleId"
role_id"
/>
roleName"
role_name"
setname="
users"
USER_ROLES"
lazy="
false"
<
keycolumn="
/key>
many-to-manyclass="
Users"
user_id"
/many-to-many>
/set>
4.4Hibernate配置文件的配置
在所有的持久化对象完成之后,就要将所有的映射文件配置到hibernate.cfg.xml中去,一边Hibernate能对各个映射文件进行操作。
配置好的hibernate.cfg.xml如下:
4.5设计和实现Dao层
在Hibernate持久层上,可以使用Dao组件封装数据库操作,这是JavvEE应用中常用的Dao模式。
当使用Dao模式的时候,既体现了业务逻辑组件封装Dao组件的门面模式,也可分离业务逻辑组件和Dao组件的功能:
业务逻辑组件负责处理业务逻辑的变化,而Dao组件负责持久化技术的变化。
引入Dao模式之后,每个Dao组件包含了数据库访问逻辑,每个Dao组件可以对数据库表进行基本的CRUD等操作。
4.5.1Dao组件的设计
本系统的Dao组件包括一个BaseDao接口、一个BaseDaoHibernate类、32个BaseDao的子接口和32个BaseDaoHibernate的子类,其中BaseDaoHibernate的子类都实现了对应的BaseDao的子接口。
在BaseDao中有访问数据库的基本的CRUD操作,在这里将17个最常用的最基本的CRUD操作通过泛型放到最上面的DaseDao中,就为它的实现类减少了许多的代码量,也方便了以后的程序的编写。
Dao组件的关系如如图4-2所示:
图4-2Dao组件关系图
4.5.2Dao组件的实现
1、BaseDao接口内共有17个方法,它的类图如图4-3所示:
图4-3BaseDao接口类图
2、BaseDaoHibernate类实现了IBaseDao接口,它的类图如图4-4所示:
图4-4BaseDaoHibernate与IBaseDao接口关系图
3、BaseDao的子接口共有32个,它们继承了BaseDao接口,并且可以在有BaseDao接口内的方法不能满足需求的时候在这里增加新的方法,其中的一个子接口的类图如图4-5所示:
图4-5子接口类图
4、所有的32个BaseDaoHibernate的子类都实现了各自对应的子接口,其中的一个子类的类图如图4-6所示:
图4-6Dao实现类图
第五章业务逻辑层的设计与实现
本系统涉及的业务比较多,业务逻辑比较复杂,共划分为四个模块,分别为注册登录模块、求职者模块、企业模块和管理员模块。
5.1业务逻辑组件的设计
5.1.1求职者模块的设计
1、求职者模块业务逻辑部分类图如图5-1所示:
图5-1求职者业务逻辑类图
2、求职者添加简历时序图如图5-2所示:
图5-2求职者添加简