Version

2017.3.0

Date

October 14, 2017

Improvement of the Visual Studio projects analysis

In case of advanced VS configurations, it's recommended now to launch the analysis from within Visual Studio, CppDepend will retreive the build specififcation using the VS API whic makes the analysis more reliable.
.

Exclude files from the analysis

You have now the possibility to exclude some files from the analysis.

More Videos and Resources

Version

2017.2.0

Date

May 22, 2017

Interactive Abstractness vs.Instability Diagram in Report

The Abstractness vs Instability diagram provided in the report is now a javascript interactive control.

Hovering a dot shows the corresponding assembly name and values.

A search textbox lets filter a subset of assemblies by name.

Custom CQlinq Extensions

For more flexibility to create advanced queries easilly, CppDepend 2017 provides now a powerful way to develop you custom CQlinq extensions using the API.

Activation Bugs fixed

It could happen that the activation form was showing the message "Evaluation not started yet" without a "Start Evaluation" button.

CppDepend provides many interesting features to explore and treat the data extracted from the analysis phase, and it's very interesting to use these features to treat the analysis data from the other static analysis tools.

CppDepend Visual Studio extension is now based on VS package API (VSIX), while it was based on VS Addin API. As a consequence the extension is faster to load and the overall extension stability is strengthened.

Full support of Visual Studio keyboard shortcut assign + easy way to set/reset default CppDepend shortcut.

Enhanced CppDepend global menus.

When a code element right clicked in VS is yet unknown to CppDepend, a menu proposes to either add the parent assembly to the list of assemblies to analyze, or, if the parent assembly is already there, the menu proposes to refresh the analysis result by re-building the VS solution and then re-running the NDepend analysis.

A CppDepend project can now be attached to a VS solution file (.sln) or to a VS solution user options file (.suo).

When attaching a CppDepend project to a VS solution file (.sln) the user is not prompted anymore to reload the solution. The VS solution file is written when closing the solution, or when requiring VS Save All.

Rules Enhancement:

With CppDepend v6, Rule Files can be created and shared amongst CppDepend projects. This is useful to define company-level standard rules sets, and get them applied by all teams.

A detailled Description and HowToFix section has been added for each default code rule. You can choose both in the CppDepend UI and the CppDepend report, to view the rule description or source code.

It is now possible to insert tags <Description> and <HowToFix> in code rules source code comment.

More than 30% of default code rules source code have been refined to offer more detailled results with less false positives.

UI Enhancements:

The Metric View can now display a second metric by coloring the treemap elements. Hence two code metrics can be displayed at once.

In Rules and Queries result, percentage Code Coverage values are now displayed with a proprotional green/red color scheme.

Shaded animation when transitionning from one dependency graph to another, doesn't flicker anymore!

In query/rule result windows, when showing a sub-result in a native window, the native window height is now well sized.

When saving a query or a rule edited, the overall edition status is preserved (this includes the scroll bars position, the cursor position and the selection length).

When pinning a description, the info panel background color is set to grey.

CppDepend > Tools > show Options Form, now remembers which last option panel was shown last time the Options Form closed.

Version

5.1.0.243

Date

March 10, 2015

Bugs Fixed:

Resolve clang problem for Windows XP.

Improve some default CQlinq queries.

Version

5.1.0.125

Date

February 7, 2015

Bugs Fixed:

Improve Incremental analysis performance.

Resolve cppcheck analysis when relative path is enabled.

cppcheck is now enabled by default.

Version

5.1.0.87

Date

January 30, 2015

Major Features:

Use clang-modernize to give advices where the code could be modernized to use some new C++11 features.

Path referenced from the the CppDepend project can now use the UNC absolute path syntax (like \\Server\Share\Dir\project.vcxproj).

Version

5.0.0.712

Date

January 14, 2015

Bugs Fixed:

Improve reading Visual Studio project configuration.

Trend chart not visible sometimes in HTML report.

Version

5.0.0.622

Date

October 1, 2014

Major Features:

Diagnostics: CppDepend v5.0 exploit now all the Clang diagnostics and it's possible to query them using CQlinq.

