开发系统的全流程.docx

上传人:小飞机 文档编号:1857490 上传时间:2022-12-22 格式:DOCX 页数:55 大小:1.86MB
返回 下载 相关 举报
开发系统的全流程.docx_第1页
第1页 / 共55页
开发系统的全流程.docx_第2页
第2页 / 共55页
开发系统的全流程.docx_第3页
第3页 / 共55页
开发系统的全流程.docx_第4页
第4页 / 共55页
开发系统的全流程.docx_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《开发系统的全流程.docx》由会员分享,可在线阅读,更多相关《开发系统的全流程.docx(55页珍藏版)》请在三一办公上搜索。

1、第一章 需求分析11.1熟悉招聘网站的主要业务11.2系统功能需求初步分析51.2.1个人模块需求分析51.2.2企业模块51.2.3后台管理模块61.3确定系统的需求,完成用例图6第二章数据库的设计82.1数据库实体分析82.2数据库设计92.2.1概念模型设计92.2.2物理模型的设计112.2.3生成的sql语句11第三章系统的环境的搭配12第四章Hibernate持久层的设计与实现134.1设计持久化对象134.2创建持久化类154.3映射持久化类154.3.1Users和它的三个子类的映射代码154.3.2Resumes和属于Resumes的类的映射代码164.3.3Users和Ro

2、les的映射代码184.4Hibernate配置文件的配置184.5设计和实现Dao层194.5.1Dao组件的设计204.5.2Dao组件的实现20第五章业务逻辑层的设计与实现225.1业务逻辑组件的设计225.1.1求职者模块的设计225.1.2企业模块的设计255.1.3管理员模块的设计285.2实现业务逻辑305.3事务管理325.4部署业务逻辑组件335.4.1Struts中Action的配置335.4.2Spring中Dao组件的配置335.4.3Spring中Action中注入Dao的配置345.4.4web.xml中的配置35第六章系统页面的设计366.1系统主页面的设计366

3、.2求职者用户主页面的设计366.3企业用户主页面的设计376.4系统管理员主页面的设计37第七章系统安全38第八章系统测试39第九章项目总结409.1系统开发过程中用到的工具409.2系统开发中体现的思想409.3系统开发数据统计41致谢42附件一MySQL脚本43附件二清河一班项目开发分工明细表56第一章 需求分析需求分析师系统开发的源头,一个系统的开发起源于系统的需求分析也最终回到需求分析。做好需求分析就等于做好了系统开发的一半。因此我们在需求分析上做了很多的工作。首先我们对招聘网站的业务进行了熟悉,然后分组分模块进行了需求分析,最后通过团队讨论一起确定了需求。1.1熟悉招聘网站的主要业

4、务在熟悉业务流程的过程中,我们对几个大型招聘网站进行了各个角度、各个方面的分析,最终使用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个

5、人模块需求分析搜索职位、申请职位、职位收藏个人简历管理个人基本信息管理查看申请记录、查看职位详细信息、人事消息查看职场资讯、面试技巧等信息1.2.2企业模块职位发布:职位管理、职位搜索、职位模版简历管理:搜索简历、暂存文件夹、回收站招聘管理:收件箱、公司人才库、面试夹、回收站数据报表:简历投递统计报表、职位发布统计报表、用户使用统计表系统设置:公司信息管理、用户管理、邮件模版、简历过滤器1.2.3后台管理模块管理一般用户管理企业用户 招聘信息 紧急招聘信息热门招聘信息 搜索未授权企业,给企业授权1.3确定系统的需求,完成用例图在确定系统功能需求后,使用Rational Rose 工具对系统需求

6、做用例图。1、个人用户用例图如图1-6所示:图1-6个人用户用例图2、企业用户用例图如图1-7所示:图1-7企业用户用例图3、后台管理员用例如图1-8所示:图1-8后台管理员用例图第二章数据库的设计数据库分析与设计是系统开发的重要的步骤之一,本系统开发过程中是先分析出系统所依赖的实体,然后挖掘实体间的关系,之后对数据库进行概念模型、物理模型设计,最终生成sql语句,创建数据库。2.1数据库实体分析个人用户:个人信息 + ID + 用户名 + 密码简历:浏览次数、完成度、照片个人信息:姓名、性别、出生日期、工作年限、证件类型、证件号、居住地、Email、手机号码、求职状态、国家或地区、籍贯、身高

7、、婚姻状况、联系地址、邮编、MSN教育经历:时间、学校、专业、学历、专业描述、海外学习经历学生奖励:时间、奖项、级别校内职务:时间、职务名称、职务描述在校实践经验:时间、实践名称、实践描述工作经验:时间、公司、行业、公司规模、公司性质、部门、职位、工作描述、海外工作经历求职意向:工作类型、地区、行业、职能、期望薪水、到岗时间、自我评价培训经历:时间、培训机构、培训课程、详细描述、培训地点、获得证书。语言能力:外语语种、掌握程度、听说能力、读写能力 英语等级(四六专四八)、TOEFL:、GRE: 日语等级、GMAT、IELTS技能:技能、使用时间、掌握程度、技能类别项目经验:时间、项目名称、项目

