静态代码检查工具--Klocwork


请尊重原创版权,转载注明出处。

1. 前言

全球前5位的智能手机公司就有4个在使用Klocwork

全球前7位的芯片制造商就有5个在使用Klocwork

全球前10位的通讯设备制造商就有8个在使用Klocwork

美国前7位的航空与国防企业就有5个在使用Klocwork

全球前10位的医疗设备企业就有7个在使用Klocwork

初识Klockwork,我看到了这么一些宣传语,于是就认定了Klocwork是行业内首屈一指的静态代码检查工具。

2. 功能

2.1 缺陷检测

Klocwork的自动化缺陷检测功能易于使用,定制灵活,具有图形化的构建和报表管理图形界面,拥有业界领先的消息过滤器,极具柔性的配置,和强大的学习调整知识库。

C/C++缺陷类型样例

  • 空指针释放
  • 数组越界
  • 内存管理问题(如:内存泄漏)
  • 未初始化数据使用
  • 编码风格问题(如:在条件中赋值)

Java 缺陷类型样例

  • 效率错误(如:空的 finalize 方法)
  • 可靠性问题(如资源泄漏)
  • 可维护性问题(如:空的 catch 从句)

2.2 安全漏洞检测

Klocwork 安全漏洞分析是基于市场领先的缺陷检测能力,从原来的缺陷检测分离出来单独的安全漏洞检测和安全代码的缺陷检测。

C/C++安全漏洞分类

  • 访问控制缺陷
  • 缓冲区溢出
  • DNS欺骗
  • 注入缺陷
  • 不安全的存储
  • 未经验证的用户输入
  • 忽略返回值

Java 安全漏洞分类

  • 拒绝服务
  • 注入缺陷(如:SQL 注入、进程注入等)
  • 未经验证的输入
  • 移动代码安全
  • 有漏洞的会话管理
  • 跨站点脚本
  • 出错处理不当
  • 有漏洞的访问控制

2.3 软件架构分析

Klocwork Architect为软件项目的架构提供一个生动的可视化的架构图,帮助项目经理、软件架构师查看、分析和优化复杂代码库的软件架构。

  • 代码结构展示。系统视图显示已有应用系统的物理结构,应用系统中的依赖关系连同应用系统和外部环境间的依赖关系也显示出来。

  • 功能强大的代码审查。使用自动的流程图功能,从源代码分析得出程序的流程图,理解文件的处理流程,来帮助进行更加高效的编码。

  • 优化头文件结构。在大型 C/C++ 软件中,一个普遍的可维护性问题就是过于复杂的头文件结构,比如包含了许多不必要的头文件。 k8 能够对您的系统执行自动分析,然后给出经过优化后,对潜在的系统文件大小、构建时间减少的量值,并给出优化您头文件的某种推荐方案的路径图。

  • 发现并修复设计异常。软件架构师利用这种分析快速发现复杂的架构问题(如循环依赖)、模型改进等方面的内容然后为开发人员产生一个可操作的变更列表。

2.4 软件度量分析

Klocwork发布100多种关于文件、类、和函数/方法的代码度量,包括了从McCabe复杂度、Halstead程序度量、代码行数、继承数、循环数等各种基本度量。

  • 过程度量。过程度量是经典的项目管理层次的度量,如:测试用例执行完成的数量或者已经实现的需求的百分比。

  • 资源度量。另外一种常用的、然而更加宏观层次的度量集合,通常用于访问人力资源方面,如:劳动生产率或者分配的项目 A 与项目 Z 的人时对比。

Klocwork能够提供包括这些度量在内的最佳解决方案,自动产生直接从源代码中产生的客观的、可操作的产品度量。 Klocwork面向结果的产品度量,让项目ledaer和软件QA人员,随时查看软件的缺陷情况,控制软件的产品质量,并做出及时响应。