wiki:Web2/DependencyExaminations

Version 2 (modified by manualwiki, 10 years ago) (diff)

--

Dependency Examinations

This service is available under the ”Dependency Graphs” menu. To learn more about dependency analysises see the Dependency Analysis page.

An application called Graphviz, is needed to generate results in .svg format, also for the smart graph.

All images generated during examinations are placed in the directory which has been set during startup by the 'images_dir' switch. If this parameter has not been set, all images are placed in the current working the directory.

Analyse in function or in module level

Dependency examinations can be performed on a module or function level, using the whole graph or the cyclic sub-graph. A self-defined module or function can also be set as the starting node of an examination. This service is available in the ”Dependency graph” menu under the ”Function or Module level” tab.

Possible configurations for an examination are:

  • Configuring the level of the examination: setting module or function from the ”Level” drop-down.
  • Configuring the type of the examination:
    • None: In this case, the type of examination is not given, this mode is used when the user wants to set the starting node of the examination.
    • Whole graph: Dependency examinations are performed on the whole graph.
    • Cyclic sub-graph: Dependency examinations are performed only on the set of cyclic sub-graphs.
  • Configuring the starting node of the examination:
    • module: can be set in the text-field located under ”Starting node (module)”. The interface offers possible endings while typing a module name, based on modules that are loaded into the database. An offered module name can be chosen from a drop-down list.
    • function: can be set in the text-field located under ”Starting node (function)”. The function should be given in the following form: module name:function name/arity. The interface offers possible endings here as well.

Modules or functions which you don't want to see in the graph, should be added to the Excluded list with the provided button, or directly in the text area separated by newlines. Modules or functions which leaves you don't want to see in the graph, should be added to the No leaves list the same way. You can also exclude all OTP modules/functions by checking the Exclude OTP checkbox.

After configurating an examination, click one of the buttons on the bottom to start it. The result is available in four formats:

  • Using ”Generate svg graph” and then clicking ”Generated graph in .dot” the result is sent to the browser in .dot format.
  • Using the same button, then clicking ”See generated graph in .svg” the result is displayed in a new window in the browser.
  • Using ”Print result” will provide the result in text format (relations and cycles).
  • Using ”Generate smart graph” will provide an advanced mode to view the graph.

Analyse in functionblock level

Dependency analysis can also be done in functionblock level. This service is available in the ”Dependency graphs” menu under the ’Functionblock’ tab.

Predefined functionblocks are the loaded directories, but a functionblock can also be defined by the user, by typing the needed Perl-like regular expression into the textfield, and pressing the ’Add’ button.

The available functionblocks are placed in the ’Functionblock’ list. From there the subjects of the analysis can be drag and dropped into the ’Subjects’ list. After this you can generate a graph as usual.

Collapsible graph view

The purpose of the collapsible graph is to make the current implementation easier to use through a variety of tools. There is a function to hide or display certain parts of the graph. Subgraphs visualisation may be customised by submitting certain parameters. These parameters may define the depth and direction of the visualisation, and can be assigned through the use of the settings option. By clicking on a node, the subgraph will be displayed according to the given depth and direction. In case of forward direction, incoming edges and associated nodes are all displayed and nodes accessible through outgoing edges are displayed only up to given depth. In case of backward direction, outgoing edges and associated nodes are displayed, while nodes linked via incoming edges are only displayed up to given depth. If "both" direction is given, both the incoming and outgoing nodes are displayed only up to given depth. The movement of the displayed graph may be perplexing, therefor a pause button was implemented, with which the movement may be stopped or restarted at any given time. Search was also implemented: at least three characters must be given, then the search function will display any label that matches the query with yellow. The search field and consequently, the matches may be flushed by clicking the icon "X".