Explore Existing Architecture
Visualize Dependencies and Architecture

It is vital information to know how the elements of a code base depend on each other. As a developer you spend time thinking about how your layers should interact, creating interfaces and events to avoid dependencies between concrete classes.
As the code base grows, more and more time is spent managing and analyzing dependencies. If I refactor this piece of code, what will be the global impact? Is this layer allowed to access directly DB? Will I accidentally freeze the UI thread if my code invokes this method?
CppDepend comes with several facilities that allow the efficient dependency management. In seconds you can know which part of the code will be impacted if you refactor a class, you can be advised if a layer dependency violation has been accidentally created, you can pinpoint precisely which part of the code relies on a particular tier component, you can list methods that can be reached from a given method etc…

Dependency Graph
The Dependency Graph provides a visual representation of how code elements interact. It helps developers understand the structure of their codebase at a glance and identify potential problems.
- ✓Visualize callers and callees for any method or type
- ✓Explore dependencies at project, namespace, or class level
- ✓Identify cycles and tightly coupled components
- ✓Assess impact before refactoring

Dependency Structure Matrix
The Dependency Structure Matrix (DSM) offers a compact, matrix-based view of dependencies that complements the graph visualization. It is especially useful for large codebases where graphs may become difficult to read.
- ✓Compact representation of all dependencies
- ✓Spot layering violations and cycles at a glance
- ✓Navigate large codebases efficiently
- ✓Compare dependency patterns across versions

Layer Dependency Violations
CppDepend helps enforce architectural constraints by detecting layer dependency violations. When a layer accesses another layer it should not depend on, CppDepend flags the violation so it can be addressed before it becomes a structural problem.
- ✓Define allowed and forbidden layer dependencies
- ✓Detect accidental violations during development
- ✓Visualize violation paths in the dependency graph

CQLinq Integration
Dependency analysis is fully integrated with CQLinq, allowing you to write custom queries that explore dependencies programmatically. You can combine dependency data with metrics, code rules, and quality gates for powerful analysis scenarios.
- ✓Query dependencies with CQLinq
- ✓Export dependency graphs from query results
- ✓Create custom rules for dependency constraints
Try Explore Existing Architecture with CppDepend
Start your 14-day free trial with full access to all features. No credit card required.
