模型名称 | 特点 | 优点 | 缺点 | 适用情况 |
---|---|---|---|---|
瀑布模型(最常用) |
|
| 逆转性差 |
|
V模型 | 更强调测试的瀑布模型 | |||
增量模型 |
| 可以分阶段提交 | 用户不同意 |
|
演化模型————重复改进直到客户确认
| 不能完整定义需求 | |||
螺旋模型 |
| 支持用户需求变化 | 建设周期长 |
|
原型模型 | 开发快 | 不利于创新 | 已有原型 | |
迭代模型 |
| 支持用户需求变化 | 风险大 |
|
喷泉模型 |
| 支持用户需求变化 | 不利于项目管理 | 需求频繁变化 |
XP模型(极限编程) | 快速迭代 | 支持用户需求变化 | 只适用于小项目,小团队 | 小项目,小团队 |
快速应用开发(RAD) |
| 用户参与度高,开发速度快,模块化要求高 | 不适用于新技术的使用 | 需要快速交付且模块化要求高的项目 |
RUP/UP |
| 结构化、可预测的开发过程,确保软件质量 | 需要较多的文档和评审 | 复杂的大型项目,需要较高的开发质量和可预测性 |
可重用构建模型 | 基于构件的开发方法,开发或复用构件 | 提高开发效率,减少重复劳动 | 构件的复用和管理可能带来挑战 | 适用于有大量可复用构件或需要快速构建的项目 |
敏捷方法 |
| 开发快 | 只适用于小项目,小团队 |
|
螺旋模型=瀑布模型演化(原型)模型相结合
增量模型是瀑布模型变体
敏捷方法
敏捷方法——尽早交付,频繁沟通,频繁交付新版本 | ||||
---|---|---|---|---|
模型名称 | 特点 | |||
极限编程(XP) |
高效、低风险、
测试先行 (先写测试代码,然后再编写程序)
| |||
水晶法(Crystal) | 针对性策略,重视“人” | |||
并列争球法(Scrum) |
迭代 30天为一个迭代周期,按照需求优先级实现
| |||
自适应软件开发(ASD) |
预测—协作
—
学习
| |||
敏捷统一过程(AUP) |
团队迭代使用敏捷
|