8、描述、角色证书:获得时间、证书名称、成绩、附加信息:标题、内容职位收藏夹:收藏日期、申请状态、站内信箱:from to content职位搜索器:关键字、工作地点、职位类别、行业类别、发布日期、工作年限、月薪范围、公司性质、学历要求、工作类型、搜索器名称。企业用户:用户名、密码、公司简介、用户状态职位详情:职位名称、工作地点、职位类别、行业类别、发布日期、工作年限、月薪范围、学历要求、工作类型、职位描述、职位状态站内信模板:内容、简历搜索器:性别、年龄、工作年限、籍贯、身高、学历、专业、工作经验、求职意向、期望薪水、语言能力、搜索范围等后台管理员:账号、密码、等 权限职位类别:职位名称、职位状

9、态企业性质:企业性质名称行业类别:行业名称工作地点:地点名称系统消息:种类、内容广告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语句见附件一第三章系统的环境的搭配系统环境

10、的搭配是系统开发的启示,搭配好一个系统环境对之后的开发过程都有很大的溢出。本系统开发的是在开始的时候就对系统环境做好了分析并进行了搭建1、数据库的配置(1)设置数据库服务器的MySQL的访问用户名和密码(2)在数据库服务器上,用MySQL 创建数据库goodjob 在数据库中导入附件一中的sql脚本,生成数据库。2、CVS的配置(1)安装CVS:如果有旧版本则需要清除干净所有有关CVS的文件包括注册表(2)添加用户:d:servercvsnt cvs -d e:/GoodJob passwd -r administrator -a job3、Tomcat的配置:Tomcat中导入连接数据库驱动

11、包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-discover

12、y.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-

13、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持久层的设计与实现通过使

14、用Hibernate持久层,可以避免使用传统的JDBC方式来操纵数据库,通过利用Hibernate提供的O/R Mapping支持,从而允许程序使用面向对象的方式来操作关系数据库,保证了整个软件开发过程以面向对象的方式进行,即面向对象分析、面向对象设计、面向对象编程。4.1设计持久化对象根据需求分析和数据库的设计可以从中提取出相应的32个对象,从而设计了32个持久化类,这些持久化类下所示: Ad:对应广告,包括广告标题、广告内容等。 Admins:对应管理员,包括管理员姓名、性别等。 Applications:对应职位申请记录,用来保存求职者的职位申请记录,包括申请日期、申请职位、处理状态等。

15、 Certificates:对应求职者获得证书,包括获得日期、证书名称、证书等级等。 Compaies:对应企业用户,包括企业的名称、联系方式、地址等。 Duty:对应求职者在学校期间担任的职位。 Educations:对应教育背景,包括开始/结束时间、学校名称、专业、学历等。 Experiences:对应工作经验,包括开始/结束时间、工作单位、职位、工作描述等。 Favorites:对应职位收藏夹,有收藏时间。 HrLibs:对应公司人才库,公司可以对满意的人才进行统一管理。 Industry:对应公司所属行业。 JobObjective:对应求职者的求职目标,包括期望薪水、期望工作地、自我

16、评价等。 Languages:对应求职者掌握语言,包括语言种类,掌握程度等。 MailBox:对应站内信箱,内有收发者、发送时间、标题、内容等。 MailTemplate:对应站内信模板,提供给企业用,方便企业发送面试通知。 Others:对应求职者添加的附件信息,包括标题和内容。 Persons:对应求职者,包括求职者的姓名、性别、联系方式等个人信息。 Pictures:对应发布广告时的图片。 PositionSort:对应职位种类,可提供企业发布职位时的参考。 PositionInfo:对应企业发布的职位信息,包括所要求的工作年限、职位名称等。 PositionSearcher:对应职位搜

17、索器,提供给求职者以方便进行职位的搜索。 PracticeAtSchool:对应在校实践,包括开始/结束时间、实践名称、详细描述等。 Profession:对应职业名称,提供给企业添加职位时和求职者搜索时的参考。 ProjectExperience:对应项目经验,包括开始/结束时间、项目名称、详细描述等。 Resume:对应个人求职简历,内有创建时间、简历名称、浏览次数等。 ResumeSearcher:对应简历搜索器,提供给企业对简历进行搜索。 Rewords:对应在学校或工作期间获得的奖励,包括奖励名称、获得时间等。 Roles:对应角色,这是系统进行安全的主要依据。 SystemInfo

