代码静态分析--试用SpecChecker

SpecChecker的功能

 

将整个代码工程文件导入SpecChecker后,其提供如下分析功能:

  1. 安全规则检查。依据制定的编程规则(MISRA C、企业自定编程规范等)对代码进行规则检查。违背规则的语句会在结果中给出,并指出违背的规则项。
  2. 软件质量度量。软件质量度量的分析依赖安全规则检查和代码度量分析。衡量的指标有:可靠性、可维护性、可移植性、效率性。试用版本上无软件质量度量功能。自动生成的报告中虽有质量度量的描述,但质量度量的分析图不可见
  3. 代码结构分析与可视化。对代码结构进行分析,并将控制流程图和函数调用关系图以图形化形式显示。其中控制流程图针对单个函数,可清晰地了解函数的分支、跳转和循环结构;函数调用关系图针对一组函数,呈现函数间的调用与被调用关系。在查找软件bug以及详细设计文档编写中,利用此功能可提供极大方便。
  4. 代码度量分析。代码规模类、预处理类和代码逻辑复杂度类三大类度量从函数、文件和工程三个层次给出度量分析结果。其中文件度量结果是本文件中所有函数度量结果的总结,工程度量结果中的圈复杂度是该工程文件中所有函数圈复杂度的总和。代码度量分析用来评价软件在开发和测试阶段的内部质量表现。SpecChecker共提供了三大类代码度量项:代码规模类、预处理类和代码逻辑复杂度类,细分项包含50种代码度量项。
  5. 共享变量与数据竞争分析。共享变量分析检查出每个全局变量的读/写函数,方便查找软件bug;数据竞争分析检查变量入口函数与中断函数是否存在数据竞争关系,帮助开发人员避免写出的代码因数据竞争造成软件故障。

注:1)、5)二项的分析结果需要经过开发人员确认,排除工具误报。3)项作为辅助用,不作为静态分析报告给开发人员。2)项与4)项有定义上的不清晰,目前的定义是:软件质量度量根据编码规则检查、代码度量、共享变量分析、运行时缺陷检测(将来版本中新增)这四个来综合评判。也即,代码度量分析是软件质量度量的一个指标。4)项的分析结果需要人工根据报告得出结论。

 

Questions(待解决):

  1. 软件质量度量的结果如何解读,开发人员如何利用该结果?
  2. 软件质量度量与代码度量概念有何区别?
  3. 代码度量分析的各子项目中,哪些指标是ISO26262认证需要用到的?

猜你喜欢

转载自blog.csdn.net/Eigrl/article/details/81208131