ExplorViz: Research on software visualization, comprehension and collaboration

Abstract ExplorViz supports research on software visualization, software comprehension tasks and software collaboration. To achieve this, ExplorViz provides multi-level visualization from the software landscape layer toward the level of individual software applications. Via immersive 3D visualizations in virtual reality, ExplorViz also supports collaboration in software development teams. The research tool development commenced in 2012, and grew toward a powerful, extensible open-source software that has been employed in a variety of software engineering research projects. In this paper, we review its history, development and research impact.


Software visualization, comprehension and collaboration
ExplorViz uses dynamic analysis techniques to provide live trace visualization of the communication in large software landscapes. It targets software system and program comprehension in those landscapes while still providing details on the communication within an application. A landscape perspective enriches previous system visualizations with additional abstraction levels for efficient comprehension of communication and interaction among software applications. On the various empirical experiments which resulted in increased efficiency and effectiveness over competing approaches.
The core research topics in ExplorViz are Software Visualization, Software Comprehension and Collaboration in Software Engineering, as well as the combination of those topics: Software Visualization is concerned with the visualization of information related to software systems, such as the architecture, its runtime behavior, and its development process by means of static, interactive or animated 2D or 3D visual representations of their structure, execution, behavior, and evolution. As an example, Fig. 1 shows how ExplorViz utilizes the 3D city metaphor for visualizing the application level perspective of software systems.
Software Comprehension is concerned with the ways software engineers maintain existing software. Software comprehension is an important cognitive process in software development, because developers spend most of their time with understanding existing software.
Collaboration in Software Engineering is concerned with coordinating the work of software engineers to design, implement, and maintain large software systems in teams. ExplorViz supports collaboration in software comprehension and software design.

Development history
The open source research project ExplorViz [2][3][4] started in 2012 as part of a PhD thesis [5] and is further developed and actively maintained until today. ExplorViz enables a live monitoring and visualization of large software landscapes. Therefore, the tool offers two types of visualizations -a landscape-level and an application-level perspective. The first provides an overview of a monitored software landscape consisting of several servers, applications, and communication in-between. The second perspective visualizes a single application within the software landscape and reveals its underlying architecture. The tool has the objective to aid the process of system and program comprehension for developers and operators.
The software is developed from the beginning on GitHub with some core developers and many collaborators over the time (more than 40 students). Several extensions have been implemented since the first version, which enhanced the tool's feature set.
In 2016 we started to migrate and modernize our employed architecture and technology stack to improve the maintainability of the software and the collaboration among the developers. This way, ExplorViz became a research object itself, as study object for software modularization and modernization.
With the new modular microservices architecture, new project developers, e.g., students, do not have to understand the complete project from the beginning. They can now extend the core by implementing new mechanics on the basis of plug-in extensions. With this modernization, the previous own, specialized monitoring component has been replaced by the generic Kieker monitoring framework [6,7]. Fig. 2 shows the new modularized, extensible software architecture of ExplorViz [8].
Since 2017, we continuously extended and improved the virtual reality (VR) features of ExplorViz. Starting with a single-user VR approach as an alternative to existing application-level visualizations of ExplorViz on the screen, we realized a first multi-user VR approach in 2019, and achieved a fully collaborative multi-user VR approach offering landscape-level perspective in 2020. The latest version allows multiple users with head-mounted displays and specific controllers to collaboratively explore and comprehend monitored software systems in VR. Based on several gestures mapped to related controllers the users are able to interact with the immersive software visualization and thus can perform system and program comprehension tasks in teams. Even developers located at different sites are now able to collaboratively utilize ExplorViz.
Besides employing ExplorViz in research on software visualization, comprehension and collaboration, ExplorViz has also been used as a research object itself. This includes scalable and elastic processing of large volumes of monitoring data [21], application discovery [22] and migrating monolithic software systems toward microservice architectures [8,[23][24][25].

Industry impact
ExplorViz was also employed in several industrial collaborations. Examples are PPI AG (Kiel) and Adesso SE (Hamburg) [26]. These industrial collaborations and case studies also serve as evaluation of the ExplorViz approach, influence the development of ExplorViz and provide access to real-world data.
ExplorViz is open source research software [27] licensed under the Apache License, Version 2.0, such that it may be utilized commercially without any restrictions. Such a license is a good legal framework for technology transfer. The ''business model'' is not based on envisioned revenue via licensing, instead we follow an open source business model based on impact of the software. More frequent use of the software means more impact, in this case. Such impact is a great foundation for follow-up projects. We also use ExplorViz as example software system for software engineering education.

Declaration of competing interest
The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.

Acknowledgments
Many colleagues contributed to ExplorViz in different ways and intensities. 1 Note that we do not only acknowledge contributions to source code. The contributing researchers are usually involved because they are working on a ExplorViz-related research project. Students usually contribute to ExplorViz as part of their work on ExplorViz-related study theses or their employment as student assistants.