New Onboard is here — AI-guided, self-hosted onboarding for your codebase. Learn more
Features Code Navigation Static Analysis Graphs Compliance Metrics Custom API How it works FAQs Pricing Docs Start free trial
Graphs

Call graphs and dependency graphs, drawn from your source

Point Understand at your project, right-click anything, and the diagram draws itself from the parsed model.

callerscalled by this functionrx_isr()poll_uart()replay_log()crc_check()decode_header()queue_push()log_error()process_frame()
Butterfly. Callers on the left, callees on the right, for any file, function, class or architecture — both directions of the relationship at once.
main()init_system()run_loop()hal_init()cfg_load()process_frame()watchdog_kick()every path from the entry point down to the function you selected
Call tree. Every path from an entry point down to the function you care about, so you can see how control actually reaches it.
cyclic dependencyapp/comms/drivers/ui/hal/util/
Dependency. What your project really depends on, from file level up to architecture — including the cycles a folder tree hides.
Transport+ open() : bool+ send(Frame) : int# retries : intUartTransport+ open() : bool+ send(Frame) : intCanTransport+ open() : bool+ baud : uint32generalisation, read straight off the parsed inheritance
UML class. A class with everything it inherits from, or every class in the project, read straight off the parsed inheritance.
decode_header()len > MAX?truefalsereturn EINVALcopy_payload()queue_push()the branch no test has ever taken, highlighted on the flow itself
Control flow. Branches and loops inside a single function, with the paths your tests never took called out.
app/comms/drivers/ui/hal/util/added since v4.2removed
Compare. The same graph across two versions of the project, with everything that was added or removed marked on the drawing.

Works on code that doesn't compile · No build system required · Windows, macOS and Linux

Trusted by over 20,000 developers at

Amazon NASA NVIDIA Toyota US Air Force Raytheon Technologies Samsung Aurora Flight Sciences Honeywell Amazon NASA NVIDIA Toyota US Air Force Raytheon Technologies Samsung Aurora Flight Sciences Honeywell Amazon NASA NVIDIA Toyota US Air Force Raytheon Technologies Samsung Aurora Flight Sciences Honeywell
Why draw it

What a graph shows that a file tree can't

Relationships, not folders

Directory layout tells you where someone decided to put a file. A graph tells you what that file actually talks to — which is rarely the same thing.

Current, every time you open it

The diagram is generated from the parse, not maintained by a person. Nobody has to remember to update it, so nobody can forget.

Something to put in front of people

Export the picture instead of describing the problem in a meeting. PNG, SVG and JPEG for slides; Visio and Graphviz when it has to be edited afterwards.

At real scale

Your codebase is bigger than a demo. That's the point.

Graphs of six tidy boxes are easy. The ones that earn their keep are drawn over hundreds of thousands of lines you did not write, where the structure is the thing you are trying to recover.

Node limits, cluster variants and the customiser toolbar exist for exactly this — so a graph of a real project arrives as something you can read instead of a wall of boxes.

1.2Mlines parsed in the graph shown
9graph types from one parse
0diagrams maintained by hand
A dependency graph across five subsystems. Cluster variants group by file or architecture so the shape stays readable at this density.
Working with graphs

Draw it, shape it, take it with you

A cluster graph variant in Understand, grouping functions by the file they belong to.

Switch variants without starting over

Cluster by file or architecture, show every path between two functions, or diff against a previous version — all from the same graph.

Understand's graph customisation panel, with node and layout options.

Control what gets drawn

Node options, depth limits and legends decide how much of the truth you want on screen at once.

A graph from Understand laid out for printing.

Get it out of the tool

JPEG, PNG, SVG or print. Visio (vdx, vsdx) and Graphviz (dot) when the picture needs editing after it leaves.

In their words

What it replaces

“What would have previously taken me several days (or weeks) can now be accomplished in a matter of hours… It's the Swiss army knife of static analysis tools.”
Randall LandaicheIntuity
“[Understand] is good for discovering the structure of the code dependencies and call-paths… it would have taken me hours to generate the same thing on my own.”
Paul HylandAerospace

Draw your first graph today

The trial enables every feature. Point it at your own repository and you will have a call graph on screen before the coffee is cold.

No credit card. Works fully offline, including air-gapped.