软件工程敏捷软件开发.ppt
《软件工程敏捷软件开发.ppt》由会员分享,可在线阅读,更多相关《软件工程敏捷软件开发.ppt(47页珍藏版)》请在第壹文秘上搜索。
1、 软件工程软件工程 极限编程(极限编程(XP)方法)方法 相关敏捷过程模型相关敏捷过程模型 Scrum方法方法 动态系统开发方法动态系统开发方法 敏捷建模敏捷建模 敏捷统一过程敏捷统一过程2 软件工程软件工程 软件开发的新挑战软件开发的新挑战快速的市场进入时间,要求高生产率快速的市场进入时间,要求高生产率快速变化的需求快速变化的需求快速发展的技术快速发展的技术 传统的软件开发方法传统的软件开发方法强调过程和文档强调过程和文档对变化的适应能力偏弱对变化的适应能力偏弱3 Martin Fowler认为:认为:提前预测需求是困难的。同样,对项目进行提前预测需求是困难的。同样,对项目进行过程中客户需求
2、优先级的变更进行预测也很过程中客户需求优先级的变更进行预测也很困难困难对很多项目来说,软件设计和构建是交错进对很多项目来说,软件设计和构建是交错进行的。也就是说,设计需要通过实施构建来行的。也就是说,设计需要通过实施构建来获得验证,而在构建的过程中新获得的知识获得验证,而在构建的过程中新获得的知识又可以帮助设计又可以帮助设计从制定计划的角度来看,分析、设计、构建从制定计划的角度来看,分析、设计、构建和测试活动并不容易预测和测试活动并不容易预测 软件工程软件工程4 软件工程软件工程5 强调强调适应性适应性而不是可预测性而不是可预测性 经典软件开发方法经典软件开发方法:通过控制变化实现软件开发的通
3、过控制变化实现软件开发的可预测性可预测性 敏捷敏捷软件开发方法软件开发方法:变化变化是不可避免的,应该通过是不可避免的,应该通过改善管理实践和工程实践来更好地适应改善管理实践和工程实践来更好地适应变化变化 强调强调人人在在项目中项目中的的关键作用关键作用 敏捷软件开发认为人不是可以互相替换的敏捷软件开发认为人不是可以互相替换的“编程部编程部件件”,而是具有创造力的个体,成功的软件开发活,而是具有创造力的个体,成功的软件开发活动依赖于人的主观能动性动依赖于人的主观能动性 软件工程软件工程6 软件工程软件工程 强调强调“刚刚好刚刚好”(Just enough) 在保证软件开发有成功产出的前提下,尽
4、量减少开在保证软件开发有成功产出的前提下,尽量减少开发过程中的活动和制品的方法,即开发中的活动及发过程中的活动和制品的方法,即开发中的活动及制品既不要太多也不要太少制品既不要太多也不要太少7 从从20世纪世纪90年代开始,逐渐产生了一大年代开始,逐渐产生了一大批敏捷软件开发方法批敏捷软件开发方法其中比较有影响的包括:极限编程、其中比较有影响的包括:极限编程、Scrum、看板方法、精益软件开发方法、水晶软件开发看板方法、精益软件开发方法、水晶软件开发方法(方法(crystal)、自适应软件开发()、自适应软件开发(adaptive software development,ASD)、动态系统开)
5、、动态系统开发方法(发方法(dynamic system development method,DSDM)等)等 软件工程软件工程8 2001年年2月,月,17位敏捷方法的先驱在美国位敏捷方法的先驱在美国犹他州召开了为期犹他州召开了为期2天的会议,天的会议,成立了敏成立了敏捷软件开发联盟捷软件开发联盟 并并发布了发布了“敏捷宣言敏捷宣言” 该宣言由四个价值观声明组成,并提炼出该宣言由四个价值观声明组成,并提炼出敏捷软件开发方法必须遵循的敏捷软件开发方法必须遵循的12条原则条原则 软件工程软件工程9我们我们正通过亲身或者协助他人进行软件开发实践来正通过亲身或者协助他人进行软件开发实践来探索更好的
6、软件开发方法。探索更好的软件开发方法。基于此,我们建立了如下的价值观:基于此,我们建立了如下的价值观:个体个体和交互和交互 重于重于 过程和工具过程和工具工作的软件工作的软件 重于重于 详尽的文档详尽的文档客户合作客户合作 重于重于 合同谈判合同谈判响应变化响应变化 重于重于 遵循计划遵循计划也就是说也就是说,尽管右项有其价值,尽管右项有其价值,我们更重视左项的价值我们更重视左项的价值 软件工程软件工程10 软件工程软件工程 过程和工具是重要的,但是软件开发中人的作用和过程和工具是重要的,但是软件开发中人的作用和交流的作用更需要被进一步强调交流的作用更需要被进一步强调 软件是由人组成的团队来开
7、发的,与软件项目相关软件是由人组成的团队来开发的,与软件项目相关的各类人员通过充分的交流和有效的合作,才能成的各类人员通过充分的交流和有效的合作,才能成功地开发出得到用户满意的软件功地开发出得到用户满意的软件 如果光有定义良好的过程和先进的工具,而人员的如果光有定义良好的过程和先进的工具,而人员的技能很差,或者不能很好地交流和协作,软件是很技能很差,或者不能很好地交流和协作,软件是很难成功地开发的难成功地开发的11 软件工程软件工程可以工作的软件是软件开发工作的最终目标可以工作的软件是软件开发工作的最终目标好的好的必要的文必要的文档能档能帮助我们理解软件做什么,怎么帮助我们理解软件做什么,怎么
8、做以及如何使用做以及如何使用,是有价值的。但是,软,是有价值的。但是,软件开发的件开发的主要目主要目标仍然是标仍然是创建可运行的创建可运行的软件软件敏捷敏捷软件开发强调不断地快速地向用户提交可运行软件开发强调不断地快速地向用户提交可运行的软件(不一定是完整的软件),以得到用户的的软件(不一定是完整的软件),以得到用户的认认可可12 软件工程软件工程 只有客户才能明确说明需要什么样的软件,然而,只有客户才能明确说明需要什么样的软件,然而,大量的实践表明,在开发的早期客户常常不能完整大量的实践表明,在开发的早期客户常常不能完整地表达他们的全部需求,有些早期确定的需求,以地表达他们的全部需求,有些早
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 敏捷 软件 开发
![提示](https://www.1wenmi.com/images/bang_tan.gif)