BluInsights provides dependencies analysis for multiple languages with advanced visualization (Graph/Table) and manipulation features. In the Dependencies tab of Assets, it is possible to select a technology among a large list of supported languages (continuously enriched). For each language, BluInsights handles a set of statements to detect dependencies between files based on their types. The original graph cannot be modified. The user has to create a subgraph on which she will be able to perform all the actions listed below.
When the dependencies analysis is completed, the results are displayed both as a graph and a table of the analysis. It is possible to switch from one to the other by clicking on the icons at the top right of the page as shown in the following image. The analysis generates default filters to allow an immediate navigation into specific nodes (e.g. missing programs, sql nodes, isolated programs, etc.). By default, these filters are shared with all team members and are visible in “My Stuff”.
The “…” icon opens a menu that allows relaunching the analysis (e.g. after updating the codebase) or importing your own dependencies using a JSON file. It is also possible to export the result to a CSV or JSON file.
The dependencies analysis contains mainly the codebase files and extra elements called nodes that are mainly of two types: Missing (i.e. not found on the source code files) and System (calls to libraries or routines related to the platform). Those types can be edited using the Selection Properties.
In the table view, the files are listed in a tree with their dependencies (if any) as nested elements. All the actions performed on a given file are automatically updated for all the instances of the same file. Similarly to all the other pages, it is possible to filter the content of the table, export it, and select files in order to edit their properties, view their content, or delete them.
The dependencies result are presented as a set of nodes and edges with different properties. The nodes represent the files or Missing/System artifacts and the edges represent the relationships among all of them. Hovering the mouse over nodes and links opens informative tooltips (name, path, type, etc.). Similarly to the table view, it is possible to select any node (Ctrl + Click) to edit its properties or view its content if related to a source code file.
More actions allowing a user-friendly manipulation of the graphs are proposed on the top of the graph.
- Direct, Rectangle and Drag modes
The first 3 icons allow to choose how the mouse should behave on the graph. It is possible to switch between:
- the default selection mode allows to select and move nodes (“Ctrl+a” shortcut selects all the nodes).
- the rectangle mode draws a rectangle to select embodied nodes.
- the drag mode allows to move selected nodes by clicking anywhere in the graph (extremely helpful when looking for a few nodes in very large graphs).
These buttons allow to zoom out, zoom in (also possible with the mouse wheel), and reset zoom that fits the graph.
Previous actions can be undone by clicking on the first arrow or using the “Ctrl+z” shortcut. The second arrow allows to redo the undone actions (“Ctrl+y”).
- Visual preferences
It is possible to hide/show colored containers for a selection of nodes sharing the same Workpackages, Labels, File Types, or Status. The color of each container is defined when created in their corresponding pages or in the Selection Properties.
Each node and edge has a default color based on their types. These colors can be modified for a better customized visualization. Node colors can also be based on their status.
- Copy names
When one or more nodes are selected, it is possible to copy their names. The copied content is put in a row, separated by a comma, and copied to the clipboard. You can paste this text wherever you need.
It is possible to apply organic or hierarchical layouts on a selection of nodes to better visualize the graph.
A selection of nodes can be extracted to new subgraphs or merge them with an existing one. Each subgraph has a name, a group and a description. The groups are by default private, i.e. only visible by their creators unless they are explicitly shared. All the graphs are organized into groups and are accessible in the menu on the right-hand side of the graph. Extra actions for subgraphs are proposed on the top menu.
- Node visibility
The eye and crossed-out eye buttons allow to choose the nodes to be hidden or shown in the subgraph based on the selection.
- Children and parents
For one or multiple selected nodes, it is possible to show the parents and/or children if they are not already in the graph or select them otherwise.