很多零基础小伙伴看到 "软件工程" 就觉得是 "写代码的流程",其实它更像 "做项目的方法论"------ 就像开奶茶店要先调研、再装修、最后开业,开发软件也有固定的 "做事步骤"。今天用 "开奶茶店" 的例子,讲透考试最常考的两种模型:瀑布模型和敏捷开发,看完你会发现,这俩考点其实就是 "两种开奶茶店的思路"。
先明确:为啥要学这俩模型?考试占分不低!
不管是上午的选择题(每年 1-2 道),还是下午的案例题(比如问 "这个项目适合用什么开发模型"),瀑布和敏捷都是高频考点,占软件工程模块 30% 的分值。而且它们是 "对比型考点",记住一个就能连带记住另一个,性价比很高。
一、瀑布模型:像 "传统开奶茶店",一步错就得重来
瀑布模型是最经典的开发模型,特点是 "按顺序走,一步做完才能下一步",就像老一辈开奶茶店的流程,规规矩矩,不能跳步。
1. 用 "开奶茶店" 拆解瀑布模型 5 个阶段
咱们把 "开发一款奶茶点单软件" 对应 "开一家奶茶店",每个阶段的动作完全能对上:
|-----------------|---------------------------------------------|---------------------------------------------|
| 瀑布模型阶段 | 开发软件的动作(做什么) | 开奶茶店的类比(生活场景) |
| 1. 需求分析 | 问清楚 "软件要实现啥功能":比如用户能选奶茶、下单、看订单 | 调研 "顾客想要啥":比如附近年轻人喜欢喝果茶还是奶盖,能接受多少钱一杯 |
| 2. 概要设计 / 详细设计 | 设计软件的 "框架和细节":比如界面有 "选品页、购物车、支付页",数据库存用户信息 | 定 "装修和菜单":比如装 ins 风,菜单分果茶、奶盖、纯茶,定价 15-25 元 |
| 3. 编码 / 实现 | 写代码把设计落地:比如用 Python 写下单逻辑,用 MySQL 存数据 | 采购设备原料:买制冰机、茶叶、牛奶,招聘店员 |
| 4. 测试 | 找 bug:比如下单后没收到订单通知,支付失败等问题 | 试营业找问题:比如奶茶太甜,出餐太慢,店员不会操作收银机 |
| 5. 运行与维护 | 软件上线后修 bug、更新功能:比如加 "会员积分" 功能 | 正式开业后调整:比如根据反馈加新品,修坏了的制冰机 |
2. 瀑布模型的核心特点(考试必记!)
- **顺序执行,不能回头:**像瀑布流一样,只能从 "需求分析" 流到 "维护",不能中途改 ------ 比如奶茶店都装修完了,才发现顾客喜欢的是复古风,再改就费钱费时间;对应软件开发,就是设计完了才想加功能,得推翻重改。
- **需求必须明确:**开奶茶店前要先摸清顾客需求,开发软件前也要把功能定死,适合 "需求不会变" 的项目。
- 适合的项目(考点):选择题 / 案例题常考 "哪些项目用瀑布模型",记住 3 类:
- 政府项目(比如政务系统,需求早定好,不能随便改);
- 成熟产品升级(比如微信更新个小功能,需求明确);
- 大型硬件相关软件(比如手机系统,流程固定)。
二、敏捷开发:像 "网红奶茶快闪店",小步快跑、随时调整
敏捷开发是近几年的热门模型,特点是 "灵活迭代、快速响应变化",就像现在年轻人开奶茶快闪店:先试错,再调整,不用等一切准备好再开业。
1. 用 "开奶茶快闪店" 拆解敏捷开发核心逻辑
还是开发 "奶茶点单软件",用敏捷思路会这么做:
|---------------------|-------------------------------------------------------------|--------------------------------------------|
| 敏捷开发动作 | 开发软件的动作(做什么) | 开奶茶快闪店的类比(生活场景) |
| 1. 定 "最小可行产品"(MVP) | 先做 "最核心的功能":比如只做 "选奶茶 + 下单",不做会员、积分 | 先开小档口,只卖 3 种爆款奶茶(不用装修,不用多雇人) |
| 2. 迭代开发(2-4 周一个周期) | 每个周期(叫 "Sprint")加一个小功能:第一周测 "下单功能",第二周加 "订单通知",第三周加 "评价功能" | 每周根据顾客反馈调整:第一周发现顾客嫌太甜,第二周减糖;第三周加新品 "杨枝甘露" |
| 3. 持续反馈 | 每个周期结束后问用户 "好不好用",比如让奶茶店顾客试新功能 | 每天问买奶茶的人 "觉得怎么样",及时改口味、加品类 |
2. 敏捷开发的核心特点(考试必记!)
- **小步快跑,能随时改:**不用等所有功能做完再上线,先上线核心功能,再慢慢加 ------ 比如奶茶快闪店不用等装修好,先卖起来再说,不好再调。
- **需求可以不明确:**适合 "一开始不知道用户想要啥" 的项目,边做边试。
- **适合的项目(考点):**选择题 / 案例题常考 "哪些项目用敏捷",记住 3 类:
- 互联网创业项目(比如开发一个新的奶茶 APP,需求会变);
- 新产品研发(比如做一款新的奶茶口味,得试错);
- 需求频繁变化的项目(比如电商平台的促销软件,双 11、618 需求不一样)。
三、对比表格:1 分钟分清两种模型(考试选座题直接用)
怕记混?直接看这个表格,考试遇到 "选模型" 的题,对照场景就能选对:
|-------|--------------|--------------|
| 对比维度 | 瀑布模型 | 敏捷开发 |
| 核心思路 | 按步骤走,不回头 | 小步迭代,随时改 |
| 需求要求 | 必须明确、固定 | 可以模糊、变化 |
| 上线时间 | 全部功能做完才上线 | 先上核心功能,再迭代 |
| 适合项目 | 政府项目、成熟产品升级 | 创业项目、新产品研发 |
| 优点 | 流程规范,不易乱 | 灵活,能快速响应需求 |
| 缺点 | 改需求成本高,周期长 | 流程易乱,需要频繁沟通 |
四、真题练手:3 道题带你秒选答案
学完直接练真题,你会发现都是 "送分题":
1.(2023 上午第 18 题)某互联网公司开发一款新的外卖 APP,需求频繁变化,适合采用的开发模型是?
A. 瀑布模型 B. 敏捷开发 C. 原型模型 D. 螺旋模型
解题:互联网新 APP + 需求变→选敏捷,答案 B
2.(2022 下午案例题第 1 问)某政务系统需要实现 "社保查询、缴费" 功能,需求已明确且不会变更,应选择哪种开发模型?说明理由。
解题:政务系统 + 需求明确→瀑布模型;理由:瀑布模型适合需求固定的项目,流程规范,改造成本低。
3.(2021 上午第 19 题)下列关于瀑布模型和敏捷开发的说法,错误的是?
A. 瀑布模型需求需提前明确 B. 敏捷开发适合需求多变的项目
C. 瀑布模型可中途随意变更需求 D. 敏捷开发采用迭代式开发
解题:瀑布不能随便改需求→答案 C
零基础总结:2 句口诀记牢核心
- 瀑布模型:"需求明,按步来,改了就费钱";
- 敏捷开发:"需求变,小迭代,快上线试错"。
下一篇咱们聚焦 "软件工程案例题的得分点",教你 "需求分析题怎么答才能拿满分",比如案例题问 "需求分析阶段要做啥",直接背 5 个得分关键词就能踩中采分点~