您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   模型库  
会员   
   
人工智能、机器学习 TensorFlow
6月30日-7月1日 直播
基于 UML 和EA进行分析设计
7月30-31日 北京+线上
图数据库与知识图谱
8月21日-22日 北京+线上
     
   
 
 订阅
谈需求描述的语法结构
 
作者:杨环宇
  157  次浏览      5 次
 2025-6-25 
 
编辑推荐:
本文主要介绍了需求描述的语法结构相关内容。
文章来自于微信公众号仨人谈起,由火龙果软件Linda翻译推荐。

前言

需求的语法结构,在业内相关的标准或指南中有不同的名称,例如:template, pattern, syntax, schema, structure

遵循需求语法结构,需求能更好满足需求特征(即:提高需求的质量),例如:

提高确定性(unambiguous)

提高完整性(complete)

确保原子性(Singular)

确保可验证和可确认性(verifiability and validatability)

提高符合性(conforming)

......

如果想了解需求特征的更多内容,可参考如下文章:

浅谈需求及需求特征

ASPICE V4.0 - 需求特征 – 01

ASPICE V4.0 - 需求特征 – 02

ASPICE V4.0 - 需求特征 – 03

好的需求的展现方式,一定是 <文字描述 + 图表(如:活动图,状态迁移图,信号流图,时序图,用例图,决策表等)>,本文介绍的需求语法结构,只是关于<需求的文字描述>

一、ISO/IEC/IEEE 29148 Systems and software engineering — Life cycle processes — Requirements engineering

ASPICE V4.0需求过程(SYS.2, SWE.1, HWE.1, MLE.1),在提到需求特征时引用了ISO/IEC/IEEE 29148

ISO/IEC/IEEE 29148中的需求语法结构示例:

[Condition][Subject][Action][Object] [Constraint of Action]

EXAMPLE:

When signal x is received [Condition], the system [Subject] shall set [Action] the signal x received bit [Object] within 2 seconds [Constraint of Action].

At sea state 1 [Condition], the Radar System [Subject] shall detect [Action] targets [Object] at ranges out to 100 nautical miles [Constraint of Action]

[Subject][Action] [Constraint of Action]

EXAMPLE:

The Invoice System [Subject] shall display pending customer invoices [Action] in ascending order of invoice due date [Constraint of Action]

一些OEM对供应商的要求中,也有类似的需求语法结构要求,例如KGAS的早期版本中,有如下条款:

[A: KGAS_3267] Each specification of system and software requirements as well as system and software elements and components must follow a defined schema (e.g. [condition] [the system or software or component] [shall or must do] [action or procedure or interface requirement]).

二、INCOSE Guide to Writing Requirements

ASPICE V4.0需求过程(SYS.2, SWE.1, HWE.1, MLE.1),在提到需求特征时引用了INCOSE Guide to Writing Requirements

INCOSE中的需求语法结构示例:

1、强制性需求(Shall 模式)

语法:[系统/组件] shall [行为] [条件]

规则:shall 仅用于描述系统必须实现的能力;行为必须可观测、可测试

示例:BMS系统 Shall 在100ms内切断主正接触器,当通过CAN收到安全气囊的碰撞信号时。(验证方法:HIL 测试注入碰撞信号,监测接触器状态)

2、禁止性需求(Shall Not 模式)

语法:[系统/组件] shall not [行为]

应用场景:Safety场景

示例:BMS系统 shall not 允许单体电压超过 4.25V,持续超过 500ms。

3、条件性需求(When/If 模式)

语法:

When [触发条件], [系统] shall [响应行为]

If [异常条件], [系统] shall [处理行为]

示例:

When 车辆进入赛道模式,电机控制器 shall 解除扭矩限制。

If 检测到 CAN 总线通信丢失,网关控制器 shall 切换至冗余通道。

4、非功能性量化需求(Measurable 模式)

语法:[系统] shall [指标] [数值] [单位] under [条件]

指标类型:性能、可靠性、安全性

示例:域控制器 shall 在 -40°C 至 85°C 环境下,启动时间 ≤ 2s。

INCOSE中相关的一些规则

1、主语明确化

错误示例:应实现快速响应

修正后:ESP 控制器 shall 在 100ms 内响应制动请求

2、行为动词标准化

禁用模糊词汇:如support, process, handle, track, manage等

使用确定性动词:如receive, store, calculate, report, display等

3、条件边界量化

错误示例:在低温下正常工作

修正后:在 -40°C 至 125°C 环境温度下满足功能需求

4、可验证性绑定

每个需求需标注验证方法(Test / Inspection / Analysis / Demonstration)

三、EARS (Easy Approach to Requirements Syntax)

EARS (Easy Approach to Requirements Syntax) 是一种轻量级的需求描述框架,专为降低歧义、提升可测试性而设计

EARS核心动机与目标:

降低歧义: 通过定义简单的语法模板,强制要求需求以结构化方式表述,减少自然语言的模糊性

提高一致性: 为所有需求提供统一的表述风格

增强可读性和可理解性: 使需求对工程师、测试人员、管理人员等各类角色都更易读

支持自动化: 结构化的需求更容易被工具解析,用于需求管理、追踪和测试用例生成

