5.9. Gravis¶
The Graph Visualizer tool Gravis visualizes a resource flow graph (RFG). An RFG contains facts extracted from a software system and additional analysis results. An RFG consists of nodes and edges. Views define subsets of these nodes and edges capturing different aspects of the system. Nodes and edges are collectively addressed as graph elements (or simply elements). Each element can be present in multiple views. Nodes, edges, views and the graph itself can have attributes (named properties).
A node represents an entity of the system under analysis, an edge represents a
relationship between the entities that it connects. Edges are directed, so each edge has
a source node and a target node. If both source node and target node are
identical, the edge is a loop. Nodes and edges have types to express different kinds
of entities and relationships. Types can have subtypes to express more specialized
entities/relationships, e. g., the
Call type represents any
kind of “call” relationship between nodes, whereas its subtypes
Explicit_Call and
Implicit_Call can be
used to differentiate between explicit and implicit calls.
Certain edge types (
Belongs_To and its subtypes) are
used to represent hierarchies of nodes. Such edges are referred to as “hierarchical
edges” below. Hierarchical edges are always directed from the part (“child”) to its
container (“parent”).
In addition to being able to visualize RFGs, Gravis is also an RFG editor, offering operations to add and remove elements, create views, run analyses, etc.