一句话:提出可视化工具 AC²,用调用图与协作图比较 Python 项目两个 release 的架构变化。
针对开源项目快速发布导致架构持续演化、维护者难以及时把握变更影响的问题,本文提出面向 Python 项目的可视化工具 AC²。该工具利用调用图和协作图刻画不同架构组件间的交互,并提供四种视图,从高、低两种抽象层次展示架构变化。用户可同时选择两个 release 进行对比,从而观察组件级复杂度随多个版本增长的情况。AC² 以开源工具形式发布并提供演示,旨在辅助维护者和开发者理解项目变更及其对架构的影响;摘要未报告定量实验或用户研究结果。
Open source projects are adopting faster release cycles that reflect various changes in the software. Therefore, comprehending the effects of these changes as software architecture evolves over multiple releases becomes necessary. However, it is challenging to keep architecture in-check and add new changes simultaneously for every release. To this end, we propose a visualization tool called AC2, which allows users to examine the alterations in the architecture at both higher and lower levels of abstraction for Python projects. AC2 uses call graphs and collaboration graphs to show the interaction between different architectural components. The tool provides four different views to see the architectural changes. Users can examine two releases at a time to comprehend architectural changes between them. AC2 can support the maintainers and developers, observing changes in the project and their influence on the architecture, which allows them to examine its increasing complexity over many releases at component level. AC2 can be downloaded from https://github.com/rishalab/AC2 and the demo can be seen at https://www.youtube.com/watch?v=GNrJfZ0RCVI.
DOI 原文 ·
@inproceedings{paperbot6384,
title = {AC²: towards understanding architectural changes in Python projects},
author = {A. Eashaan Rao and Dheeraj Vagavolu and Sridhar Chimalakonda},
booktitle = {FSE},
year = {2021},
doi = {10.1145/3468264.3473120}
}