MUNIK解读ISO26262: 功能安全之安全计划
前言
当我们进行功能安全开发时,由于整个项目周期和内容较多,因此需要在项目前期对一些问题提前进行规划:比如功能安全开发具体分为几个阶段,应该怎么去做?对于不同的环节,有哪些人员来执行?资源是如何调配的(工具、时间、前置条件)?在过程中可能会遇到的风险等。安全计划便是通过对这些问题逐一梳理,各安全活动进度及状态清晰可见,使得整个开发过程有序进行。
本文将从以下几个方面展开对安全计划的介绍:
一、什么是安全计划?
安全计划是管理和指导开展项目中安全活动的计划,这样是可以系统化的对项目所有的安全活动及进度进行管理。
常见的一个误区是,认为项目计划等同于安全计划。项目计划是对项目实施过程中所有的活动进行系统性的规划,其中当然不止功能安全相关事宜。安全计划只是项目计划的一部分。我们也可以将安全计划的内容与项目计划写在同一份文件中,但是要确保安全计划能够明显的识别,也可以将安全计划单独写一份文件,标准中对此有明确的要求。
图:项目时间轴
一份完整的安全计划,应包括:
1. 目的,即需要执行的安全活动对应的目的,例如能力管理的目的是确保参与功能安全项目的人员能力与职责是匹配的;
2. 对其他活动或信息的依赖性或其他前置条件,可以通过当前安全活动的输入文档来体现,比如在进行变更管理过程中,需要考虑到配置管理的依赖性,那么配置管理的WP就可以作为变更管理的输入文件;
3. 负责执行活动的人员,例如负责具体开发的人员,执行配置管理的人员等,更具体的责任分配可参考责任矩阵RASIC(R=Responsible,A= Approver,S = Support,I=Informed, C=Consulted);
4. 执行活动所需的资源,比如人力资源(不同的活动计划由哪些人员来专职/配合完成,相对应的责任方及执行人员的分配),或者工具、时间资源(对于不同的阶段,计划分配多长的时间来完成)等,例如在进行认可措施活动时,需要认可评审/功能安全审核/功能安全评估是由哪一方哪些人员负责执行,活动需要持续的时长,需要提前准备的工作成果,通过哪些平台/工具进行对接;
5. 起始时间、结束时间和持续时间;
6. 相应工作成果的识别,即执行安全活动生成的文档,例如执行安全计划这一活动,识别到的工作成果就是文档化的安全计划。
除此外,如果进行的是分布式开发,则客户和供应商都应该针对各自的安全活动制定安全计划。
图:安全计划与组织协调
二、安全计划由谁来做?
安全计划活动由安全经理主要负责,安全经理可以是项目经理或项目经理指派具备功能安全能力资质的人员。在负责编写安全计划过程中,安全经理需要负责:
1.安全计划文件的编写;
2.按照计划对活动进度进行监督,监督是否按照计划在实施;
3.在组织内部按照能力管理的要求,分配并沟通关于执行安全活动的责任(其他人员可以负责细化计划或者执行安全活动,如:配置管理/变更管理/集成和验证活动);
4.要对计划进行实时更新,安全计划中记录的工作成果在下一子阶段开始前必须是最新版本,避免因为版本原因导致开发过程中信息不一致,影响后续开发活动的进行。
三、安全计划应该怎么做?
安全计划的主要步骤为:
1.明确功能安全的范围,即项目的生命周期。按照项目的阶段划分涉及到的安全活动,每个阶段在功能安全应该做什么工作。比如在管理阶段需要进行制定相应的流程和计划,研发阶段需要根据对应的层级进行开发,测试,验证活动。
在功能安全项目实施前,如果执行了影响分析活动,那么裁剪就是在影响分析的结果上,通过对安全活动进行判断,将不适用的活动进行裁剪,并给出合理的理由;若没有执行影响分析,那么就对公司会涉及的所有安全活动进行判断,是否适用于本次项目中,不适用的活动进行裁剪,并给出理由。安全计划中需要记录每条安全活动是否裁剪以及裁剪理由。这样会避免项目实施过程中有的安全活动被重复实施。例如在实际开发过程中,由于半导体公司自身能力和选择的不同,有的会进行纯硬件开发,不涉及软件层级,因此需要将Part6进行裁剪,除此外,其他和软件相关的安全活动也需要进行裁剪。
图:功能安全生命周期概览
2.任务分配:首先需要确定安全经理的任命。然后可以由安全经理根据安全活动裁剪的结果对安全活动进行分配,确保每项安全活动都有人负责来实施,人员的选择要按照标准中能力管理的定义进行执行。
3.活动计划:要明确每条活动的目标,活动或信息的依赖性,执行人员,起止时间,持续时间,WP等信息。这些在前文中已进行描述,此外我们还需要关注的一个情况是活动之间存在有时序关系,假设只有前一阶段活动输出WP后,后一阶段才可以开始执行的话,为了避免前阶段的活动未输出WP而后阶段就已经开始执行安全活动,最终造成错误影响的情况,活动之间的执行关系应该讲清楚,这里的要求会在制定安全计划时,将此处体现在每条安全活动的输入输出文档中。因此,安全计划及其要求的工程成果都应在每个子阶段活动开始前进行更新,更新要延续到开发结束。
4.认可评审:在标准ISO 26262中,安全计划属于要求的关键工作成果之一,因此在安全计划完成后,需要根据要求对安全计划进行认可评审活动,判断安全计划是否按照标准的要求和目标进行编写的,如果认可评审未通过,则需要对不符合要求的内容在安全计划中进行修改。负责执行认可评审的人员需要具有标准要求的独立性要求,关于认可评审的具体内容可参考本公众号技术分享中对于认可措施的介绍,此处不过多赘述。
图:ISO 26262-2,表1,要求的认可措施(节选)
安全计划不单是利于在实际开发过程中对于各项资源的调配,更重要的是在整个开发过程中,逐步收集各项工作成果,来支撑安全档案的完成。希望通过本次分享,可以帮助大家更好的理解安全计划的内容和编写思路。