【读书笔记】软件工程·实践者的研究方法第7版 第一部分 软件过程(第3章 敏捷开发)

敏捷方法:有时也成为轻量级方法或精简方法,敏捷过程

敏捷方法是为了克服传统软件工程中认识和实践的弱点而形成的。能够带来多方面的好处,但非万能,也不完全跟传统的软件工程实践对立。

敏捷过程:很容易适应变化并迅速做出自我调整,在保证质量的前提下,实现企业效益最大化;Just enough,不多不少

1、敏捷有效响应变化

2、鼓励使沟通更加便利的团队结构和协作态度。

3、强调可运行软件的快速交付,而非中间产品

4、将客户作为开发团队的成员

5、项目计划必须灵活,可调整


敏捷过程的核心理念:

1、基于适应而非预测:通过快速、短迭代的开发,不断产出和演化可运行软件,根据用户的反馈持续做出适应性调整,如此循环

2、以人为导向而非过程


适用情况:

1、需求不确定、易挥发

2、有责任感和积极向上的开发人员

3、用户容易沟通并能参与

4、小于10人的团队


极限编程(XP):敏捷软件开发使用最广泛的一个方法

五个要素贯穿每个活动:

1、沟通:隐喻,系统如何工作的故事(类似用例);连续的反馈,避免过繁的文档

2、简明:只考虑当前、即时的需求,不考虑长远

3、反馈:使用单元测试作为主要的测试策略;提交增量是以用户故事(用例)作为验收测试的基础;把费用和进度反馈给客户

4、鼓励:或可成为“纪律”,为今天做设计的几率,以免变化后的返工

5、尊重:互相尊重,尊重XP过程


XP过程:


1、策划:需求获得(用户故事),指定权值(优先级),估算故事时间,根据上次反馈修正本次速度

2、设计:KIS(保持简洁)原则;使用CRC卡(类-责任-协作者)(唯一的设计工作产品);评估设计原型(Spike原型);设计可以在开始编码后进行(重构)

3、编码:重构;测试驱动;结对编程;连续集成;冒烟测试

4、测试:连续集成,自动化回归测试;验收测试


RUP与XP的共性:

1、面向对象

2、代码、文档的最小化 和设计的简化

3、动态适应变化的演进式迭代周期

4、需求和测试驱动

5、鼓励用户参与


RUP和XP的区别:

1、XP以代码为中心,编码和设计融为一体,弱化架构;RUP以架构为中心

2、XP无业务建模、部署、过程管理等概念。只适用于小团队;RUP适合各种规模


IXP:工业极限编程。使用大型组织

ASD:自适应软件开发。

SCRUM:冲刺。对时间紧迫,需求变更和业务重要

DSDM:倡导时间调度的使用,增量仅仅足够进入下一次增量

Crystal:可用于特定特征的项目

FDD:特征驱动开发。更形式化,可以在两周或更短时间实现具有客户价值的功能

LSD:精益求精

AM:敏捷建模认为建模对所有系统都是必要的,但其复杂度要调整

AUP:敏捷统一过程。“全局串行”和“局部迭代”

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ku360517703/article/details/16841511
个人分类: 软件工程
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

【读书笔记】软件工程·实践者的研究方法第7版 第一部分 软件过程(第3章 敏捷开发)

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