ThesisPDF Available

Interactive Visualization of Hierarchical, Multi-Variate, and Time-Varying Data


Abstract and Figures

Hierarchical data sets – e.g. software system structure data – are collected on a growing scale. In order to understand a software system, the data sets are visualized and analyzed. As software changes frequently, the analysis of data sets at different points in time is important for the comprehension of their evolution. Existing approaches for the visualization of temporal hierarchical data have their limitations either in the amount of visualizable data or in the comparability of data sets at different points in time. The visualization of hierarchical structures in complex software systems is usually done using a treemap. A treemap recursively subdivides a two-dimensional area in order to encode a hierarchy and enables the visualization of multiple attributes e.g. with the size, the extruded height or the color of a node. Traditional treemap layout algorithms and rendering techniques can only be used for the comparison of two data sets at different points in time to some extent, as (1) no comparison between nodes in a treemap and between different states is possible and (2) there are no rendering techniques for the size differences of a node over time. This thesis introduces the techniques EvoCell-Layouting, Change Map, and Change Hints. EvoCell-Layouting is a novel treemap layout algorithm that iteratively changes a given treemap layout. Change Maps are density maps to locate changes in attribute values disregarding the difference and the size of the node. Change Hints visualize spatial changes between two states of a treemap. These three techniques enhance the comprehension of the evolution of temporal hierarchical data. A prototypical implementation, a discussion about alternatives, and performance and memory analyses demonstrate real data applicability. An additional case study reveals distinctive changes in the software system of a monitored open-source project that are hard to detect with traditional hierarchy visualizations.
Content may be subject to copyright.
A preview of the PDF is not available
ResearchGate has not been able to resolve any citations for this publication.
Full-text available
Tree visualization is one of the best-studied areas of information visualization; researchers have developed more than 200 visualization and layout techniques for trees. The project aims to provide a hand-curated bibliographical reference to this ever-growing wealth of techniques. It offers a visual overview that users can filter to a desired subset along the design criteria of dimensionality, edge representation, and node alignment. Details, including links to the original publications, can be brought up on demand. has become a community effort, with researchers sending in preprints of their tree visualization techniques to be published or pointing out additional information.
Conference Paper
Full-text available
Ensuring code quality represents an essential task in «perfective software maintenance», which aims at keeping future maintenance costs low by facilitating adaptations of complex software systems. For this purpose, changes and related efforts have to be identified that imply high positive impact on future maintainability. In this paper, we propose a novel assessment method that applies visual analysis techniques to combine multiple indicators for low maintainability, including code complexity and entanglement with other parts of the system, and recent changes applied to the code. The approach generally helps to identify modules that impose a high risk by causing increased future maintenance efforts. Consequently, it allows for exploration, analysis, and planning of different preventive measures that, e.g., most likely will have a high return on investment. In our tool implementation, we use circular bundle views, extended by the third dimension in which indicators can be mapped to. We have evaluated our approach by conducting a case study based on our tool for a large-scale software system of an industry partner.
Written by a pioneer of game development in academia, Introduction to Game Physics with Box2D covers the theory and practice of 2D game physics in a relaxed and entertaining yet instructional style. It offers a cohesive treatment of the topics and code involved in programming the physics for 2D video games. Focusing on writing elementary game physics code, the first half of the book helps you grasp the challenges of programming game physics from scratch, without libraries or outside help. It examines the mathematical foundation of game physics and illustrates how it is applied in practice through coding examples. The second half of the book shows you how to use Box2D, a popular open source 2D game physics engine. A companion website provides supplementary material, including source code and videos. This book helps you become a capable 2D game physics programmer through its presentation of both the theory and applications of 2D game physics. After reading the book and experimenting with the code samples, you will understand the basics of 2D game physics and know how to use Box2D to make a 2D physics-based game.
Outside of the world of enterprise computing, there is one database that enables a huge range of software and hardware to flex relational database capabilities, without the baggage and cost of traditional database management systems. That database is SQLite—an embeddable database with an amazingly small footprint, yet able to handle databases of enormous size. SQLite comes equipped with an array of powerful features available through a host of programming and development environments. It is supported by languages such as C, Java, Perl, PHP, Python, Ruby, TCL, and more. The Definitive Guide to SQLite, Second Edition is devoted to complete coverage of the latest version of this powerful database. It offers a thorough overview of SQLite’s capabilities and APIs. The book also uses SQLite as the basis for helping newcomers make their first foray into database development. In only a short time you can be writing programs as diverse as a server-side browser plug-in or the next great iPhone or Android application! • Learn about SQLite extensions for C, Java, Perl, PHP, Python, Ruby, and Tcl. • Get solid coverage of SQLite internals. • Explore developing iOS (iPhone) and Android applications with SQLite. SQLite is the solution chosen for thousands of products around the world, from mobile phones and GPS devices to set-top boxes and web browsers. You almost certainly use SQLite every day without even realizing it!
Treemapping is a method for displaying hierarchical data using nested rectangles. Each branch of the tree is given its rectangle, which then is tiled with smaller rectangles representing sub-branches. A node's shape has an area proportional to a specified dimension of the data. To create a treemap, one must define a tiling algorithm, i.e., a way to divide a rectangle into sub-rectangles of specified areas. There are several problems with existing tiling algorithms: (i) they allow tiles to shift when the main window or some of the tiles are resized affecting the user perception of the information; (ii) they do not allow users to place selected elements into desired positions w.r.t. each other. In this paper, we present a method for creating treemaps with customized layouts. The method is based on reusable templates and supports zooming into specific areas of the treemap without affecting its initial layout. We illustrate the use of template-based treemaps to the visualization of biomedical data. Furthermore, we present an algorithm for automated generation of layouts satisfying positional constraints for a particular class of constraints.