Journal "Software Engineering"
a journal on theoretical and applied science and technology
ISSN 2220-3397

Issue N7 2015 year

Abstract Data Types and Immutable Data Structures for Interactive Graph Visualization
M. A. Kryshen, Senior Lecturer, e-mail: kryshen@cs.petrsu.ru, Petrozavodsk State University

In various applications of graph visualization, including network management, additional benefits arise from the ability to interactively manipulate the graph and the parameters of its visual representation. In the context of the task of IT infrastructure visualization, an interactive graph visualization system is being developed. The system uses a user-definable set of rules to translate source data describing the IT infrastructure into a graph of complex interactive vertices. By manipulating the vertices, the user can trigger changes in the graph structure or parameters of the visualization.

The architecture of the visualization system is based on abstract data types for graph, graph layout, and interactive visual objects that represent the graph vertices. These abstract data types are designed to ensure composability of system components and allow efficient implementation with immutable data structures. Graphs are constructed by combining graphs instead of using operations on individual graph elements. Graph layout algorithms are compos-able: a fast algorithm implementation can provide predictable initial locations for new vertices, then the layout can be refined by an iterative algorithm. Interactive visual objects are composable, stateless, and context-dependant. The use of immutable data structures allowed to reduce and localize shared state that needs to be synchronized, which simplifies multi-threaded implementation needed to achieve good responsiveness of the interactive system.

Keywords: abstract data types, immutable data structures, functional programming, Clojure, graph visualization, interactive visualization, software system
pp. 21–28