- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Dynamic Systems Development Method Feature Driven Development特征驱动开发 * * 第4章 敏捷视角下的过程 敏捷宣言: 个体和迭代,超越过程和工具 工作的软件,超越完整的文档 客户协作,超越合同谈判 响应变更,超越履行计划 本质上讲,敏捷方法是为了克服传统软件工程中认识和实践的弱点开发而成的。 在现代经济生活中,很难甚至无法预测一个基于计算机的系统如何随时间推移而演化。因此在很多情况下我们必须足够敏捷地去响应不断变化、无法确定的商业环境。 利用纪律或者宽容来处理开发计算机软件的人员的弱点。 4.1 敏捷是什么 和许多管理方法概念不同,“敏捷”是从整体能力或表现的角度着眼的,它昭示了一种经营方式,这是理解其意义的要点。敏捷性有两个基本对象:整个企业(或组织)及对企业中的人: 对于公司,敏捷是有利于在顾客机会持续而不可预测地变化的竞争环境中运作的能力。 对于个人,敏捷是对公司底线的作用能力,这个底线就是为响应不可预测地变化的顾客机会经常地重组其人与技术资源。 敏捷软件开发不是一个具体的过程,而是一个涵盖性术语(umbrella term),用于概括具有类似基础的方式和方法。这些方法,其中包括极限编程(Extreme Programming)、动态系统开发方法(Dynamic System Development Method)、SCRUM、Crystal和Lean等,都着眼于快速交付高质量的工作软件,并做到客户满意。 敏捷原则: 1. 优先级最高的是,通过早期和持续交付有价值的软件来满足客户。 2. 欢迎变更需求,即使在开发的后期提出。敏捷过程为客户的竞争优势而控制变更。 3. 以两周到两月为周期,频繁地交付可运行的软件,首推较短的时间定量。 4. 在整个项目过程中,每一天开发人员都要和业务人员合作。 5. 由个体推动项目的建设,为个体提供所需的环境,支持和信任。 6. 在开发团队中或开发团队间传递信息的最为有效和高效的方法是面对面的交谈。 7. 衡量进展的重要尺度是可运行的软件。 8. 敏捷过程提介可持续的开发。 9. 发起人,开发者和用户应该步调一致。 10.不断地关注技术上优越的设计会提高敏捷性。 11.简洁是最重要的,简洁就是尽量减少工作量的艺术。 12.最佳的架构,需求和设计来自于自组织的团队。 13.团队要定期反省如何使工作更有效,然后相应地调整行为。 4.2 敏捷过程是什么 任何一个敏捷过程都可以由所强调的三个关键假设而识别出来: 提前预测哪些需求是稳定的以及哪些需求会变化非常困难。同样,预测项目进行中客户优先级的变化也很困难。 对很多软件来说,设计和构建是交错进行的。事实上两种活动应当顺序开展。 从制定计划的角度来看,分析、设计、构建和测试并不像我们所设想的那么容易预测。 4.2.1 敏捷开发的立场 将敏捷软件开发作为许多传统软件工程的对立面,它们在优越性和适用性方面存在着许多争论。 没有人反对敏捷,真正问题在于“什么是最佳实现途径”。 敏捷学派内部,针对敏捷问题,也提出了很多有细微差异的过程模型。 4.2.2 人的因素 敏捷软件开发的拥护者花费了很多精力强调“人的因素”在成功敏捷开发中的重要性。敏捷开发团队及成员必须具备以下一些特点: 基本能力 共同目标 精诚合作 决策能力 模糊问题解决能力 相互信任和尊重 自我组织 4.3 敏捷过程模型 4.3.1 极限编程(eXtreme Programming) XP(eXtreme Programming)方法是最引人注目的一种轻型开发方法。它规定了一组核心价值和方法,消除了大多数重量型过程的不必要产物,建立了一个渐进型开发过程。该方法将开发阶段的4个活动(分析、设计、编码和测试)混合在一起,在全过程中采用迭代增量开发、反馈修正和反复测试。它把软件生命周期划分为用户故事、体系结构、发布计划、交互、接受测试和小型发布6个阶段 。 XP开发模型与传统模型相比具有很大的不同,其核心思想是交流(Communication)、简单(Simplicity)、反馈(Feedback)和进取(Aggressiveness)。XP开发小组不仅包括开发人员,还包括管理人员和客户。该模型强调小组内成员之间要经常进行交流,在尽量保证质量可以运行的前提下力求过程和代码的简单化;来自客户、开发人员和最终用户的具体反馈意见可以提供更多的机会来调整设计,保证把握正确的开发方向。 策划 设计 编码 测试 重构 用户故事 权值 验收测试准则 迭代计划 简单设计 CRC卡 Spike解决方案 原型 结对编程 连
原创力文档


文档评论(0)