使用 Polyspace 计算代码复杂度度量
本主题介绍如何计算所有代码复杂度度量,然后审查超出指定阈值的度量。要仅在度量值超出阈值时对其进行查看,请检查有关软件复杂度的规范。请参阅Reduce Software Complexity by Using Polyspace Checkers。
代码复杂度度量是一组用于量化 C/C++ 程序复杂度的数字。例如:
圈复杂度高的函数包含太多分支。
包含大量
return
语句的函数具有太多退出点。
复杂的程序难以调试、分析、测试和维护。为避免复杂度过高,请在编码期间对复杂度度量施加限制。
默认情况下,Polyspace® 不计算代码复杂度度量。要在分析期间计算这些度量,请使用计算代码度量 (-code-metrics)
选项。
分析完成后,该软件会在结果列表窗格中显示工程、文件和函数度量。您可以将计算的度量值与预定义的限制进行比较。如果某个度量值超出限制,您可以重新设计代码以减小该度量值。例如,如果被调函数较多,并且其中几个函数总是被一起调用,您可以编写一个函数来融合这些函数的主体。然后,您可以调用这一函数,而非一起调用的一组函数。
对度量施加限制(仅限桌面端产品)
在 Polyspace 桌面端产品的用户界面中,打开包含度量计算的一些结果。然后对这些度量值施加限制,并更新结果列表窗格中的结果以仅显示超出该限制的度量值。
选择工具 > 预设项。
在审查范围选项卡上,执行以下操作之一:
选择应用或确定。
结果列表窗格工具栏左侧的下拉列表会显示附加选项。
如果您使用预定义的限制,则会显示 HIS 选项。此选项仅显示代码度量。
如果您定义了自己的限制,则会显示与您的限制文件名称对应的选项。
选择与所需限制对应的选项。只有超出限制的度量值才会保留在结果列表窗格中。
这些度量与红色感叹号一起显示。例如,预定义的作用域 HIS 要求每个函数都只能有一个 return 语句。如果选择作用域 HIS,则仅当该语句数超过 1 时才会显示Return 语句数度量。
审查每个违规项,并决定如何重新编写代码以避免违规。
注意
要在您的整个组织中强制实施编码标准,请共享您以 XML 格式保存的限制文件。
您组织中的人员可以使用审查范围选项卡上的打开按钮并导航到该 XML 文件的位置。
对度量施加限制(Server 和 Access 产品)
在 Polyspace Access™ Web 界面中,预定义了对代码复杂度度量的限制。在控制板透视中,如果您选择代码度量,则代码度量窗口会显示度量值和限制。
要查找使用的限制,请参阅HIS 代码复杂度度量。
另请参阅Code Metrics Dashboard in Polyspace Access Web Interface (Polyspace Access)。