验证AUTOSAR软件组件与Polyspace代码验证

从R2018a Polyspace代码验证™直接支持AUTOSAR(汽车开放系统架构)软件开发方法。万博1manbetx不管你的角色AUTOSAR软件开发工作流,您现在可以使用Polyspace代码验证在2018年发布一个作为AUTOSAR-aware静态分析工具。

Polyspace代码验证运行静态程序分析AUTOSAR软件组件的代码实现。分析寻找可能的运行时错误和不匹配的代码和设计规范AUTOSAR XML (ARXML)。

AUTOSAR的方法

AUTOSAR的方法是一种软件开发标准的电子控制单元(ecu)的运输系统。方法分离的基础设施与ECU硬件从应用程序层实现ECU的功能。

AUTOSAR图方法

图表说明的分离应用程序从ECU硬件。

在本质上,这种方法提供了一组规则,这样您可以开发应用层软件独立于底层硬件。只要你遵守AUTOSAR规则关于接口进行通信,AUTOSAR的运行时环境(RTE)确保您可以使用适当的服务ECU硬件上部署应用软件。

AUTOSAR应用层软件开发工作流程

AUTOSAR方法将应用层软件开发分为两个部分:(1)定义架构和沟通,和(2)编写代码实现。

  1. 定义架构:在所谓的合同阶段AUTOSAR的软件开发,软件架构师设计软件组件(swc)组成应用程序层。规范文档(以XML格式)定义swc港口,接口和可运行。使用AUTOSAR XML (ARXML)规范,您可以生成代码存根与头文件和空的C函数实现runnable的软件组件。
  2. 编写代码实现:软件开发人员编写的C函数实现runnable的软件组件。还可以生成函数使用一个高级设计仿真软件等工具。万博1manbetx(使用仿真软件万博1manbetx,您还可以生成规范。)

通常情况下,这两个活动发生在不同的组织(例如,OEM和一级供应商),或发生在不同地区的一个组织,往往涉及不同的专业领域。

AUTOSAR方法可能使它似乎软件开发是一个单向的过程。软件架构师通过ARXML规范提供了设计和开发人员编写的代码在这些规范。在实践中,这是一个双向的过程,实现设计揭示了注意事项可能涉及设计的变化。考虑以下两种情况。

  • 需要新的错误状态码:ARXML规范定义一个可运行可以返回错误状态码。发展中可运行时,开发人员意识到需要一个错误状态码外的预定义的。但是,如果开发人员使用这个新的错误状态码,她或他是冒着违反规范。
  • 变量是在运行时外部约束范围的:ARXML规范为特定的数据类型定义的限制范围。限制范围等物理量的计算车辆的速度。每当runnable传递一个变量与约束其他运行的数据类型,变量将会有一个值的期望是在指定范围内。然而,在运行时,开发人员不知道,变量可能获得了超出范围的值,因为一个意外的执行路径(例如,一个if语句分支的代码)。

这些规格的情况不再反映准确的状态代码。至少,代码需要纠正。

工具来自动化的发展过程

不是很好,如果有一个工具用来自动检测这些情况,以便规范或代码可以是固定的吗?它肯定会使软件架构师和开发人员之间的交流更加容易。

不是很好如果这个工具不需要任何额外的设置除了ARXML规范文档已经可用?这将是一个奖金,如果工具还为其他运行时错误检查溢出和分裂等零。

好消息:新AUTOSAR Polyspace代码中的功能验证提供所有这些功能,帮助自动化的发展过程。

Polyspace代码验证如何融入一个AUTOSAR工作流?

Polyspace代码验证运行静态程序分析AUTOSAR软件组件的代码实现。

所有您需要提供两个物理文件夹包含ARXML规范和代码实现(C文件)。Polyspace代码验证将代码分为模块基于软件组件规范。每个模块包含实现的C文件中定义的可运行一个软件组件的内部行为。每个模块还包含其他可运行的C文件要调用的函数。

Polyspace代码验证将代码分为模块基于软件组件规范。

Polyspace代码验证将代码分为模块基于软件组件规范。

然后分析检查每个模块:

  • 与ARXML规格不匹配。这些检查确定:
    • 所有实现runnable。
    • 功能实现runnable ARXML遵循数据类型规范。(这张支票覆盖前面描述的情况需要一个新的错误状态码)。
    • Rte_函数用于通信与其他ARXML runnable按照数据类型规范。(这张支票覆盖前面描述的情况一个变量获得值约束范围外)。
  • 运行时错误。这些检查的目的是为了证明缺乏某些类型的运行时错误的身体可运行(例如,溢出)。

你看到检查结果与通常的Polyspace颜色(绿色如果被证明是有效的,红色如果无效,如果需要手动审查和橙色)。你也可以浏览Polyspace结果的规范。

检查结果的截图

导航Polyspace结果的规范。

注意,证明使用数据类型定义规格ARXML不仅仅是检查。它还使用他们在可运行的精确范围输入,Rte_函数返回值和输出参数。如果一个数据类型是限制在一定的范围内,证明使用该限制范围为所有使用的数据类型的变量。

换句话说,证明AUTOSAR-aware。

您可以使用Polyspace代码验证各点AUTOSAR开发工作流程。作为一个软件开发人员,您可以检查软件组件的代码实现,你是关心。作为一名软件架构师,你可以检查,如果从你的供应商代码实现是否符合规范。如果你想更改的规格,您也可以运行此工具迅速看到现有代码的多少将影响您的更改。

关于工作流的更多建议和其他细节,请参阅Polyspace代码验证文档

引用