论敏捷开发方法在人事系统中的应用.doc_第1页
论敏捷开发方法在人事系统中的应用.doc_第2页
论敏捷开发方法在人事系统中的应用.doc_第3页
论敏捷开发方法在人事系统中的应用.doc_第4页
全文预览已结束

下载本文档

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

文档简介

现代软件工程课程论文论敏捷开发方法在人事系统中的应用 作者: 刘翔 学号:201020700028摘要:1敏捷开发方法是一类软件开发方法的统称,其中包括极限编程、Scrum方法等。这类方法重视软件开发过程中人的重要性,强调个体的竞争力,强调人与人之间的交流与合作,强调可以工作的软件。极限编程方法作为一种敏捷开发方法以其高度可操作性获得了广泛的研究与关注。 目前,企业ERP系统开发大量采用了传统的软件开发方法,但其成功率并不高。为了探索如何将敏捷开发方法应用到ERP系统中,论文从敏捷的性质出发,在前人工作的基础上对敏捷开发方法进行了研究,并在实际项目中加以了实践。关键字:敏捷开发方法 极限编程1、 背景 本文讨论了敏捷开发方法在企业人事系统中的运用过程。该系统的建设目标是帮助该企业管理好内部的人员档案相关信息和人员日常活动。人事信息系统管理指的企业员工从面试,招聘到离职退休的全过程,涉及的主要活动包括人事指标设定,面试结果考核,排班,调班,请假,打卡,考勤结果分析,人员基本资料设置,人员分布统计,人员离职原因分析等。人事系统是单位ERP系统最基本的一个子系统,他的为其它系统提供一些基本人事信息,如工资系统,宿舍系统,餐费系统,仓库系统,因此搞好人事系统对于整个ERP系统正常运转起着关键作用。该公司以前有一个功能简单的人事系统,但功能单一,效率低,经常出现一些BUG,不能满足公司管理的需求,公司的高层领导迫切地要求我部能在较短的时间内开发出保质保量的人事系统。2、 问题提出本文通过开发了某公司的人事系统,论述了敏捷开发方法的应用。我有幸参加了这个项目,并负责了部分的分析和设计的任务。 由于原来的人事系统业务过于僵化,维护困难,不能真正地给企业贡献价值,已不能满足公司的长久发展的战略。在新版本的人事系统的开发过中,因时间紧迫,用户需求不明,公司的领导要求使用B/S架构。这与我们以前比较熟悉的C/S架构背道而驰,C/S架构我们使用的是delphi作为开发工具,而现在使用B/S架构,我们采用比较流行的JAVA技术。根据当前情况,结合软件工程的思想,我决定采用敏捷开发方法中的极限编程的方法进行开发,利用了其中的短平快会议,小版本发布,较少文档,合作为重,测试先行等一些思想。同时采用了当今流行的建模工具ROSE 2003,项目管理工具project 2005和软件配置管理工具进行辅助管理。由于采用了以上技术,正确的软件工程的理念,使得项目获得了成功,并受到用户的好评,为今后开发新产品积累了丰富的经验。企业人事系统在企业管理中处于核心地位,他不仅为领导提供了人力资源管理信息,同时也为其它系统提供了基础信息,必须进行全局构思,通盘考虑,充分论证。去年年初我部受到领导的批示,要求把以前的人事系统进行重新开发。我部主官任命我作为项目小组的负责人对这项工程进行开发,公司高层领导同时要求我们能够在五一前完成产品的交付。接到项目后,就开始了开发前的需求分析工作。该公司是一家有二千人左右的中小企业,原来的人事系统是单机系统,内容单一,功能简单,仅有基本的人员信息。 3、 问题分析领导指示我们要对业务流程进行重构,增加一些新的功能,如考勤分析功能,为工资系统提供员工的考勤信息。因本小组人员不是十分的多,进行面对面的沟通比较方便,如果采用瀑布模式进行项目开发,需要进行比较正规的分析,设计,编码,测试等,一方面时间不允许,另一方面人手不够,再说我们小组的人员都是公司的老员工,编程的基本功能扎实,还有我们部门与用户距离近,有什么问题可以及时地解决,所以采用极限编程比较符合该项工程。 领导只是简单地提出了一些基本的功能,对于详细的需求他们也不是十分地清楚,再说我部以前没有接到过这样的单,对于这种业务流程不是十分了解。 我决定采用敏捷开发的极限编程技术进行开发,过程运用了极限编程的一些的思想,如短平快的会议,2 快速获取需求的JRP会议,站着开会,结对编程,测试先行,充分发挥团队的沟通和协作,请用户到现场进行操作指导。同时也利用了一些辅助工具,如Rose 2003 进行UML建模,方便与项目的干系人进行沟通,项目管理工具Ms Project 对工期进行管理,和公司内部开发软件配置工具。针对需求不是很明确,我采用了书面的调查表,要求相关的部门进行填写,他们的真实的意图,用一些非专业术语引导他们回答需要哪些功能。由于种种原因,效果不是十分理想,后来我改用了JPR(Joint Request for prosel)方式招开一系列高强度的会议来快速获取需求。要求公司的用户,部门负责人,相关方面的专家,及分管这个项目的高层领导参加,当然不同的用户站在不同的角度,对项目要求可能互相矛盾。这需要进行UML建模,让相关的涉众人员进行评估,反复沟通,实在沟通不了,要请高层领导进行定夺。最终我们得到一个比较清晰的需求分析。在这个过程中,我强调需求分析要充分调动用户的积极性,要让他们明白这项工作也与他们的切身利益相关,客户的参与是系统成败的关键之一。针对这些需求,同时我们采用了Rational Rose 2003 进行系统建模,建立了多个用例和用户交互,和各种图形的联合。完成后请用户审核,提出的一些异议后,再修改,再审核,这是反复迭代的过程。同时采用了用户故事的方法,用户的词汇将系统的功能讲出来,记录在卡片上,然后整理形成需求。接下来的工作就是概要设计和详细设计阶段,编程语言我们使用了JAVA,采用了J2EE架构,数据库使用了Sybase 数据库SyBase 12.0,搭建了三层架构平台,开发工具是IBM WebSphere Application Development ,中间层应用服务器IBM WebSphere Application Server,进行负载均衡和连接池缓冲技术。由于IBM WebSphere 有负载均衡功能,便于企业将来业务发展,规模扩大有较多的可扩展性。4、 解决方案在详细设计阶段,我们采用了结对编程技术,结对编程就是两个人共同编码,知识交流与共享更加频繁。及早地发现问题,提高编码质量,这样在项目的开始速度慢点,但是随时间推移,代码的公共,不会因核心人员的离开,而要一切重来。由于人事系统的重要性,牵涉到人员的工资,对可靠性要求比较高,为了更早地发现问题,找出各种隐含的错误,逻辑错误码,我采用了测试先行的技术,先写每个模块的测试用例。由于程序的主程序不能一下子能够及时完成,对一些关键的模块,可能一些数据没有不能测试,或者它的驱动模块没有完成,有时我们可能先写一些SQL语句,插入一些测试数据,有时我们还要写一些桩模块和驱动模块。在编码阶段,我要求大家在交付一个模块进行集成之前,都要用测试用例进行详细的测试,有了测试用例后,就可以提高我们的测试的效率,便于我们很快地对故障进行定位。对于有些关键模块的修改,我们在系统集成时还要进行回归测试。团队之间加强沟通协作是十分必要的。本团队之间有十几个开发人员,团队之间要有畅通的沟通渠道,提倡他们知无不言,言无不尽,现在程序开发已不是一个人能单枪匹马能够拿下来的,加强沟通和协作是至关重要的,要他们抛弃事不关已,高高挂起的思想,鼓励他们提出自已的意见。使用敏捷开发方法的极限编程,迭代和反复是不可避免的,对用户的需求变更,应该及早发现,而不是消除需求变更,对变更采取欢迎的态度,理清变更来龙去脉,去伪存真,变更越早,我们的工作量需要的也就越少。我们按照软件工程迭代的思想,以两周为一期进行迭代开发。第一期完成用户界面的设计,第二期完成业务逻辑层的设计,第三期完成数据存储层,形成了版本v0.5,经过的评审,用户提出了改进的意见,我们再次开始了二轮的迭代的开发,形成了版本1.0。如此反复,直到用户满意为止。我们坚持小步快走,持续集成的原则,不断地形成新的版本的发布。由于该厂管理不规范,领导的政策朝令夕改,造成班次管理十分复杂;用户的观点不统一,有一些冲突是不可调和的,为了统一变更,让变更在受控状态下,每一次伤筋动骨的修改,我们都要获得公司厂务总监的批准,采用内部联络书和E-mail进行书面的保证。当然,也有一些领导难以决策的,大家开一个短平快的会议进行协商解决。为了提高办事效率,鼓励大家站着重开会。为了能够方便后期的管理和维护,我们把内部互相沟通交流的Email,会议记录电子档,内部联络书的影像图片等相关资料都存入我们自已开的软件配置管理数据库中,让大家随时可以调阅,了解软件的变更,方便今后的维护。在人事系统中,考勤在其中占有较大的部分,员工从招聘进厂,就要为其分配班次,(班次含有员工上班的时段,系,部,组,职位),打卡,请假,调班及分配考勤等。我们在编辑过程中采用了工作流驱动技术,以业务流程进行编辑业务驱动流。打卡采用考勤机设备,当员工打卡时,通过网络将考勤资料上传到公司的服务器中,由于这存在一个实时传输的问题,可将其从人事系统中独立开来,而另外开发一个实时上传模块,进行并发处理。考勤分析是我们人事系统的核心,当网络把员工的打卡,班次,请假,调班,加班,出差等信息输到人事系统,我们要求分析其考勤,得出该员工这天是否有迟到,早退,旷工,出差,请假,加班。这项工作的数据量比较大,我们要查找几十个表,有的表记录条数可能达到几百万条,最后我们将它安排在晚上空闲时段,该模块能够自动执行。对于人事档案的图片数据量比较大,我们采用了数据压缩技术,或将图片改小一点存储。由于我们方法选用得力,措施有效,在五月初,我们的系统按时交付客户使用,得到公司的领导的好评,在这个项目中,我明白了敏捷开发方法的内涵,确切掌握了极限编程的要领,理解快速交付的好处。用户故事,结对编程,持续集成,测试先行等先进的软件设计理念将会不断的应用到我的实际工作中去。当然这次项目也存在一些问题,如打卡数据有时不能实时传到数据库中,分析数据不及时,有时会发生莫明其妙的中断。这需要我们在将来的工作中,发现问题,找出原因,解决问题,总结经验,不断的完善。5、 总结在传统方法和敏捷开发方法的比较,以

温馨提示

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

评论

0/150

提交评论