A Software Visualization Approach for Multiple Visual Output Devices
Malte Hansen Heiko Bielfeldt Armin Bernstetter Tom Kwasnitschka Wilhelm Hasselbring







A Software Visualization Approach for 

Multiple Visual Output Devices

    Malte Hansen
Department of Computer Science 

Kiel University

Kiel, Germany 

malte.hansen@email.uni-kiel.de
Heiko Bielfeldt
Department of Computer Science 

Kiel University

Kiel, Germany 

heikobielfeldt@gmail.com
Armin Bernstetter

GEOMAR Helmholtz Centre for Ocean Research Kiel

Kiel, Germany 

abernstetter@geomar.de
Tom Kwasnitschka

GEOMAR Helmholtz Centre for Ocean Research Kiel

Kiel, Germany 

tkwasnitschka@geomar.de
Wilhelm Hasselbring
Department of Computer Science 

Kiel University

Kiel, Germany 

        hasselbring@email.uni-kiel.de

    September 9, 2024
===============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================



§ ABSTRACT 
As software systems grow, environments that not only facilitate program comprehension through software visualization but also enable collaborative exploration of software systems become increasingly important.
Most approaches to software visualization focus on a single monitor as a visual output device, which offers limited immersion and lacks in potential for collaboration.
More recent approaches address augmented and virtual reality environments to increase immersion and enable collaboration to facilitate program comprehension.
We present a novel approach to software visualization with software cities that fills a gap between existing approaches by using multiple displays or projectors.
Thereby, an increase in screen real estate and new use case scenarios for co-located environments are enabled.
Our web-based live trace visualization tool ExplorViz is extended with a service to synchronize the visualization across multiple browser instances.
Multiple browser instances can then extend or complement each other's views with respect to a given configuration.
The ARENA2, a spatially immersive visualization environment with five projectors, is used to showcase our approach.
A preliminary study indicates that this environment can be useful for collaborative exploration of software cities.
This publication is accompanied by a video.
In addition, our implementation is open source and we invite other researchers to explore and adapt it for their use cases.

Video URL: https://youtu.be/OiutBn3zIl8



software visualization, city metaphor, web, 3D, collaborative interaction, program comprehension




§ INTRODUCTION

Software Visualizations can be used for various software engineering tasks.
Scientific works in the field of software visualization have explored the visualization of a multitude of data with several visual metaphors<cit.>.
Most of these approaches are designed to be displayed on a single output device, commonly on a single monitor.
More recent publications also put an emphasis on the use of hardware for augmented and virtual reality<cit.>.
In addition, the importance of collaboration in software visualization is recognized, thus manifesting itself as a core feature of current software visualization tools<cit.>.

In this paper, we present our novel software visualization approach for exploration of 3D software cities<cit.> in environments with multiple visual output devices.
Thereby, we close the gap between the visualization of software cities on a single monitor and visualization approaches which use augmented or virtual reality devices.
The resulting implementation in our web-based tool ExplorViz <cit.> synchronizes the views of browser instances according to a configuration.
Through this, we can leverage the potential of different hardware configurations and create more immersive environments by increasing the available screen real estate.
Depending on the employed hardware configuration, our approach may also extend the possible use case scenarios for co-located collaboration.
We showcase our approach in an office environment and the ARENA2, a spatially immersive visualization environment with five projectors.

The remainder of this paper is structured as follows.
In Section <ref> we discuss related work in the field of software visualization and other works on multi-display visualization.
Section <ref> gives an overview about ExplorViz and the ARENA2.
In Section <ref> we describe our approach for supporting multiple visual output devices in ExplorViz and present its exemplary applications, including a preliminary study concerning the ARENA2.
Finally, Section <ref> concludes the paper and outlines the potential for future research.



§ RELATED WORK

Spatially immersive environments have been used for scientific visualization from the beginning, especially when visualizing abstract concepts as more easily understandable three-dimensional representations <cit.>.

