Accelerating the pace of engineering and science

Polyspace Bug Finder

主要特性

  • 检测运行时错误、并发性问题、安全漏洞和其他缺陷
  • 快速分析大型代码,检测到缺陷后立即突出显示出来
  • 检查是否符合 MISRA-C:2004、MISRA-C++:2008、MISRA C:2012、JSF++ 和自定义命名规范
  • 圈复杂度和其他代码度量指标
  • Eclipse™ 集成
  • 代码验证结果追溯回 Simulink® 模型
  • 错误检测,结果假阳性误报率极低
Static analysis results displayed by Polyspace Bug Finder.
由 Polyspace Bug Finder 显示的静态分析结果。

通过静态分析来识别软件缺陷和安全漏洞

Polyspace Bug Finder 是一款用于分析代码组件或整个嵌入式软件项目的静态代码分析工具。Polyspace Bug Finder 使用快速静态代码分析技术(包括形式化方法)来查明 C 或 C++ 源代码中的运行时错误、并发问题、安全漏洞和其他缺陷,且误报率极低。

您可以使用 Polyspace Bug Finder 快速查找、鉴别并修复错误。它在检测到缺陷时会立即将其显示出来,因此不需要等到完成整个源代码的分析。您可以在开发过程的早期阶段用它来反复检测错误或执行编码规则,在编写、修改或生成代码之后立即进行检测。可以通过命令行调用和通过独立的用户界面,结合使用 Polyspace Bug Finder 和 Eclipse IDE。还可以将其集成到构建环境中以自动使用。

Polyspace Bug Finder 支持软件开发流程中的关键活动,包括:

  • 检测缺陷和安全漏洞
  • 强制执行编码规范
  • 生成代码复杂度指标
  • 鉴别并修复发现的缺陷

使用 Polyspace Bug Finder,您可以建立一个项目,并进行静态代码分析:

  • 通过嵌入式目标和编译器创建和设置项目
  • 发现源代码中的缺陷
  • 检查代码是否符合 MISRA-C:2004、MISRA AC AGC、MISRA-C++:2008、MISRA C:2012、JSF++ (Joint Strike Fighter Air Vehicle C++) 标准或者自定义命名规范
  • 生成报告或直观显示静态代码分析和代码合规性结果
  • 审查缺陷原因,以确定如何分类和修复发现的缺陷
  • 将代码缺陷追溯到 Simulink 模块或 IBM® Rational® Rhapsody® 模型
  • 将静态分析结果上传到 Web 页面,以监视软件质量趋势
Identify defects and check compliance to MISRA or JSF++.
在 Polyspace 中配置项目,以识别缺陷并检查是否符合 MISRA 或 JSF++ 规范。

Polyspace Bug Finder 与 Polyspace Code Prover™ 搭配工作,以证明源代码中不存在某些运行时错误。这些产品为早期开发提供端到端的静态分析功能,包括错误查找、编码规范检查和证明。此功能可以确保嵌入式软件的可靠性,同时优化成本和缩短测试时间。

通过将静态分析任务提交到装有 Parallel Computing Toolbox™MATLAB Distributed Computing Server™ 的计算机集群,可以加快静态代码分析速度。

通过尽早纠正错误缩短测试周期

Polyspace Bug Finder 可以检测各种缺陷,如数值、静态内存、动态内存、并发性和安全漏洞。您可以找出缺陷,而无需编写测试用例。您可以在一次分析中找出代码中的大多数缺陷。这对于找出并发性问题之类的缺陷尤其重要,由于此类问题的不确定性特点,使用测试用例很难发现它们。

缺陷在源代码中突出显示出来,并带有追溯信息,以帮助您找出缺陷的原因和来源。这进一步降低了调试过程中跟踪缺陷的成本,以及测试周期中修复阶段的成本。

