Software Architecture Recovery from Multiple Dependency Models

Metin Altınışık, Hasan Sözer, Gonca Gürsun · 2024

Software architecture recovery tools cluster software modules based on their inter-dependencies to suggest a gross-level decomposition with high modularity. However, there are usually multiple types of dependencies among software modules, each of which can be captured with a separate dependency model. In this paper, we evaluate the effectiveness of a software architecture recovery approach that utilizes multiple such dependency models. First, we perform clustering based on various models separately. These models reflect different types of dependencies, including call dependencies, evolutionary coupling and dependencies of modules on commonly used database tables. Then, we perform cluster aggregation on the obtained clustering results to propose a packaging structure to the designer. We present an industrial case study on a large-scale legacy system from the telecommunications domain. The highest accuracy is achieved with the aggregation of clustering results obtained based on 3 dependency models. The accuracy in terms of matching between the proposed packaging and the existing one is above 65%. The non-matching results mostly pinpoint architectural anomalies as confirmed by domain experts.

Read the paper · More papers on PaperTik