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
