Polyspace Bug Finder

主要特性

  • 检测运行时错误、数据流问题以及 C 和 C++ 代码中的其他缺陷
  • 快速分析大型代码库
  • 检查是否符合 MISRA-C:2004、MISRA-C++:2008、MISRA C:2012、JSF++ 和自定义的命名约定
  • 圈复杂度和其他代码指标
  • Eclipse™ 集成
  • 依据代码验证结果可回溯至 Simulink® 模型
  • 获取 Polyspace Code Prover ™ 结果
  • 缺陷检测误报率低
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++(联合歼击机飞行器 C++)或自定义的命名约定
  • 生成报告或可视化静态代码分析和代码合规结果
  • 查看缺陷原因,确定如何对发现的缺陷进行分类和修复
  • 从代码缺陷回溯至 Simulink 模块或 IBM Rational Rhapsody 模型
  • 将静态分析结果上传到网络控制面板以监测软件质量趋势
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 界面会显示上一次分析的区别,以避免重复审查违规现象。编码规则分析结果可以导出至网络控制面板以持续跟踪结果。

Identifying a MISRA violation.
识别 MISRA 违规。

生成代码复杂度指标,监测软件质量

Polyspace Bug Finder 可以生成项目级、文件级和函数级指标以评估代码复杂度。Polyspace Bug Finder 支持 Hersteller Initiative Software (HIS) 指标生成,可导出至网络控制面板。代码复杂度指标包括:

  • 圈复杂度
  • 注释密度
  • 调用层次
  • 路径数量
  • 函数参数数量

您可以定义一个集中式的质量模型,以跟踪缺陷、代码复杂度和编码违规。使用这些指标,可以在代码完善过程中将进度回溯至预定义的软件质量目标。通过衡量代码质量改进率,Polyspace Bug Finder 使开发人员、测试人员和项目经理能够致力于编写和交付高质量的代码。

Software quality metrics displayed via web browser.

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

依据代码分析结果回溯至 Simulink 模型

您可以使用 Polyspace Bug Finder 分析生成的代码或混合代码(后者包含生成的代码和手写代码)。生成代码的代码缺陷会回溯至 Simulink 模型。您可以识别模型的可靠部分,并更正导致代码错误的部分。您还可以识别生成代码与手写代码接口的潜在问题。例如,将手写 S 函数代码与生成的代码混合,可能因接口信号范围不当而产生运行时错误。

Polyspace Bug Finder 还支持根据结果回溯至 dSPACE TargetLink 模块和 IBM Rational Rhapsody 模型。

Tracing MISRA violations to the Simulink model.
MISRA 违规回溯至 Simulink 模型。

创建认证工件

您可以根据后面提到的这些业界标准,在项目认证流程中将 Polyspace Bug Finder 和 Polyspace Code Prover 与 IEC Certification Kit(适用于IEC 61508 和 ISO 26262)DO Qualification Kit(适用于 DO-178B)搭配使用。

最终生成的报告会显示代码的最终质量、高亮显示已审查的部分、生成代码指标、记录所使用的编码规则以及运行时错误状态。您可以将报告发布为 PDF、HTML、RTF 以及其他格式。

DO Qualification Kit contents.
提供认证和审核工具包

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

观看网上技术交流会录像