写清一个小系统需求
约 12 分钟
本章做一个完整的小系统。第一步不是买元件,是把需求写清楚。
为什么需求最重要
因为「做出来了但不好用」,几乎总是需求没想清楚。
「做一个自动浇花器」——听起来很清楚。
但是:多久浇一次?浇多少?土湿了还浇吗?没水了怎么办?断电后要不要记住状态?这些没想清楚,做出来的东西一定要返工。
需求要写清五件事
① 它要解决什么问题(一句话,不含技术方案)
② 正常情况下它怎么工作(具体到数字)
③ 异常情况下它怎么办(至少想三种)
④ 硬性约束(成本、供电、体积、时间)
⑤ 怎么算做成了(可验证的标准)
第③和第⑤最容易被跳过,也最重要。
任务:三选一
- 自动浇花器:土干了就浇水
- 储物间感应灯:有人进入且天黑时亮灯,人走后延时熄灭
- 冰箱门未关提醒:门开超过 1 分钟就响铃
需求模板
【解决什么问题】
________________________________
【正常工作流程】(具体到数字)
条件:____________
动作:____________
持续:____________
结束条件:____________
【异常处理】(至少三种)
异常 1:____________ → 怎么办:____________
异常 2:____________ → 怎么办:____________
异常 3:____________ → 怎么办:____________
【约束】
供电方式:____________(电池要撑多久?)
成本上限:____________
体积限制:____________
【验收标准】(可测量的)
1. ____________
2. ____________
3. ____________
一份填好的示例(自动浇花器)
【解决什么问题】出差一周时,阳台的花不会因为没人浇水而死。
【正常工作流程】
条件:土壤湿度低于 30%
动作:水泵启动,抽水 10 秒(约 100ml)
持续:浇完后强制等待 6 小时再检测
结束条件:湿度回到 30% 以上则不再浇
【异常处理】
异常 1:水箱空了 → **水位传感器检测到低位就停止水泵并闪灯报警**
(否则水泵空转会烧毁)
异常 2:湿度传感器坏了读数恒为 0 → **一天最多浇 3 次,超过就停机报警**
异常 3:停电后恢复 → **上电先检测一次,不依赖断电前的状态**
【约束】
供电:USB 5V 适配器(不用电池,因为水泵功耗大)
成本:100 元以内
体积:能放进花盆旁边,不超过 10×10cm
【验收标准】
1. 土壤干燥时 1 分钟内启动浇水
2. 连续运行 7 天不需人工干预
3. 水箱空时不启动水泵,且有明显报警
注意异常处理里的两条
「水泵空转会烧毁」——这是保护性设计。真实产品里,异常处理的代码量常常比正常流程还多。
「一天最多浇 3 次」——这是兜底限制。即使传感器坏了给出错误数据,系统也不会把花淹死。
好的设计不假设传感器永远正确。
需求自查
□ 「解决什么问题」这句话里没有出现技术方案
□ 正常流程里的每个条件都有具体数字
□ 想到了至少三种异常
□ 每种异常都有明确的处理动作(不是「报错」两个字)
□ 验收标准是可测量的(不是「效果好」)
□ 有兜底限制(即使传感器出错也不会造成严重后果)
练习:选一个题目,填完需求模板,重点写好异常处理和验收标准。
小纸条
写小系统需求时最容易跳过、也最重要的是哪两项?「一天最多浇 3 次」这条设计体现了什么原则?
登录 后可看答案