18、:对应系统消息,提供给管理员发布系统消息的模板。 Trainings:对应求职者曾经受到过的专业培训,包括培训时间、地点、内容等。 Users:对应系统用户,包括用户名、密码、邮箱等。 WorkSpaceInfo:对应系统提供给客户的职场资讯,包括标题、内容等。本系统采用的是贫血模式来设计的,所以没有为它们提供任何业务逻辑方法,而是将所有的业务逻辑方法放到业务逻辑组件中实现。本系统一共涉及到32个持久化对象,这32个POJO类不是孤立存在的,它们之间存在着复杂的关联关系。分析关联关系既是面向对象分析的必要步骤,更是Hibernate进行持久化操作的必经之路。这些POJO的关联关系如下:User

19、s是Persons、Admins和Companies的父类,同时父类和子类又是1N的关系,即一个Users可以有多个子类,但一个子类有且只能有一个父类。Users和MailBox是1N的关系,邮箱中存放的是邮件,一个人可以有多个邮件,反过来一封邮件只能由一个人接收。Users和Roles是NN的关系,一个用户可以有多个角色,一个角色可以有多个用户。Persons和PositionSearcher是1N的关系,一个求职者可以有多个职位搜索器,每个职位搜索器必须属于一个求职者。Persons和Resume是1N的关系,一个人可以有多个简历,反过来,一个简历也必须属于一个人。Resume和简历所属的

20、十一个实体包括都是1N的关系。Persons和PositionInfo之间是NN的关系,一个求职者可以收藏多个职位,一个职位也可以被多个人收藏。两者之间因为收藏而产生一个收藏夹,这个收藏夹是二者之间的关系实体。 Resume和PositionInfo之间是NN的关系,一个简历可以投到多个职位上去,一个职位也可以被多个简历投。两者之间因为发送简历而产生一个申请记录,这个申请记录是二者之间的关系实体。Resume和Companies之间是NN的关系,一个企业可以把多个简历加入人才库,而一个简历也可以被多个企业加入人才库中。二者之间又因为加入人才库的操作而产生了一个人才库的关系实体。Companie

21、s和ResumeSearcher、MailTemplate都是1N的关系,即一个企业可以有多个简历搜索器和多个邮件模板。Ad和Pictures是1N的关系,即一个广告可以有多个图片,而一个图片只能对应一个广告。Professions、Industry、PositionSorts、WorkSpaceInfo、SystemInfo五个实体之间都是系统中相对独立的,它们没有和其他实体有任何关系,只是为了方便用户操作而给出的参考性的选择。4.2创建持久化类从类之间的关系可以看出,持久化对象之间的关联关系以属性的方式表现出来,当然这些属性也同样需要setter和getter方法的支持,持久化类之间的关联

22、关系通常对应数据库里的主外键约束。除此以外,持久化对象还有自己的普通属性,这些属性通常对应数据库中表的字段。创建持久化类本系统做到了以下几点:首先,根据Hibernate对持久化对象的要求,即要求持久化对象提供无参构造器,本系统没有在POJO中写任何构造器,这样就有个默认的无参构造器了。其次,每个持久化对象都有个标识属性,用于标识该实例。第三,本系统根据业务的需要对部分持久化类的equals()和hashCode()方法进行了重写,当然这个重写并不是根据标识属性来写的,从而避免了在持久化对象为瞬态时的标识属性为null的问题。下面给出部分持久化类的类图如图4-1所示:图4-1持久化类图4.3映

23、射持久化类在映射持久化类的过程中,本系统用到了继承,一对多,一对一,多对多等多种映射情况,下面就给出系统中用到的部分映射代码。4.3.1Users和它的三个子类的映射代码Users是Persons、Admins和Companies的父类,同时父类和子类又是1N的关系,即一个Users可以有多个子类,但一个子类有且只能有一个父类。根据这种关系,在本系统中这四个类的部分映射代码如下所示: 4.3.2Resumes和属于Resumes的类的映射代码在本系统中Resumes内除了求职者的个人信息外还包含了11个实体,简历和它们的关系都是一对多的关系。1、Resumes的部分映射代码如下: 2、Educ

24、ation的映射代码如下:3、Languages的映射代码如下: 其它几个Resumes所属的持久化对象的映射文件与上面的类似,这里不做赘述。4.3.3Users和Roles的映射代码Users和Roles是NN的关系,一个用户可以有多个角色,一个角色可以有多个用户。1、Users的映射代码如下: 2、Roles的映射代码如下: 4.4Hibernate配置文件的配置在所有的持久化对象完成之后,就要将所有的映射文件配置到hibernate.cfg.xml中去,一边Hibernate能对各个映射文件进行操作。配置好的hibernate.cfg.xml如下:com.mysql.jdbc.Driverjdbc:mysql:/192.168.1.2:3306/goodjobrootpasswordtrueUTF-8trueorg.hibernate.dialect.MySQLDialectorg.hibernate.connection.C3P0ConnectionProvider2051201001202truetruenone

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号