验证你的软件需要多少工具?

这让我想起了一个笑话,“换一个灯泡需要多少个工程师?”

我们的许多客户,特别是汽车行业的客户,在他们的软件开发和验证过程中使用了不止一个静态分析工具。

使用多种工具的一个原因是,传统上采用静态分析被分解为不同的活动,如编码规则遵从、错误查找等等。开发组织可能已经采用了lint工具来执行本地错误查找,并使用规则检查工具来验证对标准(如MISRA)的遵从性,而质量保证部门可能已经采用了代码度量工具,如代码覆盖率、注释密度和圈复杂度。

为了确定这些工具是否为过程增加了价值,理解开发组织如何使用其工具是很重要的。使用多种工具,每个工具都有其独特的用户界面,当然会增加过程的复杂性。例如,多种工具可能在以下方面造成低效率:

  • 多个工具的许可和维护成本:这些都是不小的成本,特别是对于那些具有复杂许可结构的工具。
  • 集成来自不同供应商的工具所需的资源,包括需要编写自定义脚本以将数据从一个工具导入或导出到另一个工具,以及不同的接口和api。
  • 维护以确认这些工具继续集成并一起工作,例如确保不同版本之间的软件兼容性。
  • 需要学习多种工具。
  • 功能安全标准要求的更高的工具认证或资格认证工作。

在MathWorks,我们努力不断发展Polyspace®变成一个更完整的解决方案,有助于减少必须使用的工具的数量。Polyspace是一个集成环境,可以在嵌入式软件开发过程的各个阶段为您提供帮助。下面的示例工作流说明了这种集成环境的一些好处。您可以:

  • 在您的IDE中查找并修复不同的缺陷,并通过注释代码来证明任何遗留问题。
  • 检查是否违反编码规则或编码标准,同时发现错误,并为偏离MISRA等标准提供理由。
  • 将这些结果作为代码评审控制流和数据流的一部分,以支持关于解决关键违规的讨论。金宝app
  • 确保关键模块无错误。通过消除Polyspace已经证明的内容(例如,指针算术不会导致运行时错误的证明),减少不必要的健壮性测试。
  • 检查集成问题——启动Polyspace作为构建过程的一部分,自动导入理由,只突出显示新发现的集成问题。
  • 为DO-178C、ISO 26262和IEC 62304生成工件,并在一个报告中记录所有工件。
作为代码评审和测试活动的一部分,对缺陷进行注释,以便稍后进行评审
作为代码评审和测试活动的一部分,对缺陷进行注释,以便稍后进行评审。

此外,Polyspace产品支持C/ c++和下载188bet金宝搏Ada编程语言。金宝app这些是在关键的嵌入式系统中使用的最流行的语言。跨这两种语言的单一静态分析工具提高了开发组织的效率(也就是说,您能够从跨不同项目和组织范围内的组使用相同的工具中获益)。