预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

敏捷软件开发模式在Web开发中的应用的论文敏捷软件开发模式在Web开发中的应用的论文本文将介绍敏捷开发在Web开发中的重要性。通过介绍Scrum和结对编程等常见敏捷开发方法,使读者了解应用尝试敏捷开发。软件开发模型是计算机应用开发迅速发展形成的产物,目的是为了更快更好的开发出符合用户需求的软件。我们所熟知的软件开发模型有,瀑布模型、快速原型模型、增量模型、螺旋模型、混合模型等等。而近年来,敏捷软件开发模式被越来越多的大公司所采用,我们所熟知的,Google、Facebook、Baidu、Amazon、Taobao等众多知名公司,无一例外。本文将介绍敏捷开发模式的特点及其在web开发中的应用。1敏捷开发模式的意义众所周知,敏捷(Agile)一词来自于2001年初美国犹他州雪鸟滑雪圣地的一次敏捷方法发起者和实践者的聚餐。而早在1990年起,人们就开始寻求一种可以应对迅速变化的需求的软件开发方式。敏捷开发模式能够使得团队频繁交付新软件,减少快速变化的需求带来的困扰,并且迅速提高团队成员的编程能力。2敏捷开发模式的原则和方法敏捷开发模式之所以能够应对快速变化的需求,依赖于以下几个必要原则。2.1尽早获取用户需求并不断交付有价值的软件在一个项目组中,会有不同的角色承担不同的任务。首先是项目经理(Projectmanager),其主要负责确定用户需求,制定项目开发计划,协调团队成员在规定期限内完成项目开发和交付。当项目经理与用户沟通获取项目目标并制定项目开发计划之后,就需要业务分析师(Businessanalyst)与用户进行沟通,获得项目开发的具体需求,用户体验设计师(Userexperiencedesigner)根据需求分析设计界面,软件开发者(Developer)进行软件开发,软件开发完成后交给测试人员(Tester)进行软件测试,从而交付软件。在以前的软件开发模式中,普遍依赖业务分析师和用户沟通所完成的需求分析报告而进行软件开发和交付。这样做的弊端在于,用户在提出需求和得到交付软件之间对需求本身可能发生变化,业务分析师在与用户沟通并创建需求分析报告时对需求本身也可能产生误解,而开发者本身对需求分析也会产生误解。这就使得花费大量人力物力所开发的软件最终不能被用户所接受。而采用敏捷开发可以避免这种情况。敏捷开发中有一种叫做Scrum的迭代增量式开发过程。其目的在于缩短交付周期,不断交付有价值的软件,使得在软件最终交付时最大程度满足用户需求。这就需要改变传统的软件交付模式,当项目经理和用户沟通时,需要设定阶段行的目标和任务,由业务分析师和用户就已经确定的需求进行需求分析并且在制定需求分析的同时与开发人员及时沟通,避免软件过度开发,这样就可以缩短软件交付期限。将原本一年甚至几年的开发周期缩短至两个星期到一个月,每次交付部分有价值的软件,这样用户可以尽早体验并及时提出问题和调整需求。2.2制定详尽的开发和交付流程将软件开发周期从几年缩短到一个月甚至两个星期,这需要制定详尽的软件开发和交付流程。而详尽的软件开发和交付流程也是实现Scrum所必须遵守的。在Scrum中一个交付周期被称为一个Sprint。在每个Sprint开始之前,要有一个Sprint的计划会议(Sprintplanmeeting)。Sprint计划会议是在业务分析师和用户确定好当前阶段的需求分析之后,将可以进行开发的部分按照需求的优先级顺序排列好开发任务(Story),再由开发人员对任务进行难度评分,最后团队根据可变因素如团队成员情况,开发环境状态等确定下一个Sprint的任务。为了加强团队内部的沟通和及时掌握开发交付情况,Scrum要求团队每日开站立会议(Standupmeeting),站立会议通常1到2分钟每人,主要说明前一天的工作内容,存在什么问题,以及今天的工作计划。当然在每个Sprint快结束的前一天,要开评审会议,来报告进度,通常情况下是软件发布会议制定软件当前Sprint的软件发布计划。中国有句古话叫做“吾日三省吾身”,每个Sprint结束还有一个最为重要的会议就是回顾会议(Retrospectivemeeting)。回顾会议主要是总结上一个Sprint,保持优点,克服缺点。确保每个会议的有效性是Scrum实现的基础。2.3结对编程,提高软件开发效率当需求明确且计划详细之后,对于软件开发最重要的就是提高开发效率。只有提高开发效率才能在短时间内向用户提供有价值的交付软件。对于提高软件开发效率,敏捷开发有一个很好的方式叫做结对编程(Pairprogramming)。所谓结对编程,就是一个任务交给两个开发人员,两个开发人员同时坐在一台电脑前面,一个人编程,另一个人实时检查,然后互换角色。当然,也可以和测试驱动设计(TestDrivenDesign)相结合,一个写测试用例