User Guide and
Reference Manual
Version 5.0
February 2018
Scientific Toolworks, Inc.
53 N Main
St. George, UT 84770
Copyright © 2018 Scientific Toolworks, Inc. All rights reserved.
The information in this document is subject to change without notice. Scientific Toolworks,
Inc. makes no warranty of any kind regarding this material and assumes no responsibility
for any errors that may appear in this document.
RESTRICTED RIGHTS: Use, duplication, or disclosure by the Government is subject to re-
strictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Com-
puter Software clause at DFAR 252.227-7013 (48 CFR). Contractor/Manufacturer is
Scientific Toolworks, Inc., 53 N. Main, St. George, UT 84770.
NOTICE: Notwithstanding any other lease or license agreement that may pertain to or ac-
company the delivery of this restricted computer software, the rights of the Government re-
garding use, reproduction, and disclosure are as set forth in subparagraph (c)(1) and (2) of
Commercial Computer Software-Restricted Rights clause at FAR 52.227-19.
Part Number: USTAND5.0-GEN-UG-901 (2/18)
Understand 5.0 User Guide and Reference Manual 3
Contents
Chapter 1 Introduction
What is Understand? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Languages Supported . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
For Those Who Don’t Like to Read Manuals . . . . . . . . . . . . . . . 15
Chapter 2 Parts and Terminology
Using Understand Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Understand Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Parts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Starting Understand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Other Ways to Run Understand . . . . . . . . . . . . . . . . . . . . . 21
Context Menus Are Everywhere . . . . . . . . . . . . . . . . . . . . . . . . . 22
Quickly Find Things in Your Source . . . . . . . . . . . . . . . . . . . . . . 24
Entity Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Entity Locator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Instant Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Find in Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Favorites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Information Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Source Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Architecture Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Graphical Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
ASCII and HTML Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
APIs for Custom Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Chapter 3 Configuring Your Project
About Understand Projects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
The Understand Project Database. . . . . . . . . . . . . . . . . . . 33
Creating a New Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
New Project Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Project Configuration Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Languages Category . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Files Category. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Adding Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Adding Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Removing Directories and Files . . . . . . . . . . . . . . . . . . . . . 45
Setting Overrides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Scanning Watched Directories. . . . . . . . . . . . . . . . . . . . . . 47
Setting File Portability . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
File Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
File Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Scheduled Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Contents
4 Understand 5.0 User Guide and Reference Manual
Metrics > Selected Category . . . . . . . . . . . . . . . . . . . . . . . 54
Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Reports > Output Category . . . . . . . . . . . . . . . . . . . . . . . . 55
Reports > Options Category. . . . . . . . . . . . . . . . . . . . . . . . 56
Reports > Selected Category . . . . . . . . . . . . . . . . . . . . . . . 57
Visual Studio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
CMake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Annotations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Ada Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Ada > Macros Category . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Assembly Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Visual Basic Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
COBOL Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
COBOL > Copybooks Category . . . . . . . . . . . . . . . . . . . . . 70
C++ (Fuzzy) Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
C++ > Includes Category . . . . . . . . . . . . . . . . . . . . . . . . . . 73
C++ > Includes > Auto Category . . . . . . . . . . . . . . . . . . . . 74
C++ > Includes > Ignore Category . . . . . . . . . . . . . . . . . . . 74
C++ > Includes > Replacement Text . . . . . . . . . . . . . . . . . 75
C++ > Macros Category . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
C++ > Macros > Undefines Category. . . . . . . . . . . . . . . . . 77
C++ (Strict) Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
C++ (Strict) > Includes Category . . . . . . . . . . . . . . . . . . . . 80
C++ (Strict) > Includes > Frameworks Category . . . . . . . . 81
C++ (Strict) > Includes > Prefix Headers Category . . . . . . 82
C++ (Strict) > Macros Category . . . . . . . . . . . . . . . . . . . . . 82
C# Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Fortran Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Fortran>Includes Category. . . . . . . . . . . . . . . . . . . . . . . . . 86
Other Fortran Categories . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Java Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Java > Class Paths Category. . . . . . . . . . . . . . . . . . . . . . . 88
Eclipse Plugin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
JOVIAL Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Jovial > !Copy Category . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Pascal Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Pascal > Macros Category . . . . . . . . . . . . . . . . . . . . . . . . . 92
Pascal > Standard Library Paths Category . . . . . . . . . . . . 92
Pascal > Search Paths Category . . . . . . . . . . . . . . . . . . . . 92
PL/M Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
PL/M>Includes Category . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Python Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Python > Imports Category . . . . . . . . . . . . . . . . . . . . . . . . 95
VHDL Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Web Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Setting General Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
General Category. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Contents
Understand 5.0 User Guide and Reference Manual 5
User Interface Category . . . . . . . . . . . . . . . . . . . . . . . . . . 101
User Interface > Lists Category . . . . . . . . . . . . . . . . . . . . 102
User Interface > Alerts Category . . . . . . . . . . . . . . . . . . . 103
User Interface > Windows Category . . . . . . . . . . . . . . . . 104
User Interface > Application Styles Category. . . . . . . . . . 106
Key Bindings Category. . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Analyze Category. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Portability Category . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Dependency Category . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Editor Category . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Editor > Advanced Category . . . . . . . . . . . . . . . . . . . . . . 113
Editor > Macros Category . . . . . . . . . . . . . . . . . . . . . . . . 116
Editor > Styles Category . . . . . . . . . . . . . . . . . . . . . . . . . 117
Editor > Navigation Category . . . . . . . . . . . . . . . . . . . . . . 118
Editor > External Editor Category. . . . . . . . . . . . . . . . . . . 119
Graphs Category . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Analyzing the Code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Improving the Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Using the Missing Header Files Tool . . . . . . . . . . . . . . . . 125
Using the Undefined Macros Tool . . . . . . . . . . . . . . . . . . 127
Chapter 4 Exploring Your Codebase
PLEASE RIGHT-CLICK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Various Windows Explained... . . . . . . . . . . . . . . . . . . . . . . . . . 130
Entity Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Using the Filter Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Customizing the Display. . . . . . . . . . . . . . . . . . . . . . . . . . 132
Root Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Information Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Drilling Down a Relationship . . . . . . . . . . . . . . . . . . . . . . 134
Displaying More or Less Information . . . . . . . . . . . . . . . . 135
Searching the Information Browser . . . . . . . . . . . . . . . . . 135
Syncing the Information Browser . . . . . . . . . . . . . . . . . . . 136
Visiting Source Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Visiting References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Viewing Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Saving and Printing Information Browser Text . . . . . . . . . 138
Entity History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Project Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Exploring a Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Dependency Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Favorites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Creating a Favorite Entity. . . . . . . . . . . . . . . . . . . . . . . . . 144
Creating a Favorite View . . . . . . . . . . . . . . . . . . . . . . . . . 145
Using a Favorites Group . . . . . . . . . . . . . . . . . . . . . . . . . 145
Creating a Plain Text Favorite . . . . . . . . . . . . . . . . . . . . . 147
Chapter 5 Searching Your Source
Searching: An Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149