- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
软件工程第3章敏捷开发主要内容敏捷是什么敏捷及变更的成本费用敏捷过程极限编程其他敏捷过程模型自适应软件开发Scrum动态系统开发方法Crystal特征驱动开发精益软件开发敏捷建模敏捷过程工具集小结敏捷软件工程敏捷软件工程是哲学理念和一系列开发指南的综合。这种哲学理念推崇让客户满意和软件尽早增量发布;小而高度自主的项目团队;非正式的方法;最小化软件工程工作产品以及整体精简开发。开发方法强调超越设计和分析(尽管并不排斥这类活动)的发布及开发人员和客户之间主动和持续的沟通。敏捷软件工程软件工程师和其他项目共利益者共同组成敏捷开发团队,这个团队是自我组织的并掌握着自己的命运。一个敏捷团队能够培养所有参与人员之间的交流与合作。孕育了基于计算机系统和软件产品的现代商业环境,正以飞快的节奏不断变化着,敏捷软件工程提出了可用于特定类型软件和软件项目的不同于传统软件工程的合理方案。事实证明,这一方法可以快速交付成功的系统。敏捷软件工程敏捷开发恰当的称呼应当是“类软件工程”,它保留了基本框架活动:客户沟通、策划、建模、构建、交付和评估,但将其缩减到一个推动项目组朝着构建和交付发展的最小任务集(有人认为这是以牺牲问题分析和方案设计为代价而实现的)敏捷软件工程接受敏捷理念的客户和软件工程师有共同的观点:唯一真正重要的工作产品是在合适时间提交给客户的可运行软件增量。如果敏捷团队认为过程可行,开发出的可交付软件增量能使客户满意,则表明敏捷方法已经正确实施。敏捷软件开发宣言个人和这些个人之间的交流胜过开发过程和工具可运行的软件胜过宽泛的文档客户合作胜过合同谈判对变更的良好响应胜过了按部就班地遵循计划亦即,虽说上述右边的各项很有价值,但我们认为左边的各项具有更大的价值敏捷方法本质上讲,敏捷方法是为了克服传统软件工程中认识和实践的弱点开发而成的。敏捷开发可以带来多方面的好处,但它并不完全对立于传统软件工程实践,也不能作为超越一切的哲学理念而用于所有软件工作。敏捷方法不确定性意味着变更,而变更意味着付出昂贵的成本,特别是在其失去控制或疏于管理的情况下。而敏捷方法最具强制性的特点之一就是它能够通过软件过程来降低由变更所引起的代价。惯例过程模型的主要缺陷(COC02a)忘记了开发计算机软件的人员的弱点。软件工程师在工作方式上有很大差别,在技能水平、主动性、服从性、一致性和责任心方面也有巨大差异。一部分人可以通过书面方式很好地沟通,而有些人则不行。过程模型可以“利用纪律或者宽容来处理人的这一共同弱点”,大多数惯例过程模型选择了纪律,“不能一致连贯地做同一件事是人性的弱点,因而高度纪律性的方法学非常脆弱。”什么是敏捷敏捷已经成为当今描述现代软件过程的时髦用词。每个人都是敏捷的,敏捷团队是能够适当响应变化的灵活团队。变化就是软件开发本身,软件构建有变化、团队成员在变化、使用新技术会带来变化,各种变化都会对开发的软件产品以及项目本身造成影响。我们必须接受“支持变化”的思想,它应当根植于软件开发中的每一件事中,因为这是软件的心脏与灵魂。敏捷团队意识到软件是团队中所有人共同开发完成的,这些人的个人技能和合作能力是项目成功的关键所在。敏捷及变更的成本费用软件开发的传统方法中变化的成本费用随着计划的进展成非线性增长。这种方法在软件开发团队收集需求时相对容易适应变化。但是假设如果在进行确认测试的过程中变更一个主要的功能。这一变更需要对软件的体系结构设计进行修改,包括设计和构建三个新组件,修改另外五个组件,设计新的测试等,则费用会迅速上升。见课本41页图3.1。敏捷及变更的成本费用敏捷的拥护者认为,一个设计良好的敏捷过程“拉平”了变更成本曲线,使软件开发团队在没有超常规的时间和费用影响的情况下,在软件项目后期能够适应各种变化。敏捷过程任何一个敏捷过程都可以由所强调的三个关键假设来识别:1.提前预测哪些需求是稳定的而哪些需求会变更非常困难。同样,预测项目进行中客户优先级的变更也很困难。2.对很多软件来说,设计和构建是交错进行的。3.从制定计划的角度看,分析、设计、构建和测试并不像我们所设想的那么容易预测。敏捷联盟定义的12条原则1、我们最优先要做的是通过尽早、持续交付有价值的软件来使客户满意。2、即使在开发的后期,也欢迎需求变更。敏捷过程利用变更为客户创造竞争优势。3、经常交付可工作软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。4、在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。敏捷联盟定义的12条原则5、围绕受激励的个人构建项目。给他们提供所需的环境和支持,并且信任他们能够完成工作。6、在团队内部,最富有效果和效率的信息传递方法是面对面交谈。7、可工作软件是进度的首要度量标准。8、敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一种长期、稳
文档评论(0)