Computers (Oct 2022)

Towards Predicting Architectural Design Patterns: A Machine Learning Approach

  • Sirojiddin Komolov,
  • Gcinizwe Dlamini,
  • Swati Megha,
  • Manuel Mazzara

DOI
https://doi.org/10.3390/computers11100151
Journal volume & issue
Vol. 11, no. 10
p. 151

Abstract

Read online

Software architecture plays an important role in software development, especially in software quality and maintenance. Understanding the impact of certain architectural patterns on software quality and verification of software requirements has become increasingly difficult with the increasing complexity of codebases in recent years. Researchers over the years have proposed automated approaches based on machine learning. However, there is a lack of benchmark datasets and more accurate machine learning (ML) approaches. This paper presents an ML-based approach for software architecture detection, namely, MVP (Model–View–Presenter) and MVVM (Model–View–ViewModel). Firstly, we present a labeled dataset that consists of 5973 data points retrieved from GitHub. Nine ML methods are applied for detection of software architecture from source code metrics. Using precision, recall, accuracy, and F1 score, the outstanding ML model performance is 83%, 83%, 83%, and 83%, respectively. The ML model’s performance is validated using k-fold validation (k = 5). Our approach outperforms when compared with the state-of-the-art.

Keywords