Despite multi-player approaches, head-mounted displays (HMD) can cause certain degrees of isolation from the outside world. Spatially immersive environments allow co-located collaborative work, which allows direct communication with other people. 
Both approaches can have individual benefits and drawbacks <cit.>.
Located on the spectrum between 2D computer screens and HMDs for virtual reality, large and tiled displays can increase the available space for visualizations and as a result benefit the acquisition of insights from visual analysis <cit.>.
Examples of such facilities include the CAVE <cit.> and the ARENA2, which is introduced in the upcoming Section <ref>.

In the field of software visualization, Anslow et al. explored a large visualization wall consisting of twelve monitors to display a modified System Hotspot View of Java applications <cit.>.
The monitors were arranged in a grid and users were asked to complete some tasks as part of an evaluation.
They concluded that such a setup is helpful to display large amounts of data, but effective techniques for user interaction and innovative interface design need to be considered, too.

A later publication by Anslow et al. followed up on this with a tool called SourceVis <cit.>.
SourceVis focuses on collaboration which is enabled by using interactive large multi-touch tables to display the structure and evolution of software systems.
Therefore, SourceVis supports several different views.
The employed table had a large display but only a resolution of 1280x800 pixels.
The results of a user study show that switching between views and controlling the interface should be convenient for all users, independent of their position around the table.
In addition, the used display should be large and high resolution in order to support collaborative use cases.

The presented approaches illustrate the potential of large displays and the combination of multiple displays for visualization tasks.
Our approach aims to support comparable hardware configurations but focuses on the 3D visualization of software systems using the city metaphor.




§ BACKGROUND

 


 §.§ ExplorViz

