Software systems, which have become an integral part of our daily lives, are constantly evolving and growing in complexity. The challenge of understanding and managing these systems has led to a shift towards automated extraction of models from software artifacts. However, extracting architectural models for web service or microservice systems is challenging due to the heterogeneity of formats, languages, and semantics. This challenge arises from the independent deployment and loose coupling of services, as well as the diverse technologies and platforms that comprise the heterogeneous artifacts. This paper addresses this issue with two key ideas: a knowledge representation model for diverse artifacts and a framework for integrating individual views into a unified architectural model. The former involves model-to-model transformations that consider technology-specific relationships and concepts. At the same time, the latter uses model transformation and composition techniques to create a unified model based on an existing metamodel. This work goes beyond the current state of the art by introducing an approach for reconstructing component-based software architectures and combining model-driven reverse engineering processes to capture information across multiple views. As empirical evidence of its applicability and accuracy, we report on its successful application in real projects of different sizes. Our evaluation shows scalability in generating architectural models and can reconstruct the components of a software system and their interactions with F1 values up to 0.94 for structural properties and up to 0.88 for behavioral properties.
Read full abstract