Butterfly is one of the interactive graphs Understand can draw of your code — call trees, dependencies, control flow, and more.
Butterfly
Languages: Ada, Any, Assembly, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, VHDL, WebTargets: Classes, Files, Functions, Generics, Modules, Objects, Packages, Subprograms, Types
Variants: Assigned To & Assignments (Cluster), Assigned To & Assignments (Compare), Assigned To & Assignments (Simplified), Calls & Called By (Cluster), Calls & Called By (Compare), Calls & Called By (Simplified), Child Lib Units & Parent Lib Unit (Cluster), Child Lib Units & Parent Lib Unit (Compare), Child Lib Units & Parent Lib Unit (Simplified), Classic, Compare (Classic), Data Flow Out & Data Flow In (Cluster), Data Flow Out & Data Flow In (Compare), Data Flow Out & Data Flow In (Simplified), Declaration Tree & Declared In (Cluster), Declaration Tree & Declared In (Compare), Declaration Tree & Declared In (Simplified), Dependencies, Dependencies (Compare), Derived Classes & Base Classes (Cluster), Derived Classes & Base Classes (Compare), Derived Classes & Base Classes (Simplified), Extended By & Extends (Cluster), Extended By & Extends (Compare), Extended By & Extends (Simplified), Imports & Imported By (Cluster), Imports & Imported By (Compare), Imports & Imported By (Simplified), Include & Includeby (Cluster), Include & Includeby (Compare), Include & Includeby (Simplified), Overriddenby & Overrides (Cluster), Overriddenby & Overrides (Compare), Overriddenby & Overrides (Simplified), Requires & Required By (Cluster), Requires & Required By (Compare), Requires & Required By (Simplified), Type Tree & Type Derived From (Cluster), Type Tree & Type Derived From (Compare), Type Tree & Type Derived From (Simplified), Uses & Used By (Cluster), Uses & Used By (Compare), Uses & Used By (Simplified), Uses Traits & Used By (Cluster), Uses Traits & Used By (Compare), Uses Traits & Used By (Simplified), With & Withby (Cluster), With & Withby (Compare), With & Withby (Simplified)
Butterfly - Assigned To & Assignments (Cluster)
Show both Assigned To and Assignments relationships
See Assigned To and Assignments graphs for details
The Cluster variant groups entities by their containing class/file/architecture.
Butterfly - Assigned To & Assignments (Compare)
Show both Assigned To and Assignments relationships
See Assigned To and Assignments graphs for details
The Compare variant shows how the graph has changed relative to the project's comparison database.
Butterfly - Assigned To & Assignments (Simplified)
Show both Assigned To and Assignments relationships
See Assigned To and Assignments graphs for details
The Simplified variant shows all relationships in a simple tree (no clusters)
Butterfly - Calls & Called By (Cluster)
Show both Calls and Called By relationships
See Calls and Called By graphs for details
The Cluster variant groups entities by their containing class/file/architecture.
Butterfly - Calls & Called By (Compare)
Show both Calls and Called By relationships
See Calls and Called By graphs for details
The Compare variant shows how the graph has changed relative to the project's comparison database.
Butterfly - Calls & Called By (Simplified)
Show both Calls and Called By relationships
See Calls and Called By graphs for details
The Simplified variant shows all relationships in a simple tree (no clusters)
Butterfly - Child Lib Units & Parent Lib Unit (Cluster)
Show both Child Lib Units and Parent Lib Unit relationships
See Child Lib Units and Parent Lib Unit graphs for details
The Cluster variant groups entities by their containing class/file/architecture.
Butterfly - Child Lib Units & Parent Lib Unit (Compare)
Show both Child Lib Units and Parent Lib Unit relationships
See Child Lib Units and Parent Lib Unit graphs for details
The Compare variant shows how the graph has changed relative to the project's comparison database.
Butterfly - Child Lib Units & Parent Lib Unit (Simplified)
Show both Child Lib Units and Parent Lib Unit relationships
See Child Lib Units and Parent Lib Unit graphs for details
The Simplified variant shows all relationships in a simple tree (no clusters)
Butterfly - Classic
See a selected entity's full relationship neighborhood in one diagram: everything it depends on, and everything that depends on it, at once.
Which relationship is shown depends on what's selected: functions and subprograms show Calls and Called By; classes, structs, and interfaces show Base Classes and Derived Classes (or Extends and Extended By for Java and Pascal); Ada types show their derivation chain; files show Include and Includeby; VHDL entities show Use and Useby. That makes it useful for impact analysis — seeing at a glance what a change to the selected entity could affect both upstream and downstream — without opening two separate graphs.
See also the compare graph.
This variant is a plugin. It can be enabled/disabled from the Plugin Manager.
Butterfly - Compare (Classic)
Compare a selected entity's full relationship neighborhood between two versions of the project, in one diagram: everything it depends on, and everything that depends on it, with entities and edges colored by whether they were added, removed, or changed.
Which relationship is compared depends on what's selected, the same as in the Classic variant: functions and subprograms compare Calls and Called By; classes, structs, and interfaces compare Base Classes and Derived Classes; and so on. That makes it useful for reviewing how a function's or class's full calling or inheritance context changed across a refactor or release — whether new callers appeared, old ones disappeared, or an override was added or removed — without diffing two separate graphs.
See also the classic graph.
This variant is a plugin. It can be enabled/disabled from the Plugin Manager.
Butterfly - Data Flow Out & Data Flow In (Cluster)
Show both Data Flow Out and Data Flow In relationships
See Data Flow Out and Data Flow In graphs for details
The Cluster variant groups entities by their containing class/file/architecture.
Butterfly - Data Flow Out & Data Flow In (Compare)
Show both Data Flow Out and Data Flow In relationships
See Data Flow Out and Data Flow In graphs for details
The Compare variant shows how the graph has changed relative to the project's comparison database.
Butterfly - Data Flow Out & Data Flow In (Simplified)
Show both Data Flow Out and Data Flow In relationships
See Data Flow Out and Data Flow In graphs for details
The Simplified variant shows all relationships in a simple tree (no clusters)
Butterfly - Declaration Tree & Declared In (Cluster)
Show both Declaration Tree and Declared In relationships
See Declaration Tree and Declared In graphs for details
The Cluster variant groups entities by their containing class/file/architecture.
Butterfly - Declaration Tree & Declared In (Compare)
Show both Declaration Tree and Declared In relationships
See Declaration Tree and Declared In graphs for details
The Compare variant shows how the graph has changed relative to the project's comparison database.
Butterfly - Declaration Tree & Declared In (Simplified)
Show both Declaration Tree and Declared In relationships
See Declaration Tree and Declared In graphs for details
The Simplified variant shows all relationships in a simple tree (no clusters)
Butterfly - Dependencies
Show both Depends On and Depended On By relationships.
See Depends On and Depended On By graphs for details.
This variant shows each file/class once. In the GUI, the files/classes can be expanded to show the entities for each reference.
Butterfly - Dependencies (Compare)
Show both Depends On and Depended On By relationships.
See Depends On and Depended On By graphs for details.
The Compare variant shows how the graph has changed relative to the project's comparison database.
Butterfly - Derived Classes & Base Classes (Cluster)
Show both Derived Classes and Base Classes relationships
See Derived Classes and Base Classes graphs for details
The Cluster variant groups entities by their containing class/file/architecture.
Butterfly - Derived Classes & Base Classes (Compare)
Show both Derived Classes and Base Classes relationships
See Derived Classes and Base Classes graphs for details
The Compare variant shows how the graph has changed relative to the project's comparison database.
Butterfly - Derived Classes & Base Classes (Simplified)
Show both Derived Classes and Base Classes relationships
See Derived Classes and Base Classes graphs for details
The Simplified variant shows all relationships in a simple tree (no clusters)
Butterfly - Extended By & Extends (Cluster)
Show both Extended By and Extends relationships
See Extended By and Extends graphs for details
The Cluster variant groups entities by their containing class/file/architecture.
Butterfly - Extended By & Extends (Compare)
Show both Extended By and Extends relationships
See Extended By and Extends graphs for details
The Compare variant shows how the graph has changed relative to the project's comparison database.
Butterfly - Extended By & Extends (Simplified)
Show both Extended By and Extends relationships
See Extended By and Extends graphs for details
The Simplified variant shows all relationships in a simple tree (no clusters)
Butterfly - Imports & Imported By (Cluster)
Show both Imports and Imported By relationships
See Imports and Imported By graphs for details
The Cluster variant groups entities by their containing class/file/architecture.
Butterfly - Imports & Imported By (Compare)
Show both Imports and Imported By relationships
See Imports and Imported By graphs for details
The Compare variant shows how the graph has changed relative to the project's comparison database.
Butterfly - Imports & Imported By (Simplified)
Show both Imports and Imported By relationships
See Imports and Imported By graphs for details
The Simplified variant shows all relationships in a simple tree (no clusters)
Butterfly - Include & Includeby (Cluster)
Show both Include and Includeby relationships
See Include and Includeby graphs for details
The Cluster variant groups entities by their containing class/file/architecture.
Butterfly - Include & Includeby (Compare)
Show both Include and Includeby relationships
See Include and Includeby graphs for details
The Compare variant shows how the graph has changed relative to the project's comparison database.
Butterfly - Include & Includeby (Simplified)
Show both Include and Includeby relationships
See Include and Includeby graphs for details
The Simplified variant shows all relationships in a simple tree (no clusters)
Butterfly - Overriddenby & Overrides (Cluster)
Show both Overriddenby and Overrides relationships
See Overriddenby and Overrides graphs for details
The Cluster variant groups entities by their containing class/file/architecture.
Butterfly - Overriddenby & Overrides (Compare)
Show both Overriddenby and Overrides relationships
See Overriddenby and Overrides graphs for details
The Compare variant shows how the graph has changed relative to the project's comparison database.
Butterfly - Overriddenby & Overrides (Simplified)
Show both Overriddenby and Overrides relationships
See Overriddenby and Overrides graphs for details
The Simplified variant shows all relationships in a simple tree (no clusters)
Butterfly - Requires & Required By (Cluster)
Show both Requires and Required By relationships
See Requires and Required By graphs for details
The Cluster variant groups entities by their containing class/file/architecture.
Butterfly - Requires & Required By (Compare)
Show both Requires and Required By relationships
See Requires and Required By graphs for details
The Compare variant shows how the graph has changed relative to the project's comparison database.
Butterfly - Requires & Required By (Simplified)
Show both Requires and Required By relationships
See Requires and Required By graphs for details
The Simplified variant shows all relationships in a simple tree (no clusters)
Butterfly - Type Tree & Type Derived From (Cluster)
Show both Type Tree and Type Derived From relationships
See Type Tree and Type Derived From graphs for details
The Cluster variant groups entities by their containing class/file/architecture.
Butterfly - Type Tree & Type Derived From (Compare)
Show both Type Tree and Type Derived From relationships
See Type Tree and Type Derived From graphs for details
The Compare variant shows how the graph has changed relative to the project's comparison database.
Butterfly - Type Tree & Type Derived From (Simplified)
Show both Type Tree and Type Derived From relationships
See Type Tree and Type Derived From graphs for details
The Simplified variant shows all relationships in a simple tree (no clusters)
Butterfly - Uses & Used By (Cluster)
Show both Uses and Used By relationships
See Uses and Used By graphs for details
The Cluster variant groups entities by their containing class/file/architecture.
Butterfly - Uses & Used By (Compare)
Show both Uses and Used By relationships
See Uses and Used By graphs for details
The Compare variant shows how the graph has changed relative to the project's comparison database.
Butterfly - Uses & Used By (Simplified)
Show both Uses and Used By relationships
See Uses and Used By graphs for details
The Simplified variant shows all relationships in a simple tree (no clusters)
Butterfly - Uses Traits & Used By (Cluster)
Show both Uses Traits and Used By relationships
See Uses Traits and Used By graphs for details
The Cluster variant groups entities by their containing class/file/architecture.
Butterfly - Uses Traits & Used By (Compare)
Show both Uses Traits and Used By relationships
See Uses Traits and Used By graphs for details
The Compare variant shows how the graph has changed relative to the project's comparison database.
Butterfly - Uses Traits & Used By (Simplified)
Show both Uses Traits and Used By relationships
See Uses Traits and Used By graphs for details
The Simplified variant shows all relationships in a simple tree (no clusters)
Butterfly - With & Withby (Cluster)
Show both With and Withby relationships
See With and Withby graphs for details
The Cluster variant groups entities by their containing class/file/architecture.
Butterfly - With & Withby (Compare)
Show both With and Withby relationships
See With and Withby graphs for details
The Compare variant shows how the graph has changed relative to the project's comparison database.
Butterfly - With & Withby (Simplified)
Show both With and Withby relationships
See With and Withby graphs for details
The Simplified variant shows all relationships in a simple tree (no clusters)