当前位置:   article > 正文

软件工程 - chapter02 - 敏捷开发_试着再加上一条敏捷原则使软件工程团队更具有机动性

试着再加上一条敏捷原则使软件工程团队更具有机动性

目录

3. 敏捷开发

3.1 什么是敏捷?

3.2 敏捷及变更的成本费用

3.3 敏捷过程是什么?

3.3.1 敏捷原则

3.3.2 敏捷开发的战略

3.3.3 人的因素

3.4 极限编程(XP)

3.4.1 极限编程的权值

3.4.2 极限编程过程

3.4.3 工业极限编程(IXP)

3.4.4 关于XP的争论

3.5 其他敏捷过程模型

3.5.1 自适应软件开发

3.5.2 Scrum

3.5.3 动态系统开发方法(DSDM)

3.5.4 Crystal 

3.5.5 特征驱动开发(FDD)

3.5.6 精益软件开发(LSD)

3.5.7 敏捷建模(AM)

3.5.8 敏捷统一过程(AUP)

3.6 敏捷过程工具集


3. 敏捷开发

3.1 什么是敏捷?

在开发一个软件过程中,软件构件在变化、团队成员在变化、技术在变化。我们开发必须适应这种变化。做到‘敏捷’地调整策略,成为一个能够适应这些变化的敏捷开发团队。

3.2 敏捷及变更的成本费用

敏捷过程(包含增量交付)能够降低变更的成本是因为软件产品以增量方式发布,而且在增量的内部变更能得到较好的控制。

使用增量交付,变更费用显著降低。

3.3 敏捷过程是什么?

软件开发是不可预测的。敏捷软件过程必须增量地适应,敏捷团队需要客户的反馈来做出正确的适应性改变。应当采用增量式开发策略,必须在短时间间隔内交付软件增量来适应变更。

3.3.1 敏捷原则

定义了12项敏捷精神

1.尽早、持续的交付有价值的软件给客户

2.在开发后期也接受需求的变更

3.频繁的交付可运行的软件

4.业务人员和开发人员必须一起工作

5.给积极的开发人员支持

6.团队内面对面交谈

7.可运行软件是进度的首要度量标准

8.可持续的开发速度

9.不断关注优秀技术、设计

10.简单

11.团队有组织性

12.反省

3.3.2 敏捷开发的战略

什么是最佳的实现途径?

怎么设计出满足客户长期需求的扩展能力?

这两个问题没有绝对正确的答案。

在敏捷与软件工程之间做选择不是必须的。自定义一个敏捷软件工程方式的最好的选择。

3.3.3 人的因素

敏捷开发团队及成员应具备以下特点:

1.基本能力

2.共同目标

3.精诚合作

4.决策能力

5.模糊问题解决能力

6.相互信任和尊重

7.自组织

3.4 极限编程(XP)

这是敏捷软件开发使用最广泛的方法

3.4.1 极限编程的权值

XP 限制开发者只对当前需求做设计,不考虑长远需求。

这样做使得代码设计简明

不过必须认识到总是做重构会消耗大量的时间和资源。

3.4.2 极限编程过程

1. 策划:需求获取、计算成本。第一个发行版本交付后,XP团队计算项目的速度。

2. 设计:XP设计遵循KIS(保持简介)的原则,鼓励使用CRC卡作为在面向对象环境中考虑软件的有效机制。设计可以在编码开始前后同时进行。

        CRC:类-责任-协作者

3. 编码:XP推荐在故事开发和初步设计后并不直接开始编码,而是开发一系列用于检查本次发布的所有的单元测试

        结对编程:建议两人面对同一台电脑共同为一个模块开发代码

4. 测试:在编码开始之前建立单元测试是XP方法的关键因素。XP验收测试。

3.4.3 工业极限编程(IXP)

是XP一种有机进化。

1.准备评估

2.项目社区

3.项目承租

4.测试驱动管理

5.回顾

6.持续学习

3.4.4 关于XP的争论

1. 需求易便

2. 矛盾的客户需求

3. 需求的非正规表示

4. 正规设计的缺乏

3.5 其他敏捷过程模型

最广泛使用的就是XP

3.5.1 自适应软件开发

1. 思考

2. 协作

3. 学习

强调软件项目团队具有自我组织的动态性、人与人的协作、个人以及团队的学习、从而使得团队更有可能成功。

3.5.2 Scrum

1.需求

2.分析

3.设计

4.演化

5.交付

强调使用一组软件过程模式,这种模式被证明时间紧张时,是有效的。

每一个过程模式定义一系列开发活动:

1.待定项

2.冲刺

3.Scrum例会

4. 演示

3.5.3 动态系统开发方法(DSDM)

倡导时间调度的使用

通过在可控项目环境中使用增量原型开发模式完全满足对时间有约束的系统的构建和维护

使用迭代软件过程。

3.5.4 Crystal 

是一系列敏捷过程模型,用于特定特征的项目

提倡机动性的软件开发方法。首要目标是交付有用的、可工作的软件。第二目标是为下一次行动做准备。

3.5.5 特征驱动开发(FDD)

形式化

强调通过鼓励增量开发策略、使用设计和代码检查、应用软件质量保证审查、收集度量、使用模板等活动来确保软件质量

3.5.6 精益软件开发(LSD)

精益制造的原则

鼓励LSD过程消除耗损、把质量体现于产品、创造只是、遵守承诺、快速交付、尊重成员以及整体交付。

3.5.7 敏捷建模(AM)

认为建模是有必要的

1.有用的模型

2.使用多个模型

3.轻装上阵

4.内容重于表述形式

5.理解模型及工具

6.适应本地需要

3.5.8 敏捷统一过程(AUP)

全局串行、局部迭代

1.实现

2.测试

3.部署

4.配置和项目管理

5.环境管理

3.6 敏捷过程工具集

能够促进敏捷团队成员的工作以及提高最终产品的质量,就是工具。

一些能够表达自己的想法的工具,如UML、甘特图、一些其他思维导图工具。只要是能够给开发带来帮助的,就叫工具。就可以拿来用。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/790457
推荐阅读
相关标签
  

闽ICP备14008679号