Build & Design
CppDepend for Software Architects
Master dependency graphs, enforce architectural rules, prevent cyclic dependencies with CQLinq.

Master dependency graphs
Architecture lives in dependencies — and dependencies live in the code, not in PowerPoint. CppDepend generates live, interactive dependency graphs directly from your build: projects, namespaces, classes and methods as nodes, usage relationships as weighted edges.
Zoom from the 30,000-foot view down to a single method call. The dependency matrix complements the graph for dense codebases where a DSM reads faster than a thousand arrows.
- Graphs generated from real code — always up to date, never aspirational
- Multiple levels: application, project, namespace, type, method, field
- Dependency matrix (DSM) for pinpointing unexpected couplings
- Export and share diagrams with the team

Enforce architectural rules
An architecture that isn't enforced erodes silently. With CQLinq you turn your design decisions — layering, allowed dependencies, forbidden APIs, naming schemes — into executable rules that are checked on every analysis.
Write rules like "UI code must not access the persistence layer" or "only the factory may instantiate implementations" and get a violation list on the very next build. CppDepend ships with dozens of predefined architecture rules you can adapt to your conventions.
- Express layering and component rules in a few lines of CQLinq
- Predefined rules for common architecture patterns
- Violations reported per commit with baseline diffing
- Rules versioned with the code in a shareable rule file

Prevent cyclic dependencies with CQLinq
Cyclic dependencies are the original sin of software architecture: they make code impossible to test, reuse or split. CppDepend detects cycles at every level — between components, namespaces and classes — and shows you the minimal set of edges to remove to break them.
More importantly, a CQLinq rule can fail the build the day a new cycle appears, so the problem is fixed while it's one dependency, not two hundred.
- Automatic cycle detection between projects, namespaces and types
- Visual cycle explorer suggests the edges to remove
- Quality gate: fail the build on any new cycle
- Track cycle count over time with trend metrics

See what CppDepend finds in your code
Download the free trial and run a full analysis on your own codebase in minutes.
