7.3.3 演化模型(原型模型、螺旋模型)
本课核心知识点整理
演化模型:一轮又一轮地逼近最终系统
演化模型的共同思想是迭代:每一轮解决一部分问题,获得反馈,再进入下一轮,逐步形成更完整的软件版本。它特别适合对需求缺乏准确认识的情况。
| 模型 | 演化重点 |
|---|---|
| 原型模型 | 通过原型帮助用户明确需求 |
| 螺旋模型 | 每轮迭代都进行风险分析,控制大型复杂项目风险 |
原型模型:需求不清时先让用户“看见”
原型模型通常从沟通开始,快速计划、快速设计、构建原型、交付用户评价,再根据反馈进入下一轮。
text
沟通 -> 快速计划 -> 快速设计 -> 构建原型 -> 用户反馈 -> 修改/下一轮它的核心不是“做一个漂亮界面”,而是用低成本可见物降低沟通偏差。用户常常一开始说不清需求,但看到界面、按钮、菜单和交互后,能更具体地指出“我还需要什么”“这里不符合我的业务”。
原型分类
| 分类方式 | 类型 | 含义 |
|---|---|---|
| 是否保留 | 抛弃型原型 | 用来探索需求,后续不进入最终系统 |
| 是否保留 | 演化型原型 | 初步原型逐步演进,最终成为系统一部分 |
| 用途 | 探索型原型 | 探索用户需求,验证需求有效性 |
| 用途 | 实验型原型 | 验证方案、算法或技术可行性 |
| 用途 | 演化型原型 | 逐步演进,保留到最终产品中 |
原型模型一般不用于指导代码优化。考试如果看到“系统原型可用于代码优化”,通常要谨慎,它偏离了原型主要用于需求、界面、方案验证的目标。
螺旋模型:瀑布 + 演化 + 风险分析
螺旋模型把瀑布模型的阶段性与演化模型的迭代性结合起来,并引入风险分析。每一圈都是一轮迭代,每轮通常包括:
| 阶段 | 作用 |
|---|---|
| 制定计划 | 明确目标、方案、约束 |
| 风险分析 | 识别、评估和处理风险 |
| 实施工程 | 开发和验证当前版本 |
| 客户评估 | 让客户评价并决定下一轮方向 |
只要题干强调风险,无论是项目风险、技术风险还是需求风险,优先考虑螺旋模型。课堂说得很干脆:螺旋模型是唯一适合高风险项目的模型,尤其适合庞大、复杂、高风险系统。
原型和螺旋的区别
| 对比项 | 原型模型 | 螺旋模型 |
|---|---|---|
| 主要矛盾 | 用户需求不明确 | 项目风险高 |
| 核心动作 | 快速构造原型,获取反馈 | 每轮进行风险分析 |
| 适合规模 | 中小型、需求模糊项目更常见 | 大型复杂高风险项目 |
| 考试关键词 | 快速原型、用户反馈、需求澄清 | 风险驱动、螺旋迭代、客户评估 |
例题
原型模型最适合的场景是:
大型复杂系统存在较高项目风险,开发模型应优先考虑:
关于系统原型的作用,下列说法中较不恰当的是:
自查要点
- 演化模型的“迭代”是什么意思?
- 原型模型为什么适合需求不明确?
- 抛弃型原型和演化型原型有什么区别?
- 螺旋模型每一轮包含哪些活动?
- 为什么看到“风险”优先想到螺旋模型?