CppDepend - Achieve higher C/C++ code quality. CppDepend :: C/C++ Static Analysis and Code Quality tool

How to improve your
C/C++ Code Quality.

More than 600 companies use CppDepend to measure, understand and improve their C/C++ code quality.

Code maintainability improves. This positively impacts the productivity of development teams.

Over time, developers become educated about rules to follow and their skills improve.

Architects can anticipate the impact of code changes. The right decisions are taken early.

Since quality is checked automatically and continuously with a strong focus on recent changes, both in Visual Studio and in the DevOps, the team builds better code.

Executives gain control over costs and risks thanks to light being shed on development facts and trends that matter most.

CppDepend is able to tell the developer that over the past hour, the code just written has introduced debt that would cost for example about 30 minutes should it have to be repaid later. Knowing this, the developer can fix the code before even committing it to the source control.

With CppDepend code rules are LINQ queries that can be created and customized in a matter of seconds. These queries contain formulas to compute accurate technical debt estimations.

The default rule-set offers over a hundred code rules that detect a wide range of code smells including entangled code, dead-code, API breaking changes and bad OOP usage.

As a static analyzer, CppDepend will likely find hundreds or even thousands of issues affecting a real-world code base. Stopping work to attempt to fix all issues for weeks would be quite unproductive.

This is why CppDepend offers a baseline. The tool estimates the Technical Debt progress since the baseline.

Recent code smells that should be fixed before committing any code to source control are highlighted in VisualCppDepend. They can then be fixed even before reaching the source server.

As a consequence the Code Quality remains under control with no major upfront investment.

A Quality Gate is a code quality criterion that must be enforced before releasing and eventually, before committing to source control.

A dozen default Quality Gates are continuously checking measures such as overall Code Coverage by tests or extra Technical Debt since baseline.

With CppDepend, a Quality Gate is a LINQ query easy to customize and create. This unique approach offers the required level of flexibility to enforce what really matters for your organization.

We don't sell consultancy, we sell software. Our goal is to offer a seamless tool which is easy to get started with and easy to live with. With CppDepend, you'll obtain in-depth reporting within a few minutes after first installation and CppDepend results will quickly become essential to make the right decisions.

CppDepend integrates smoothly both within Visual Studio (2017, 2015, 2013, 2012, 2010). Other DevOps and Continuous Integration tools are also supported (TFS 2013, TeamCity, SonarQube...).

Interactive and detailed report production is automated from the Continuous Integration process.

Because we know the developer's time is invaluable, CppDepend is fast. The first analysis only takes a few minutes to achieve the full analysis. The Incremental analysis makes CppDepend very fast after the first analysis.

The technical debt can be re-estimated within just a few seconds, even for hundreds of rules passed on a very large code base and, as we are aware of its importance, without any noticeable IDE slow down.

Fixing issues is much easier as the developer is immediately informed with no delay of new issues just created, while the context is still fresh in her mind and while the code is not yet checked-in to the source control server.

Because a picture is worth a thousand words, CppDepend proposes several unique ways to visualize your code. This includes:

See what professional developers are saying about CppDepend.

Although I only scratched at the surface of CppDepend, the analysis of my concurrency source files impressed me. I will, therefore, invest in the future more time to better understand the various metrics of CppDepend and apply them to my other source files. My gut feeling is that I can draw many benefits from CppDepend.

thumb Rainer Grimm
Professional author, trainer, and coach for C++ at Modernes C++.

Using CppDepend is like climbing an observation tower and look at the work you have done in the excavation of your project and you will find astonishing details you never thought about just by changing your point of view.

thumb Martin Richter - German MVP for C++ for over 10 years.

Case Studies

Hexagon Case Study

Hexagon uses CppDepend to identify the relationships that could be improved as well as understand the scope of modularization. CppDepend does a fantastic job showing where they can use more modern code patterns and solutions.

ETAS GmbH Case Study

ETAS GmbH uses CppDepend to track mainly the dependencies between their modules to be aware if there are forbidden dependencies introduced by code changes.

They use CppDepend