简单的工作流程使开发人员和质量工程师分类和鉴别缺陷。对于检测到的每个缺陷,Polyspace Bug Finder 提供有关什么原因导致此缺陷的详细信息。例如,如果发生整数溢出,Polyspace Bug Finder 将跟踪代码中导致溢出条件的所有行号。软件开发人员可以通过此信息来确定修复此代码的最佳方法。质量工程师可以通过此信息对缺陷进行分类,以便执行进一步操作。例如,质量工程师可以标记缺陷以便进一步调查,或者指出该缺陷的优先级较低。

An overflow condition identified in Polyspace Bug Finder.
Polyspace Bug Finder 中识别的溢出状况。

验证是否符合编码规范(MISRA、JSF、命名约定)

Polyspace Bug Finder 支持检测 MISRA-C:2004、MISRA-C++:2008、MISRA C:2012、MISRA AC AGC、JSF++ 和自定义命名编码规范的违规情况。您可以使用 Polyspace Bug Finder 强制执行编码规则,以提高代码的可读性和质量。您可以配置 Polyspace Bug Finder,使之专注于该规范的所有规则,或者仅专注于该规范所需的规则。还可以单独选择要执行的规则。此外,您可以定义自己的配置,确保您的团队执行相同的编码规范规则检查。

您可以通过追溯到源代码编辑器来修复违规,也可以出于建档或代码注释目的来证明编码违规。使用 Polyspace Bug Finder 界面可以重点关注与以前分析的差别,避免重复审查同一违规。要随着时间的推移跟踪结果,您可以将编码规则的分析结果导出到 Web 页面。

利用 Polyspace 产品检查 MISRA 编码规范的合规性
检查代码是否符合 MISRA C® 规范,识别并修复违规,以及生成报告以便存档。

Identifying a MISRA violation.
识别 MISRA 违规。

生产代码度量指标和监控软件质量

Polyspace Bug Finder 可生成项目级、文件级和函数级指标,以评估代码的复杂度。Polyspace Bug Finder 支持生成 Hersteller Initiative Software (HIS) 指标,可将该指标导出到 Web 页面。代码复杂度指标包括:

  • 圈复杂度
  • 功能耦合
  • 注释密度
  • 调用级别
  • 路径数
  • CWE 映射

您可以定义一个集中质量模型来跟踪缺陷、代码复杂度,以及编码违规。使用这些指标,您可以随着代码的演化跟踪迈向预定义的软件质量目标的进度。通过测量代码质量的改进速度,Polyspace Bug Finder 使开发人员、测试人员和项目经理能够确定目标并交付高质量代码。

Software quality metrics displayed via web browser.

通过 Web 浏览器显示的软件质量指标。

将代码分析结果追溯到 Simulink 模型

您可以使用 Polyspace Bug Finder 分析自动生成的代码或混合代码(同时包含自动生成代码和手写代码)。自动生成的代码中产生的代码级缺陷可以追溯到 Simulink 中的模型。您可以确定模型的哪一部分是可靠的,然后纠正导致代码中的错误的设计问题。还可以确定生成的代码与手写代码之间的潜在集成问题。例如,将手写的低级代码与生成的代码混合在一起可能导致一个问题,即接口中不正确的信号范围导致运行时错误。详细的数据流和控制流信息可帮助您找出缺陷,并追溯到手写代码或模型。

Polyspace Bug Finder 还支持将结果追溯到 dSPACE® TargetLink® 模块和 IBM Rational Rhapsody 模型。

Tracing MISRA violations to the Simulink model.
将 MISRA 违规追溯到 Simulink 模型。

创建认证套件

您可以在认证过程中结合使用 Polyspace Bug Finder 和 Polyspace Code ProverIEC Certification Kit(符合 ISO 26262 和 IEC 61508)DO Qualification Kit(符合 DO-178B),对基于这些行业标准的项目进行认证。

报告和认证结果显示代码的最终质量,突出显示已经审查的部分,生成代码指标,并记录编码规则的应用和运行时错误状态。您可以采用多种格式创建这些报告,如 PDF、HTML、RTF 等。

DO Qualification Kit contents.
现已提供 Certification Kit 和 Qualification Kit。

使用Polyspace进行软件代码错误检查和运行时错误证明

观看网上技术交流会录像