Human Factors and Software Safety Analysis 深度

功能安全L2别名 Bahr human factors safety analysis · Bahr software safety analysis · human factors safety · software hazard analysis · FMECA bridge · 更新

本质与导读

本质 Bahr Chapter 8 的关键提醒是:FMEA / FMECA、human factors analysis 和 software safety 都不是孤立表格,而是 hazard analysis 的放大镜。它们分别追问元件怎样失效、人怎样被任务和界面推向错误、软件怎样通过 systematic fault 触发危险;三者必须回接到同一条 hazard log 和 safety case,否则团队会把真实系统安全问题误缩成零件故障清单。

主线坐标:横轨 · 功能安全(跨站) · Bahr-style analysis bridge。

学习目标

读完本页后,你应该能把 Bahr 第 8 章转成汽车 E/E 项目的分析接口,而不是把它当作 FMEA 或软件安全的重复讲义。

  • 说明为什么 FMEA 是 reliability tool,不是 primary safety tool。
  • 区分 component failure、hazard cause、normal hazardous operation 和 software systematic fault。
  • 把 FMECA 的 severity / criticality 输出接到 hazard log,而不是让它替代 HARA。
  • 用 human factors analysis 检查 task、interface、workload、training 和 procedure barrier。
  • 把 software safety analysis 放在 requirement、architecture、test、IVV 和 runtime monitoring 的证据链里。
  • 识别汽车 E/E 中人机软件耦合的高风险场景,例如 HV 维修、OTA、ADAS 接管和产线测试。

1. FMECA 不是安全分析主入口

Bahr 把 FMEA / FMECA 放在 Chapter 8 的第一段就划清边界:它们原本是可靠性工程工具,擅长从组件往上追 failure effect,但危险不一定来自组件失效。系统按设计正常运行时也可能带着能量、压力、电压、速度或误用暴露,这类 hazard 需要先由 hazard analysis 定义。

FMECA bridge

1.1 从 failure mode 到 hazard cause

FMEA 的强项是系统化枚举某个组件或功能块的失效方式,再检查 local effect、next-level propagation 和 system effect。汽车 E/E 中这正适合追主驱逆变器相电流采样 stuck、BMS 绝缘监测漂移、制动域 CAN 信号丢失、MCU reset line 短路等失效。

但这一步只能回答 "某个失效如何导致危险",不能回答 "危险全集是否完整"。例如 HV 维修人员触电可能来自互锁诊断失效,也可能来自正常放电等待时间不足、维修流程未隔离、工具绝缘等级错误或标签误导。只做 FMEA 会抓到前者,但可能漏掉后四类。

1.2 Criticality 是排序,不是接受

FMECA 比 FMEA 多了 criticality 排序,可以把 failure mode 按严重度和发生可能性排列。这个排序很适合决定先追哪些 single-point failure、哪些诊断覆盖要加证据、哪些失效需要进入 FTA 或 fault injection。

排序不等于风险接受。Bahr 的总流程要求 risk acceptance 由预先定义的 gate 决定,因此 FMECA 的高 criticality 行应该回写 hazard log、safety requirement 和 verification plan,而不是在 FMECA 表里被单独关闭。

2. Human factors 是系统约束问题

Human error 在事故报告里常被写成直接原因,但 Bahr 的 Chapter 11 和 Chapter 8 共同指向一个更硬的结论:很多所谓人误是系统把人放在了会错的位置。Human factors analysis 要检查任务、界面、工作负荷、时间压力、培训、程序和环境,不是只问操作者有没有按 SOP。

Human task interface loop

2.1 任务先于培训

培训在 hazard reduction precedence 中靠后,因为它依赖人记住并稳定执行。汽车项目里,若 HV 下电后的安全状态靠维修人员记住等待时间、插入绝缘盖、再手工测量,这不是不可用,但它不是强 barrier。更强的控制是机械防错、状态机 interlock、自动放电监测、工具授权和可追溯 permit。

Human factors analysis 应先问任务是否被设计成可执行:操作步骤是否超过现场认知负荷,界面是否把危险状态显示成低风险颜色,报警是否可区分,维修入口是否能防止跳步,异常状态下是否有明确 safe stop。

2.2 Procedure barrier 要被验证

如果风险控制只能落在 procedure,它仍然要有 verification。验证不是 "已培训" 四个字,而是任务演练、tabletop exercise、现场观察、错误注入、响应时间测量和记录抽查。对 ADAS 接管、远程诊断授权、EOL 高压测试、充电桩维护等场景,procedure 的执行质量直接影响 event tree 中某个 barrier 的 failure probability。

3. Software safety 是 systematic fault 管理

Bahr 把 software safety 单列,因为软件不以随机失效率方式失效。软件 fault 来自需求歧义、状态机遗漏、接口假设错误、测试覆盖不足、配置管理失控和变更回归缺口;它们一旦被触发,通常会在相同条件下确定性复现。

Software systematic fault chain

3.1 软件分析从 hazard 回到 requirement

软件安全分析的入口不应是代码行,而是 hazard-derived requirement。先问安全目标要求软件在什么条件下禁止、降级、报警或进入 safe state,再检查架构有没有隔离、监控和故障反应。代码和测试是下游证据。

汽车 E/E 的典型链条是:hazard analysis 定义 dangerous behavior,TSR 分配给 ECU 或软件功能,软件 safety requirement 定义状态机约束,架构分配到 component,单元和集成测试覆盖正常与异常路径,运行时监控在现场兜底。

3.2 IVV 不只是测试部门

