ExplorViz uses dynamic analysis techniques to provide live trace visualization of the communication in large software landscape. It targets system and program comprehension in those landscapes while still providing details on the communication within an application. A landscape perspective enriches current system visualizations with additional abstraction levels for efficient comprehension of communication between hundreds of applications which is often encountered in, for instance, Cloud environments. On the application level perspective, ExplorViz utilizes the 3D city metaphor combined with an interactive concept of showing only details that are in focus of the analysis. For best accessibility, ExplorViz is a web-based tool featuring cutting-edge technologies like WebGL and HTML 5.
Given the 3D city metaphor visualization of an application, we investigate new interaction styles and higher immersion for a more effective and efficient program comprehension process. For this purpose, we utilize uprising technologies and evaluate developed approaches in experiments with real test subjects.
The usability and effectiveness of ExplorViz has been investigated in controlled experiments which resulted in increased efficiency and effectiveness over competing approaches.
This project contains the modernized version of ExplorViz.
It substitutes GWT and it's (asynchronous) RPC framework with Jersey for creating a RESTful API. This is only the backend, you will need the explorviz-frontend as well.
This gradle project includes or installs every necessary dependency.
If you use this software, please cite
Wilhelm Hasselbring, Alexander Krause, Christian Zirkelbach, (2020): ExplorViz: Research on software visualization, comprehension and collaboration. Software Impacts, Volume 6. DOI https://doi.org/10.1016/j.simpa.2020.100034. [BibTex] | [Endnote]
Florian Fittkau, Alexander Krause, Wilhelm Hasselbring (2017): Software landscape and application visualization for system comprehension with ExplorViz. Information and Software Technology, Volume 87. pp. 259-277. DOI https://doi.org/10.1016/j.infsof.2016.07.004. [BibTex] | [Endnote]
Citing ExplorViz' collaborative modularization process:
- Zirkelbach, Christian, Krause, Alexander and Hasselbring, Wilhelm (2019): Modularization of Research Software for Collaborative Open Source Development. In Proceedings of the Ninth International Conference on Advanced Collaborative Networks, Systems and Applications (COLLA 2019), June 30 - July 04, 2019, Rome, Italy. [BibTex] | [Endnote]
- The API documentation is available here
- The documentation for endpoints of services (SwaggerUI) is available here, once all services are started
- Download the latest Eclipse IDE for Java Developers (ExplorViz requires JDK 11 compliance)
- Follow the CAU-SE guidelines for quality assurance (Only necessary if you contribute code)
Setup Development (Docker and docker-compose are required)
- Follow the previous Eclipse Setup
- Clone this repository
- Import project into Eclipse: via
Import -> Gradle -> Existing Gradle project -> path/to/explorviz-backend
- Follow the instructions inside of the docker-compose folder to start mandatory docker-based services (e.g. MongoDB)
- Start explorviz-backend microservices via run configurations in the run-configurations folder:
Right click single config -> Run as -> ExplorViz-X(where
Xis the name of a microservice)
- Setup and start explorviz-frontend
- To force the download of newly added dependencies:
Right click on the project explorviz-backend -> Gradle -> Refresh Gradle Project. You might need to uncomment the respective lines in the build.gradle file.
- Generating API Documentation: Travis CI automatically builds all Javadoc on successful master-branch builds
Quick start with sample (dummy) monitoring
- Follow the above Setup Development procedure
- Clone TestApplication
- Start the TestApplication as described here.
- Open explorviz-frontend
Important: Changes that are related to dependency injections require a recompilation of the application. Thus, restart the microservices. Afterwards, start the monitoring again.