基于ISO26262的软件架构设计要求

记住重点一:软件架构设计的目的是划分软件层次结构,确定软件各模块及模块之间的相互关系。

记住重点二:软件架构设计应与软件需求形成双向追溯关系,确保软件需求实实在在落实到设计里。

记住重点三:ISO26262中对软件架构设计提出了一系列如下规则,按照不同的SIL等级可以选择使用。
基于ISO26262的软件架构设计要求_第1张图片

对于强烈推荐的内容,在实际开发过程中应保证完全遵循与使用,如果有些规则没有运用到,需要给出合理的解释与证明,证明即使没有使用这项规则,依然可以通过其他方式保证功能安全性。

关于这些规则的运用,很多同学也是充满迷惑。例如,适宜的软件分层结构到底多少层算适宜?其实在实际开发中,每个系统实现的功能不同,实现的难易程度也千差万别,确实没有标准的答案,要结合产品具体功能去划分,确保架构层次清晰明了,简单易懂即可。

关于复杂度,其实它是一个多要素共同作用的结果。代码量、变量个数、指令数、圈复杂度度……都和复杂度密切相关,无法完全量化,但是在开发中,可以根据经验确定一个目标,例如圈复杂度设置为5—8左右。

关于接口,需要注意输入接口和输出接口数量,还要注意软件模块之间的调用关系,耦合关系,尽可能减少相互之间的调用和耦合。

关于独立性,当然每一个软件模块可能无法做到完全独立,但是设计上应保证尽可能的空间独立,如果有共享资源的情况,也需要制定严格的规则,保证共享资源的双方互不影响操作安全性。

关于中断,虽然标准中限制使用,但对于底层软件开发也是难以避免,但在使用中要注意规定中断的相关规则,优先级,保证中断活动不影响功能安全。

你可能感兴趣的:(功能安全)