轻量级和易用性: EARS 学习曲线平缓,易于集成到现有工作流程中

EARS的语法模式

1、普适需求 (Ubiquitous Requirement)

模式:The [控制器] shall [行为]

应用场景:描述系统始终遵守的规则,无触发条件

示例:

电池管理系统(BMS) shall 在每次上电时执行自检,并记录诊断码(DTC)。(验证方法:监测上电序列日志(CANoe捕捉0x7E0报文))

2、事件驱动需求 (Event-Driven Requirement)

模式:When [触发事件], the [控制器] shall [响应行为]

应用场景:特定触发条件下的响应

示例:

电池管理系统(BMS) Shall 在100ms内切断主正接触器,当通过CAN收到安全气囊的碰撞信号时。(验证方法:HIL 测试注入碰撞信号,监测接触器状态)

3、异常处理需求 (Unwanted Behavior Requirement)

模式:If [故障条件], the [控制器] shall [处理行为]

应用场景:防御性设计(错误/边界条件)

示例:

If 前视摄像头通信丢失持续 > 500ms,the 感知融合模块 shall 切换至纯毫米波雷达模式,并在仪表盘点亮黄色警告图标(ID:0x2A1)。

4、状态驱动需求 (State-Driven Requirement)

模式:While [状态条件], the [系统/组件] shall [行为]

场景:系统在特定状态下需维持的行为

示例:

While 电池温度 > 45°C,the 热泵控制器 shall 维持冷却液流量 ≥ 5 L/min,且压缩机转速 ≥ 3000 RPM。

5、可选需求 (Optional Requirement)

模式:The [系统/组件] may [行为]

场景:非强制性的能力扩展

示例(智能座舱控制器):

The 语音识别模块 may 支持方言识别(粤语/四川话),当系统存储空间 ≥ 128MB 时启用。

EARS可以与工具链进行集成,如:

使用IBM DOORs/Jama编写需求时,可以预置EARS模板字段

使用Simulink Requirements模型验证时,可以将EARS语句链接至Stateflow状态机

EARS的核心优势是简洁、易执行,但存在对复杂逻辑的支持有限,非功能性需求量化不足等局限性

四、Planguage

Planguage 是系统工程专家 Tom Gilb 提出的量化需求工程方法,核心思想是通过精确的测量指标替代模糊表述,驱动精准验证,适用于功能安全(ISO 26262)、性能及可靠性需求,缺点是:学习成本高、灵活性不足(难适应创意性需求(如UI交互设计))

术语

标尺(Scale):定义测量维度,例如:响应时间(ms)、SOC估算误差(%)

计量器(Meter):指定测量工具/方法,例如:CANoe信号分析、HIL台架测试

目标值(Target):设计的理想值,例如:80ms(典型工况)

约束值(Constraint): 安全/法规底线,例如:≤120ms(极端温度)

失效条件(Fail):定义系统不可接受状态,例如:单体电压 > 4.25V持续 > 500ms

BMS系统过压保护需求示例:

需求ID:SFTY-BMS-01

标签 (Tag):单体电压保护

相关方(Stakeholder):功能安全工程师

描述 (Description):防止电芯过压导致热失控。

标尺 (Scale):单体最高电压 (V)

计量器 (Meter):BMS诊断日志 (采样率10kHz)

目标值 (Target):4.20V (标称充电截止)

约束值 (Constraint):≤4.25V (ASIL-D要求)

失效条件 (Fail):>4.25V持续 > 500ms → 触发继电器断开

五、Boeing Core Requirement Patterns

波音定义了 四种基础需求模式(Boeing Core Requirement Patterns),适用于复杂安全关键系统(如航空电子、航天器)

1、功能需求(Functional Requirements)

定义:系统对特定输入的 响应行为

语法模板:

当 [触发条件],[控制器] 应 [执行动作] 生成 [输出结果]

关键规则:

明确触发信号(传感器输入/指令)

动作必须可观测(如“计算”“传输”“激活”)

2、性能需求(Performance Requirements)

定义:规定功能执行的 量化指标边界。

语法模板:

在 [环境条件] 下,[控制器] 的 [指标] 应 ≤/≥ [值] [单位]

关键规则:

覆盖温度/电压/EMC等车规工况

定义统计边界(如99%分位值)

3、约束需求(Constraint Requirements)

定义:设计必须遵守的 物理/协议/安全限制

语法模板:

[控制器] 应 符合 [标准] [条款]

[控制器] 不得 [禁止行为]

关键规则:禁用模糊术语(如:足够、可靠)

4、可验证性需求(Verifiable Requirements)

定义:强制需求,可被客观检验的

语法模板:需求 [ID] 应 通过 [方法] 在 [阶段] 完成验证

关键规则:绑定验证活动,并确定使用的验证工具

热管理系统控制器(Thermal Management Unit)示例:

功能需求:

当 电池温度 >40°C,控制器 应 启动冷却泵,调节冷却液流量至 5-7 L/min。

性能需求:

在 海拔3000米 且 环境温度45°C 下,温度控制响应时间 应 ≤ 15s(从超温到降温启动)。