Support for C++1y/C++14 projects: CppDepend v5.0 works with the last version of Clang which implement all of the Draft International Standard of the upcoming C++14 language standard

Combine between many useful C/C++ tools: CppDepend v5.0 proposes the feature to import XML result files from CppCheck and CPD.

Advanced integration with CppCheck: CppDepend v5.0 integrate now out of the box the cppcheck utility, it could be easily enbled and all its results are integrated to the CppDepend code model.

More adapted to C projects: CppDepend v5.0 proposes now a Directory/File structure and a CQlinq extensions to query files. The class browser and all the interactive graphs are now adapted to explore better the pure C projects.

Version

4.0.0.9020

Date

10th of April 2014

New Features:

Possibility to specify number of cores to use when parsing the projects.

Add an option to parse or not header files not included in any source files.It could be interesting for templated libraries.

Churning Rules and Queries: CppDepend v4.0 lets list Rules and Queries according to common criterions. Listing all Rules Violated is now a one click operation.

Focusing on Recent Rules Violations: CppDepend v4.0 proposes the option to filter only rules violations that occur on code elements added or refactored since a baseline.

Redesigned report. The report now includes trend metrics charts. The design has been rethought and more information is shown, especially concerning diff.

UI Enhancements

Main menus organization relifted both in VisualCppDepend and in VisualStudio Addin.

VS2012/2013 Light/Dark/Blue themes supported.

VS2012/2013 UI style for Project Properties Vertical Tab.

VS2012/2013

VS2012/2013 UI style for Splash Screen.

VS2012/2013 UI style for Start Page.

VS2013 Style Icons.

Support for using Visual Studio 2013 as a source file compare tool.

When showing a dependency graph too complex to be browsed, a note is shown that explain that it is recommended to export the graph to the dependency matrix, better suited to browse large structure.

In forms dedicated to choose assemblies set to analyze, the capability to filter assemblies by name has been added and ergonomy has been enhanced.

Alt+N keyboard shortcut in VisualStudio now selects the CppDepend main menu.

In Matrix/Graph/Metric view, the Context Sensitive Help is not located anymore in the way that it could overlap the element currently hovered.

Pan is now the default grab mode of the Graph.

New pan cursor in Graph, Treemap and Matrix.

On Vista OS and above, CppDepend now uses the modern Folder browser dialog.

On Right-click menus, the double click action menu is now bold.

When double-clicking a class to open its source file declarations, the class being declared in two source files, the second being a ".designer." file, CppDepend jumps directly to the source declaration of the type without proposing to open one of the two declarations.

In Search panel, search code elements by change, when changing the kind of code element searched, the currently checked button remain checked if it is not disabled.

In the Rules explorer panel, when selecting a group that doesn't have direct rules/queries children, CppDepend expands its children groups!

When double-clicking the critical rules violated warning in the Error List panel, the list of Critical Rules Violated is shown.

When open a project, without analyse result, shows in the error list the last analysis (if any) logs

In Search panel, query generated are now executed asynchronously which leads to improved UI responsivness when searching on large code base.

In Search panel, search code elements by change now generates more sophisticated code queries that provide more details.

In Search panel, search code elements by coupling now generates more sophisticated code queries that provide more details.

Version

3.1.0.0

Date

November 5, 2012

New Features:

Linux 64 bits support.

Version

3.0.0.6445

Date

September 28, 2012

Bugs Resolved:

Detect the right SDK used by the solution.

All CppDepend assemblies are now compiled in AnyCPU. This solves all incompatibility problem with VisualStudio on machines with a x64 processor architecture.

Version

3.0.0.6376

Date

August 24, 2012

Bugs Resolved:

Resolve Add-in issues for VS 2010 and VS 2012.

Version

3.0.0.6252

Date

July 30, 2012

New Features:

Use Clang as C\C++ parser.

Linux Support.

New CQL language CQLinq based on Linq.

BuildMonitor to intercept Build commands for any C\C++ build process.

Version

2.8.9.0

Date

February 15, 2012

Bugs Resolved:

