版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 一些经验丰富的软件设计师在应对一些经验丰富的软件设计师在应对快速交付、需求易变的开发要求实践中快速交付、需求易变的开发要求实践中分别总结出自己独特且有效的软件开发分别总结出自己独特且有效的软件开发方法,被业界概括为敏捷软件开发方法。方法,被业界概括为敏捷软件开发方法。其中以其中以“极限编程极限编程”最为流行。最为流行。 敏捷软件开发方法其实不是一个具体的过程,敏捷软件开发方法其实不是一个具体的过程,而是一个涵盖性术语。用于概括那些应需而生的而是一个涵盖性术语。用于概括那些应需而生的具有类似价值观的软件开发方式和方法,这些方具有类似价值观的软件开发方式和方法,这些方法一般都具有以人为核心、循环
2、迭代、响应变化法一般都具有以人为核心、循环迭代、响应变化等特点,着眼于能高质量地快速交付客户满意的等特点,着眼于能高质量地快速交付客户满意的工作软件。工作软件。代表性的敏捷开发方法代表性的敏捷开发方法 极限编程极限编程(eXtreme Programming,简称,简称XP) 特征驱动软件开发(特征驱动软件开发(Feature Driven Development,简称,简称FDD) 动态系统开发(动态系统开发(Dynamic Systems Development Methodology,简称,简称DSDM) 自适应软件开发自适应软件开发(Adaptive Software Developm
3、ent,简称,简称ASD) SCRUM(一种项目管理方法一种项目管理方法) Crystal(水晶法)(水晶法)n个体与交互重于过程与工具个体与交互重于过程与工具n可以工作的软件重于面面俱到的文档可以工作的软件重于面面俱到的文档n与客户的合作重于与其合同的谈判与客户的合作重于与其合同的谈判n对变化的响应重于对计划的遵循对变化的响应重于对计划的遵循 可见,敏捷的软件开发方法的理念是,在保证软件开发有可见,敏捷的软件开发方法的理念是,在保证软件开发有成功产出的前提下,尽量减少开发过程中的活动和制品的方法;成功产出的前提下,尽量减少开发过程中的活动和制品的方法;在满足软件质量要求的前提下,力求适应变化
4、和提高开发效率。在满足软件质量要求的前提下,力求适应变化和提高开发效率。 1.就敏捷开发而言,最重要的是通过尽早和不断交付就敏捷开发而言,最重要的是通过尽早和不断交付有价值的软件来满足客户的需求。有价值的软件来满足客户的需求。2.敏捷开发欢迎需求的变化,即使是开发后期。敏捷敏捷开发欢迎需求的变化,即使是开发后期。敏捷过程能够驾驭变化并以此为客户创造竞争优势。过程能够驾驭变化并以此为客户创造竞争优势。3.经常交付可以工作的软件,从几个星期到几个月,经常交付可以工作的软件,从几个星期到几个月,时间间隔越短越好。时间间隔越短越好。4.业务人员和开发人员应该在整个项目过程中始终朝业务人员和开发人员应该
5、在整个项目过程中始终朝夕在一起工作。夕在一起工作。5.围绕斗志高昂的人进行软件开发,给他们提供适宜围绕斗志高昂的人进行软件开发,给他们提供适宜的环境,满足他们的需要,并相信他们能够完成任的环境,满足他们的需要,并相信他们能够完成任务。务。6.在团队中,最有效率也最有效果的信息表达方式是面在团队中,最有效率也最有效果的信息表达方式是面对面的交谈。对面的交谈。7.可以工作的软件是进度的主要度量标准。可以工作的软件是进度的主要度量标准。8.敏捷过程提倡可持续的开发速度。责任人、开发者和敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该总是维持不变的节奏。用户应该总是维持不变的节奏。9.对优秀的技
6、能与好的设计的不断追求将有助于提高敏对优秀的技能与好的设计的不断追求将有助于提高敏捷能力。捷能力。10. 简单简单尽可能减少工作量的艺术是至关重要的。尽可能减少工作量的艺术是至关重要的。11. 最好的架构、需求和设计都源自自组织的团队。最好的架构、需求和设计都源自自组织的团队。12. 每隔一定时间,团队都要总结如何更有效率,然后相每隔一定时间,团队都要总结如何更有效率,然后相应地调整自己的行为。应地调整自己的行为。 XP方法的基础是方法的基础是4个价值观念:个价值观念: 沟通。大多数项目的失败源于沟通不畅,所以要沟通。大多数项目的失败源于沟通不畅,所以要进行一些能够推动积极沟通的实践。进行一些
7、能够推动积极沟通的实践。 简单。开发能够满足客户需要的最简单的产品。简单。开发能够满足客户需要的最简单的产品。 反馈。开发者必须要获取并且重视来自客户、系反馈。开发者必须要获取并且重视来自客户、系统的反馈以及相互之间的反馈。统的反馈以及相互之间的反馈。 勇气。准备好做出支持其他原则和实践的艰难决勇气。准备好做出支持其他原则和实践的艰难决定。定。 XP在在4个价值观之上,又定义了个价值观之上,又定义了12个的必须遵循的实践:个的必须遵循的实践:1. 完整团队:完整团队:XP项目的所有参与者(开发人员、客户、测试项目的所有参与者(开发人员、客户、测试人员等)一起工作在一个开放的场所中,他们是同一个
8、团人员等)一起工作在一个开放的场所中,他们是同一个团队的成员。这个场所的墙壁上随意悬挂着大幅的、显著的队的成员。这个场所的墙壁上随意悬挂着大幅的、显著的图表以及其他一些显示他们进度的东西。图表以及其他一些显示他们进度的东西。2. 计划游戏:计划是持续的、循序渐进的。每计划游戏:计划是持续的、循序渐进的。每2周,开发人员周,开发人员就为下就为下2周估算候选特性的成本,而客户则根据成本和商周估算候选特性的成本,而客户则根据成本和商务价值来选择要实现的特性。务价值来选择要实现的特性。3. 客户测试:作为选择每个所期望的特性的一部分,客户可客户测试:作为选择每个所期望的特性的一部分,客户可以根据脚本语
9、言来定义出自动验收测试来表明该特性可以以根据脚本语言来定义出自动验收测试来表明该特性可以工作。工作。4. 简单设计:团队保持设计恰好和当前的系统功能相匹简单设计:团队保持设计恰好和当前的系统功能相匹配。它通过了所有的测试,不包含任何重复,表达配。它通过了所有的测试,不包含任何重复,表达出了编写者想表达的所有东西,并且包含尽可能少出了编写者想表达的所有东西,并且包含尽可能少的代码。的代码。5. 结对编程:所有的产品软件都是由两个程序员、并排结对编程:所有的产品软件都是由两个程序员、并排坐在一起在同一台机器上构建的。坐在一起在同一台机器上构建的。6. 测试驱动开发:编写单元测试是一个验证行为,更是
10、测试驱动开发:编写单元测试是一个验证行为,更是一个设计行为。同样,它更是一种编写文档的行为。一个设计行为。同样,它更是一种编写文档的行为。编写单元测试避免了相当数量的反馈循环,尤其是编写单元测试避免了相当数量的反馈循环,尤其是功功能能验证方面的反馈循环。程序员以非常短的功功能能验证方面的反馈循环。程序员以非常短的循环周期工作,他们先增加一个失败的测试,然后循环周期工作,他们先增加一个失败的测试,然后使之通过使之通过。 7. 改进设计:随时利用重构方法改进已经腐化改进设计:随时利用重构方法改进已经腐化的代码,保持代码尽可能的干净、具有表达的代码,保持代码尽可能的干净、具有表达力。力。8.持续集成
11、:团队总是使系统完整地被集成。持续集成:团队总是使系统完整地被集成。9.集体代码所有权:任何结对的程序员都可以集体代码所有权:任何结对的程序员都可以在任何时候改进任何代码。没有程序员对任在任何时候改进任何代码。没有程序员对任何一个特定的模块或技术单独负责,每个人何一个特定的模块或技术单独负责,每个人都可以参与任何其它方面的开发。都可以参与任何其它方面的开发。10. 编码标准:系统中所有的代码看起来就好像编码标准:系统中所有的代码看起来就好像是一人单独编写的。是一人单独编写的。11. 隐喻:将整个系统联系在一起的全局视图的隐喻:将整个系统联系在一起的全局视图的概念。它是系统的未来影像,是它使得所
12、有单概念。它是系统的未来影像,是它使得所有单独模块的位置和外观变得明显直观。如果模块独模块的位置和外观变得明显直观。如果模块的外观与整个隐喻不符,那么你就知道该模块的外观与整个隐喻不符,那么你就知道该模块是错误的。是错误的。12. 可持续的速度:团队只有持久才有获胜的希可持续的速度:团队只有持久才有获胜的希望。他们以能够长期维持的速度努力工作,他望。他们以能够长期维持的速度努力工作,他们保存精力,把项目看作是马拉松长跑,而不们保存精力,把项目看作是马拉松长跑,而不是全速短跑。是全速短跑。 极限编程是一组简单、具体的实践,这极限编程是一组简单、具体的实践,这些实践结合在一起形成了一个敏捷开发过程
13、。些实践结合在一起形成了一个敏捷开发过程。极限编程是一种优良的、通用的软件开发方极限编程是一种优良的、通用的软件开发方法,项目团队可以拿来直接采用,也可以增法,项目团队可以拿来直接采用,也可以增加一些实践,或者对其中的一些实践进行修加一些实践,或者对其中的一些实践进行修改后再采用。改后再采用。 二者的比较:二者的比较: “敏捷宣言敏捷宣言”把关注的焦点从传统的计划把关注的焦点从传统的计划驱动、基于过程的方法转移到更轻量、适驱动、基于过程的方法转移到更轻量、适应性更强的开发范型。应性更强的开发范型。 但并不意味着可以忽略对传统方法中强过但并不意味着可以忽略对传统方法中强过程规范和严格准则的需要,
14、这些软件开发程规范和严格准则的需要,这些软件开发方法为规范软件开发的过程,提高软件项方法为规范软件开发的过程,提高软件项目的成功率起了重要的作用。目的成功率起了重要的作用。 如同过于繁琐与官僚化的过程和文档阻碍软件如同过于繁琐与官僚化的过程和文档阻碍软件开发一样,过度地强调简单与抛弃文档也会对开发一样,过度地强调简单与抛弃文档也会对软件项目造成伤害。软件项目造成伤害。 纯粹的敏捷开发方法同样要求软件企业组织管纯粹的敏捷开发方法同样要求软件企业组织管理能力和开发人员个人非常高的素质理能力和开发人员个人非常高的素质 传统的计划驱动方法的擅长领域通常是大型、传统的计划驱动方法的擅长领域通常是大型、复
15、杂的系统,这些系统时常具有关键的安全性复杂的系统,这些系统时常具有关键的安全性或者其他高可靠性的属性。需求应该相当稳定,或者其他高可靠性的属性。需求应该相当稳定,环境也具有相当的可预见性。环境也具有相当的可预见性。 敏捷方法则更适用于那些系统和开发团队规模敏捷方法则更适用于那些系统和开发团队规模较小、客户和系统的使用者随时可以到位、需较小、客户和系统的使用者随时可以到位、需求和环境容易变化的项目。求和环境容易变化的项目。 平衡敏捷与规范:平衡敏捷与规范: 为了维持相关性并符合客户的需要和期望,国防为了维持相关性并符合客户的需要和期望,国防和其他大型系统必须找到适当的途径在它们的方和其他大型系统
16、必须找到适当的途径在它们的方法学中融合敏捷性。但仍必须把规范作为适应性法学中融合敏捷性。但仍必须把规范作为适应性的基础。的基础。 典型地,可以将敏捷方法与统一软件开发过程典型地,可以将敏捷方法与统一软件开发过程(RUP)等规范方法相结合。比如,等规范方法相结合。比如,RUP作为整体框作为整体框架,负责最初前景分析、商业计划,敏捷建模负架,负责最初前景分析、商业计划,敏捷建模负责业务建模,具体开发使用责业务建模,具体开发使用XP等敏捷方法。而在等敏捷方法。而在整个项目的项目管理、配置管理、质量管理使用整个项目的项目管理、配置管理、质量管理使用RUP。进一步可将。进一步可将SW-CMM作为整个过程
17、改进的作为整个过程改进的目标,根据目标,根据CMM五级目标可以制定与过程改进相五级目标可以制定与过程改进相符的阶段目标和长远目标。符的阶段目标和长远目标。 极限编程的极限编程的12个核心实践具体分来有如下个核心实践具体分来有如下四个方面一些细则内容:四个方面一些细则内容: 1. 计划计划写出用户素材;写出用户素材;根据发布版本计划编制进度表;根据发布版本计划编制进度表;频繁发布小版本频繁发布小版本:度量项目速度;度量项目速度;这个项目划分为多个迭代;这个项目划分为多个迭代;每次迭代开始前制定迭代计划;每次迭代开始前制定迭代计划;角色互换;角色互换;每日立式晨会;每日立式晨会;根据项目情况对根据
18、项目情况对XP作出调整。作出调整。2. 设计设计 简单;简单; 选取一个系统比喻;选取一个系统比喻; 在设计会上使用在设计会上使用CRC卡片;卡片; 通过探针方案降低风险;通过探针方案降低风险; 不要过早加入任何功能;不要过早加入任何功能; 尽可能的进行重构。尽可能的进行重构。 是目前比较流行的面向对象是目前比较流行的面向对象分析建模方法。在分析建模方法。在CRC建模建模中,用户、设计者、开发人中,用户、设计者、开发人员都有参与,完成对整个面员都有参与,完成对整个面向对象工程的设计。向对象工程的设计。 CRC卡是一个标准索引卡集卡是一个标准索引卡集合,包括三个部分:类名、合,包括三个部分:类名、类的职责、类的协作关系,类的职责、类的协作关系,每一张卡片表示一个类。每一张卡片表示一个类。 3. 编码编码 客户一直在场;客户一直在场; 代码必须符合相应的编码标准;代
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络游戏公司前台接待总结
- 2025年全球及中国神经外科分流器行业头部企业市场占有率及排名调研报告
- 2025-2030全球草坪护理CRM软件行业调研及趋势分析报告
- 2025年全球及中国导向销行业头部企业市场占有率及排名调研报告
- 2025年全球及中国古董搬运行业头部企业市场占有率及排名调研报告
- 2025-2030全球双膜储气罐行业调研及趋势分析报告
- 2025-2030全球环保EPDM颗粒行业调研及趋势分析报告
- 2025-2030全球坏死性筋膜炎药品行业调研及趋势分析报告
- 2025-2030全球车辆后备箱释放电缆行业调研及趋势分析报告
- 2025-2030全球光伏舟托行业调研及趋势分析报告
- 第十一章《功和机械能》达标测试卷(含答案)2024-2025学年度人教版物理八年级下册
- 2025年销售部年度工作计划
- 2024年苏州工业园区服务外包职业学院高职单招职业适应性测试历年参考题库含答案解析
- ESG表现对企业财务绩效的影响研究
- DB3713T 340-2024 实景三维数据接口及服务发布技术规范
- 八年级生物开学摸底考(长沙专用)(考试版)
- 车间空调岗位送风方案
- 使用错误评估报告(可用性工程)模版
- 初一年级班主任上学期工作总结
- 2023-2024年同等学力经济学综合真题及参考答案
- 农村集体土地使用权转让协议
评论
0/150
提交评论