问题描述:
客户想要基于度量指标来创建诊断消息
参考建议:
QAC支持创建基于度量指标的诊断消息(指标阈值)。
相关的设置选项可以在分析组件“qac”、“qacpp”、“rcma”中找到选项名称:“-threshold”,“-thresh”
关于设置基于度量指标的诊断消息的具体信息,可在相关的QAC组件文档找到参考,如对于C语言,有分析组件Perforce QAC for C(qac)。
"C:\Perforce\QAC-2026.1\components\qac-12.4.0\doc-en_US\Default.html"
“Metric Thresholds”
操作示例:设置基于圈复杂度度量指标的诊断消息
这里以STCYC(圈复杂度)为例,在QAC示例项目中演示(“sample_inspect_c”)。
进入QAC项目后,打开项目属性,找到“Analysis”标签
找到QAC组件,然后在项目设定中找到“-threshold”项(注意需要先勾选“Advanced”选框)。找到后点击该选项,并在右侧的“User Arguments”处根据要求编写规则,完成后保存更改。
(如下图中的规则:圈复杂度大于等于8时发出诊断消息,使用默认消息ID4700)
完成后再次分析,如存在违反,在未指定消息ID时,默认的消息ID为“4700“,效果如下:
如果你创建了一条专门用于标记“圈复杂度大于8”的自定义诊断消息,可以修改之前的指标阈值设置,将这个阈值设置与自己自定义的诊断消息关联,使其被分配到一条专有的QAC Message 上,方便单独统计。(如:将“STCYC>=8“更改为”STCYC>=8:6001“)
保存变更后再次分析,得到的结果如下,可以看到该项目中发现的函数圈复杂度超过8的情况被单独列出来了:
Copyright © 2023 汉宜电子科技(上海)有限公司 All Rights Reserved 沪ICP备2023002859号-1