本文为译文,点击 此处查看原文
1. 简介
CppDepend是一个用于C/C++代码的静态分析工具。此工具支持大量代码度量,允许使用有向图和依赖关系矩阵可视化依赖关系。这些工具还执行代码基快照比较,以及架构和质量规则的验证。用户定义的规则可以使用LINQ查询编写。这种LINQ查询被称为CQLinq。该工具还附带了大量预定义的CQLinq代码规则。
2. 特性
CppDepend的主要特性是:
- 上百种Clang诊断
- 支持C++ 14
- 基于LINQ查询(CQLinq)的声明性代码规则
- 依赖关系可视化(使用依赖关系图和依赖关系矩阵)
- 软件度量(CppDepend目前支持82个代码度量:圈复杂度;传入和传出耦合;关系凝聚力;测试所覆盖代码的百分比等)
- CppDepend可以告诉您在两个构建版本之间更改了什么
CppDepend v2017.1中的新特性
- 支持Visual Studio 2017
- 增强的Visual Studio集成
- 精明的技术Debt估计
- 质量检验关
- 更好的问题管理
- 仪表板的改进
- 违约规定的改进
- 增强的基本经验
- 报告改进
- 改进代码查询
3. 通过LINQ查询(CQLinq)制定代码规则
该工具通过LINQ查询进行实时代码查询和代码规则。这是CppDepend的创新之一。例如:
- 继承自一个特定类的类:
// <Name>classes inherit from a particular class</Name>
from t in Types
where t.IsClass && t.DeriveFrom ("CBase")
select t
- 10个最复杂的方法(源代码圈复杂度)
// <Name>The 10 most complex methods</Name>
(from m in Methods
orderby m.CyclomaticComplexity
select new { m, m.CyclomaticComplexity }).Take(10)
此外,该工具还提出了一个带有代码完成和嵌入式文档的实时CQLinq查询编辑器。