敏捷软件开发 源码-敏捷开发与瀑布开发
摘要:本文简单阐述了敏捷开发方法的原理,介绍了敏捷软件开发方法的概念及其与传统软件开发方法的区别。 结合当前软件行业的实际情况,从优缺点、功能、适应性等方面进行分析。 对比了几种敏捷软件开发方法,帮助我们在开发中使用合适的敏捷软件开发方法。
关键词:XP SCRUM DSDM 水晶 FDD ASD
CLC 编号:TP2 文档代码:A 文章编号:1007-9416 (2014) 05-0188-01
1 简介
自软件工程出现以来,我们在降低软件开发项目风险的过程中尝试了多种方法。 面向对象、结构化、CMM等技术虽然有利于帮助解决软件危机,但其复杂的过程使软件行业陷入了低效的泥潭。 2001年,Kent Beck Martin Fowler Robert Martin等经验主义阵营的领袖发起了敏捷联盟,并向世界发布了他们的宣言:个人和交互优于流程和工具; 可工作的软件胜于理解文档; 客户合作胜于合同谈判; 响应变化胜于遵循计划。 宣言体现了软件开发方法必须适应软件变化的特点,并基于宣言提出了敏捷软件开发方法。
2 敏捷方法概述
截至目前,敏捷软件开发方法还没有明确的定义。 但其特点是注重软件生产效率。 适用于软件需求不确定,易于沟通和参与开发的用户,有责任感和积极性,十人以下的开发人员,以保证软件开发的成功。 产出是前提,开发过程中尽量减少成品数量的方法体现了“刚好够用”的观点。
以人为核心、循序渐进、算法迭代是敏捷软件开发的原则。 在敏捷软件开发过程中,将一个软件项目分解成许多小项目,对每个小项目的结果进行测试,然后进行集成。 它的灵活性、协作性和对软件商业价值的贡献是敏捷软件开发方法的优势。 这体现在《敏捷宣言》的核心原则中:交互和独立工作以工具和流程为基础,软件使用以文档为基础,客户协作以合同谈判为基础。 , 对变化的响应基于遵循计划。
3 几种常用的敏捷方法比较
3.1 极限编程(XP)
极限编程(简称XP)是由Kent Beck于1996年提出的,极限编程要求其中所列的每一个思想和方法都是极限和最好的。
极限编程的核心价值就是我们在开发中必须要注意的:Communication(沟通)、Simplicity(简单)、Feedback(反馈)、Courage(勇气),还有第五个价值:Modesty(谦虚)。 因为计划赶不上变化,所以使用极限编程的软件开发者只需要在开发初期做一些文档即可。 极限编程将软件测试放在首位敏捷软件开发 源码,以便将以后出现错误的可能性降到最低。
极限编程是一种近螺旋式的开发方式,将复杂的开发分解成相对简单的小软件; 通过沟通、反馈等方式,客户和开发者可以清楚地了解开发进度、变化、难点和急需解决的问题等,及时调整开发流程。
3.2 敏捷
SCRUM的目的是利用组件技术和面向对象开发方法改进迭代式面向对象方法,适用于需求不确定的产品开发。 它是一个迭代和增量过程,有助于工作管理和产品开发。 更全面的各项开发经验。
SCRUM将项目分成N个15-30天的迭代,称为“冲刺”。 在每次“冲刺”之前敏捷软件开发 源码,你明确了本次“冲刺”需要实现的功能,然后让开发人员去完成。 但是,在“冲刺”中,SCRUM的核心是所有的开发都围绕迭代进行,需求是固定的。 SCRUM 方法中只有 3 个角色:SCRUM 主管、开发团队和产品负责人。
3.3 动态系统开发方法(DSDM)
面向领域的快速开发方法的发展是动态系统开发方法产生的原因。 动态系统开发方式在技术支持、应用推广、研究改进培训认证、培训认证等方面较其他方式更为完善。 适合时间要求。 对于非常紧凑的开发项目,动态系统开发方法的应用范围不再局限于IT行业。
DSDM方法提倡以业务为核心,快速有效地开发系统,提出了探索性开发方法的概念。 强调软件用户不可能从一开始就预见到所有需求。 在该方法中,只要能进入下一步,则当前算法是可行的。
3.4 结晶法(Crystal)
晶体法是由 Alistair Cockburn 在 1990 年代后期提出的。 晶体方法的目的是开发一种促进“流动性”的方法。
Crystal根据项目的重要性和规模来区分项目,并提供相应的方法。 因此,Crystal 是多种方法的组合。 它阐明了将对话和沟通放在首位的要点。 Crystal 方法中有两条准则:(1) 反思性研讨会的使用有助于方法论的调整,以及 (2) 增量周期的使用不超过 4 个月。
3.5 特征驱动开发(FDD)
特征驱动开发是一种强调快速迭代和特征驱动的软件开发方法,适用于短周期开发。 既能保证文档和质量,又能保证软件的快速开发。 提出划分的每个功能的开发时间不超过两周,要求在两周内产出可见可操作的代码。
特性驱动的开发方式认为简单的流程和良好的定义就能很好的执行。 它强调实用性、简化性和易于开发人员接受。 这是一个特征驱动的快速迭代的过程。 适用的项目经常变化。
3.6 自适应软件开发(ASD)
自适应软件开发方法的理论来源是复杂自适应系统理论。 目的是提高软件开发的自适应能力,以应对软件需求难以预测和高速变化的互联网时代的软件开发。 它和水晶法是相互学习和融合的。
在结果不可预测的环境中,将计划视为悖论。 在计划中,偏离计划是错误的,必须改正。 在自适应环境中,与计划的偏差正是引导开发人员朝着正确目标前进的原因。 在不可预测的环境中,我们需要使用多种方法来应对不确定性。 在管理中,重点是鼓励沟通而不是告诉人们需要做什么,这样开发人员才能自己想出创造性的解决方案。
4 结语
不同的开发方式对不同的开发者意味着不同的东西。 不同的项目规模和不同的开发环境也决定了开发团队采用哪种开发方式。 本文仅对敏捷开发方式进行简单介绍,相信能为开发团队在实践中选择方式提供更客观的参考。
参考
[1] 杨帆,徐俊刚. 一种改进的Scrum敏捷软件开发方法[J]. 电子技术,2011。
[2](美)阿利斯泰尔·科伯恩,苏景凯译。 敏捷软件开发[M]. 机械工业出版社,2008.