Human Factors and Software Safety Analysis 深度
本质与导读
本质 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 定义。
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。
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 来自需求歧义、状态机遗漏、接口假设错误、测试覆盖不足、配置管理失控和变更回归缺口;它们一旦被触发,通常会在相同条件下确定性复现。
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、criticality | hazard log、FTA、FMEDA、fault injection |
| Human factors | 人怎样被任务和界面推向错误 | task error、procedure weakness、training need | O&SHA、event tree barrier、operation manual |
| Software safety | 需求或实现怎样系统性出错 | software hazard cause、test gap、monitoring need | SW 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 更新 | 软件变更是否重开已关闭 hazard | impact analysis、regression test、rollback evidence |
| EOL 高压测试 | procedure barrier 是否被验证 | fixture interlock、双手启动、near-miss trend |
| 主驱安全状态 | 软件状态机是否覆盖冲突 safe state | FMEA-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 工作产品。
| 缩写 | 全称 | 说明 |
|---|---|---|
| FMEA | Failure Modes and Effects Analysis | 自下而上的失效模式与影响分析 |
| FMECA | Failure Modes, Effects, and Criticality Analysis | 带 criticality 排序的 FMEA |
| HMI | Human-Machine Interface | 人机界面 |
| IVV | Independent Verification and Validation | 独立验证与确认 |
| O&SHA | Operations and Support Hazard Analysis | 运行与支持危险分析 |
| PHA | Preliminary Hazard Analysis | 初步危险分析 |
| TSR | Technical 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
- ← 索引
- Bahr-style System Safety Engineering and Risk Assessment — 本页是总览中 "human factors / software / FMECA" 分支的展开。
- FMEA 方法论 — 现有汽车 FMEA 填表和评分方法。
- 软件功能安全 ASIL D — ISO 26262 软件安全证据链。
- ISO 26262 Part 6 软件开发 — 软件生命周期条款入口。
- Safety Mechanism Catalog — 将 software / human barrier 转成具体 safety mechanism 的目录。
来源:Nicholas J. Bahr, System Safety Engineering and Risk Assessment: A Practical Approach, Second Edition, Chapter 8;结合本 wiki 汽车 E/E 功能安全页面综合。