Simulin金宝appk上的Guy

金宝appSimulink &基于模型的设计

如何验证基于模型设计生成的代码

基于模型的设计的一个重要好处是对你的模型进行早期验证,并使用你学到的东西来验证你的最终产品软件。当您的设计转向生产时,一个关键问题是如何验证生成的代码?在这篇文章中,我想为这个问题提供一个高层次的答案。中的一组明确定义的过程详细地回答了这个问题DO检定套件(适用于DO-178)IEC认证套件(适用于iec61508及iso26262)

从满足需求的模型开始

整个代码验证和验证过程取决于您的模型是否满足您的需求并准确地代表您的设计。

用于验证和验证特定于应用程序生成的代码的工作流。

在模型开发期间,通过运行模拟来验证您的设计是否满足需求。模型中的功能应该追溯到模型需求。您可以使用评审、模型分析和基于需求的测试来证明您的设计满足了原始需求,并且设计不包含意想不到的功能。来自这些模拟的测试向量将用于以后对生成的代码的验证。

在尽可能接近真实环境的环境中测试代码

生成代码的验证可以在主机上通过运行独立应用程序,使用软件在循环(SIL)测试或处理器在循环(PIL)测试来完成。这些测试模式中的每一种都使用与最终目标环境越来越相似的环境提供了额外的验证。

验证生成的代码与模型是等价的

使用来自模型的测试向量对生成的代码进行等价性测试。

用于验证模型是否满足需求的测试向量为生成代码的行为提供了基线。一旦您使用测试向量测试生成的代码,将生成的代码结果与基线结果进行比较。如果你在测试结果中发现任何差异,他们应该调查和理解。一些差异可能归因于实现变更(从解释模型转换为可执行实现),或者可能是错误的指示。为了确认系统的行为没有错误,应该了解所有的差异。

验证是否有非预期的功能

在测试了等价性之后,您可能认为已经完成了,但是,如果还有您没有执行的代码路径,那么在这部分代码中可能会隐藏一些错误。为了测试意想不到的功能,您需要执行可追溯性审查和/或度量代码覆盖率。

可追溯性检查

度量生成代码的可追溯性要求您确认为最终应用程序生成的所有代码都可以追溯到代表您的设计的原始模型的一部分。代码中任何不可跟踪的元素都需要检查。

代码覆盖率

度量代码覆盖率可以让您了解您的测试用例有多全面。当然,仅仅通过运行基线等价测试就能获得100%的代码覆盖率是很好的,但是当您没有完全的覆盖率时,您需要添加额外的测试向量来增加覆盖率。检查代码中没有完全测试的部分。

帮助进行验证和确认的工具

现在轮到你了

你会怎么做?留下一个这里的评论告诉我们你是如何验证你生成的代码的。

注意:这里描述的过程不能确保软件或系统的安全。

|

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。