In some cases dependency is not detected if it exist in a macro.

Version

2.8.8.0

Date

February 6, 2012

Bugs Resolved:

Use the right SDK path if many SDK are installed.

Exclude files from scan if they are excluded from .vcxproj files.

Version

2.8.7.0

Date

January 30, 2012

Bug Resolved:

Improve reading .vprops files for VS10 projects.

Version

2.8.5.0

Date

May 25, 2011

Bug Resolved:

Improve reading .vprops files.

Resolve bug concering loc computation.

Version

2.8.4.0

Date

May 10, 2011

Bug Resolved:

Dependency between projects described using ProjectMaker.

Version

2.8.3.0

Date

March 30, 2011

Bug Resolved:

LCOM and LCOMHS not well calculated if fields are initialized in the constructor Initialization Lists.

Version

2.8.2.0

Date

February 8, 2011

New Features:

Improved analysis for C projects.

Version

2.8.1.0

Date

January 30, 2010

Bugs Resolved:

Problem in metric view when .vdproj exist in the solution analyzed.

Version

2.8.0.0

Date

January 10, 2010

New Features:

Enhanced report.

Sensitive help added to understand better CppDepend features.

ProjectMaker improved.

Version

2.7.2.0

Date

December 20, 2010

Bugs Resolved:

Dependency to overloaded methods not detected correctly .

Version

2.7.0.0

Date

December 10, 2010

Bugs Resolved:

Bug When reading .props files for VS2010 projects.

Version

2.6.0.0

Date

November 18, 2010

Bugs Resolved:

Dependencies for no template Smart Pointer is not well treated.

Version

2.5.0.0

Date

November 6, 2010

Bugs Resolved:

Cyclomatic complexity for method containing macros

excluded files from .vcproj are not excluded from analysis

Version

2.4.0.0

Date

October 25, 2010

Bugs Resolved:

bug when searching for .propos when analyzing .vcxproj files

Version

2.3.0.0

Date

October 19, 2010

Bugs Resolved:

cppparser crash when initializing a static variable using template function

Added functionalities:

Adding the possibility to have the dependencies between directories, useful for C projects

Version

2.2.2.0

Date

September 12, 2010

Bugs Resolved:

parsing error for idl files containing Types

Version

2.2.1.0

Date

August 8, 2010

Bugs Resolved:

get additional include path from PropertySheet

dependency with static library

Version

2.2.0.0

Date

July 16, 2010

Features:

Possibility of choosing a configuration for VS projects

Version

2.1.0.0

Date

July 5, 2010

Bugs Resolved:

Treat projects existing in paths with unicode name

Version

2.0.1.0 (Trial Edition) / 2.0.1.0 (Professional Edition)

Date

June 19, 2010

Bugs Resolved:

Not Consider Com Class as Abstract

Instability of CppDepend Add-in for VS 2010

Version

2.0.0.1 (Trial Edition)

Date

May 5, 2010

Bug resolved:

projects build order bug resolved for HTML Report.

Version

2.0.0.0 (Pro Edition & Trial Edition)

Date

April 15, 2010

Features: VisualStudio Integration

Integration of all VisualCppDepend panels in VisualStudio 2010, 2008 and 2005.

A global CppDepend menu lets access any of these panels.

All CppDepend features are available on right-clicking anything that can be recognized as a code-elements in the Code Editor and Solution Explorer.

Possibility to place some CppDepend menus at the first level of the code element contextual menu.

Heuristic to infer a namespace from a solution folder and to infer a type from a solution source file.

Possibility to interact across several opened VisualStudio instances, when a CppDepend project is spawning several VisualStudio solutions.

Dependency Matrix computation is an order of magnitude (x10) faster for most operations (noticeable only on large matrix).

Background and abortable computation of Dependency Matrix and Dependency Graph.

Features: Compare

Possibility to define a Baseline for Comparison used when loading a project in VisualCppDepend and VisualStudio.

When comparing 2 builds, possibility to disassemble the 2 versions of the code of a method or of a class where CodeWasChanged and compare them with the specified source file compare tool.

