论敏捷在软件开发中的应用.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
敏捷在软件开发中的应用 摘 要 本文从敏捷方法的定义,提出背景,实施方法等方面对敏捷方法进行描述,并与传统软件工程方法相对比,分析敏捷开发的优劣。通过实际软件开发的案例分析软件生产的价值观,得出敏捷方法在软件开发中的价值。 关键词 :敏捷开发;增量;迭代;用户故事;文档;软件工程;精益生产 ? 第一章 敏捷开发概述 1.1 敏捷开发的定义 从广义上来给敏捷开发下定义,敏捷开发(agile development)是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。简言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。? 1.2敏捷开发提出的背景 在实践中,开发人员常常埋怨以精确方法工作的方式。大部分技术人员认为,尽管各种新技术非常吸引人,但是在实践中,很少按照正规方法的复杂流程一步一步前进,RUP、ISO9000,……开发人员常常会被浩瀚的文档所淹没,被繁文缛节的过程压垮。 基于对传统软件工程存在的种种弊端,2001年2月,敏捷联盟会议在犹他州的雪鸟城召开。敏捷联盟是17位不同敏捷开发方法的提倡者共同成立的,目的是推进敏捷开发方法的研究和应用,他们并不要求强制使用某种开发方法,而是提出了敏捷开发的几个核心价值和基本原则: 核心价值: ??????????个人和交流重于过程和工具 ??????????正在运行的软件本身重于复杂的文档 ??????????与客户的沟通和交流重于使用合同约束客户 ??????????对变化的快速响应重于跟随计划 基本原则: ??????????最高目标是通过快速的和经常的发布软件满足客户的需要 ??????????提交软件的周期为几个星期到几个月 ??????????产生正确的软件是衡量进度的首要标准 ??????????主动接受需求的改变而不是拒绝 ??????????商务人员和开发人员工作在一起 ??????????个人必须有动力,要创造环境支持他们的要求,信任他们 ??????????最有效的交流方法是面对面的交流 ??????????最好的结构,需求和设计来自于自组织的团队(self-organizing team),允许任何人提出想法和建议 ??????????持续改进设计和编码 ??????????鼓励正常工作,减少长时间加班 ??????????保持简单,减少不必要的部分,认识到简单的设计比复杂的设计更难 ??????????定期调整过程,获得更高效率 1.3敏捷开发的方法 前面提到的这4个核心价值观会导致高度迭代式的、增量式的软件开发过程,并在每次迭代结束时交付经过编码与测试的软件。接下来几节覆盖了敏捷开发小组的主要工作方式,包括: ??????????增量与迭代式开发 ??????????作为一个整体工作 ??????????按短迭代周期工作 ??????????每次迭代交付一些成果 ??????????关注业务优先级 ??????????检查与调整 1.3.1增量与迭代式开发 从下图可以直观的看出增量与迭代式开发的含义: 增量开发,意思是每次递增的添加软件功能。每一次增量都会添加更多的软件功能。使用增量法逐渐地增进功能,那么如果开发花费的时间多于预期,就可以将迄今为止已经增量构建的功能发布出去。(在软件开发的实践中往往项目开发花费的时间大于预期。) 增量地释放版本,可以实际地得到已创造的商业价值。因为在人们开始使用构建好的软件之前,软件开发方是不会真正地得到投资回报的。在那之前,预期的商业价值只是一种估计。如果估算软件开发是困难的,那么就尝试估算投资回报率吧。 迭代式开发:在软件开发的早期阶段就想完全、准确的捕获用户的需求几乎是不可能的。实际上,软件开发经常遇到的问题是需求在整个软件开发工程中经常会改变。迭代式开发允许在每次迭代过程中需求可能有变化,通过不断细化来加深对问题的理解。迭代式开发不仅可以降低项目的风险,而且每个迭代过程以可以执行版本结束,可以鼓舞开发人员。 笔者对迭代开发的理解是先构建软件,然后评估它是否能够正常的工作,然后对其作出修改。而且是根据用户需求的不断变化,不停的对其进行修改,不停的校验是否满足客户的需求,通过迭代找到正确的解决方案。 从XP、Crystal、RUP、ClearRoom等方法学中对比,体会迭代设计的精妙之处:每一次的迭代都是在上一次迭代的基础上进行的,迭代将致力于重用、修改、增强目前的架构,以使架构越来越强壮。在软件生命周期的最后,除了得到软件,还得到了一个非常稳定的架构。对于一个软件组织来说,这个架构很有可能就是下一个软件的投入或参考。 1.3.2? 敏捷小组作为一个整体工作 项目取得成

文档评论(0)

14576 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档