Comparison of Static Analysis Architecture Recovery Tools for Microservice Applications
Simon Schneider, Alexander Bakhtin, Xiaozhou Li, Jacopo Soldani, Antonio Brogi, Tomas Cerny, Riccardo Scandariato, Davide Taibi
TL;DR
The paper addresses the lack of a comprehensive, tool-based comparison of static analysis architecture recovery tools for microservice applications. It proposes a two-stage methodology: first, identify freely available static recovery tools via a multivocal literature review; second, execute the identified tools on a common, extended dataset of 17 open-source microservice DFDs and evaluate outputs against a ground truth using precision and recall, plus execution time. Tool characteristics will be captured in a comparative matrix, and the dataset may be extended to cover additional characteristics not present in ground truth. The study aims to provide researchers and practitioners with an actionable overview of tool capabilities, highlight gaps, and guide future work, including integration into CI/CD pipelines.
Abstract
Architecture recovery tools help software engineers obtain an overview of their software systems during all phases of the software development lifecycle. This is especially important for microservice applications because their distributed nature makes it more challenging to oversee the architecture. Various tools and techniques for this task are presented in academic and grey literature sources. Practitioners and researchers can benefit from a comprehensive overview of these tools and their abilities. However, no such overview exists that is based on executing the identified tools and assessing their outputs regarding effectiveness. With the study described in this paper, we plan to first identify static analysis architecture recovery tools for microservice applications via a multi-vocal literature review, and then execute them on a common dataset and compare the measured effectiveness in architecture recovery. We will focus on static approaches because they are also suitable for integration into fast-paced CI/CD pipelines.