约束需求:

PID控制算法 应 符合 MISRA C 2023规则(禁用动态内存分配,规则22.5)。

可验证性需求:

需求 TMU-PER-202 应 通过:

a) MIL:Matlab/Simulink高温模型仿真

b) HIL:风洞模拟台架测试

在 DV(设计验证)阶段 完成

六、Use Case Template

Use Case Template(用例模板) 适用于描述 交互密集型需求,特别关注用户/外部系统与目标系统之间的动态行为。其价值在于将模糊的业务目标转化为可执行的场景化需求

标准Use Case模板结构:

用例名称:动词短语,清晰描述用户目标

例如:交流充电

用例ID:唯一标识符,用于追踪

参与者:触发用例的角色(人或外部系统)

例如:用户、充电桩、BMS、云平台

前置条件:执行用例前必须满足的状态

例如:

车辆处于P档且充电枪已物理连接 (CC信号=1)

电池SOC < 95% 且温度在0°C~45°C

用户通过App/车机启动充电请求

后置条件:用例执行完成后系统必须达到的稳定状态和数据状态

例如:

硬件状态(物理层安全),包括主接触器(K1/K2)断开,驱动信号电压 ≤ 1V

……

主成功场景:用户与系统交互的标准流程(理想路径)

例如:

步骤1:用户插入Type2充电枪 à 控制器检测CC/CP信号(CC电压>4V → 连接确认)

步骤2:用户点击“开始充电” à OBC发送鉴权请求至云平台(VIN码+充电桩ID加密传输)

步骤3:云平台返回授权成功 à OBC闭合接触器,发送充电参数至BMS

……

扩展路径:主流程的异常分支或可选流程(处理错误/变体)

例如:

3a. 步骤3鉴权失败

……

业务规则:约束行为的策略或逻辑

例如:

绝缘电阻<500kΩ立即停止充电

非功能性需求:性能、安全等要求(可选)

例如:

性能 - 从充电请求到电流输出延迟 ≤ 1.5s(验证方法:HIL测试(CANoe))

特殊需求:技术依赖或特殊设计需求

七、User Story

用户故事(User Story) 是敏捷开发中的核心需求描述工具,通过用户视角的价值表达 取代传统技术规格说明

语法结构:

“作为一个 [角色],我想要 [功能],以便 [价值]”

(As a [role], I want [feature], so that [benefit])

用户故事需要遵循的INVEST原则

I - 独立 (Independent):故事之间无依赖(可单独开发/测试)

N - 可协商 (Negotiable):细节留待开发前讨论

V - 有价值 (Valuable):用户/业务方能直接感知其收益

E - 可估算 (Estimable): 开发团队能评估工作量

S - 足够小 (Small):单个Sprint内可完成(通常2-5人天)

T - 可测试 (Testable):有明确的验收标准(DoD)

通过用户故事,可聚焦用户可感知的价值流,尤其适用于智能座舱、自动驾驶等快速迭代领域

示例1:

作为:通勤车主

我想要:上车自动播放昨日未听完的播客

以便:无缝衔接通勤体验

验收标准:蓝牙连接后5s内续播,进度误差 ≤ 3秒

依赖:云端同步API + 座舱SOC算力

示例2

作为:长途货车司机

我想要:夜间自动识别故障车辆三角牌

以便:提前变道避免事故

验收标准:100m外识别三角牌(≥95%置信度),雨雾天气误触发率<0.1%

硬件依赖:4D毫米波雷达 + 红外摄像头

写在最后:

为提高需求质量,组织/项目可以为不同类型的需求,分别定义相对应的需求语法结构。即:每种类型的需求,至少有一个需求语法结构。

   
157 次浏览       5
 
相关文章

如何成为一个《专家型需求分析师》
需求分析师的能力模型
基于模型的需求管理方法与工具
需求管理工具DOORS 的接口
使用Web+EA实现基于模型的需求管理
 
相关文档

需求分析与需求管理
需求分析具体要求全解
需求分析与验证
需求分析的核心线索
基于UML的需求分析方法
 
相关课程

需求分析与管理
从需求过渡到设计
业务建模与业务分析
产品需求分析与管理
需求分析最佳实践与沙盘演练

最新活动计划
人工智能.机器学习TensorFlow 6-30[直播]
基于 UML 和EA进行分析设计 7-30[北京]
软件架构设计方法、案例与实践 7-24[北京]
用户体验、易用性测试与评估 7-25[西安]
图数据库与知识图谱 8-23[北京]
需求分析师能力培养 8-28[北京]
 
 
最新文章
有/无人直升机协同攻击任务场景想定和需求分析
设计需求分析方法与过程
需求挖掘的十三种方法
需求调研篇---调研维度分析
需求捕获:深度剖析调查问卷
最新课程
产品需求分析与管理
从需求过渡到设计
需求分析与管理
需求分析最佳实践与沙盘演练
业务驱动的分析、设计与开发
更多...   
成功案例
某军工研究单位 产品需求分析与管理
亿阳信通 产品经理与产品管理
中交集团 需求分析与管理
北京 需求分析与管理
北京 需求分析与管理(基于产品)
更多...