主要内容

使用 Polyspace 计算代码复杂度度量

本主题介绍如何计算所有代码复杂度度量,然后审查超出指定阈值的度量。要仅在度量值超出阈值时对其进行查看,请检查有关软件复杂度的规范。请参阅Reduce Software Complexity by Using Polyspace Checkers

代码复杂度度量是一组用于量化 C/C++ 程序复杂度的数字。例如:

  • 圈复杂度高的函数包含太多分支。

  • 包含大量 return 语句的函数具有太多退出点。

复杂的程序难以调试、分析、测试和维护。为避免复杂度过高,请在编码期间对复杂度度量施加限制。

默认情况下,Polyspace® 不计算代码复杂度度量。要在分析期间计算这些度量,请使用计算代码度量 (-code-metrics) 选项。

分析完成后,该软件会在结果列表窗格中显示工程、文件和函数度量。您可以将计算的度量值与预定义的限制进行比较。如果某个度量值超出限制,您可以重新设计代码以减小该度量值。例如,如果被调函数较多,并且其中几个函数总是被一起调用,您可以编写一个函数来融合这些函数的主体。然后,您可以调用这一函数,而非一起调用的一组函数。

对度量施加限制(仅限桌面端产品)

在 Polyspace 桌面端产品的用户界面中,打开包含度量计算的一些结果。然后对这些度量值施加限制,并更新结果列表窗格中的结果以仅显示超出该限制的度量值。

  1. 选择工具 > 预设项

  2. 审查范围选项卡上,执行以下操作之一:

    • 要使用预定义的限制,请选择包括质量目标范围

      范围名称列表会显示附加选项 HISHIS 选项仅显示 HIS 代码度量。选择此选项即可查看限制值。

    • 要定义您自己的限制,请选择新增。保存您的限制文件。

      在左侧窗格中,选择代码度量。在右侧窗格中,选择一个度量并为该度量指定限制值。除了注释密度之外,限制值都是上限。

      要选择某个类别(例如函数度量)中的所有度量,请选中该类别名称旁边的复选框。有关度量类别的详细信息,请参阅代码度量。如果仅选择某个类别中的某些度量,则该类别名称旁边的复选框会显示 符号。

      The 'Code Metrics' section of a typical review scope. When the Status column is checked for a specific metric, it indicates that the metric is part of the review scope.

  3. 选择应用确定

    结果列表窗格工具栏左侧的下拉列表会显示附加选项。

    • 如果您使用预定义的限制,则会显示 HIS 选项。此选项仅显示代码度量。

    • 如果您定义了自己的限制,则会显示与您的限制文件名称对应的选项。

  4. 选择与所需限制对应的选项。只有超出限制的度量值才会保留在结果列表窗格中。

    这些度量与红色感叹号一起显示。例如,预定义的作用域 HIS 要求每个函数都只能有一个 return 语句。如果选择作用域 HIS,则仅当该语句数超过 1 时才会显示Return 语句数度量。

    Code metrics that violate thresholds are shown with a red exclamation mark when you select the HIS scope.

  5. 审查每个违规项,并决定如何重新编写代码以避免违规。

注意

要在您的整个组织中强制实施编码标准,请共享您以 XML 格式保存的限制文件。

您组织中的人员可以使用审查范围选项卡上的打开按钮并导航到该 XML 文件的位置。

对度量施加限制(Server 和 Access 产品)

Polyspace Access™ Web 界面中,预定义了对代码复杂度度量的限制。在控制板透视中,如果您选择代码度量,则代码度量窗口会显示度量值和限制。

要查找使用的限制,请参阅HIS 代码复杂度度量

另请参阅Code Metrics Dashboard in Polyspace Access Web Interface (Polyspace Access)

另请参阅

主题