C++ Tools - CppDepend - 2017 update...

I’ve been trying various static analysis tools on the C++ code of The Server Framework. I’ve now been using Resharper C++ quite regularly for over a year and I still use the Gimpel PC-Lint Plus Beta on a regular basis. I haven’t used CppDepend as much, mainly because once I’d fixed the issues that it raised, and that I decided I needed to fix, I pretty much left it alone. This is possibly because I run it as an external tool and I run both Resharper and PC-Lint as fully integrated Visual Studio extensions.

Full disclosure. I have been given another CppDepend license.

As I’ve said before, whilst CppDepend is easy to get hold of, easy to install and “just works” I don’t find it that useful. I tried installing the Visual Studio add-in this time around and found that I then had problems removing the add-in. I’ve no idea why and it was probably just me, but I decided to stick with the stand-alone tool.

As I said last time, I can certainly remember large enterprise clients where this kind of tool would be invaluable for management level analysis of large codebases but for a small development team of competent people it’s less immediately useful. It still fills some gaps so it’s still useful to me; perhaps I need to try harder with the Visual Studio add-in.

There are some nice new features to this latest edition: Smart Technical Debt estimation looks like a good way of preventing a codebase degrading over time and helping you to focus on issues that can be fixed quickly, or issues that are really complex and will take ages to fix…. Being able to navigate to types with the most technical debt is useful. I also like the idea of the Quality Gates concept. The html reporting stuff also looks useful, though I’d have to get CppDepend running on my build servers as part of the build and release process to get the best benefit from it.

All in all I like the new features but I’m still not sure that I would purchase a license for this tool but I know clients that could benefit from using it.