2 new comparison facilities: Compare the currently loaded Analysis Result with another Analysis Result + Stop comparing and only keep the current Analysis Result

Features: Graph

When pointing a node in graph, indirect caller/callee nodes are highlighted with a soft blue for callee/green for caller/red for caller/callee that differenciate them from direct caller/callee nodes.

The keyboard shortcut Ctrl+Space takes a snapshot of the graph. It is useful to take snapshot with colored nodes by mouse hovering.

Possibility to append to the graph a set of code elements from a CQL query result.

Possibility to remove selected nodes in a graph and also, possibility to keep only user/used nodes of a node.

Features: CQL

Possibility to edit several queries at the same time in the new Query Edition panel.

New buttons: Search type by Name; Search method by Name; Create a New CQL Query

When displaying the query result of a query containing a METHODS WHERE ... XXXWritingField \ ...XXXDeriveFrom \ Implements \ ReturnTypeIs \ FieldIsOfType \ HasAttribute clause, the targeted code element is now displayed in the query target section of the result.

Features: CppDepend Analysis and Project

Possibility to attach a CppDepend project to a VisualStudio solution.

When a CppDepend project is modified outside of the process, the user is informed when he re-activates the VisualStudio or VisualCppDepend window.

When currently showing the most recent analysis and a more recent analysis result is available (computed from another process), the most recent result is loaded automatically when he re-activating the VisualStudio or VisualCppDepend window.

In build comparison, if the type of a field changed, CppDepend considers that the code of the fields� declaring type was changed (CQL condition CodeWasChanged).

When comparing 2 analysis results in VisualCppDepend and then running a new analysis on one of the 2 results, once the analysis complete, VisualCppDepend is still in comparison mode.

When comparing 2 analysis results, code elements displayed names are underlined only if the code was changed, before we underlined even if comments were changed.

The default CQL rule 'A stateless class or structure might be turned into a static type' has been updated to avoid matching classes that have a base class and base classes that have children subclasses.

The default CQL rule 'Methods that could be declared as 'internal' has been updated to avoid matching default constructors.

The default CQL rule 'Classes that are candidate to be turned into Structures' has been updated to avoid matching static classes.

Computation of the metrics LCOM and LCOM-HS defined on types no longer takes into account compiler generated members.

Bug Fixed:

In the metric view, when displaying fields with the metric set to 'Size of Instance', right clicking a rectangle representing 'Fields inherited from XXX' raised an exception.

After a restart of VisualCppDepend, the panels could be over-sized

The initial location of the VisualCppDepend form might not be retrieved properly from the last run in multi-monitor environment.

Dependency Matrix ToolTips might not be located properly in multi-monitor environment.

ScrollBars were not properly displayed in the CppDepend StartPage.

When comparing 2 builds and disabling some assemblies, an exception could occur when selecting a child of a discarded assemblies in a query result.

An exception could be raised when selecting a code element displayed in a search result, when the search result vertical space was not large enough.

A '&' character in a comment of a CQL query declared in code source could raise an exception during analysis.

A tab character in the body of a CQL Query in the project file could prevent the CQL compiler to run properly.

In some cases, duplicated CQL query definition in source code could raise an exception during analysis

In the Browse Project Dialog, clicking a header of the grid raised an exception.

When comparing analysis, constructor(s) of a class which base class was changed was not considered as changed.

Assemblies with forwarded types can now be analyzed.

Method return type could not be correctly linked for abstract methods.

An exception could be raised while analyzing some kind of obfuscated assemblies.

An indirect usage path from a method to a field couldn't be exhibited from the Matrix to the Graph.

An indirect usage path from a namespace parent to an assembly couldn't be exhibited from the Matrix to the Graph.

The Visual Studio 2008 skin was disabled because several problems were caused by this particular skin.

Saving analysis result of a very large analyzed application could take an abnormal long duration (in minutes).

When doing a comparison at analysis time in 'Another project' mode, the description of the analysis result against which the comparison is done could be wrong.

When displaying the query result of a query containing a METHODS WHERE ... XXXWritingField clause, the query targeted field was not displayed correctly.