Table of Contents
Fetching ...

Visual Integration of Static and Dynamic Software Analysis in Code Reviews via Software City Visualization

Alexander Krause-Glau, Lukas Damerau, Malte Hansen, Wilhelm Hasselbring

TL;DR

This work addresses the challenge of code-review comprehension by visualizing both static code structure and dynamic runtime behavior within a software-city metaphor. It proposes a web-based architecture that integrates static analysis and dynamic tracing into ExplorViz and links visualizations directly from Git hosting services. The authors implement a CI-oriented workflow that runs static analysis and instrumented dynamic analysis inside Docker, extending ExplorViz to render combined data and map runtime behavior to structural changes. Using an example with the distributed PetClinic system, the approach demonstrates how reviewers can explore changes across commits and use cases, and the code is released as open source for further research.

Abstract

Software visualization approaches for code reviews are often implemented as standalone applications, which use static code analysis. The goal is to visualize the structural changes introduced by a pull / merge request to facilitate the review process. In this way, for example, structural changes that hinder code evolution can be more easily identified, but understanding the changed program behavior is still mainly done by reading the code. For software visualization to be successful in code review, tools must be provided that go beyond an alternative representation of code changes and integrate well into the developers' daily workflow. In this paper, we report on the novel and in-progress design and implementation of a web-based approach capable of combining static and dynamic analysis data in software city visualizations. Our architectural tool design incorporates modern web technologies such as the integration into common Git hosting services. As a result, code reviewers can explore how the modified software evolves and execute its use cases, which is especially helpful for distributed software systems. In this context, developers can be directly linked from the Git hosting service's issue tracking system to the corresponding software city visualization. This approach eliminates the recurring action of manual data collection and setup. We implement our design by extending the web-based software visualization tool ExplorViz. We invite other researchers to extend our open source software and jointly research this approach. Video URL: https://youtu.be/DYxijdCEdrY

Visual Integration of Static and Dynamic Software Analysis in Code Reviews via Software City Visualization

TL;DR

This work addresses the challenge of code-review comprehension by visualizing both static code structure and dynamic runtime behavior within a software-city metaphor. It proposes a web-based architecture that integrates static analysis and dynamic tracing into ExplorViz and links visualizations directly from Git hosting services. The authors implement a CI-oriented workflow that runs static analysis and instrumented dynamic analysis inside Docker, extending ExplorViz to render combined data and map runtime behavior to structural changes. Using an example with the distributed PetClinic system, the approach demonstrates how reviewers can explore changes across commits and use cases, and the code is released as open source for further research.

Abstract

Software visualization approaches for code reviews are often implemented as standalone applications, which use static code analysis. The goal is to visualize the structural changes introduced by a pull / merge request to facilitate the review process. In this way, for example, structural changes that hinder code evolution can be more easily identified, but understanding the changed program behavior is still mainly done by reading the code. For software visualization to be successful in code review, tools must be provided that go beyond an alternative representation of code changes and integrate well into the developers' daily workflow. In this paper, we report on the novel and in-progress design and implementation of a web-based approach capable of combining static and dynamic analysis data in software city visualizations. Our architectural tool design incorporates modern web technologies such as the integration into common Git hosting services. As a result, code reviewers can explore how the modified software evolves and execute its use cases, which is especially helpful for distributed software systems. In this context, developers can be directly linked from the Git hosting service's issue tracking system to the corresponding software city visualization. This approach eliminates the recurring action of manual data collection and setup. We implement our design by extending the web-based software visualization tool ExplorViz. We invite other researchers to extend our open source software and jointly research this approach. Video URL: https://youtu.be/DYxijdCEdrY
Paper Structure (12 sections, 6 figures)

This paper contains 12 sections, 6 figures.

Figures (6)

  • Figure 1: Conceptual data flow and architecture of our approach.
  • Figure 2: Excerpt of an example GitLab issue. Code reviewers can click on the ExplorViz frontend link to access the related visualization.
  • Figure 3: Software cities visualize the distributed Spring PetClinic. In this color scheme, the packages are light and dark gray. The height of the blue buildings (classes) indicates the current number of instances for a class based on the runtime behavior. Orange pipes show method calls captured by dynamic analysis. Textures, e.g. plus signs, mark changes between the selected Git commits and their runtime snapshots.
  • Figure 4: Unfiltered comparison showing all commit-related data. Four data sets are dynamically combined for this visualization.
  • Figure 5: Filtered comparison visualizing the compared static analysis data without any runtime information.
  • ...and 1 more figures