目录

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、甘特图、一些其他思维导图工具。只要是能够给开发带来帮助的,就叫工具。就可以拿来用。

软件工程 - chapter02 - 敏捷开发相关推荐

  1. 软件工程敏捷开发01

    1. 软件工程敏捷开发,每日站立会议:进行了组内成员的任务分派,把今天的任务做了具体的任务分配,把已知的问题提交到个人索引卡 2. 将分配好的任务做完,总结遇到的问题,并结合今后的问题进行讨论和组内成 ...

  2. 软件工程结课论文 敏捷开发在软件工程中的应用 大学编程作业(TUST 天津科技大学 2022年)

    软件工程结课论文 敏捷开发在软件工程中的应用 大学编程作业(TUST 天津科技大学 2022 年) 软件工程结课论文 敏捷开发在软件工程中的应用 大学编程作业(TUST 天津科技大学 2022 年) ...

  3. 软件工程(三)——敏捷开发和理解需求

    笔者正在学习<软件工程-实践者的研究方法>这本书,记录下一些读书笔记,共勉! 1.敏捷 市场条件变化十分迅速,客户和最终用户的需求在演变,从业者必须使软件工程工作保持敏捷,要限定过程应是灵 ...

  4. [软件工程--个人作业] 敏捷开发读后感

    敏捷开发--软件开发的高大上方法 一开始看到敏捷开发这个名字,就对里面的"敏捷"这个词产生了疑问,什么叫做敏捷开发,难道开发软件工程还要像奥运会一样"在追求更高更快更强的 ...

  5. 《SaaS软件工程 云计算时代的敏捷开发》PDF版

    点击下载:[<SaaS软件工程 云计算时代的敏捷开发>](https://pan.baidu.com/s/1upWJEYOni1XLsPBnrrMVhQ)![这里写图片描述](https: ...

  6. 软件工程:传统软件工程 vs 敏捷软件开发

    转自我的博客园文章: http://www.cnblogs.com/katniss-smile/p/5982643.html 首先给出软件工程和敏捷软件开发的定义: 软件工程(Software Eng ...

  7. 软件工程----过程模型、敏捷开发

    软件的概念 软件是在计算机系统支持下能够完成特定功能和性能的程序.数据和相关文档 软件 = 知识+程序+数据+文档 软件危机 软件危机是指落后的生方式无法满足迅速增长的计算机需求,从而导致软件开发和过 ...

  8. [软件工程学习笔记]浅谈敏捷开发

    在移动电子设备如此普及的今天,看着琳琅满目的手机APP市场,你不知道下一秒什么会突然变得炙手可热,什么会瞬间销声匿迹.顺应时代的潮流,软件开发也从重型过程向轻量型敏捷发展.作为软件的开发者,这些都是值 ...

  9. 软件工程——第五章(敏捷开发)

    1.敏捷软件开发的宣言 "我们正在通过亲身实践以及帮助他人实践的方式来揭示更好的软件开发之路,通过这项工作,我们认识到: 个人和这些人之间的交流胜过了开发过程和工具 可运行的软件胜过了宽泛的 ...

  10. 敏捷开发中Scrum方法

    现代软件开发肯定是复杂的,因为到目前为止,还没有一种方法从根本上消除软件之前的依赖,软件随着规模的扩大,需求的不精确和不停的变更以及需求调研人员限于领域知识所限,无法抽像出客户的需求.从技术上来说,虽 ...

最新文章

  1. php控制器无限极分类,thinkphp无限极分类实现方法
  2. linux增加epel源,yum安装nignx,脚本安装mysql服务端,shell脚本监控网站页面
  3. microsoft账号登陆一直在加载_英雄联盟手游下载,附带拳头账号注册教程
  4. 非常好的一篇关于MYSQL编码问题的文章
  5. 如何高效快速地在Linux系统上部署Node.js+Express+MySQL的开发环境(桌面可视化)...
  6. 彻底学会Spring事务——概念+具体实现
  7. enq: HW - contention等待事件
  8. HTML---鼠标悬停导航栏变颜色
  9. C#调用C++类库dll,无法找到函数入口(无法在“***.dll“中找到名为“***“的入口点)
  10. 冰桶算法,优质资源稳守宝座
  11. 大家心目中的这些「神器」App,时尚热门app
  12. php只取时间的下士_闲来无聊,用python抓取天气信息,简单就是美啊
  13. keil 增加 芯片包_国内首家!平头哥刚刚宣布开源RISCV内核MCU芯片设计平台
  14. 微信小程序选项卡swiper默认高度150px(让高度实现自适应)怎么解决?
  15. The JAVA_HOME environment variable is not defined correctly This environment variable is needed to r
  16. 今日头条适配方案_探索头条小程序开发!JavaScript为什么成了众多小程序的首选?...
  17. PROFIBUS远程IO在加工车间的应用
  18. 双系统从Windows下分出空间给Ubuntu的空间不够的分区
  19. 简单几步学会java爬虫
  20. Threejs 制作的 3D 画展

热门文章

  1. 福禄克OTDR测试为什么要加补偿光纤?
  2. Speedoffice(excel)如何根据身份证号计算年龄
  3. 训练猫咪,一本书就够了
  4. Java List集合排序 Java8 List集合排序方法 Java Lambda集合排序
  5. CAN协议详解-01
  6. java中this和this()区别
  7. Yandex安装第三方crx插件的方法
  8. 机器人多维度高速精密切割加工 引领切割技术升级
  9. 试卷自动生成工具使用说明
  10. abaqus 帮助文档