ExplorViz is our web-based software visualization tool which employs the city metaphor <cit.>.
Apart from the software structure, it focuses on the visualization of program behavior.
Figure <ref> shows an exemplary visualization of a distributed version of the PetClinic.[<https://github.com/spring-petclinic/spring-petclinic-microservices>]
To collect runtime data, we employ dynamic analysis via NovaTec’s Java agent inspectIT Ocelot.[<https://www.inspectit.rocks>]
The gathered traces are exported using the OpenTelemetry[<https://opentelemetry.io>] standard.
This is supported by ExplorViz, making our approach easily adaptable such that software systems which are not written in Java could be visualized, too.



The frontend is written in JavaScript, while three.js[<https://github.com/mrdoob/three.js>] is used to render the 3D scene.
The backend consists of a microservice architecture, whereas most services are written in Java using the Quarkus[<https://quarkus.io/>] framework.
Communication between services is handled by Apache Kafka.[<https://kafka.apache.org/>]
An exception is our recently re-implemented collaboration service, which is written in Node.js.[<https://nodejs.org/en>]
Most communication between the collaboration service and frontend instances is handled via WebSocket connections.
The collaboration service supports multi-user collaboration for desktop computers, as well as for augmented and virtual reality devices <cit.>.



 §.§ ARENA2


The ARENA2[<https://www.geomar.de/en/arena>] is a multi-projection dome for spatially immersive, interactive scientific visualization located at GEOMAR Helmholtz Centre for Ocean Research Kiel. With a diameter of six meters it is large enough to fit up to 20 people in a non-interactive demo use case and three to five users in an interactive visualization session. 

The ARENA2 is driven by a Microsoft Windows computer cluster consisting of one main node, two video nodes for stereo 3D video playback, and five cluster nodes for real-time interactive applications.
Equipped with five WQXGA (2560x1600 pixels) projectors, stereo 3D capability and an Optitrack[<https://optitrack.com/>] motion tracking setup, the ARENA2 follows in the footsteps of spatially immersive environments such as the CAVE <cit.> and a number of previous iterations of interactive visualization facilities at GEOMAR <cit.>. 
The ARENA2 supports several multi-purpose visualization tools such as ParaView,[<https://www.paraview.org/>] the Unreal Engine 5,[<https://www.unrealengine.com/>] or web-based visualization applications like the Digital Earth Viewer <cit.>.



§ SOFTWARE VISUALIZATION APPROACH

The overall goal of our approach is to visualize software on a variable number of visual output devices and provide a mechanism to configure the views of every visual output device.
Thereby, the number of supported hardware configurations and use cases for software visualization can be increased.



 §.§ Implementation

Our tool ExplorViz, presented in Section <ref>, is employed for a web-based reference implementation. 
Since ExplorViz already supported collaboration through virtual rooms, the focus of the implementation lies on the synchronization of different views and configuration for different browser instances.

Our collaboration service, which manages the virtual rooms, was extended with the concept of devices which can then be referenced in a configuration.
For our implementation, the configuration is written in the JSON format and consists of projection matrices for the virtual cameras of the 3D visualization.
Thereby, the virtual cameras of the browser instances can be efficiently set to extend each other's view with respect to the employed hardware configuration.
Each configuration has a dedicated main instance which handles user input and can determine which configuration is used.

The configuration is updated and sent to each browser instance whenever the main instance selects a new configuration.
What remains is that the position of each virtual camera is constantly updated in accordance with the camera position of the main instance.


From a technical perspective, the JSON configuration can be easily extended with additional attributes to customize the visualization.
At the time of writing, it is not possible to dynamically change the properties of a configuration via the user interface.
A configuration needs be computed in advance and added as a JSON file to the collaboration service.

Concerning the individual browser instances, it is important that they can be set up automatically, especially if a hardware setup consists of many devices.
In accordance with our web-based approach, we chose to use query parameters in the URL to encode the required data like the room and device identifiers for each browser instance.
Thereby, each instance can automatically join the same room and receive its configuration by calling a single URL.

Our implementation is open source and freely available on GitHub.[<https://github.com/ExplorViz>]
In addition, we provide Docker[<https://hub.docker.com>] images via the Docker registry.[<https://hub.docker.com/u/explorviz>]
Some of the use cases which could be enabled through our approach are discussed in the upcoming section.



 §.§ Envisioned Use Cases

With the ability to synchronize browser instances which run a 3D software visualization, we see the potential for several novel use cases.

For example, our approach can be used to expand the visualization in a 2D space by using multiple visual output devices.
This can range from the use of multiple monitors in a common office environment with a single computer to a wall of enterprise-grade displays which are connected to multiple computers.
Since our approach is platform agnostic, also multiple mobile devices such as tablets and smartphones could be used to enable crowd-sourced visualization on the go.
The main advantages of using multiple devices in a 2D space are improved screen real estate and possibly improved frames per second by splitting the visual computations across multiple computers.
Another example is the use of multiple visual output devices to immerse users in the software visualization. This includes environments like the ARENA2 and the CAVE which foster co-located collaboration.

Extending beyond the current state of our implementation, we expect that there are manifold hard- and software configurations, which offer as of yet unexplored use case scenarios.
For example, the employed configurations could be extended such that in addition to a large visualization, one browser instance gives an overview of the software city while another instance further complements the views by displaying software metrics.
In essence, this idea leads to the concept of configurable multi-device software visualization dashboards.



 §.§ Multi-Monitor Setup

Nowadays, software developers often use more than one monitor for work.
Therefore, it stands to reason that software visualization tools should also support such hardware setups.
In Figure <ref>, a setup with two laptops and two attached monitors is presented.


The left laptop runs the software stack of ExplorViz.
On the other hand, the right laptop only runs a browser instance which connects to the ExplorViz frontend of the left laptop via local network.
The required projection matrices for the configuration can be computed straightforward with the help of three.js.

The web-based character of our approach makes it cross-platform compatible.
However, the illustrated setup would also be feasible with a single computer.



 §.§ ARENA2 Setup

In the ARENA2, the implementation described above in Section <ref> is applied to a setup of five cluster nodes with one additional main node that controls the input.
After starting ExplorViz on the main node, a local script launches a browser instance on each of the five cluster nodes.

Figure <ref> illustrates this setup.
Chairs and a table in the middle can be used for collaborative software exploration as an alternative to standing in the ARENA2.
The visualization shows previously recorded structure and traces of PlantUML,[<https://plantuml.com/>] as displayed by ExplorViz.
A computer with a regular monitor at the edge of the visualization dome is used to control the visualization.

The view frustum of each instance is managed by the projection matrix configuration. 
For the ARENA2 this projection matrix information is taken from calibration files in the MPCDI standard.[<https://vesa.org/vesa-standards/>]
The warping and blending of the projector outputs, which creates one seamless overlapping image on the curved surface, happens at a system level through software implemented by the company VIOSO.[<https://vioso.com/>]





 §.§ Preliminary Evaluation

To gain early insights about our approach, a small user study was conducted in the ARENA2 environment.
The ten participants were students and researchers.
Since our approach is also aimed at improving collaboration, the participants took part in our evaluation in groups of two.
After a short survey about their demographic background, the two participants of each group were introduced to ExplorViz and the ARENA2.
For this purpose, a small sample application was visualized in the dome.

Following the introduction, a distributed version of the PetClinic (see Figure <ref>) was visualized by ExplorViz in the ARENA2.
The participants were then asked to answer questions about the visualized software to encourage both interaction with the visualization and collaboration among the participants.
The given tasks ranged from simply counting the number of classes in a package, to comparing the structure of different applications or inspecting the intra- and inter-application communication.
The participants were encouraged to collaborate and discuss their findings verbally.
There was no time limit and due to the nature of our study we did not record how much time groups needed for each individual task.

Subsequently to the tasks, the participants took part in a digital survey.
Therein, participants expressed a positive opinion towards working within the ARENA2 due to the high resolution projection, expansive visualization space and generous personal workspace.
In addition, the large and curved dome is described as immersive and unique.
Overall, participants tend to agree that this visualization environment offers advantages over a conventional monitor.

With respect to collaboration, the participants rate both the visualization of ExplorViz and the ARENA2 as an environment which is suitable for collaboration.
The participants estimate that about four to ten people can collaborate in the ARENA2 at the same time while maintaining an equally good user experience.

On the downside of the evaluated implementation, the interactivity of the visualization could be improved.
To interact with the visualization, the participants used a common mouse and keyboard, which was attached to the main computer with its monitor.
This distracted some participants and limited their ability to walk around.

Additionally, the overlapping projections prevented us from displaying the regular two-dimensional user interface naturally.
Therefore, the participants were missing some data and configuration options which are otherwise present in ExplorViz.

Another aspect concerns the spherical projection. 
Even though ExplorViz employs a 3D visualization, the software city is placed in a 2D plane.
A layout of the software city that accounts for the curved projection area could improve the visualization for large software systems. 

Following the evaluation, we implemented support for gamepad controls.
Furthermore, we plan to integrate more data and configuration options into the 3D visualization, as is already the case for our visualization in virtual reality.

The results of this study are not suitable to be generalized, especially in terms of applicability to other hardware setups.
However, it indicates that hardware setups with multiple visual output devices are worth a consideration for the visualization of software cities.
The gathered feedback can be incorporated into future research activities with the goal to repeat the study with a refined implementation and more study participants.




§ CONCLUSIONS AND FUTURE WORK

In this paper we presented an approach to software visualization, which uses multiple visual output devices.
The approach is made concrete by means of an open source implementation in our software visualization tool ExplorViz.
We showcased our approach in an office environment and in the ARENA2.
A preliminary study has been conducted in the ARENA2 environment, showing that our approach can be applied to the collaborative exploration of 3D software cities.

To gain further insight, an evaluation of a refined implementation comparing different hardware configurations with our multi-device approach is desirable.
In addition, we expect our approach to be easily adaptable to a variety of use cases and hereby invite other researchers to explore and adapt it.



§ ACKNOWLEDGMENTS

We want to thank Valentin Buck and Flemming Stäbler, the developers of the Digital Earth Viewer<cit.>, for their advice in the early phases of our implementation.



myIEEEtran




