敏捷软件开发又称敏捷开发,一种应对快速变化的需求的一种软件开发能力,是为了在没有计划的软件开发和过度计划的软件工程上面寻找一个平衡点。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用。
由于敏捷软件开发也属于软件工程范畴,所以下面将基于大量文档工程型的软件工程称为传统软件工程。敏捷软件开发只要求尽量少的文档,而且认为最根本的文档是源代码。Martin Fowler认为敏捷软件开发过程和基于传统软件工程开发的本质区别在于以下两点:
(1)敏捷软件开发是基于适应的,而传统软件工程是基于预测的。传统软件工程试图对一个软件项目在很长的时间跨度内做出详细的计划,然后依计划进行开发。这种方式的前提是需求确定下来后就不再修改了,所以,传统软件工程本质上是抵制变化的。而敏捷开发方法则是主动去适应变化。
(2)敏捷软件开发方法以人为导向,而传统软件工程方法则以过程为导向。传统软件工程的目标是定义一个过程,不论谁来执行这个过程都能完成任务;而敏捷软件开发方法则认为没有任何过程能替代开发团队的技能,软件过程的作用是对开发团队提供支持。
敏捷软件开发是一种软件开发的理念,它包含很多实际的方法,如极限编程(XP),Scram和精悍开发(LeanDevelopment) 等,在教学实践上,需要选定一种开发方法指导学生进行实际开发,以加深对敏捷软件开发的理解。由于在以上方法中,极限编程最为流行,所以本文选用极限编程 作为教学的软件开发方法。
Copyright© 2012-2013 TATAIT.COM All Rights Reserved 深圳塔塔咨询服务有限公司 版权所有 深圳网站建设:沙漠风
塔塔IT—高端IT培训领导品牌,专注于IT前沿技术的传播与应用。专业创造价值,服务赢得口碑!