VerReq_1_0 |
该需求是否清晰易懂且无歧义? |
为确保能够分析该需求,其表述必须易于理解,且不得留有对其功能作不同解释的空间。 |
避免使用模糊的表述,例如 一些、足够的、典型的、许多、若干、少量…… 。诸如 Zephyr 内核宜在可能的情况下提供 xyz 功能 这样的表述不够精确,留有不同解释的空间。此外,必须将 宜(should) 替换为含义明确的 应(shall) 。必须将 在可能的情况下 替换为明确定义,说明需求作者希望在哪些情况下提供该功能。这可以是一组具体情形、系统状态或其他条件,只要定义清晰即可。 |
VerReq_1_1 |
该需求是否具有原子性? |
一项需求必须只描述一件需要满足的事项。否则,可能会妨碍安全分析、与架构组件及实现的唯一关联,以及可验证性。 |
诸如 信号 a 应控制黄色 LED 的亮灭,并且应通过点亮红色 LED 指示错误状态 这样的表述不具有原子性。应将其拆分为两项需求:REQ1:信号 a 应控制黄色 LED 的亮灭。 和 REQ2:应通过点亮红色 LED 指示错误状态。 还可以补充一项需求:REQ3(变体 a):黄色 LED 和红色错误指示 LED 必须相互独立 或 REQ3(变体 b):在待定(TBD)的情况下,黄色 LED 和红色错误指示 LED 可以合并使用 。 |
VerReq_1_2 |
该需求是否内部一致? |
需求本身的内容必须完全一致,不得自相矛盾。 |
诸如 系统应使用抢占式 RTOS,以保证任务调度的确定性。系统还需要确保所有任务(包括低优先级的后台日志记录任务)均在不被抢占的情况下完成,以保持数据完整性。 这样的表述存在矛盾,必须避免。如果需要同时提供这两种选项,就必须定义各选项的适用条件及其配置方式。 |
VerReq_1_3 |
该需求是否可行、可实现且可验证? |
需求不是不切实际的愿望清单,必须能够通过合理的手段实现(当然,不同项目对“合理”的界定可能不同)。因此,通常应避免提出那些纸面上看起来不错,但技术上无法实现、内部自相矛盾或违反系统基本约束的需求。这里的可验证是指,必须能够通过测试、(代码)评审、分析或其他手段,验证该需求是否已得到满足。 |
一个反例是 RTOS 应保证在所有条件下对所有设备进行零延迟中断处理。 这在物理上不可能实现,因为任何硬件都无法在真正为零的时间内作出响应。更好的表述应更加具体,例如 RTOS 应保证在目标硬件架构以 80 MHz 运行且系统处于最大负载时,中断延迟 ≤ 5 µs。 |
VerReq_1_4 |
需求是否完整? |
为清楚表达需求意图而需要明确的所有信息是否齐备? |
需求陈述必须清楚说明所有必要的数据和信息,或提供可靠的引用,以便找到这些数据。这意味着所引用的数据源必须由需求作者或利益相关方掌控;可能随时间变化的引用(例如指向外部资源的互联网 URL)并不适用。 |
VerReq_1_5 |
需求的定义是否不涉及具体实现? |
需求必须描述“做什么”,而不是“如何做”。在某些特殊情况下,需求会有意限制可选的实现方式,通常是出于某些设计原因。这些原因必须在需求的理由说明或注释中写明(取决于实际采用哪种形式)。 |
避免使用这样的陈述: RTOS 应使用基于优先级的抢占式调度器,并采用轮转算法调度同等优先级的任务 ,可以考虑着重描述功能需求: RTOS 应支持任务调度,确保高优先级任务能够抢占低优先级任务,并以避免饥饿的方式调度同等优先级的任务。 |
VerReq_1_6 |
是否定义了需求在功能安全或信息安全方面的关键性? |
对于可能损害 Zephyr 功能安全完整性(或信息安全完整性)的功能,所有影响这些功能的需求都需要标记为功能安全(或信息安全)关键需求,以便进行相应处理。 |
目前尚未规定将某项功能标记为与功能安全或信息安全相关的具体方式;需求或功能的相关性取决于其定义所在的范围。 |
VerReq_1_7 |
是否为每项需求定义了验证和/或验收标准? |
每项需求都必须可验证。如果无法为某项需求定义验收标准,就需要重新审视该需求,并且可能需要以不同的方式定义它。验收标准至少必须能够从需求的表述中推导出来。 |
确保已有可用的测试,或已计划创建测试。评估测试覆盖是否足以验证该需求。如果不足,请联系功能安全工作组或测试工作组解决此问题。 |
VerReq_1_8 |
目标读者是否清楚理解该需求中使用的所有术语? |
这项检查同时关注需求的准确性和可理解性。需求中所用术语的含义必须明确。对于在项目中具有特殊含义的术语,需要在术语表中或随需求一起给出清晰的定义。 |
以下陈述可能存在问题: RTOS 应支持邮箱和信号量等 IPC 机制,用于任务同步 ,因为读者(测试人员、管理人员、产品负责人等)可能不熟悉 IPC,甚至不了解邮箱或信号量在 RTOS 中的含义。如果没有面向所有利益相关方解释这些术语的术语表,可以考虑将该需求表述为: RTOS 应提供允许任务交换数据并协调其执行的机制,例如消息传递和信号通知功能。 |