上一篇我们讲了 ISO 26262 Part 2 Clause 6 上篇:项目启动以后,如何通过角色任命、影响分析、复用判断、剪裁和 Safety Plan,把功能安全活动计划起来。
但 Safety Plan 只是“计划要做什么”。项目真正走到后半段时,还要回答三个更硬的问题:
- 做出来的工作成果,能不能支撑功能安全论证?
- 项目执行的流程,是否真的符合 Safety Plan 和组织规则?
- 当前版本、当前配置,是否可以批准生产发布?
这就是 Clause 6 下篇要处理的内容。
Clause 6 下篇不再讨论“还要做哪些活动”,而是把 Safety Plan 产生的工作成果转化成 Safety Case,再通过认可措施作独立判断,最后落到生产发布。
本文聚焦 GB/T 34590.2-2022 的 6.4.8 到 6.4.13,并把标准中关于认可措施、评估安排以及功能安全与信息安全交互的相关内容放回具体应用场景里解释。
1. Clause 6 下篇的主线:证据如何收口
Clause 6 上篇讲的是“活动怎么计划和推进”,下篇讲的是“结果怎么证明和发布”。
#mermaid-svg-jIhgvKC6FbPkgYHB{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-jIhgvKC6FbPkgYHB .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-jIhgvKC6FbPkgYHB .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-jIhgvKC6FbPkgYHB .error-icon{fill:#552222;}#mermaid-svg-jIhgvKC6FbPkgYHB .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-jIhgvKC6FbPkgYHB .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-jIhgvKC6FbPkgYHB .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-jIhgvKC6FbPkgYHB .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-jIhgvKC6FbPkgYHB .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-jIhgvKC6FbPkgYHB .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-jIhgvKC6FbPkgYHB .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-jIhgvKC6FbPkgYHB .marker{fill:#333333;stroke:#333333;}#mermaid-svg-jIhgvKC6FbPkgYHB .marker.cross{stroke:#333333;}#mermaid-svg-jIhgvKC6FbPkgYHB svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-jIhgvKC6FbPkgYHB p{margin:0;}#mermaid-svg-jIhgvKC6FbPkgYHB .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-jIhgvKC6FbPkgYHB .cluster-label text{fill:#333;}#mermaid-svg-jIhgvKC6FbPkgYHB .cluster-label span{color:#333;}#mermaid-svg-jIhgvKC6FbPkgYHB .cluster-label span p{background-color:transparent;}#mermaid-svg-jIhgvKC6FbPkgYHB .label text,#mermaid-svg-jIhgvKC6FbPkgYHB span{fill:#333;color:#333;}#mermaid-svg-jIhgvKC6FbPkgYHB .node rect,#mermaid-svg-jIhgvKC6FbPkgYHB .node circle,#mermaid-svg-jIhgvKC6FbPkgYHB .node ellipse,#mermaid-svg-jIhgvKC6FbPkgYHB .node polygon,#mermaid-svg-jIhgvKC6FbPkgYHB .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-jIhgvKC6FbPkgYHB .rough-node .label text,#mermaid-svg-jIhgvKC6FbPkgYHB .node .label text,#mermaid-svg-jIhgvKC6FbPkgYHB .image-shape .label,#mermaid-svg-jIhgvKC6FbPkgYHB .icon-shape .label{text-anchor:middle;}#mermaid-svg-jIhgvKC6FbPkgYHB .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-jIhgvKC6FbPkgYHB .rough-node .label,#mermaid-svg-jIhgvKC6FbPkgYHB .node .label,#mermaid-svg-jIhgvKC6FbPkgYHB .image-shape .label,#mermaid-svg-jIhgvKC6FbPkgYHB .icon-shape .label{text-align:center;}#mermaid-svg-jIhgvKC6FbPkgYHB .node.clickable{cursor:pointer;}#mermaid-svg-jIhgvKC6FbPkgYHB .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-jIhgvKC6FbPkgYHB .arrowheadPath{fill:#333333;}#mermaid-svg-jIhgvKC6FbPkgYHB .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-jIhgvKC6FbPkgYHB .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-jIhgvKC6FbPkgYHB .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-jIhgvKC6FbPkgYHB .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-jIhgvKC6FbPkgYHB .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-jIhgvKC6FbPkgYHB .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-jIhgvKC6FbPkgYHB .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-jIhgvKC6FbPkgYHB .cluster text{fill:#333;}#mermaid-svg-jIhgvKC6FbPkgYHB .cluster span{color:#333;}#mermaid-svg-jIhgvKC6FbPkgYHB div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-jIhgvKC6FbPkgYHB .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-jIhgvKC6FbPkgYHB rect.text{fill:none;stroke-width:0;}#mermaid-svg-jIhgvKC6FbPkgYHB .icon-shape,#mermaid-svg-jIhgvKC6FbPkgYHB .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-jIhgvKC6FbPkgYHB .icon-shape p,#mermaid-svg-jIhgvKC6FbPkgYHB .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-jIhgvKC6FbPkgYHB .icon-shape .label rect,#mermaid-svg-jIhgvKC6FbPkgYHB .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-jIhgvKC6FbPkgYHB .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-jIhgvKC6FbPkgYHB .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-jIhgvKC6FbPkgYHB :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
Safety Plan活动、责任、资源、时间、工作成果
工作成果HARA/FSC/TSC/分析/验证/确认
Safety Case把成果组织成安全论证
认可措施认可评审/功能安全审核/功能安全评估
生产发布基于证据和基线做发布决策
接受
有条件接受
拒绝
Safety Plan 说明计划做哪些安全活动;工作成果说明活动产出了哪些证据;Safety Case 说明这些证据为什么足以支撑功能安全;认可措施说明这些证据和流程是否经过足够独立的判断。
Safety Plan 和 Safety Case 之间断开,常见结果是做了很多文档,却说不清这些文档证明了什么。Safety Case 和认可措施之间断开,常见结果是证据很多,却少了客观判断。认可措施和生产发布之间断开,常见结果是评审、审核、评估都做了,发布版本却未必被证据覆盖。
2. Safety Case:不是文档合集,而是论证结构
6.4.8 要求按照 Safety Plan 建立 Safety Case,并逐步收录安全生命周期内的工作成果,用来支持安全论证。
这部分的重点很简单。
第一,Safety Case 不是项目末期把所有功能安全文档打包。
第二,Safety Case 也不是单纯的证据目录。
它要回答的是:
在明确的 item 边界、运行环境、版本和配置下,为什么可以认为功能安全已经实现?
下图只是把这种关系画出来:
#mermaid-svg-fVmIsuBlS7VaNfcv{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-fVmIsuBlS7VaNfcv .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-fVmIsuBlS7VaNfcv .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-fVmIsuBlS7VaNfcv .error-icon{fill:#552222;}#mermaid-svg-fVmIsuBlS7VaNfcv .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-fVmIsuBlS7VaNfcv .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-fVmIsuBlS7VaNfcv .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-fVmIsuBlS7VaNfcv .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-fVmIsuBlS7VaNfcv .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-fVmIsuBlS7VaNfcv .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-fVmIsuBlS7VaNfcv .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-fVmIsuBlS7VaNfcv .marker{fill:#333333;stroke:#333333;}#mermaid-svg-fVmIsuBlS7VaNfcv .marker.cross{stroke:#333333;}#mermaid-svg-fVmIsuBlS7VaNfcv svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-fVmIsuBlS7VaNfcv p{margin:0;}#mermaid-svg-fVmIsuBlS7VaNfcv .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-fVmIsuBlS7VaNfcv .cluster-label text{fill:#333;}#mermaid-svg-fVmIsuBlS7VaNfcv .cluster-label span{color:#333;}#mermaid-svg-fVmIsuBlS7VaNfcv .cluster-label span p{background-color:transparent;}#mermaid-svg-fVmIsuBlS7VaNfcv .label text,#mermaid-svg-fVmIsuBlS7VaNfcv span{fill:#333;color:#333;}#mermaid-svg-fVmIsuBlS7VaNfcv .node rect,#mermaid-svg-fVmIsuBlS7VaNfcv .node circle,#mermaid-svg-fVmIsuBlS7VaNfcv .node ellipse,#mermaid-svg-fVmIsuBlS7VaNfcv .node polygon,#mermaid-svg-fVmIsuBlS7VaNfcv .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-fVmIsuBlS7VaNfcv .rough-node .label text,#mermaid-svg-fVmIsuBlS7VaNfcv .node .label text,#mermaid-svg-fVmIsuBlS7VaNfcv .image-shape .label,#mermaid-svg-fVmIsuBlS7VaNfcv .icon-shape .label{text-anchor:middle;}#mermaid-svg-fVmIsuBlS7VaNfcv .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-fVmIsuBlS7VaNfcv .rough-node .label,#mermaid-svg-fVmIsuBlS7VaNfcv .node .label,#mermaid-svg-fVmIsuBlS7VaNfcv .image-shape .label,#mermaid-svg-fVmIsuBlS7VaNfcv .icon-shape .label{text-align:center;}#mermaid-svg-fVmIsuBlS7VaNfcv .node.clickable{cursor:pointer;}#mermaid-svg-fVmIsuBlS7VaNfcv .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-fVmIsuBlS7VaNfcv .arrowheadPath{fill:#333333;}#mermaid-svg-fVmIsuBlS7VaNfcv .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-fVmIsuBlS7VaNfcv .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-fVmIsuBlS7VaNfcv .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-fVmIsuBlS7VaNfcv .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-fVmIsuBlS7VaNfcv .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-fVmIsuBlS7VaNfcv .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-fVmIsuBlS7VaNfcv .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-fVmIsuBlS7VaNfcv .cluster text{fill:#333;}#mermaid-svg-fVmIsuBlS7VaNfcv .cluster span{color:#333;}#mermaid-svg-fVmIsuBlS7VaNfcv div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-fVmIsuBlS7VaNfcv .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-fVmIsuBlS7VaNfcv rect.text{fill:none;stroke-width:0;}#mermaid-svg-fVmIsuBlS7VaNfcv .icon-shape,#mermaid-svg-fVmIsuBlS7VaNfcv .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-fVmIsuBlS7VaNfcv .icon-shape p,#mermaid-svg-fVmIsuBlS7VaNfcv .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-fVmIsuBlS7VaNfcv .icon-shape .label rect,#mermaid-svg-fVmIsuBlS7VaNfcv .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-fVmIsuBlS7VaNfcv .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-fVmIsuBlS7VaNfcv .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-fVmIsuBlS7VaNfcv :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
顶层主张当前版本 item 已实现功能安全
危险和风险已识别
安全目标已转化为安全需求
架构和安全机制能够实现安全需求
系统性故障和随机硬件失效已被分析
验证和安全确认结果充分
流程、变更和配置受控
安全异常和遗留问题可接受
Item Definition / HARA / Safety Goals
FSC / TSC / HSR / SSR
系统设计 / HW设计 / SW架构
FMEA / FTA / FMEDA / DFA / 相关失效分析
集成、验证、安全确认报告
Safety Plan / 配置管理 / 变更管理 / 文档管理
安全异常关闭 / 认可措施结果 / FSA建议
所以,Safety Case 中的每一类证据都应该能说清它支持哪个主张:
| Item Definition | item 边界、接口、运行环境和假设是清楚的 |
| HARA | 危害事件、ASIL 和安全目标识别是有依据的 |
| FSC / TSC | 安全目标已经被分解为功能和技术安全要求 |
| HW / SW 工作成果 | 软硬件实现承接了分配的安全要求 |
| 安全分析 | 故障、失效模式、相关失效和安全措施已经被分析 |
| 验证和安全确认 | 安全要求和安全目标有验证、确认支撑 |
| 认可措施报告 | 关键工作成果、流程和功能安全达成经过独立判断 |
| 安全异常关闭依据 | 未关闭或曾经偏离的问题有受控处理 |
在分布式开发中,Safety Case 还要处理客户和供应商之间的证据组合。供应商可以提供自己的 Safety Case、工作成果和评估报告,但客户不能只把这些材料当成附件收进来。客户还要判断这些证据如何支撑 item 级安全主张,供应商假设是否满足,版本和配置是否与最终集成一致。
标准关于功能安全与信息安全交互的提示,也可以放在 Safety Case 这一层理解:如果某个信息安全威胁、对策或事件可能影响安全目标、安全机制、故障响应、验证覆盖或发布版本,就应进入影响分析、变更管理和 Safety Case 的证据链。
3. 认可措施:从工作成果到功能安全达成的独立判断
6.4.9 把认可措施分成三类:
| 认可评审 | 关键工作成果 | 工作成果是否提供了充分、令人信服的功能安全贡献证据? | 认可评审报告 |
| 功能安全审核 | 功能安全流程实施 | 功能安全所需流程是否按 Safety Plan 和组织规则实施? | 功能安全审核报告 |
| 功能安全评估 | item、element 或工作成果对功能安全的达成和贡献 | item 是否实现功能安全,或 element / work product 是否作出足够贡献? | 功能安全评估报告 |
可以这样区分:
- 认可评审看“成果”;
- 功能安全审核看“过程”;
- 功能安全评估看“最终是否站得住”。
#mermaid-svg-x2QmMlwqOyJ16Dfb{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-x2QmMlwqOyJ16Dfb .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-x2QmMlwqOyJ16Dfb .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-x2QmMlwqOyJ16Dfb .error-icon{fill:#552222;}#mermaid-svg-x2QmMlwqOyJ16Dfb .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-x2QmMlwqOyJ16Dfb .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-x2QmMlwqOyJ16Dfb .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-x2QmMlwqOyJ16Dfb .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-x2QmMlwqOyJ16Dfb .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-x2QmMlwqOyJ16Dfb .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-x2QmMlwqOyJ16Dfb .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-x2QmMlwqOyJ16Dfb .marker{fill:#333333;stroke:#333333;}#mermaid-svg-x2QmMlwqOyJ16Dfb .marker.cross{stroke:#333333;}#mermaid-svg-x2QmMlwqOyJ16Dfb svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-x2QmMlwqOyJ16Dfb p{margin:0;}#mermaid-svg-x2QmMlwqOyJ16Dfb .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-x2QmMlwqOyJ16Dfb .cluster-label text{fill:#333;}#mermaid-svg-x2QmMlwqOyJ16Dfb .cluster-label span{color:#333;}#mermaid-svg-x2QmMlwqOyJ16Dfb .cluster-label span p{background-color:transparent;}#mermaid-svg-x2QmMlwqOyJ16Dfb .label text,#mermaid-svg-x2QmMlwqOyJ16Dfb span{fill:#333;color:#333;}#mermaid-svg-x2QmMlwqOyJ16Dfb .node rect,#mermaid-svg-x2QmMlwqOyJ16Dfb .node circle,#mermaid-svg-x2QmMlwqOyJ16Dfb .node ellipse,#mermaid-svg-x2QmMlwqOyJ16Dfb .node polygon,#mermaid-svg-x2QmMlwqOyJ16Dfb .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-x2QmMlwqOyJ16Dfb .rough-node .label text,#mermaid-svg-x2QmMlwqOyJ16Dfb .node .label text,#mermaid-svg-x2QmMlwqOyJ16Dfb .image-shape .label,#mermaid-svg-x2QmMlwqOyJ16Dfb .icon-shape .label{text-anchor:middle;}#mermaid-svg-x2QmMlwqOyJ16Dfb .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-x2QmMlwqOyJ16Dfb .rough-node .label,#mermaid-svg-x2QmMlwqOyJ16Dfb .node .label,#mermaid-svg-x2QmMlwqOyJ16Dfb .image-shape .label,#mermaid-svg-x2QmMlwqOyJ16Dfb .icon-shape .label{text-align:center;}#mermaid-svg-x2QmMlwqOyJ16Dfb .node.clickable{cursor:pointer;}#mermaid-svg-x2QmMlwqOyJ16Dfb .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-x2QmMlwqOyJ16Dfb .arrowheadPath{fill:#333333;}#mermaid-svg-x2QmMlwqOyJ16Dfb .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-x2QmMlwqOyJ16Dfb .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-x2QmMlwqOyJ16Dfb .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-x2QmMlwqOyJ16Dfb .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-x2QmMlwqOyJ16Dfb .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-x2QmMlwqOyJ16Dfb .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-x2QmMlwqOyJ16Dfb .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-x2QmMlwqOyJ16Dfb .cluster text{fill:#333;}#mermaid-svg-x2QmMlwqOyJ16Dfb .cluster span{color:#333;}#mermaid-svg-x2QmMlwqOyJ16Dfb div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-x2QmMlwqOyJ16Dfb .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-x2QmMlwqOyJ16Dfb rect.text{fill:none;stroke-width:0;}#mermaid-svg-x2QmMlwqOyJ16Dfb .icon-shape,#mermaid-svg-x2QmMlwqOyJ16Dfb .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-x2QmMlwqOyJ16Dfb .icon-shape p,#mermaid-svg-x2QmMlwqOyJ16Dfb .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-x2QmMlwqOyJ16Dfb .icon-shape .label rect,#mermaid-svg-x2QmMlwqOyJ16Dfb .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-x2QmMlwqOyJ16Dfb .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-x2QmMlwqOyJ16Dfb .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-x2QmMlwqOyJ16Dfb :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
关键工作成果
认可评审成果是否充分
功能安全流程
功能安全审核流程是否实施
Safety Case论据、证据、异常、版本
功能安全评估功能安全是否实现
评估建议
接受
有条件接受
拒绝
这三类活动可以在项目安排上联合进行,但概念上不能混淆。
例如,普通技术评审不一定等于认可评审,因为它可能没有覆盖表 1 要求的独立性,也可能没有判断工作成果对功能安全的贡献。ASPICE 或质量体系审核可以和功能安全审核协同,但不能自动替代功能安全审核。供应商 FSA 报告可以作为客户 FSA 的输入,但不能天然替代客户对整车或 item 级功能安全的判断。
3.1 ASIL 和独立性:认可措施做到什么程度
标准中的认可措施和独立性要求表,是 Clause 6 下篇里非常关键的一张表。
它不是只告诉我们“要不要评审”,更重要的是告诉我们:
对不同工作成果、不同 ASIL,需要什么类型的认可措施,以及这些措施需要达到什么独立性等级。
先看哪些活动是明确要求的
6.4.11.1 明确:当相关项和要素的安全要求最高 ASIL 为 B、C 或 D 时,应开展并在生产发布前完成功能安全审核。
6.4.12.1 明确:当相关项或要素安全要求最高 ASIL 为 B、C 或 D 时,应开展功能安全评估。
所以对 ASIL B/C/D 项目,功能安全审核和功能安全评估不能当成“看项目需要再说”的可选动作。
再看独立性等级怎么理解
其中的独立性等级,可以先这样理解:
| – | 对该认可措施无要求和建议 |
| I0 | 宜执行认可措施;如果执行,应由不同于工作成果创建者的人员执行 |
| I1 | 应由不同于工作成果创建者的人员执行 |
| I2 | 应由独立于创建团队的人员执行,例如不向同一直接上级汇报 |
| I3 | 应由在管理、资源和发布权限方面独立于创建工作成果部门的人员执行 |
I0 不是“作者自己检查一下”。只要执行该认可措施,就应由不同于工作成果创建者的人执行。
I2 和 I3 也不是报告里写一句“独立评审”就够了。项目需要能解释评审、审核或评估人员的组织关系、汇报线、资源独立性、发布权限独立性,以及是否能访问必要的信息和工具。
6.4.9 还要求实施认可措施的人员能接触开展安全活动的人员和组织机构,并有权限获取相关信息和工具。没有信息权限的“独立”,通常只是形式独立。
认可措施和独立性要求的工程化整理
下面是对 GB/T 34590.2-2022 对应要求的工程化整理,用于帮助项目建立认可措施计划。它保留了主要对象、ASIL 和独立性等级,正式项目仍应回到标准原表核对。
| 相关项层面影响分析的认可评审 | I3 | I3 | I3 | I3 | I3 | 判断是否正确识别新 item、修改或环境变化,以及由变化引起的功能安全影响和所需安全活动 |
| HARA 的认可评审 | I3 | I3 | I3 | I3 | I3 | 判断运行场景、危害事件、ASIL/QM 评级、安全目标是否适当 |
| Safety Plan 的认可评审 | – | I1 | I1 | I2 | I3 | 判断安全活动、剪裁、复用影响分析、在用证明、工具相关剪裁和认可措施计划是否充分 |
| 功能安全概念 FSC 的认可评审 | – | I1 | I1 | I2 | I3 | 按相关项全部安全目标中的最高 ASIL 判断,关注 FSR 是否覆盖安全目标 |
| 技术安全概念 TSC 的认可评审 | – | I1 | I1 | I2 | I3 | 按导出 TSR 的功能安全要求最高 ASIL 判断;如有 ASIL 分解,需要考虑分解结果 |
| 集成和测试策略的认可评审 | – | I0 | I1 | I2 | I2 | 判断集成与测试策略是否足以证明系统设计和安全要求得到实现 |
| 安全确认规范的认可评审 | – | I0 | I1 | I2 | I2 | 判断安全确认活动是否足以证明安全目标和 FSC 在整车层面适当、正确、完整实现 |
| 安全分析和相关失效分析的认可评审 | – | I1 | I1 | I2 | I3 | 判断安全分析和相关失效分析是否正确执行,故障与安全措施是否充分处理 |
| Safety Case 的认可评审 | – | I1 | I1 | I2 | I3 | 判断 Safety Case 中的论据和证据是否有说服力 |
| 功能安全审核 | – | – | I0 | I2 | I3 | 判断功能安全流程是否按要求实施 |
| 功能安全评估 | – | – | I0 | I2 | I3 | 判断 item 已实现的功能安全,或 element / work product 对功能安全的贡献 |
这张表可以直接变成 Safety Plan 里的认可措施矩阵。
例如:
- HARA 即使是 QM 或 ASIL A,也不是随便找作者自己确认;
- Safety Plan 到 ASIL C/D 时,独立性要求明显提高;
- ASIL B 的功能安全审核和功能安全评估是必做,但独立性等级是 I0;
- ASIL C/D 的功能安全审核和评估需要更强组织独立性;
- Safety Case 本身也要接受认可评审,不是 FSA 时才第一次被认真看。
3.2 认可评审:判断关键工作成果是否足够
6.4.10 要求对表 1 所列以及 Safety Plan 中要求的认可评审指定负责人,并形成报告,判断工作成果对功能安全所做的贡献。认可评审应在生产发布前完成。
标准对认可措施的判断指南,在这里最适合转成评审问题库。
| 影响分析 | 是否正确、完整识别修改,并评估其对功能安全的影响 |
| HARA | 场景、危害事件、E/C/S 参数、ASIL/QM 判断和安全目标是否有充分依据 |
| Safety Plan | 是否与影响分析、项目计划、资源计划一致;剪裁和 DIA 是否充分 |
| FSC | FSR 是否覆盖安全目标,安全机制、外部措施和假设是否合理 |
| TSC | TSR 是否承接 FSR,系统设计和安全机制是否可实现 |
| 集成和测试策略 | 测试活动、方法和技术是否足以证明安全要求实现 |
| 安全确认规范 | 是否能在整车层面确认安全目标和 FSC 的适当性、正确性、完整性 |
| 安全分析和相关失效分析 | 故障、安全措施、相关失效是否得到充分分析 |
| Safety Case | 论证是否有说服力,引用证据是否存在、完整、可追溯、一致 |
因此,认可评审不能只看文档格式和签字页。要看的还是:
- 工作成果是否正确;
- 内容是否完整;
- 上下游是否一致;
- 证据是否充分;
- 是否能支撑功能安全目标;
- 评审问题是否闭环。
标准也允许认可评审和验证评审合并进行,但前提是合并后的活动仍满足表 1 要求的独立性,并且认可评审的判断目标没有丢。
3.3 功能安全审核:判断流程是否真正实施
功能安全审核看的是流程实施。
它要判断功能安全所需流程是否按 Safety Plan、组织专门规则和标准目标真正运行起来。
审核通常会看这些点:
- Safety Plan 是否被执行,而不是只被批准;
- 工作成果是否按配置管理、变更管理、文档管理受控;
- 安全活动是否有责任人、输入、输出和状态;
- 剪裁是否有依据并经过评审;
- DIA 中约定的客户/供应商接口是否落实;
- 安全异常是否被记录、升级、处理和关闭;
- 组织流程是否能支撑 GB/T 34590 的流程目标。
#mermaid-svg-dYua50gHjDYonBu9{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-dYua50gHjDYonBu9 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-dYua50gHjDYonBu9 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-dYua50gHjDYonBu9 .error-icon{fill:#552222;}#mermaid-svg-dYua50gHjDYonBu9 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-dYua50gHjDYonBu9 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-dYua50gHjDYonBu9 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-dYua50gHjDYonBu9 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-dYua50gHjDYonBu9 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-dYua50gHjDYonBu9 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-dYua50gHjDYonBu9 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-dYua50gHjDYonBu9 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-dYua50gHjDYonBu9 .marker.cross{stroke:#333333;}#mermaid-svg-dYua50gHjDYonBu9 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-dYua50gHjDYonBu9 p{margin:0;}#mermaid-svg-dYua50gHjDYonBu9 .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-dYua50gHjDYonBu9 .cluster-label text{fill:#333;}#mermaid-svg-dYua50gHjDYonBu9 .cluster-label span{color:#333;}#mermaid-svg-dYua50gHjDYonBu9 .cluster-label span p{background-color:transparent;}#mermaid-svg-dYua50gHjDYonBu9 .label text,#mermaid-svg-dYua50gHjDYonBu9 span{fill:#333;color:#333;}#mermaid-svg-dYua50gHjDYonBu9 .node rect,#mermaid-svg-dYua50gHjDYonBu9 .node circle,#mermaid-svg-dYua50gHjDYonBu9 .node ellipse,#mermaid-svg-dYua50gHjDYonBu9 .node polygon,#mermaid-svg-dYua50gHjDYonBu9 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-dYua50gHjDYonBu9 .rough-node .label text,#mermaid-svg-dYua50gHjDYonBu9 .node .label text,#mermaid-svg-dYua50gHjDYonBu9 .image-shape .label,#mermaid-svg-dYua50gHjDYonBu9 .icon-shape .label{text-anchor:middle;}#mermaid-svg-dYua50gHjDYonBu9 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-dYua50gHjDYonBu9 .rough-node .label,#mermaid-svg-dYua50gHjDYonBu9 .node .label,#mermaid-svg-dYua50gHjDYonBu9 .image-shape .label,#mermaid-svg-dYua50gHjDYonBu9 .icon-shape .label{text-align:center;}#mermaid-svg-dYua50gHjDYonBu9 .node.clickable{cursor:pointer;}#mermaid-svg-dYua50gHjDYonBu9 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-dYua50gHjDYonBu9 .arrowheadPath{fill:#333333;}#mermaid-svg-dYua50gHjDYonBu9 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-dYua50gHjDYonBu9 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-dYua50gHjDYonBu9 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-dYua50gHjDYonBu9 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-dYua50gHjDYonBu9 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-dYua50gHjDYonBu9 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-dYua50gHjDYonBu9 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-dYua50gHjDYonBu9 .cluster text{fill:#333;}#mermaid-svg-dYua50gHjDYonBu9 .cluster span{color:#333;}#mermaid-svg-dYua50gHjDYonBu9 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-dYua50gHjDYonBu9 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-dYua50gHjDYonBu9 rect.text{fill:none;stroke-width:0;}#mermaid-svg-dYua50gHjDYonBu9 .icon-shape,#mermaid-svg-dYua50gHjDYonBu9 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-dYua50gHjDYonBu9 .icon-shape p,#mermaid-svg-dYua50gHjDYonBu9 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-dYua50gHjDYonBu9 .icon-shape .label rect,#mermaid-svg-dYua50gHjDYonBu9 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-dYua50gHjDYonBu9 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-dYua50gHjDYonBu9 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-dYua50gHjDYonBu9 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
功能安全审核
Safety Plan 执行情况
配置/变更/文档管理
角色、职责和资源
DIA 和供应商接口
安全异常闭环
流程目标达成
审核结论
ASPICE、质量体系审核或项目过程审核可以提供有用输入,也可以与功能安全审核协调安排。但它们不能天然替代功能安全审核,因为功能安全审核要回答的是功能安全流程目标是否达成,而不是一般过程能力是否达标。
3.4 功能安全评估:综合判断功能安全是否达成
功能安全评估是对 item 或 element 功能安全达成情况的综合判断。
6.4.12 对 FSA 的要求有几个重点:
- ASIL B/C/D 项目应开展;
- 应在 Safety Plan 中计划;
- 最迟宜在系统级产品开发之初规划;
- 宜在开发过程中逐步执行;
- 应在生产发布前完成;
- 报告应给出接受、有条件接受或拒绝建议。
这说明 FSA 不是发布前临时找人“盖章”。更合理的做法是早规划、分阶段看证据、发布前收口。
标准给出的 FSA 安排示例,适合用来搭建项目评估议程。FSA 不应只看最终测试报告,而应覆盖:
| 安全管理 | 安全文化、能力管理、角色职责、Safety Plan、剪裁、审核和 Safety Case |
| 概念阶段 | Item Definition、HARA、FSC、外部措施和依赖关系 |
| 系统开发 | TSC、系统设计、TSR 分配、系统验证 |
| 硬件开发 | HSR、硬件设计、随机硬件失效评估、硬件集成测试 |
| 软件开发 | SSR、软件架构、单元设计、实现、软件验证 |
| 相关项集成 | 软硬件集成、系统/item 集成、整车集成 |
| 安全确认 | 安全确认活动和文档 |
| 供应商 FSA | 供应商评估报告及其对客户 Safety Case 的贡献 |
| 安全相关特殊特性 | 生产、运行、服务、报废中安全相关特殊特性 |
| 后续行动 | FSA 建议、接受条件、纠正措施和关闭状态 |
FSA 最后的三种建议也要理解清楚:
| 接受 | 证据足以支撑当前范围内的功能安全判断 | 可进入发布决策 |
| 有条件接受 | 基本可接受,但存在明确条件 | 记录条件、责任人、关闭方式和期限 |
| 拒绝 | 当前证据不足或功能安全未达成 | 采取纠正措施后重新评估 |
“有条件接受”不是含糊通过。接受条件必须能追踪、能验证、能关闭,否则生产发布时仍然会留下不清楚的风险。
4. 生产发布:证据、版本和基线必须一致
6.4.13 把生产发布定义成一个证据门。
发布前至少要具备:
- Safety Case;
- 适用的认可措施报告;
- 足够证据证明对功能安全实现有信心;
- 发布人员、版本、配置、日期;
- 嵌入式软件基线,包括标定数据;
- 硬件基线。
#mermaid-svg-StLd1bUIWuq1vTLN{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-StLd1bUIWuq1vTLN .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-StLd1bUIWuq1vTLN .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-StLd1bUIWuq1vTLN .error-icon{fill:#552222;}#mermaid-svg-StLd1bUIWuq1vTLN .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-StLd1bUIWuq1vTLN .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-StLd1bUIWuq1vTLN .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-StLd1bUIWuq1vTLN .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-StLd1bUIWuq1vTLN .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-StLd1bUIWuq1vTLN .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-StLd1bUIWuq1vTLN .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-StLd1bUIWuq1vTLN .marker{fill:#333333;stroke:#333333;}#mermaid-svg-StLd1bUIWuq1vTLN .marker.cross{stroke:#333333;}#mermaid-svg-StLd1bUIWuq1vTLN svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-StLd1bUIWuq1vTLN p{margin:0;}#mermaid-svg-StLd1bUIWuq1vTLN .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-StLd1bUIWuq1vTLN .cluster-label text{fill:#333;}#mermaid-svg-StLd1bUIWuq1vTLN .cluster-label span{color:#333;}#mermaid-svg-StLd1bUIWuq1vTLN .cluster-label span p{background-color:transparent;}#mermaid-svg-StLd1bUIWuq1vTLN .label text,#mermaid-svg-StLd1bUIWuq1vTLN span{fill:#333;color:#333;}#mermaid-svg-StLd1bUIWuq1vTLN .node rect,#mermaid-svg-StLd1bUIWuq1vTLN .node circle,#mermaid-svg-StLd1bUIWuq1vTLN .node ellipse,#mermaid-svg-StLd1bUIWuq1vTLN .node polygon,#mermaid-svg-StLd1bUIWuq1vTLN .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-StLd1bUIWuq1vTLN .rough-node .label text,#mermaid-svg-StLd1bUIWuq1vTLN .node .label text,#mermaid-svg-StLd1bUIWuq1vTLN .image-shape .label,#mermaid-svg-StLd1bUIWuq1vTLN .icon-shape .label{text-anchor:middle;}#mermaid-svg-StLd1bUIWuq1vTLN .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-StLd1bUIWuq1vTLN .rough-node .label,#mermaid-svg-StLd1bUIWuq1vTLN .node .label,#mermaid-svg-StLd1bUIWuq1vTLN .image-shape .label,#mermaid-svg-StLd1bUIWuq1vTLN .icon-shape .label{text-align:center;}#mermaid-svg-StLd1bUIWuq1vTLN .node.clickable{cursor:pointer;}#mermaid-svg-StLd1bUIWuq1vTLN .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-StLd1bUIWuq1vTLN .arrowheadPath{fill:#333333;}#mermaid-svg-StLd1bUIWuq1vTLN .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-StLd1bUIWuq1vTLN .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-StLd1bUIWuq1vTLN .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-StLd1bUIWuq1vTLN .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-StLd1bUIWuq1vTLN .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-StLd1bUIWuq1vTLN .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-StLd1bUIWuq1vTLN .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-StLd1bUIWuq1vTLN .cluster text{fill:#333;}#mermaid-svg-StLd1bUIWuq1vTLN .cluster span{color:#333;}#mermaid-svg-StLd1bUIWuq1vTLN div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-StLd1bUIWuq1vTLN .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-StLd1bUIWuq1vTLN rect.text{fill:none;stroke-width:0;}#mermaid-svg-StLd1bUIWuq1vTLN .icon-shape,#mermaid-svg-StLd1bUIWuq1vTLN .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-StLd1bUIWuq1vTLN .icon-shape p,#mermaid-svg-StLd1bUIWuq1vTLN .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-StLd1bUIWuq1vTLN .icon-shape .label rect,#mermaid-svg-StLd1bUIWuq1vTLN .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-StLd1bUIWuq1vTLN .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-StLd1bUIWuq1vTLN .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-StLd1bUIWuq1vTLN :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
是
否
生产发布准备
Safety Case 可用
认可措施报告可用
FSA 接受条件关闭或受控
软件基线和标定数据明确
硬件基线明确
版本、配置、日期、责任人明确
证据是否足以支撑功能安全信心?
批准生产发布
暂缓发布补充证据或纠正措施
生产发布最怕的是证据版本和发布版本不一致。
例如:
- Safety Case 支撑的是 A 版软件,但实际发布的是 B 版;
- FSA 看的是旧硬件配置,但发布时器件已经替换;
- Safety Case 引用了旧标定数据,但生产发布包含新标定;
- 供应商报告覆盖的是旧交付版本,但客户集成的是新版本;
- 信息安全对策引入设计变化,但没有重新判断功能安全影响。
这些情况都可能导致“文档上已经完成,实际发布对象却没有被证据覆盖”。
功能安全与信息安全交互的相关要求在这里也有实际意义:如果信息安全事件响应、对策变更或现场事件处理引入了安全相关设计变化,就要触发功能安全影响分析,并判断是否需要更新 Safety Case、补充认可措施或重新评估。
5. 总结:Clause 6 下篇讲的是“发布前的可信闭环”
Clause 6 上篇讲“怎么计划”,下篇讲“怎么收口”。
这条收口链可以这样记:
Safety Plan 定义活动,工作成果形成证据,Safety Case 组织论证,认可措施提供独立判断,生产发布基于证据和基线做决策。
其中,认可措施与独立性要求表非常关键,因为它告诉项目:
- 哪些对象需要认可评审;
- 哪些 ASIL 下需要功能安全审核和评估;
- 不同对象需要达到什么独立性等级;
- 独立性不是签字形式,而是组织关系、信息权限、资源和发布权限共同支撑的判断能力。
标准中的配套指南也不需要脱离主线单独记忆:认可措施指南可以转成评审问题库,FSA 安排示例可以转成评估议程,功能安全与信息安全交互提示则应进入 Safety Case、变更管理和发布检查。
Safety Case 负责把证据串起来,认可措施负责把证据看明白,生产发布负责把证据和版本一起收口。