2. 安全生命周期模型:概念阶段、系统定义阶段、风险分析阶段、系统需求阶段

各位同学,咱们今天聊聊安全生命周期模型的前四个阶段。

说实话,我见过不少项目,一上来就急着写代码、画板子。结果呢?做到一半发现需求没对齐,风险没识别,推倒重来。嗯,这就是典型的「跳过安全生命周期」的后果。

我个人习惯,拿到一个ATO项目,第一件事不是看技术方案,而是先问:我们现在处在哪个阶段?

2.1 概念阶段:搞清楚「我们要做什么」

概念阶段,说白了就是回答三个问题:

  • 这个ATO系统要解决什么问题?
  • 用在什么线路上?
  • 和谁一起工作?

你想想看,如果连「自动驾驶到什么程度」都没说清楚,后面的安全分析就是空中楼阁。

核心产出:初步安全概念文档

里面要写清楚:系统边界、主要功能、运行环境、初步的安全目标。

我记得有一次,客户说「我们要做GoA4级别的ATO」。结果一聊,他们连站台屏蔽门联动的逻辑都没想好。这就是概念阶段没做扎实。

2.2 系统定义阶段:把「概念」变成「框架」

概念阶段是「想」,系统定义阶段是「画」。

这个阶段,我们要把系统拆开来看:

  • 有哪些子系统?(比如:车载ATO、地面ATP、联锁、DCS)
  • 子系统之间怎么通信?
  • 人机接口在哪里?

我建议,这个阶段一定要画一张系统架构图。别小看这张图,它后面所有安全分析的起点。

避坑指南:我曾经见过一个项目,系统定义阶段把「紧急制动」功能划给了两个子系统。结果后面做风险分析时,两边都以为对方负责,差点酿成大错。所以,接口定义一定要清晰,谁负责什么,白纸黑字写下来。

系统定义阶段的输出,是一份系统定义文档。里面要包含:

  • 系统功能列表
  • 子系统划分
  • 接口定义
  • 运行模式说明

2.3 风险分析阶段:找出「会出什么事」

这个阶段,是我个人觉得最有意思,也最考验功力的阶段。

风险分析,说白了就是「找茬」。我们要找出所有可能导致危险的情况。

常用的方法有:

  • PHA(初步危险分析):从顶层往下找危险
  • FMEA(失效模式与影响分析):从部件往上找失效
  • HAZOP(危险与可操作性分析):用引导词找偏差

举个例子,ATO系统在站台区域自动驾驶时,如果速度传感器突然失效,会发生什么?

这就是一个典型的危险场景。我们要分析:

  • 失效后果:可能超速、可能冲撞站台
  • 严重程度:SIL4级别
  • 发生概率:需要定量评估

注意:风险分析不是一次性的。随着设计深入,你会发现新的危险。所以,安全生命周期是迭代的,不是线性的。

我曾经在一个项目中,做PHA时漏掉了「无线通信中断」这个危险。结果后来现场测试时,列车在隧道里突然丢信号,紧急制动了一整列。嗯,从那以后,我每次做风险分析都会专门列一个「通信异常」的检查清单。

2.4 系统需求阶段:把「风险」变成「要求」

风险分析完了,我们知道了「会出什么事」。接下来,就要告诉设计人员:你要怎么做才能避免这些事?

系统需求阶段,就是把每个危险场景,转化成一条条具体的安全需求。

比如:

危险场景 安全需求
速度传感器失效导致超速 系统应具备双通道速度采集,任一通道失效时触发紧急制动
无线通信中断导致位置丢失 通信中断超过2秒,系统应进入安全降级模式
车门未关好就发车 车门状态信号必须通过安全继电器采集,且与牵引互锁

你想想看,如果没有风险分析,这些需求从哪来?拍脑袋吗?

关键点:每条安全需求都要可验证、可测试。不能写「系统应足够安全」这种废话。

我个人习惯,在系统需求阶段,会同时写一份安全需求追溯矩阵。把每条需求对应到具体的危险场景。这样后面做验证时,可以一条条核对,确保没有遗漏。

好了,这四个阶段讲完了。总结一下:

  • 概念阶段:想清楚做什么
  • 系统定义阶段:画清楚架构
  • 风险分析阶段:找清楚危险
  • 系统需求阶段:写清楚要求

这四个阶段走完,你手里就有了三份核心文档:安全概念、系统定义、安全需求。后面的设计、实现、验证,全都要靠它们。

嗯,下一章咱们聊聊「安全需求分配与系统设计阶段」,到时候我会讲讲怎么把需求分给硬件和软件。