Bahr 提到 software testing 和 IVV,其工程含义是验证链必须独立地挑战设计假设。IVV 不是把测试报告盖章,而是从 hazard、requirement、architecture、interface、code、test case 和 anomaly report 之间做 traceability 反查。

对汽车项目,IVV 的高价值动作包括:用 hazard list 反推测试缺口,用 software FMEA 检查状态机遗漏,用 fault injection 验证 diagnostic response,用 field feedback 检查 OTA 后是否引入新的 unsafe interaction。

4. 三类分析如何接线

FMECA、human factors 和 software safety 的共同危险是各自生成独立文档,最后没人知道哪条 hazard 被哪条证据关闭。Bahr-style 做法是把它们接到同一份 hazard tracking and resolution 机制。

分析面主要问题输出对象回接位置
FMECA元件或功能块怎样失效failure mode、single-point failure、criticalityhazard log、FTA、FMEDA、fault injection
Human factors人怎样被任务和界面推向错误task error、procedure weakness、training needO&SHA、event tree barrier、operation manual
Software safety需求或实现怎样系统性出错software hazard cause、test gap、monitoring needSW safety requirement、SWE test、safety case

4.1 单点失效要跨层复核

Bahr 的 FMEA 流程强调 single-point failure。汽车 E/E 项目里,单点不只可能是硬件器件,也可能是人工切换阀、维护授权流程、软件全局状态变量、公共电源、共享时钟或诊断服务入口。分析时必须问:这个单点失效是组件本身、系统配置、人的任务路径,还是软件架构形成的共同点。

4.2 传播路径比局部效应更重要

局部效应只说明失效在本层造成什么现象;传播路径说明它如何越过接口成为系统 hazard。很多安全评审失败不是因为局部效应没写,而是没有说明 next-level propagation:一个传感器 fault 怎样影响扭矩请求,一个 HMI ambiguity 怎样影响司机接管,一个 bootloader bug 怎样影响安全监控。

5. 汽车 E/E 映射

Bahr 的跨行业方法放到汽车项目,最有价值的是补上 ISO 26262 work product 之间的连接检查。它不替代标准条款,而是逼团队证明 hazard、failure mode、人机任务和软件证据之间没有断链。

场景Bahr-style 追问典型证据
HV 维修维修人员是否被系统性推向带电接触permit、LOTO、interlock、放电监测、演练记录
L2/L3 接管HMI 是否让司机误判自动化边界task analysis、HMI test、接管时间试验
OTA 更新软件变更是否重开已关闭 hazardimpact analysis、regression test、rollback evidence
EOL 高压测试procedure barrier 是否被验证fixture interlock、双手启动、near-miss trend
主驱安全状态软件状态机是否覆盖冲突 safe stateFMEA-MSR、fault injection、state transition test

6. 评审反模式

这些反模式在评审里会把 Chapter 8 的价值抵消掉,因为它们让三类分析重新退化成孤立表格。

6.1 用 FMEA 替代 hazard analysis

如果 hazard list 只是 FMEA 失效模式的摘录,团队会漏掉正常操作能量、误用、维护、环境和组织因素。修复方式是先做 PHA / HARA / O&SHA 定义 hazard,再用 FMEA 追高优先级失效原因。

6.2 把人误写成根因

"operator failed to follow procedure" 通常只是现象。评审应继续问界面、培训、可用时间、工具、环境、工作负荷、组织压力和监督机制。若不追 latent condition,整改只会变成培训和通报。

6.3 把软件测试当作软件安全

测试只能证明某些路径被执行过,不能自动证明需求正确、架构隔离充分、工具链可信或现场监控有效。软件 safety case 必须覆盖 requirement correctness、architecture constraints、implementation controls、verification coverage 和 runtime response。

缩写表

本页缩写集中在分析方法和软件验证接口,用于把 Bahr 的跨行业词汇接到汽车 E/E 工作产品。

缩写全称说明
FMEAFailure Modes and Effects Analysis自下而上的失效模式与影响分析
FMECAFailure Modes, Effects, and Criticality Analysis带 criticality 排序的 FMEA
HMIHuman-Machine Interface人机界面
IVVIndependent Verification and Validation独立验证与确认
O&SHAOperations and Support Hazard Analysis运行与支持危险分析
PHAPreliminary Hazard Analysis初步危险分析
TSRTechnical Safety Requirement技术安全需求

核心要点

Chapter 8 的工程价值在于把三个容易孤立的分析面接回系统安全主线。

  • FMEA / FMECA 是 failure-mode 放大镜,不是 hazard universe。
  • Human factors analysis 关注任务和系统约束,不是事后责备操作者。
  • Software safety analysis 管 systematic fault,核心证据来自需求、架构、测试、IVV 和运行时监控。
  • 三类分析必须回写 hazard log、safety requirement、verification plan 和 safety case。
  • Procedure / training barrier 可以使用,但必须验证其执行质量和失效概率。

Engineering Objects

这些对象可以直接落到项目交付物或评审 checklist。

  • hazard_to_failure_bridge: hazard 与 FMECA 行之间的双向追溯。
  • human_task_error_model: 任务步骤、界面、时间压力和错误恢复的分析记录。
  • software_systematic_fault_chain: 从需求歧义到现场 unsafe behavior 的传播链。
  • procedure_barrier_verification: 对培训、SOP、演练和现场执行的证据包。
  • ivv_reverse_trace: 从 hazard list 反查 requirement、test 和 anomaly 的 IVV 表。

Cross-references

来源:Nicholas J. Bahr, System Safety Engineering and Risk Assessment: A Practical Approach, Second Edition, Chapter 8;结合本 wiki 汽车 E/E 功能安全页面综合。