Table of Contents
Fetching ...

SPViz: A DSL-Driven Approach for Software Project Visualization Tooling

Niklas Rentz, Reinhard von Hanxleden

TL;DR

SPViz introduces a DSL-driven approach to generate project-specific architecture visualizations for arbitrary software architectures by employing two meta-model DSLs: a3m to describe architecture and vc3m to describe visualizations. The system automatically synthesizes a complete visualization tool, including an EMF-based project model and a generator template, and deploys across IDEs or web front-ends via KLighD. Demonstrations across OSGi, Maven/Spring DI, Gradle, and Yarn/InversifyJS show adaptability and significant reductions in manual development effort, complemented by industry feedback. This approach addresses the need for up-to-date, customizable visualizations that scale with evolving codebases, while remaining architecture-agnostic and integrable into CI/CD workflows.

Abstract

For most service architectures, such as OSGi and Spring, architecture-specific tools allow software developers and architects to visualize otherwise obscure configurations hidden in the project files. Such visualization tools are often used for documentation purposes and help to better understand programs than with source code alone. However, such tools often do not address project-specific peculiarities or do not exist at all for less common architectures, requiring developers to use different visualization and analysis tools within the same architecture. Furthermore, many generic modeling tools and architecture visualization tools require their users to create and maintain models manually. We here propose a DSL-driven approach that allows software architects to define and adapt their own project visualization tool. The approach, which we refer to as Software Project Visualization (SPViz), uses two DSLs, one to describe architectural elements and their relationships, and one to describe how these should be visualized. We demonstrate how SPViz can then automatically synthesize a customized, project-specific visualization tool that can adapt to changes in the underlying project automatically. We implemented our approach in an open-source library, also termed SPViz and discuss and analyze four different tools that follow this concept, including open-source projects and projects from an industrial partner in the railway domain.

SPViz: A DSL-Driven Approach for Software Project Visualization Tooling

TL;DR

SPViz introduces a DSL-driven approach to generate project-specific architecture visualizations for arbitrary software architectures by employing two meta-model DSLs: a3m to describe architecture and vc3m to describe visualizations. The system automatically synthesizes a complete visualization tool, including an EMF-based project model and a generator template, and deploys across IDEs or web front-ends via KLighD. Demonstrations across OSGi, Maven/Spring DI, Gradle, and Yarn/InversifyJS show adaptability and significant reductions in manual development effort, complemented by industry feedback. This approach addresses the need for up-to-date, customizable visualizations that scale with evolving codebases, while remaining architecture-agnostic and integrable into CI/CD workflows.

Abstract

For most service architectures, such as OSGi and Spring, architecture-specific tools allow software developers and architects to visualize otherwise obscure configurations hidden in the project files. Such visualization tools are often used for documentation purposes and help to better understand programs than with source code alone. However, such tools often do not address project-specific peculiarities or do not exist at all for less common architectures, requiring developers to use different visualization and analysis tools within the same architecture. Furthermore, many generic modeling tools and architecture visualization tools require their users to create and maintain models manually. We here propose a DSL-driven approach that allows software architects to define and adapt their own project visualization tool. The approach, which we refer to as Software Project Visualization (SPViz), uses two DSLs, one to describe architectural elements and their relationships, and one to describe how these should be visualized. We demonstrate how SPViz can then automatically synthesize a customized, project-specific visualization tool that can adapt to changes in the underlying project automatically. We implemented our approach in an open-source library, also termed SPViz and discuss and analyze four different tools that follow this concept, including open-source projects and projects from an industrial partner in the railway domain.
Paper Structure (18 sections, 14 figures)

This paper contains 18 sections, 14 figures.

Figures (14)

  • Figure 1: Screenshot of an architecture visualization tool synthesized by spviz, here for osgi projects. The overviews can be interactively expanded to show connections as shown in Figures \ref{['fig:bundle-dep-view']} and \ref{['fig:category-connection-view']}. The view can be customized with filters and interactive features in the open sidebar.
  • Figure 2: View of the internal bundle dependencies originating from the klighd.ui.view bundle of the KLighD project, synthesized by the tool generated by spviz based on structural and visual descriptions in lst:a3m-dsl-exampleanchor autorefnameplural \ref{['lst:a3m-dsl-example']} and \ref{['lst:vc3m-dsl-example']} .
  • Figure 3: View on the same bundle dependency hierarchy as in \ref{['fig:bundle-dep-view']}, filtered by their categorizing features.
  • Figure 4: The usage process of the view tools with its core, the vcm. It is used to configure and filter views for later reuse. Solid arrows depict data flow, dashed ones the interaction paths to control the vcm. Adapted from Rentz et al. RentzDvH20.
  • Figure 5: Collapsed (klingontranslator) and expanded (englishtranslator) products. Expanded product shows filtered views (services, bundle dependencies), here in their current collapsed form.
  • ...and 9 more figures