第二章:需求来源与分类
大家好,欢迎来到第二章。
上一章我们聊了需求分析为什么是汽车软件的「命根子」。这一章,咱们来点实在的——需求到底从哪来?又该怎么分门别类?
我见过不少团队,一上来就闷头写代码。结果呢?做到一半发现「哎?这个功能客户没提啊」或者「完了,法规要求没满足」。说白了,需求来源没理清,后面全是坑。
2.1 客户需求:一切的原点
客户需求,就是用户或者主机厂直接提出来的要求。这是最原始的需求,也是我们所有工作的起点。
举个例子,客户说:「我要一个自动泊车功能,车能自己停进去。」
嗯,这句话听起来很明确,对吧?但仔细一想,问题来了:
- 停什么样的车位?平行、垂直、还是斜向?
- 车速多快?
- 遇到障碍物怎么办?
- 驾驶员要不要一直在车上?
你看,一句话背后藏着几十个问题。客户需求往往是模糊的、不完整的。我们的工作,就是把这些模糊的「愿望」翻译成工程师能懂的「语言」。
2.2 系统需求:从「要什么」到「做什么」
客户需求是「要什么」,系统需求就是「做什么」。
系统需求是把客户需求分解、细化,变成系统层面的功能描述。它不关心具体怎么实现,只关心系统应该具备什么能力。
比如客户需求是「自动泊车」,系统需求可能是:
- 系统应能识别水平车位和垂直车位
- 系统应能在车速低于10km/h时启动泊车搜索
- 系统应能在检测到障碍物时自动减速或停止
我建议,写系统需求时,多用「应」字。比如「系统应……」「系统应能够……」。这能帮你保持客观,避免过早陷入实现细节。
2.3 功能需求与非功能需求:一个都不能少
到了软件层面,需求就要分得更细了。我习惯把它们分成两类:功能需求和非功能需求。
2.3.1 功能需求:系统「做什么」
功能需求就是系统具体要完成的任务。比如:
- 当车速低于10km/h时,自动开启全景影像
- 当驾驶员按下「泊车」按钮,系统开始搜索车位
- 当检测到行人,系统发出声音报警
这些需求通常可以用「当……时,系统应……」的句式来描述。简单、直接、不绕弯子。
2.3.2 非功能需求:系统「做得怎么样」
非功能需求,说白了就是系统的「质量属性」。它不直接描述功能,但决定了功能好不好用。
常见的非功能需求包括:
| 类别 | 示例 |
|---|---|
| 性能 | 泊车路径规划时间不超过2秒 |
| 可靠性 | 系统连续运行1000小时无故障 |
| 安全性 | 系统在CAN总线故障时,应进入安全状态 |
| 可维护性 | 软件升级时间不超过10分钟 |
| 可用性 | 用户界面响应时间不超过200ms |
我在项目中遇到过,团队把功能需求写得特别细,但非功能需求一笔带过。结果呢?功能都实现了,但车机卡得要命,用户投诉不断。你想想看,功能再多,用起来不爽,客户照样不买账。
2.4 法规与安全需求:红线不能碰
汽车软件和手机App最大的区别是什么?
手机App卡了,用户骂两句。汽车软件出问题,可能要命。
所以,法规和安全需求是汽车软件的「红线」。碰了,轻则召回,重则出事故。
2.4.1 法规需求:必须遵守的「法律」
法规需求来自各国政府和行业标准。比如:
- UN R155:网络安全法规,要求车辆具备网络安全防护能力
- UN R156:软件更新法规,要求OTA升级必须安全可靠
- GB/T 32960:中国电动汽车远程服务与管理系统技术要求
这些法规不是「建议」,是「必须」。不满足,车就不能上市。
2.4.2 安全需求:ISO 26262 与功能安全
安全需求,主要来自功能安全标准 ISO 26262。它把系统风险分成 ASIL A、B、C、D 四个等级,D 是最严格的。
比如,自动泊车系统如果失控,可能撞到行人。这个风险等级可能是 ASIL B。那么,系统就需要满足相应的安全要求:
- 传感器故障时,系统应在100ms内检测并报警
- 控制指令必须经过校验,防止误触发
- 系统应具备冗余设计,单一故障不影响安全
2.5 需求分类的实践技巧
说了这么多,怎么在实际项目中落地呢?我分享几个小技巧:
- 建一个需求分类模板:每次写需求前,先列好分类。客户需求、系统需求、功能需求、非功能需求、法规需求、安全需求,各占一栏。这样不容易漏。
- 用工具管理:我习惯用 DOORS 或者 Jama 来管理需求。每个需求都打上标签,比如「功能」「安全」「ASIL B」。后期追溯起来特别方便。
- 定期评审:需求不是写一次就完事了。我建议每两周做一次需求评审,看看有没有遗漏、有没有变更。尤其是法规需求,经常更新,得盯紧。
2.6 本章小结
好,我们来捋一捋这一章的核心内容:
- 客户需求:一切的原点,但往往模糊,需要细化
- 系统需求:从「要什么」到「做什么」,是桥梁
- 功能需求:系统具体做什么,用「当……时,系统应……」描述
- 非功能需求:系统做得怎么样,性能、可靠性、安全性等
- 法规与安全需求:红线,必须遵守,不能讨价还价
下一章,我们会聊聊怎么把这些需求「写清楚」。嗯,写需求也是一门手艺活,咱们下回分解。
公众号:蓝海资料掘金营,微信deep3321