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.
翻译:对于大多数服务架构(如OSGi和Spring),特定于架构的工具允许软件开发者和架构师可视化隐藏在项目文件中原本模糊的配置信息。这类可视化工具通常用于文档化目的,并有助于比仅通过源代码更好地理解程序。然而,此类工具通常无法处理项目特定的特殊性,或者对于不太常见的架构根本不存在,这要求开发者在同一架构中使用不同的可视化和分析工具。此外,许多通用建模工具和架构可视化工具要求用户手动创建和维护模型。我们在此提出一种基于DSL驱动的方法,允许软件架构师定义和适配他们自己的项目可视化工具。该方法被称为软件项目可视化(SPViz),使用两种领域特定语言(DSL),一种用于描述架构元素及其关系,另一种用于描述这些元素应如何被可视化。我们展示了SPViz如何自动合成一个定制的、针对特定项目的可视化工具,该工具能够自动适应底层项目的变化。我们将该方法实现为一个开源库(同样称为SPViz),讨论并分析了遵循这一概念的四款不同工具,包括开源项目以及来自铁路领域工业合作伙伴的项目。