Cppdepend
{{Short description|Static analysis tool for C/C++ code}}
{{Infobox software
|logo =
|screenshot =
|caption = CppDepend GUI
|name = CppDepend
|developer = CppDepend
|latest_release_version = 2025.1.0
|latest_release_date = {{Start date and age|2025|03|03}}{{cite web
| url = https://www.cppdepend.com/releasenotes
| title = CppDepend - Release Notes
| access-date = 2025-03-03
| website = cppdepend.com
}}
|operating_system = Multiplatform
|genre = Software quality
|license = Commercial Proprietary
|website = {{URL|www.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:
- Support for Coding Standards: Misra C++, Misra C, Cert C, Cert C++, CWE, Autosar
- Support for C++23, C++20, C++17
- 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 v2025.1
- MISRA C++:2023 Compliance Support
- Updated Clang and Clang-Tidy Integration
- New Summary View for Code Elements
Code Rule through LINQ Query (CQLinq)
File:CQLinq Editor Overview.png
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:
//
from t in Types
where t.IsClass && t.DeriveFrom ("CBase")
select t
- The 10 most complex methods (Source Code Cyclomatic complexity)
//
(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
- Sourcetrail Free Open-Source source code explorer that provide interactive dependency graphs.
- Design Structure Matrix
- Software visualization
References
{{Reflist}}
External links
- [http://www.CppDepend.com The CppDepend web-site]
- [http://www.drdobbs.com/cpp/codergears-cppdepend-50-arrives/240169164 Dr.Dobb's Review]
- [http://www.infoq.com/news/2014/10/CppDepend-5 InfoQ Review]
- [https://isocpp.org/blog/2014/10/cppdepend-5-released isocpp News]
- [http://www.heise.de/developer/meldung/Sourcecode-Analyse-fuer-C-C-CppDepend-5-ist-erschienen-2412201.html heise.de Review]
- [https://web.archive.org/web/20150407082600/http://www.codergears.com/blog/?cat=3 CppDepend Blog]
- [http://www.pcworld.com/article/197517/CppDepend.html PCWorld Reviews]
- [http://blog.llvm.org/2013/04/static-analysis-tools-using-clang-in.html LLVM review]
- [http://www.codeguru.com/daily_news/looking-for-to-improve-code-quality-cppdepend-version-5-available.html CodeGuru Review]
{{DEFAULTSORT:CppDepend}}