Jump to content

Cppdepend

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by JamesFromCoderGears (talk | contribs) at 10:32, 21 November 2017 (Features: new major features in version 2017.1of CppDepend). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

CppDepend
Developer(s)CppDepend
Stable release
2017.3
Operating systemMultiplatform license = Commercial, Proprietary, Free for open source contributors and universities
TypeSoftware quality
Licensecommercial software Proprietary
Websitewww.cppdepend.com

CppDepend is a static analysis tool for C/C++ code. This tool supports a large number of code metrics, allows for visualization of dependencies using directed graphs and dependency matrix. The tools also performs code base snapshots comparison, and validation of architectural and quality rules. User-defined rules can be written using LINQ queries. This possibility is named CQLinq. The tool also comes with a large number of predefined CQLinq code rules.

Features

The main features of CppDepend are:

  • Hundred of Clang diagnostics
  • Support for C++14
  • Declarative code rule over LINQ query (CQLinq)
  • Dependency Visualization (using dependency graphs, and dependency matrix)
  • Software metrics (CppDepend currently supports 82 code metrics: Cyclomatic complexity; Afferent and Efferent Coupling; Relational Cohesion; Percentage of code covered by tests, etc.)
  • CppDepend can tell you what has been changed between 2 builds

New features in v2017.1

  • Support for Visual Studio 2017
  • Enhanced Visual Studio Integration
  • Smart Technical Debt Estimation
  • Quality Gates
  • Better Issues Management
  • Dashboard Improvements
  • Default Rules-Set Improvements
  • Enhanced Baseline Experience
  • Report Improvements
  • Code Query Improvements

Code Rule through LINQ Query (CQLinq)

CQLinq editor and query result displayed

The tool proposes live code query and code rule through LINQ query. This is one of the innovations of CppDepend. For example:

- Classes inherit from a particular class:

// <Name>classes inherit from a particular class</Name>
from t in Types
where t.IsClass && t.DeriveFrom ("CBase")
select t

- The 10 most complex methods (Source Code Cyclomatic complexity)

// <Name>The 10 most complex methods</Name>
(from m in Methods
orderby m.CyclomaticComplexity
select new { m, m.CyclomaticComplexity }).Take(10)

In addition, the tool proposes a live CQLinq query editor with code completion and embedded documentation.

See also