Whether you just started a new job, inherited someone else’s project, or have a lot of code to navigate, Understand™ has many features to help you figure out a large or legacy code base.

Dependency Graphs

These graphs provide a quick way to see how the major code directories are related to each other. The example below shows that the directories “common” and “ri” are important and used by almost everything. The dependency graph lets you drill down to the class and function level and filter out things you aren’t interested in, making it a great tool for exploring.

ArchInternalDependencies-DirectoryStructure

UML Class Diagrams

A quick way to see how the different classes in the project are related.

umldiagram

 

Flowchart Graphs

Complicated functions can make more sense when you can walk though the control flow logic visually.

graph_views_control_flow_c

Information Browser

Imagine browsing the source for a function and running across an unfamiliar variable, what is it, where was it defined, is it global or local? The Info Browser was made to answer questions like that. While not as pretty as the graphs, the Information Browser (IB) is probably the most powerful feature of Understand.It displays almost everything Understand knows about the selected entity: the initial value, relationships to other entities, everywhere it is referenced, sub-entities, basic metrics, etc. Just right click and select View Information on just about anything.

InfoBrowser

 

Contextual Information Sidebar

The Contextual Information Sidebar(CIS) updates dynamically based on where focus is in the editor, showing pertinent information about the surrounding structures and entities. It provides a quick heads-up display to provide context on whatever you are looking at.

Context Information Sidebar

 

Browse Mode

If you’re exploring more than writing code, browse mode can save you a few mouse clicks, it changes entity names in the editor to hyperlinks that update the Info Browser and jump to the definition of the clicked entity.

browse mode

 

Annotations

As you make sense of the code, you may want to make notes on what you’ve learned. Annotations lets you make notes on entities without modifying the source code. You can choose to share those notes with others on your team or keep them private. Annotations are displayed inline with the code as well as in the Info Browser. That can also be displayed as a list and searched so you can quickly find the the right note.

annotations