ISO26262标准之软件架构设计和验证

下面是ASIL A ~ ASIL D 各个ASIL级别在软件需求和架构设计开发阶段,ISO26262要求在开发过程中需要应用的技术。如果一项技术被列为"Highly Recommended"(强烈推荐)的,那就必须应用它。"Recommended"(推荐)的技术最好要被采用。"No Recommended"不推荐的技术作为可选项,可以省略。

需要记住的是,ISO26262标准不包含实现所需ASIL等级的任何方法。在指定了技术的地方,标准并没有提供任何关于该技术必须在何时、何地如何应用的指导。

软件安全需求规范

这个子阶段的重点是确保所采取的方法能够保证软件安全,与系统安全概念相一致。ISO26262为该子阶段提供了建议,但没有指定任何推荐的技术。

软件架构设计

在这个子阶段中,软件架构需要被综合、评估和验证。ISO26262将架构设计定义为软件到可实现组件级别的设计。标准没有任何指导说明它是由什么组成的,但是可以认为它是由一个个单独的模块、包或类组成。

ISO26262定义了软件架构设计标记符号的技术。
架构设计的标记符号

Technique A B C D
Information notations ++ ++ + +
Semi-formal notations + ++ ++ ++
Formal notations + + + +

ISO26262标准还鼓励高质量的架构设计,避免(例如)由于过于复杂的设计而导致的失效。下面是标准指定的架构设计准则。在这里,再强调一遍,没有提供如何实现这些准则或如何评估它们的指导。
架构设计准则

Technique A B C D
Hierachical structure of software components ++ ++ ++ ++
Restricted size of software components ++ ++ ++ ++
Restricted size of interfaces + + + +
High conhesion within each software component + ++ ++ ++
Restricted coupling between software components + ++ ++ ++
Appropriate scheduling properties ++ ++ ++ ++
Restricted use of interrupts + + + ++

软件的关键安全机制之一是错误检测和处理。ISO26262指定使用以下技术进行错误检测。
架构级别的错误检测机制

Technique A B C D
Range checks of input and output data ++ ++ ++ ++
Plausibility checks + + + ++
Detection of data errors(e.g. parity checking) + + + +
External monitoring facility o + + ++
Control flow monitoring o + ++ ++
Diverse software design o + + ++

相应地,标准定义了可接受的错误处理策略。
架构级别的错误处理机制

Technique A B C D
Static recovery mechanisms + + + +
Graceful degradation + + ++ ++
Independent parallel redundancy o o + ++
Correcting codes for data + + + +

尽管ISO26262标准没有指定评估或验证技术,但指定了以下验证软件架构的技术。
验证软件架构的方法

Technique A B C D
Walk-through ++ + o o
Inspection of the design + ++ ++ ++
Simulation of the dynamic parts of the design + + + ++
Propotype generation o o + ++
Formal verfication o o + +
Control flow analysis + ++ ++ ++
Data flow analysis + ++ ++ ++
下一节