Welcome to user guide for GraphTool
This guide will reviews how to use the GraphTool program - the code dependency visualizer developed for Ericsson by the Placeholder team at KTH. The GraphTool program is designed to run on a Linux environment and generate graphical representations of dependency graphs from the build artefacts produced by the Ericsson build tool.
The software has a graphical interface as well as a command line interface. This guide is intended to help a new user become accustomed to and use the software effectively.
Features
The main functionality of GraphTool is to visualize SWU to SWU dependencies in a graph using different layout algorithms.
GraphTool supports the following features at present:
- Search for specific SWUs by name to show its dependencies.
- Search for all SWUs in the data set to show all dependencies.
- Select one SWU and focus the view on a smaller subgraph starting from that SWU.
- Filter SWUs in the graph based on
- regular expressions, matching names.
- number of dependencies.
- run block, to only show SWU dependencies within that run block.
- LPM/LDM memory type.
- Hide SWUs in the graph using Ctrl+mouse left click on any node (Hiding all edges going from/to this node as well.)
- Colour, set opacity for or hide specific nodes in the graph based on the same criteria (conditional formatting)
- Save filters and conditional formatting to disk and load them at a later stage
- Distinguish between absolute and relative dependencies in the graph.
- Run difference views highlight the differences between two different builds
- Print graphs to printer or PDF
- Export graphs to GraphViz/DOT format
User Scenario Example
- Load an XML file containing the data set (Ctrl+O).
- Open the filter menu (Ctrl+F).
- Create a "dependency degree filter" to filter out all nodes with more than 100 degree (min dependency = 0, max dependency = 100)
- Enable the filter
- Zoom in on the graph and right click on a SWU to select "Exclude node" to removei t from the display
- Select another SWU and right click and select "Focus on node" to show only that node's dependencies & dependents
- Right click on one of the displayed dependencies and select "Expand node" to add all its dependencies to the graph
Known Issues
The following are known issues with the software:
-
All tabs in the TreeView show the same content when displaying the whole graph including all SWUs from the input XML or searching for a run block. This is not the case if the user searches for an SWU. This is due to the fact that the whole graph, as well as a run block search won't specify any root node.
-
Graph layout algorithms can occasionally cause nodes to overlap when expanding nodes.
-
When saving or exporting XML files, file extensions are not automatically appended to the file name.
-
Edge tooltips are displayed when zooming in the GraphView using the mouse scroll, not having the mouse on any edge.
Release Log
Throughout the initial development period there has been one release demoed.
All releases are available for download on GitHub.
- Release 1.0 (140523)
- Rubber hand zoom
- Dockable widgets
- Memory leaks fixed
- Documentation completed
- Sprint 7 Increment (140425 - 140514)
- Conditional formatting on the edges of the graph
- Improvement of the user experience of the application
- Improvements of the graph visuals and its components
- Printing & Export
- Added user guide
- Added developer guide
- Added testing manual
- Sprint 6 Increment (140328 - 140423)
- Load another input-xml and see the differences between 2 builds (Diff View)
- Import and export of filters
- Improved Tree View
- Autocompletion when searching for either SWUs or Executables
- Edge colouring on memory type basis
- Sprint 5 Increment (140308 - 140326)
- Show all SWU dependencies for a specific Run Block
- Filters can be both excluding and including
- On SWU selection in graph, dependencies are highlighted
- Application of filters don't force redrawal of the graph
- Sprint 4 Increment (140221 - 140306)
- Add/remove a filter that filters out SWUs dependending on the number of dependencies
- Hide specific SWUs in the graph using CTRL + click
- Sprint 3 Increment (140129 - 140217)
- Switch of abstraction level of displayed graph from load block to SWU
- Generate a hierarchical layout of the graph.
- Generate an expandable list representation of the graph.
- Graph navigation and display revamped.
- Find cyclic dependencies.
- Sprint 2 Increment (131221 - 140127)
- First GUI implemented
- Visualize whole load block dependency graph
- Visualize dependencies for a specific load block
- Layout dependency graphs using different algorithms
- See metadata for specific load block
- Antialiasing
- Sprint 1 Increment (131209 - 131220)
- Load dependency XML file for a build, search for a specific load block, and output the dependency graph for that load block into either a graphviz or graphml file.