不同领域功能安全软件开发模型对比

渗透技巧 2年前 (2021) admin
914 0 0

在功能安全系统开发中,开发生命周期依据系统工程V模型,分为系统级、硬件级和软件级,将开发生命周期划分为多个阶段,每个阶段包括输入,过程要求、输出、使用的工具方法、验证要求,本文以汽车软件功能安全标准ISO26262-6和轨道交通安全软件EN50128为基础,谈谈不同领域中功能安全软件开发模型的各自特点。

在ISO26262-6 2018功能安全软件级的第5节,指出应为汽车安全软件开发定义软件开发阶段,给出了参考模型。

不同领域功能安全软件开发模型对比

上图的参考模型将软件开发分为了6个阶段:

  1. 软件安全需求规范(6-6);

  2. 软件架构设计(6-7

  3. 软件单元设计和实现(6-8

  4. 软件单元验证(6-9

  5. 软件集成和验证(6-10

  6. 嵌入式软件测试(6-11

软件开发阶段起始于系统级技术安全需求向软件的分配,结束于软件安全需求完成测试,进入系统级与硬件的集成。

在EN50128 2011第5节,提出轨道交通安全软件开发的一种参考模型。

不同领域功能安全软件开发模型对比

上图的软件开发模型分为:

  1. 软件需求阶段(7.2);

  2. 软件架构设计阶段(7.3);

  3. 软件组件设计阶段(7.4);

  4. 软件组件实现阶段(7.5);

  5. 软件组件测试阶段(7.6);

  6. 软件集成阶段(7.7);

  7. 软件确认阶段(7.8)。

在软件需求阶段开始之前,项目策划阶段需要策划软件开发的所有计划,另外,以上七个阶段属于软件产品开发过程,后面还包括软件的部署阶段和维护阶段。

不同开发模型的阶段划分

从以上两个开发模型可以看出,ISO26262-6的6-8软件单元设计与实现对应于EN50128的软件组件设计阶段(7.4)和组件实现阶段(7.5),其它阶段划分是一致的。

不同开发模型的适用范围

ISO26262-6适用于道路车辆电气/电子系统具有安全功能要求的软件,车辆上使用的软件为嵌入式软件,所以汽车软件开发模型适用对象为嵌入式软件;EN50128适用于轨道交通控制和防护应用的可编程电子系统的软件,轨道交通中列车的安全防护功能采用“轨协同”的方式,软件分布在车载、轨旁、车站、控制中心不同位置,搭载的处理器有嵌入式芯片、可编程控制器、多处理器分布式系统、中央处理器不同规模的硬件平台,适用对象不仅包括嵌入式软件,也包括其它软件,如PC软件、服务器软件。

通用软件和可配置软件

两个标准都将软件分为通用软件和可配置软件,可配置软件的出现是由于不同应用需求的出现,使得软件不再为满足单一用途而开发,需要适应不同的场景应用。基于参数的可配置软件在通用软件的基础上,通过一组数据来定义其软件最终的控制行为,常见的数据有描述系统应用环境的数据(如高清地图),描述系统配置信息的数据(如控制对象的数量),软件功能激活/关闭的数据。ISO26262-6中的附录C为软件配置的规范性要求,EN50128第8章规定基于参数/算法的软件应用管理要求。

测试规范与设计开发的并行

在EN50128中,V模型左侧的各阶段,每个阶段需要输出软件测试规范,这与ISO26262-6不同,在ISO26262-6中,测试规范在右侧测试阶段完成。这一点我认为EN50128的做法更优,以需求阶段为例,如能对软件需求做出测试规范,本身也是一种对需求的验证,验证了需求的可测试性。ISO26262-6中对参考模型注解中也说明了敏捷软件开发的适用性,在敏捷开发中,由测试驱动的开发可以提高软件需求的质量和可测试性。

软件开发模型角色的规定

在EN50128中,根据软件开发活动的不同,如软件计划、需求规范、架构、组件设计、测试、验证和确认,规定了不同工作人员角色的职责和能力要求(附录B)。而在ISO26262中,仅在part 2的安全计划部分规定了各工作执行人员的职责要求。

与信息安全开发的交互

在ISO26262-6开发模型的注解中,提出了与软件信息安全要求的结合,功能安全与信息安全在开发过程中相互耦合又存在差异,汽车信息安全要求在今年发布的ISO21434中进行规定。EN50128发布时间较早,在2011年,因此标准中未提及信息安全要求,但在轨道交通电子系统安全标准EN50129-2018中已明确需考虑信息安全风险对安全功能带来的影响,功能安全与信息安全的关系可以参见编者的另一篇《硬币的正反面——功能安全 vs 信息安全

MBD基于模型开发的应用

ISO26262-6 2018在参考模型中说明可以采用基于模型的开发方法,在架构设计、单元设计、单元验证、集成验证阶段推荐使用的技术方法中,说明了基于模型开发可以使用的工具,并在附录B作为信息性内容介绍了基于模型的软件开发的注意事项。在EN50128中,建模方法,形式化方法也是一个技术流派,如B-method,SCADE,在软件需求、架构设计、设计实现和验证测试的技术方法中都列举了模型方法。但不要认为MBD方法就很先进,能够自动生成安全可靠的代码,使用MBD需要建立规范的语义规则,使用者需经过培训以具有高水平的开发技能,开发工具需满足安全需求的SIL等级,承担较高的开发成本,限制了项目内部沟通的一致性,因此在两个标准中将其视为一种可选择的方法。

总结

以上是对ISO26262-6和EN50128软件开发参考模型的对比分析,本文并没有对每个阶段进行展开,作为一个综述性的探讨,限于个人经验积累的广度和深度,难免存在纰漏。最后,总结以下要点:

  1. 选择合适的开发模型,既兼容于标准,也应适合于项目,考虑人员的能力、所开发软件的特点和良好的验证方法;

  2. 不要忽略数据,它与软件同样重要,包括配置数据和校准数据;

  3. 测试与需求保持并行,测试驱动的需求有利于需求的验证;

  4. MBD模型开发是技术发展趋势,也是一把双刃剑,能不能用好取决于使用者。

原文始发于微信公众号(薄说安全):不同领域功能安全软件开发模型对比

版权声明:admin 发表于 2021年12月19日 下午11:00。
转载请注明:不同领域功能安全软件开发模型对比 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...