项目中,会存在各个层面的需求,例如:相关方需求、客户需求、系统需求、软件需求、硬件需求、功能安全需求、技术安全需求等。
不同层面的需求,如何来区分呢?很多工程师对此存在困惑,本文对此进行说明。
在描述需求时,一个比较好的实践是遵循一定的语法结构,如下图所示:

图片引自: ISO/IEC/IEEE 19148 Systems and software engineering — Life cycle processes — Requirements engineering
区分需求是属于哪个层面的,可以根据需求描述中的“Subject(主语)”来进行判断
- 如果主语是“系统”,则是系统需求
- 如果主语是”软件”,则是软件需求
- 如果主语是”硬件”,则是硬件需求
- ……
接下来看一些具体的例子,帮助理解下不同层面需求的不同。
(一)相关方需求(如:客户需求)、系统需求、软件需求、硬件需求
假设如下场景:

- 客户需求:是从客户角度对其所采购的”系统”提出的要求,是使用的客户语言
- 系统需求,是使用项目人员可以理解的无歧义的技术语言,来描述对”系统”的要求
- 软件需求,是使用项目人员可以理解的无歧义的技术语言,来描述对”软件”的要求
- 硬件需求,是使用项目人员可以理解的无歧义的技术语言,来描述对”硬件”的要求
例如:
- 客户需求:电芯电压过压场合,[
BMS系统]需要切断电源 - 系统需求:电芯电压大于5V,且持续时间超过500ms时,[B
MS系统]需在5ms内切断主正接触器 - 软件需求:接收的电芯电压CAN信号,显示电芯电压超过5V,且持续时间超过500ms时,[
BMS软件]需在1.5ms内发出切断主正接触器的控制指令
说明:相关方需求,是指包括客户在内的所有相关方对产品提出的要求或制约。相关方可能包括:内部、行业法规/规范、客户等。
(二)功能安全的场景
假设如下场景:

例如:
- Safety Goal (安全目标)
SG01: Avoid over-charging, ASIL C - Functional Safety Requirement (功能安全需求)
FSR01: BMS shall stop charging when the any cell's voltage is higher than 4.2v. ASIL C - Technical Safety Requirement (技术安全需求)
TSR01: BMS shall switch off the Main-relay when the any cell's voltage is …. ASIL C - HW Safety Requirement (硬件安全需求)
HSR01: BMS HW shall output the low-voltage (less than 1.5v) when the any cell's voltage is …. ASIL C
注:本示例引子ISO26262培训教材
(三)网络信息安全的场景
假设如下场景:

例如:
- Cybersecurity Goal (网络信息安全目标)
Prevent unintended steering through malicious steering command. - Cybersecurity System Requirement (网络信息安全系统需求)
Steering command shall be authenticated. - Cybersecurity SW Requirement (网络信息安全软件需求)
SW use the CSMMacVerify*() functions of the CSM (CSM Cryptographic Service Manager) Library to verify the authenticity of received steering commands. - Cybersecurity HW Requirement (网络信息安全硬件需求)
A hardware security module (HSM) with a secure flash memory shall be used to store the private key material for message authentication.
推荐阅读:
- 谈一些需求实践
- 浅谈需求及需求特征
- 业务需求与系统功能,你分清楚了吗?
- 需求拆分被测试挑战:拆还是不拆?这是个问题……
- 欢迎访问公众号菜单,下载文章合集
文章转载自公众号:仨人谈起